/**
Generated by the following Solidity interface...
```solidity
interface StrategyManager {
error CurrentlyPaused();
error InputAddressZero();
error InvalidNewPausedStatus();
error InvalidShortString();
error InvalidSignature();
error MaxStrategiesExceeded();
error OnlyDelegationManager();
error OnlyPauser();
error OnlyStrategyWhitelister();
error OnlyUnpauser();
error SharesAmountTooHigh();
error SharesAmountZero();
error SignatureExpired();
error StakerAddressZero();
error StrategyNotFound();
error StrategyNotWhitelisted();
error StringTooLong(string str);
event BurnableSharesDecreased(address strategy, uint256 shares);
event BurnableSharesIncreased(address strategy, uint256 shares);
event Deposit(address staker, address strategy, uint256 shares);
event Initialized(uint8 version);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event Paused(address indexed account, uint256 newPausedStatus);
event StrategyAddedToDepositWhitelist(address strategy);
event StrategyRemovedFromDepositWhitelist(address strategy);
event StrategyWhitelisterChanged(address previousAddress, address newAddress);
event Unpaused(address indexed account, uint256 newPausedStatus);
constructor(address _delegation, address _pauserRegistry, string _version);
function DEFAULT_BURN_ADDRESS() external view returns (address);
function DEPOSIT_TYPEHASH() external view returns (bytes32);
function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
function addStrategiesToDepositWhitelist(address[] memory strategiesToWhitelist) external;
function burnShares(address strategy) external;
function calculateStrategyDepositDigestHash(address staker, address strategy, address token, uint256 amount, uint256 nonce, uint256 expiry) external view returns (bytes32);
function delegation() external view returns (address);
function depositIntoStrategy(address strategy, address token, uint256 amount) external returns (uint256 depositShares);
function depositIntoStrategyWithSignature(address strategy, address token, uint256 amount, address staker, uint256 expiry, bytes memory signature) external returns (uint256 depositShares);
function domainSeparator() external view returns (bytes32);
function getBurnableShares(address strategy) external view returns (uint256);
function getDeposits(address staker) external view returns (address[] memory, uint256[] memory);
function getStakerStrategyList(address staker) external view returns (address[] memory);
function getStrategiesWithBurnableShares() external view returns (address[] memory, uint256[] memory);
function increaseBurnableShares(address strategy, uint256 addedSharesToBurn) external;
function initialize(address initialOwner, address initialStrategyWhitelister, uint256 initialPausedStatus) external;
function nonces(address signer) external view returns (uint256 nonce);
function owner() external view returns (address);
function pause(uint256 newPausedStatus) external;
function pauseAll() external;
function paused(uint8 index) external view returns (bool);
function paused() external view returns (uint256);
function pauserRegistry() external view returns (address);
function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
function removeStrategiesFromDepositWhitelist(address[] memory strategiesToRemoveFromWhitelist) external;
function renounceOwnership() external;
function setStrategyWhitelister(address newStrategyWhitelister) external;
function stakerDepositShares(address staker, address strategy) external view returns (uint256 shares);
function stakerStrategyList(address staker, uint256) external view returns (address strategies);
function stakerStrategyListLength(address staker) external view returns (uint256);
function strategyIsWhitelistedForDeposit(address strategy) external view returns (bool whitelisted);
function strategyWhitelister() external view returns (address);
function transferOwnership(address newOwner) external;
function unpause(uint256 newPausedStatus) external;
function version() external view returns (string memory);
function withdrawSharesAsTokens(address staker, address strategy, address token, uint256 shares) external;
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "constructor",
"inputs": [
{
"name": "_delegation",
"type": "address",
"internalType": "contract IDelegationManager"
},
{
"name": "_pauserRegistry",
"type": "address",
"internalType": "contract IPauserRegistry"
},
{
"name": "_version",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "DEFAULT_BURN_ADDRESS",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "DEPOSIT_TYPEHASH",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "addShares",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "shares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addStrategiesToDepositWhitelist",
"inputs": [
{
"name": "strategiesToWhitelist",
"type": "address[]",
"internalType": "contract IStrategy[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "burnShares",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "calculateStrategyDepositDigestHash",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "delegation",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IDelegationManager"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "depositIntoStrategy",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "depositShares",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "depositIntoStrategyWithSignature",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "depositShares",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "domainSeparator",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getBurnableShares",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getDeposits",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "contract IStrategy[]"
},
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getStakerStrategyList",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "contract IStrategy[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getStrategiesWithBurnableShares",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "increaseBurnableShares",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "addedSharesToBurn",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "initialStrategyWhitelister",
"type": "address",
"internalType": "address"
},
{
"name": "initialPausedStatus",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "nonces",
"inputs": [
{
"name": "signer",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [
{
"name": "newPausedStatus",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "pauseAll",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [
{
"name": "index",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pauserRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPauserRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "removeDepositShares",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "depositSharesToRemove",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeStrategiesFromDepositWhitelist",
"inputs": [
{
"name": "strategiesToRemoveFromWhitelist",
"type": "address[]",
"internalType": "contract IStrategy[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setStrategyWhitelister",
"inputs": [
{
"name": "newStrategyWhitelister",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "stakerDepositShares",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
}
],
"outputs": [
{
"name": "shares",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stakerStrategyList",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "strategies",
"type": "address",
"internalType": "contract IStrategy"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stakerStrategyListLength",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "strategyIsWhitelistedForDeposit",
"inputs": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
}
],
"outputs": [
{
"name": "whitelisted",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "strategyWhitelister",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unpause",
"inputs": [
{
"name": "newPausedStatus",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "version",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "withdrawSharesAsTokens",
"inputs": [
{
"name": "staker",
"type": "address",
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "token",
"type": "address",
"internalType": "contract IERC20"
},
{
"name": "shares",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "BurnableSharesDecreased",
"inputs": [
{
"name": "strategy",
"type": "address",
"indexed": false,
"internalType": "contract IStrategy"
},
{
"name": "shares",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "BurnableSharesIncreased",
"inputs": [
{
"name": "strategy",
"type": "address",
"indexed": false,
"internalType": "contract IStrategy"
},
{
"name": "shares",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Deposit",
"inputs": [
{
"name": "staker",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "strategy",
"type": "address",
"indexed": false,
"internalType": "contract IStrategy"
},
{
"name": "shares",
"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": "OwnershipTransferred",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newPausedStatus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StrategyAddedToDepositWhitelist",
"inputs": [
{
"name": "strategy",
"type": "address",
"indexed": false,
"internalType": "contract IStrategy"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StrategyRemovedFromDepositWhitelist",
"inputs": [
{
"name": "strategy",
"type": "address",
"indexed": false,
"internalType": "contract IStrategy"
}
],
"anonymous": false
},
{
"type": "event",
"name": "StrategyWhitelisterChanged",
"inputs": [
{
"name": "previousAddress",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "newAddress",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newPausedStatus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "error",
"name": "CurrentlyPaused",
"inputs": []
},
{
"type": "error",
"name": "InputAddressZero",
"inputs": []
},
{
"type": "error",
"name": "InvalidNewPausedStatus",
"inputs": []
},
{
"type": "error",
"name": "InvalidShortString",
"inputs": []
},
{
"type": "error",
"name": "InvalidSignature",
"inputs": []
},
{
"type": "error",
"name": "MaxStrategiesExceeded",
"inputs": []
},
{
"type": "error",
"name": "OnlyDelegationManager",
"inputs": []
},
{
"type": "error",
"name": "OnlyPauser",
"inputs": []
},
{
"type": "error",
"name": "OnlyStrategyWhitelister",
"inputs": []
},
{
"type": "error",
"name": "OnlyUnpauser",
"inputs": []
},
{
"type": "error",
"name": "SharesAmountTooHigh",
"inputs": []
},
{
"type": "error",
"name": "SharesAmountZero",
"inputs": []
},
{
"type": "error",
"name": "SignatureExpired",
"inputs": []
},
{
"type": "error",
"name": "StakerAddressZero",
"inputs": []
},
{
"type": "error",
"name": "StrategyNotFound",
"inputs": []
},
{
"type": "error",
"name": "StrategyNotWhitelisted",
"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 StrategyManager {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x60e060405234801561000f575f5ffd5b50604051612ef9380380612ef983398101604081905261002e916101b3565b808084846001600160a01b038116610059576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b039081166080521660a0526100748161008a565b60c0525061008290506100d0565b5050506102e4565b5f5f829050601f815111156100bd578260405163305a27a960e01b81526004016100b49190610289565b60405180910390fd5b80516100c8826102be565b179392505050565b5f54610100900460ff16156101375760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100b4565b5f5460ff90811614610186575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461019c575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156101c5575f5ffd5b83516101d081610188565b60208501519093506101e181610188565b60408501519092506001600160401b038111156101fc575f5ffd5b8401601f8101861361020c575f5ffd5b80516001600160401b038111156102255761022561019f565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102535761025361019f565b60405281815282820160200188101561026a575f5ffd5b8160208401602083015e5f602083830101528093505050509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156102de575f198160200360031b1b821691505b50919050565b60805160a05160c051612bac61034d5f395f8181610bb90152611c8101525f81816104e70152818161079701528181610b4b01528181610e010152818161128d015261189d01525f81816103bc015281816105a601528181610bf701526114c90152612bac5ff3fe608060405234801561000f575f5ffd5b5060043610610213575f3560e01c80638b8aac3c1161011f578063debe1eab116100a9578063f3b4a00011610079578063f3b4a0001461052f578063f698da2514610539578063fabc1cbc14610541578063fd98042314610554578063fe243a1714610567575f5ffd5b8063debe1eab146104cf578063df5cf723146104e2578063e7a050aa14610509578063f2fde38b1461051c575f5ffd5b80639ac01d61116100ef5780639ac01d6114610463578063b5d8b5b814610476578063c665670214610489578063cbc2bd621461049c578063de44acb6146104af575f5ffd5b80638b8aac3c146103f65780638da5cb5b1461041e57806394f649dd1461042f578063967fc0d214610450575f5ffd5b8063595c6a67116101a0578063663c1de411610170578063663c1de41461035b578063715018a61461037d578063724af423146103855780637ecebe0014610398578063886f1195146103b7575f5ffd5b8063595c6a67146103055780635ac86ab71461030d5780635c975abb146103405780635de08ff214610348575f5ffd5b806336a8c500116101e657806336a8c5001461027857806348825e941461028e5780634b6d5d6e146102b557806350ff7225146102c857806354fd4d50146102f0575f5ffd5b8063136439dd146102175780631794bb3c1461022c5780632eae418c1461023f57806332e89ace14610252575b5f5ffd5b61022a6102253660046125e1565b610591565b005b61022a61023a36600461260c565b610666565b61022a61024d36600461264a565b61078c565b6102656102603660046126ac565b610844565b6040519081526020015b60405180910390f35b6102806108e8565b60405161026f9291906127e1565b6102657f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61022a6102c3366004612837565b610a05565b6102db6102d636600461260c565b610b3e565b6040805192835260208301919091520161026f565b6102f8610bb2565b60405161026f9190612880565b61022a610be2565b61033061031b366004612892565b609854600160ff9092169190911b9081161490565b604051901515815260200161026f565b609854610265565b61022a6103563660046128b2565b610c91565b610330610369366004612837565b60d16020525f908152604090205460ff1681565b61022a610de4565b61026561039336600461260c565b610df5565b6102656103a6366004612837565b60ca6020525f908152604090205481565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026f565b610265610404366004612837565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b03166103de565b61044261043d366004612837565b610e68565b60405161026f92919061295c565b60cb546103de906001600160a01b031681565b610265610471366004612989565b610fe0565b61022a6104843660046128b2565b611071565b61022a610497366004612837565b6111b8565b6103de6104aa3660046129ea565b6111db565b6104c26104bd366004612837565b61120f565b60405161026f9190612a14565b61022a6104dd3660046129ea565b611282565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61026561051736600461260c565b611346565b61022a61052a366004612837565b611398565b6103de620e16e481565b61026561140e565b61022a61054f3660046125e1565b6114c7565b610265610562366004612837565b6115dd565b610265610575366004612a26565b60cd60209081525f928352604080842090915290825290205481565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190612a5d565b61063457604051631d77d47760e21b815260040160405180910390fd5b60985481811681146106595760405163c61dca5d60e01b815260040160405180910390fd5b610662826115f2565b5050565b5f54610100900460ff161580801561068457505f54600160ff909116105b8061069d5750303b15801561069d57505f5460ff166001145b6107055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015610726575f805461ff0019166101001790555b61072f826115f2565b6107388461162f565b61074183611680565b8015610786575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405163f739589b60e01b815260040160405180910390fd5b6107dd6116e9565b604051636ce5768960e11b81526001600160a01b0384169063d9caed129061080d90879086908690600401612a7c565b5f604051808303815f87803b158015610824575f5ffd5b505af1158015610836573d5f5f3e3d5ffd5b505050506107866001606555565b6098545f90819060019081160361086e5760405163840a48d560e01b815260040160405180910390fd5b6108766116e9565b6001600160a01b0385165f90815260ca60205260409020546108a7866108a0818c8c8c878c610fe0565b8688611742565b6001600160a01b0386165f90815260ca602052604090206001820190556108d0868a8a8a611794565b9250506108dd6001606555565b509695505050505050565b6060805f6108f660d4611901565b90505f8167ffffffffffffffff81111561091257610912612698565b60405190808252806020026020018201604052801561093b578160200160208202803683370190505b5090505f8267ffffffffffffffff81111561095857610958612698565b604051908082528060200260200182016040528015610981578160200160208202803683370190505b5090505f5b838110156109fa575f5f61099b60d484611911565b91509150818584815181106109b2576109b2612aa0565b60200260200101906001600160a01b031690816001600160a01b031681525050808484815181106109e5576109e5612aa0565b60209081029190910101525050600101610986565b509094909350915050565b610a0d6116e9565b5f610a1960d48361192e565b915050610a2760d483611945565b50604080516001600160a01b0384168152602081018390527fd9d082c3ec4f3a3ffa55c324939a06407f5fbcb87d5e0ce3b9508c92c84ed839910160405180910390a18015610b3057816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190612ab4565b846040518463ffffffff1660e01b8152600401610b0293929190612a7c565b5f604051808303815f87803b158015610b19575f5ffd5b505af1158015610b2b573d5f5f3e3d5ffd5b505050505b50610b3b6001606555565b50565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b895760405163f739589b60e01b815260040160405180910390fd5b610b916116e9565b610b9c858585611959565b91509150610baa6001606555565b935093915050565b6060610bdd7f0000000000000000000000000000000000000000000000000000000000000000611ac1565b905090565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610c44573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c689190612a5d565b610c8557604051631d77d47760e21b815260040160405180910390fd5b610c8f5f196115f2565b565b60cb546001600160a01b03163314610cbc576040516320ba3ff960e21b815260040160405180910390fd5b610cc46116e9565b805f5b81811015610dd85760d15f858584818110610ce457610ce4612aa0565b9050602002016020810190610cf99190612837565b6001600160a01b0316815260208101919091526040015f205460ff16610dd057600160d15f868685818110610d3057610d30612aa0565b9050602002016020810190610d459190612837565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610d9f57610d9f612aa0565b9050602002016020810190610db49190612837565b6040516001600160a01b03909116815260200160405180910390a15b600101610cc7565b50506106626001606555565b610dec611afe565b610c8f5f61162f565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e3f5760405163f739589b60e01b815260040160405180910390fd5b610e476116e9565b5f610e53858585611b58565b92505050610e616001606555565b9392505050565b6001600160a01b0381165f90815260ce60205260408120546060918291908167ffffffffffffffff811115610e9f57610e9f612698565b604051908082528060200260200182016040528015610ec8578160200160208202803683370190505b5090505f5b82811015610f56576001600160a01b0386165f90815260cd6020908152604080832060ce9092528220805491929184908110610f0b57610f0b612aa0565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610f4357610f43612aa0565b6020908102919091010152600101610ecd565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f208181805480602002602001604051908101604052809291908181526020018280548015610fce57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610fb0575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90611066906101000160405160208183030381529060405280519060200120611c1e565b979650505050505050565b60cb546001600160a01b0316331461109c576040516320ba3ff960e21b815260040160405180910390fd5b6110a46116e9565b805f5b81811015610dd85760d15f8585848181106110c4576110c4612aa0565b90506020020160208101906110d99190612837565b6001600160a01b0316815260208101919091526040015f205460ff16156111b0575f60d15f86868581811061111057611110612aa0565b90506020020160208101906111259190612837565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba03084848381811061117f5761117f612aa0565b90506020020160208101906111949190612837565b6040516001600160a01b03909116815260200160405180910390a15b6001016110a7565b6111c0611afe565b6111c86116e9565b6111d181611680565b610b3b6001606555565b60ce602052815f5260405f2081815481106111f4575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce602090815260409182902080548351818402810184019094528084526060939283018282801561127657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611258575b50505050509050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112cb5760405163f739589b60e01b815260040160405180910390fd5b6112d36116e9565b5f6112df60d48461192e565b91506112f8905060d4846112f38585612ae3565b611c64565b50604080516001600160a01b0385168152602081018490527fca3e02a4ab7ad3c47a8e36e5a624c30170791726ab720f1babfef21046d953ff910160405180910390a1506106626001606555565b6098545f9081906001908116036113705760405163840a48d560e01b815260040160405180910390fd5b6113786116e9565b61138433868686611794565b91506113906001606555565b509392505050565b6113a0611afe565b6001600160a01b0381166114055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106fc565b610b3b8161162f565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea61147b611c79565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611523573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115479190612ab4565b6001600160a01b0316336001600160a01b0316146115785760405163794821ff60e01b815260040160405180910390fd5b6098548019821981161461159f5760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f5f6115ea60d48461192e565b949350505050565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60026065540361173b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106fc565b6002606555565b4281101561176357604051630819bdcd60e01b815260040160405180910390fd5b6117776001600160a01b0385168484611d15565b61078657604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff166117ce57604051632efd965160e11b815260040160405180910390fd5b6117e36001600160a01b038516338786611d73565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561182f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118539190612af6565b91505f5f611862888886611959565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b1580156118e0575f5ffd5b505af11580156118f2573d5f5f3e3d5ffd5b50505050505050949350505050565b5f61190b82611dcb565b92915050565b5f80808061191f8686611dd5565b909450925050505b9250929050565b5f80808061191f866001600160a01b038716611dfe565b5f610e61836001600160a01b038416611e36565b5f806001600160a01b038516611982576040516316f2ccc960e01b815260040160405180910390fd5b825f036119a2576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd6020908152604080832093881683529290529081205490819003611a48576001600160a01b0386165f90815260ce602090815260409091205410611a0a576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038681165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b611a528482612ae3565b6001600160a01b038088165f90815260cd60209081526040808320938a16835292905281902091909155517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6290611aae90889088908890612a7c565b60405180910390a1959294509192505050565b60605f611acd83611e52565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b03163314610c8f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106fc565b5f5f825f03611b7a576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd602090815260408083209388168352929052205480841115611bc057604051634b18b19360e01b815260040160405180910390fd5b611bca8482612b0d565b6001600160a01b038088165f90815260cd60209081526040808320938a168352929052908120829055909150819003611c1257611c078686611e79565b600192509050610baa565b5f969095509350505050565b5f611c2761140e565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f6115ea846001600160a01b03851684611ff7565b60605f611ca57f0000000000000000000000000000000000000000000000000000000000000000611ac1565b9050805f81518110611cb957611cb9612aa0565b602001015160f81c60f81b81600181518110611cd757611cd7612aa0565b016020908101516040516001600160f81b03199384169281019290925291909116602182015260220160405160208183030381529060405291505090565b5f5f5f611d228585612013565b90925090505f816004811115611d3a57611d3a612b20565b148015611d585750856001600160a01b0316826001600160a01b0316145b80611d695750611d69868686612052565b9695505050505050565b610786846323b872dd60e01b858585604051602401611d9493929190612a7c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612139565b5f61190b82612211565b5f8080611de2858561221a565b5f81815260029690960160205260409095205494959350505050565b5f818152600283016020526040812054819080611e2b57611e1f8585612225565b92505f91506119279050565b600192509050611927565b5f8181526002830160205260408120819055610e618383612230565b5f60ff8216601f81111561190b57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0382165f90815260ce6020526040812054905b81811015611f8b576001600160a01b038481165f90815260ce6020526040902080549185169183908110611ec957611ec9612aa0565b5f918252602090912001546001600160a01b031603611f83576001600160a01b0384165f90815260ce602052604090208054611f0790600190612b0d565b81548110611f1757611f17612aa0565b5f9182526020808320909101546001600160a01b03878116845260ce9092526040909220805491909216919083908110611f5357611f53612aa0565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f8b565b600101611e93565b818103611fab57604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce60205260409020805480611fd157611fd1612b34565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f82815260028401602052604081208290556115ea848461223b565b5f5f8251604103612047576020830151604084015160608501515f1a61203b87828585612246565b94509450505050611927565b505f90506002611927565b5f5f5f856001600160a01b0316631626ba7e60e01b868660405160240161207a929190612b48565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516120b89190612b60565b5f60405180830381855afa9150503d805f81146120f0576040519150601f19603f3d011682016040523d82523d5f602084013e6120f5565b606091505b509150915081801561210957506020815110155b8015611d6957508051630b135d3f60e11b9061212e9083016020908101908401612af6565b149695505050505050565b5f61218d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123039092919063ffffffff16565b905080515f14806121ad5750808060200190518101906121ad9190612a5d565b61220c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106fc565b505050565b5f61190b825490565b5f610e618383612311565b5f610e618383612337565b5f610e61838361234e565b5f610e618383612431565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561227b57505f905060036122fa565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156122cc573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166122f4575f600192509250506122fa565b91505f90505b94509492505050565b60606115ea84845f8561247d565b5f825f01828154811061232657612326612aa0565b905f5260205f200154905092915050565b5f8181526001830160205260408120541515610e61565b5f8181526001830160205260408120548015612428575f612370600183612b0d565b85549091505f9061238390600190612b0d565b90508181146123e2575f865f0182815481106123a1576123a1612aa0565b905f5260205f200154905080875f0184815481106123c1576123c1612aa0565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806123f3576123f3612b34565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061190b565b5f91505061190b565b5f81815260018301602052604081205461247657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561190b565b505f61190b565b6060824710156124de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106fc565b5f5f866001600160a01b031685876040516124f99190612b60565b5f6040518083038185875af1925050503d805f8114612533576040519150601f19603f3d011682016040523d82523d5f602084013e612538565b606091505b509150915061106687838387606083156125b25782515f036125ab576001600160a01b0385163b6125ab5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106fc565b50816115ea565b6115ea83838151156125c75781518083602001fd5b8060405162461bcd60e51b81526004016106fc9190612880565b5f602082840312156125f1575f5ffd5b5035919050565b6001600160a01b0381168114610b3b575f5ffd5b5f5f5f6060848603121561261e575f5ffd5b8335612629816125f8565b92506020840135612639816125f8565b929592945050506040919091013590565b5f5f5f5f6080858703121561265d575f5ffd5b8435612668816125f8565b93506020850135612678816125f8565b92506040850135612688816125f8565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f60c087890312156126c1575f5ffd5b86356126cc816125f8565b955060208701356126dc816125f8565b94506040870135935060608701356126f3816125f8565b92506080870135915060a087013567ffffffffffffffff811115612715575f5ffd5b8701601f81018913612725575f5ffd5b803567ffffffffffffffff81111561273f5761273f612698565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561276e5761276e612698565b6040528181528282016020018b1015612785575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b5f8151808452602084019350602083015f5b828110156127d75781518652602095860195909101906001016127b9565b5093949350505050565b604080825283519082018190525f9060208501906060840190835b818110156128235783516001600160a01b03168352602093840193909201916001016127fc565b50508381036020850152611d6981866127a7565b5f60208284031215612847575f5ffd5b8135610e61816125f8565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e616020830184612852565b5f602082840312156128a2575f5ffd5b813560ff81168114610e61575f5ffd5b5f5f602083850312156128c3575f5ffd5b823567ffffffffffffffff8111156128d9575f5ffd5b8301601f810185136128e9575f5ffd5b803567ffffffffffffffff8111156128ff575f5ffd5b8560208260051b8401011115612913575f5ffd5b6020919091019590945092505050565b5f8151808452602084019350602083015f5b828110156127d75781516001600160a01b0316865260209586019590910190600101612935565b604081525f61296e6040830185612923565b828103602084015261298081856127a7565b95945050505050565b5f5f5f5f5f5f60c0878903121561299e575f5ffd5b86356129a9816125f8565b955060208701356129b9816125f8565b945060408701356129c9816125f8565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156129fb575f5ffd5b8235612a06816125f8565b946020939093013593505050565b602081525f610e616020830184612923565b5f5f60408385031215612a37575f5ffd5b8235612a42816125f8565b91506020830135612a52816125f8565b809150509250929050565b5f60208284031215612a6d575f5ffd5b81518015158114610e61575f5ffd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612ac4575f5ffd5b8151610e61816125f8565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561190b5761190b612acf565b5f60208284031215612b06575f5ffd5b5051919050565b8181038181111561190b5761190b612acf565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f6115ea6040830184612852565b5f82518060208501845e5f92019182525091905056fea26469706673582212205156421cb9f4865d8c206b62277999db7553f36aa15ed284f446e78bb9a74d5664736f6c634300081b0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\xE0`@R4\x80\x15a\0\x0FW__\xFD[P`@Qa.\xF98\x03\x80a.\xF9\x839\x81\x01`@\x81\x90Ra\0.\x91a\x01\xB3V[\x80\x80\x84\x84`\x01`\x01`\xA0\x1B\x03\x81\x16a\0YW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\x80R\x16`\xA0Ra\0t\x81a\0\x8AV[`\xC0RPa\0\x82\x90Pa\0\xD0V[PPPa\x02\xE4V[__\x82\x90P`\x1F\x81Q\x11\x15a\0\xBDW\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\0\xB4\x91\x90a\x02\x89V[`@Q\x80\x91\x03\x90\xFD[\x80Qa\0\xC8\x82a\x02\xBEV[\x17\x93\x92PPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15a\x017W`@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\xB4V[_T`\xFF\x90\x81\x16\x14a\x01\x86W_\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[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\x9CW__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[___``\x84\x86\x03\x12\x15a\x01\xC5W__\xFD[\x83Qa\x01\xD0\x81a\x01\x88V[` \x85\x01Q\x90\x93Pa\x01\xE1\x81a\x01\x88V[`@\x85\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x01\xFCW__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x02\x0CW__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02%Wa\x02%a\x01\x9FV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02SWa\x02Sa\x01\x9FV[`@R\x81\x81R\x82\x82\x01` \x01\x88\x10\x15a\x02jW__\xFD[\x81` \x84\x01` \x83\x01^_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92P\x92V[` \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\x02\xDEW_\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\x80Q`\xA0Q`\xC0Qa+\xACa\x03M_9_\x81\x81a\x0B\xB9\x01Ra\x1C\x81\x01R_\x81\x81a\x04\xE7\x01R\x81\x81a\x07\x97\x01R\x81\x81a\x0BK\x01R\x81\x81a\x0E\x01\x01R\x81\x81a\x12\x8D\x01Ra\x18\x9D\x01R_\x81\x81a\x03\xBC\x01R\x81\x81a\x05\xA6\x01R\x81\x81a\x0B\xF7\x01Ra\x14\xC9\x01Ra+\xAC_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\x13W_5`\xE0\x1C\x80c\x8B\x8A\xAC<\x11a\x01\x1FW\x80c\xDE\xBE\x1E\xAB\x11a\0\xA9W\x80c\xF3\xB4\xA0\0\x11a\0yW\x80c\xF3\xB4\xA0\0\x14a\x05/W\x80c\xF6\x98\xDA%\x14a\x059W\x80c\xFA\xBC\x1C\xBC\x14a\x05AW\x80c\xFD\x98\x04#\x14a\x05TW\x80c\xFE$:\x17\x14a\x05gW__\xFD[\x80c\xDE\xBE\x1E\xAB\x14a\x04\xCFW\x80c\xDF\\\xF7#\x14a\x04\xE2W\x80c\xE7\xA0P\xAA\x14a\x05\tW\x80c\xF2\xFD\xE3\x8B\x14a\x05\x1CW__\xFD[\x80c\x9A\xC0\x1Da\x11a\0\xEFW\x80c\x9A\xC0\x1Da\x14a\x04cW\x80c\xB5\xD8\xB5\xB8\x14a\x04vW\x80c\xC6eg\x02\x14a\x04\x89W\x80c\xCB\xC2\xBDb\x14a\x04\x9CW\x80c\xDED\xAC\xB6\x14a\x04\xAFW__\xFD[\x80c\x8B\x8A\xAC<\x14a\x03\xF6W\x80c\x8D\xA5\xCB[\x14a\x04\x1EW\x80c\x94\xF6I\xDD\x14a\x04/W\x80c\x96\x7F\xC0\xD2\x14a\x04PW__\xFD[\x80cY\\jg\x11a\x01\xA0W\x80cf<\x1D\xE4\x11a\x01pW\x80cf<\x1D\xE4\x14a\x03[W\x80cqP\x18\xA6\x14a\x03}W\x80crJ\xF4#\x14a\x03\x85W\x80c~\xCE\xBE\0\x14a\x03\x98W\x80c\x88o\x11\x95\x14a\x03\xB7W__\xFD[\x80cY\\jg\x14a\x03\x05W\x80cZ\xC8j\xB7\x14a\x03\rW\x80c\\\x97Z\xBB\x14a\x03@W\x80c]\xE0\x8F\xF2\x14a\x03HW__\xFD[\x80c6\xA8\xC5\0\x11a\x01\xE6W\x80c6\xA8\xC5\0\x14a\x02xW\x80cH\x82^\x94\x14a\x02\x8EW\x80cKm]n\x14a\x02\xB5W\x80cP\xFFr%\x14a\x02\xC8W\x80cT\xFDMP\x14a\x02\xF0W__\xFD[\x80c\x13d9\xDD\x14a\x02\x17W\x80c\x17\x94\xBB<\x14a\x02,W\x80c.\xAEA\x8C\x14a\x02?W\x80c2\xE8\x9A\xCE\x14a\x02RW[__\xFD[a\x02*a\x02%6`\x04a%\xE1V[a\x05\x91V[\0[a\x02*a\x02:6`\x04a&\x0CV[a\x06fV[a\x02*a\x02M6`\x04a&JV[a\x07\x8CV[a\x02ea\x02`6`\x04a&\xACV[a\x08DV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x80a\x08\xE8V[`@Qa\x02o\x92\x91\x90a'\xE1V[a\x02e\x7FC7\xF8-\x14.A\xF2\xA8\xC1\x05G\xCD\x8C\x85\x9B\xDD\xB9\"b\xA6\x10X\xE7xB\xE2M\x9D\xEA\x92$\x81V[a\x02*a\x02\xC36`\x04a(7V[a\n\x05V[a\x02\xDBa\x02\xD66`\x04a&\x0CV[a\x0B>V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02oV[a\x02\xF8a\x0B\xB2V[`@Qa\x02o\x91\x90a(\x80V[a\x02*a\x0B\xE2V[a\x030a\x03\x1B6`\x04a(\x92V[`\x98T`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x02oV[`\x98Ta\x02eV[a\x02*a\x03V6`\x04a(\xB2V[a\x0C\x91V[a\x030a\x03i6`\x04a(7V[`\xD1` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x02*a\r\xE4V[a\x02ea\x03\x936`\x04a&\x0CV[a\r\xF5V[a\x02ea\x03\xA66`\x04a(7V[`\xCA` R_\x90\x81R`@\x90 T\x81V[a\x03\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\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02oV[a\x02ea\x04\x046`\x04a(7V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\xCE` R`@\x90 T\x90V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xDEV[a\x04Ba\x04=6`\x04a(7V[a\x0EhV[`@Qa\x02o\x92\x91\x90a)\\V[`\xCBTa\x03\xDE\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02ea\x04q6`\x04a)\x89V[a\x0F\xE0V[a\x02*a\x04\x846`\x04a(\xB2V[a\x10qV[a\x02*a\x04\x976`\x04a(7V[a\x11\xB8V[a\x03\xDEa\x04\xAA6`\x04a)\xEAV[a\x11\xDBV[a\x04\xC2a\x04\xBD6`\x04a(7V[a\x12\x0FV[`@Qa\x02o\x91\x90a*\x14V[a\x02*a\x04\xDD6`\x04a)\xEAV[a\x12\x82V[a\x03\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\x81V[a\x02ea\x05\x176`\x04a&\x0CV[a\x13FV[a\x02*a\x05*6`\x04a(7V[a\x13\x98V[a\x03\xDEb\x0E\x16\xE4\x81V[a\x02ea\x14\x0EV[a\x02*a\x05O6`\x04a%\xE1V[a\x14\xC7V[a\x02ea\x05b6`\x04a(7V[a\x15\xDDV[a\x02ea\x05u6`\x04a*&V[`\xCD` \x90\x81R_\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Qc#}\xFBG`\xE1\x1B\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\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xF3W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x17\x91\x90a*]V[a\x064W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98T\x81\x81\x16\x81\x14a\x06YW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06b\x82a\x15\xF2V[PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\x84WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x06\x9DWP0;\x15\x80\x15a\x06\x9DWP_T`\xFF\x16`\x01\x14[a\x07\x05W`@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[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x07&W_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x07/\x82a\x15\xF2V[a\x078\x84a\x16/V[a\x07A\x83a\x16\x80V[\x80\x15a\x07\x86W_\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[PPPPV[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`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xDDa\x16\xE9V[`@Qcl\xE5v\x89`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x16\x90c\xD9\xCA\xED\x12\x90a\x08\r\x90\x87\x90\x86\x90\x86\x90`\x04\x01a*|V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x08$W__\xFD[PZ\xF1\x15\x80\x15a\x086W=__>=_\xFD[PPPPa\x07\x86`\x01`eUV[`\x98T_\x90\x81\x90`\x01\x90\x81\x16\x03a\x08nW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08va\x16\xE9V[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\xCA` R`@\x90 Ta\x08\xA7\x86a\x08\xA0\x81\x8C\x8C\x8C\x87\x8Ca\x0F\xE0V[\x86\x88a\x17BV[`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCA` R`@\x90 `\x01\x82\x01\x90Ua\x08\xD0\x86\x8A\x8A\x8Aa\x17\x94V[\x92PPa\x08\xDD`\x01`eUV[P\x96\x95PPPPPPV[``\x80_a\x08\xF6`\xD4a\x19\x01V[\x90P_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\t\x12Wa\t\x12a&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t;W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\tXWa\tXa&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x81W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83\x81\x10\x15a\t\xFAW__a\t\x9B`\xD4\x84a\x19\x11V[\x91P\x91P\x81\x85\x84\x81Q\x81\x10a\t\xB2Wa\t\xB2a*\xA0V[` \x02` \x01\x01\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x81`\x01`\x01`\xA0\x1B\x03\x16\x81RPP\x80\x84\x84\x81Q\x81\x10a\t\xE5Wa\t\xE5a*\xA0V[` \x90\x81\x02\x91\x90\x91\x01\x01RPP`\x01\x01a\t\x86V[P\x90\x94\x90\x93P\x91PPV[a\n\ra\x16\xE9V[_a\n\x19`\xD4\x83a\x19.V[\x91PPa\n'`\xD4\x83a\x19EV[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\xD9\xD0\x82\xC3\xECO:?\xFAU\xC3$\x93\x9A\x06@\x7F_\xBC\xB8}^\x0C\xE3\xB9P\x8C\x92\xC8N\xD89\x91\x01`@Q\x80\x91\x03\x90\xA1\x80\x15a\x0B0W\x81`\x01`\x01`\xA0\x1B\x03\x16c\xD9\xCA\xED\x12b\x0E\x16\xE4\x84`\x01`\x01`\xA0\x1B\x03\x16c$\x95\xA5\x99`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xBFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xE3\x91\x90a*\xB4V[\x84`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0B\x02\x93\x92\x91\x90a*|V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0B\x19W__\xFD[PZ\xF1\x15\x80\x15a\x0B+W=__>=_\xFD[PPPP[Pa\x0B;`\x01`eUV[PV[_\x803`\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\x89W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\x91a\x16\xE9V[a\x0B\x9C\x85\x85\x85a\x19YV[\x91P\x91Pa\x0B\xAA`\x01`eUV[\x93P\x93\x91PPV[``a\x0B\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\0a\x1A\xC1V[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\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\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0CDW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Ch\x91\x90a*]V[a\x0C\x85W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\x8F_\x19a\x15\xF2V[V[`\xCBT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xBCW`@Qc \xBA?\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xC4a\x16\xE9V[\x80_[\x81\x81\x10\x15a\r\xD8W`\xD1_\x85\x85\x84\x81\x81\x10a\x0C\xE4Wa\x0C\xE4a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xF9\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\r\xD0W`\x01`\xD1_\x86\x86\x85\x81\x81\x10a\r0Wa\r0a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\rE\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U\x7F\x0C5\xB1}\x91\xC9n\xB2u\x1C\xD4V\xE1%/B\xA3\x86\xE5$\xEF\x9F\xF2n\xCC\x99P\x85\x9F\xDC\x04\xFE\x84\x84\x83\x81\x81\x10a\r\x9FWa\r\x9Fa*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\r\xB4\x91\x90a(7V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1[`\x01\x01a\x0C\xC7V[PPa\x06b`\x01`eUV[a\r\xECa\x1A\xFEV[a\x0C\x8F_a\x16/V[_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\x0E?W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0EGa\x16\xE9V[_a\x0ES\x85\x85\x85a\x1BXV[\x92PPPa\x0Ea`\x01`eUV[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\xCE` R`@\x81 T``\x91\x82\x91\x90\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x9FWa\x0E\x9Fa&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xC8W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82\x81\x10\x15a\x0FVW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 `\xCE\x90\x92R\x82 \x80T\x91\x92\x91\x84\x90\x81\x10a\x0F\x0BWa\x0F\x0Ba*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01T`\x01`\x01`\xA0\x1B\x03\x16\x83R\x82\x01\x92\x90\x92R`@\x01\x90 T\x82Q\x83\x90\x83\x90\x81\x10a\x0FCWa\x0FCa*\xA0V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x0E\xCDV[P`\xCE_\x86`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ \x81\x81\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x0F\xCEW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x0F\xB0W[PPPPP\x91P\x93P\x93PPP\x91P\x91V[`@\x80Q\x7FC7\xF8-\x14.A\xF2\xA8\xC1\x05G\xCD\x8C\x85\x9B\xDD\xB9\"b\xA6\x10X\xE7xB\xE2M\x9D\xEA\x92$` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x80\x89\x16\x92\x82\x01\x92\x90\x92R\x81\x87\x16``\x82\x01R\x90\x85\x16`\x80\x82\x01R`\xA0\x81\x01\x84\x90R`\xC0\x81\x01\x83\x90R`\xE0\x81\x01\x82\x90R_\x90a\x10f\x90a\x01\0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1C\x1EV[\x97\x96PPPPPPPV[`\xCBT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x10\x9CW`@Qc \xBA?\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\xA4a\x16\xE9V[\x80_[\x81\x81\x10\x15a\r\xD8W`\xD1_\x85\x85\x84\x81\x81\x10a\x10\xC4Wa\x10\xC4a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x10\xD9\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16\x15a\x11\xB0W_`\xD1_\x86\x86\x85\x81\x81\x10a\x11\x10Wa\x11\x10a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x11%\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U\x7F@tA;KD>NX\x01\x9F(U\xA8vQ\x135\x8C|r\xE3\x95\t\xC6\xAFE\xFC\x0F[\xA00\x84\x84\x83\x81\x81\x10a\x11\x7FWa\x11\x7Fa*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x11\x94\x91\x90a(7V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1[`\x01\x01a\x10\xA7V[a\x11\xC0a\x1A\xFEV[a\x11\xC8a\x16\xE9V[a\x11\xD1\x81a\x16\x80V[a\x0B;`\x01`eUV[`\xCE` R\x81_R`@_ \x81\x81T\x81\x10a\x11\xF4W_\x80\xFD[_\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x91P\x82\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\xCE` \x90\x81R`@\x91\x82\x90 \x80T\x83Q\x81\x84\x02\x81\x01\x84\x01\x90\x94R\x80\x84R``\x93\x92\x83\x01\x82\x82\x80\x15a\x12vW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x12XW[PPPPP\x90P\x91\x90PV[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\x12\xCBW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12\xD3a\x16\xE9V[_a\x12\xDF`\xD4\x84a\x19.V[\x91Pa\x12\xF8\x90P`\xD4\x84a\x12\xF3\x85\x85a*\xE3V[a\x1CdV[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16\x81R` \x81\x01\x84\x90R\x7F\xCA>\x02\xA4\xABz\xD3\xC4z\x8E6\xE5\xA6$\xC3\x01py\x17&\xABr\x0F\x1B\xAB\xFE\xF2\x10F\xD9S\xFF\x91\x01`@Q\x80\x91\x03\x90\xA1Pa\x06b`\x01`eUV[`\x98T_\x90\x81\x90`\x01\x90\x81\x16\x03a\x13pW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13xa\x16\xE9V[a\x13\x843\x86\x86\x86a\x17\x94V[\x91Pa\x13\x90`\x01`eUV[P\x93\x92PPPV[a\x13\xA0a\x1A\xFEV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x14\x05W`@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\x01a\x06\xFCV[a\x0B;\x81a\x16/V[`@\x80Q\x80\x82\x01\x90\x91R`\n\x81Ri\"\xB4\xB3\xB2\xB7&0\xBC\xB2\xB9`\xB1\x1B` \x90\x91\x01R_\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x7Fq\xB6%\xCF\xADD\xBA\xC6;\x13\xDB\xA0\x7F.\x1D`\x84\xEE\x04\xB6\xF8u!\x01\xEC\xE6\x12mXN\xE6\xEAa\x14{a\x1CyV[\x80Q` \x91\x82\x01 `@\x80Q\x92\x83\x01\x94\x90\x94R\x92\x81\x01\x91\x90\x91R``\x81\x01\x91\x90\x91RF`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\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`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15#W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15G\x91\x90a*\xB4V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15xW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98T\x80\x19\x82\x19\x81\x16\x14a\x15\x9FW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[__a\x15\xEA`\xD4\x84a\x19.V[\x94\x93PPPPV[`\x98\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`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_\x90\xA3PPV[`\xCBT`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7FBd'^Y9U\xFF\x9DaF\xA5\x1AE%\xF6\xDD\xAC\xE2\xE8\x1D\xB99\x1A\xBC\xC9\xD1\xCAH\x04})\x91\x01`@Q\x80\x91\x03\x90\xA1`\xCB\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x02`eT\x03a\x17;W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06\xFCV[`\x02`eUV[B\x81\x10\x15a\x17cW`@Qc\x08\x19\xBD\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x17w`\x01`\x01`\xA0\x1B\x03\x85\x16\x84\x84a\x1D\x15V[a\x07\x86W`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\xD1` R`@\x81 T\x84\x90`\xFF\x16a\x17\xCEW`@Qc.\xFD\x96Q`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x17\xE3`\x01`\x01`\xA0\x1B\x03\x85\x163\x87\x86a\x1DsV[`@Qc\x11\xF9\xFB\xC9`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x86\x16\x90cG\xE7\xEF$\x90`D\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x18/W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18S\x91\x90a*\xF6V[\x91P__a\x18b\x88\x88\x86a\x19YV[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8B\x81\x16`\x04\x83\x01R\x8A\x81\x16`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\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\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x18\xE0W__\xFD[PZ\xF1\x15\x80\x15a\x18\xF2W=__>=_\xFD[PPPPPPP\x94\x93PPPPV[_a\x19\x0B\x82a\x1D\xCBV[\x92\x91PPV[_\x80\x80\x80a\x19\x1F\x86\x86a\x1D\xD5V[\x90\x94P\x92PPP[\x92P\x92\x90PV[_\x80\x80\x80a\x19\x1F\x86`\x01`\x01`\xA0\x1B\x03\x87\x16a\x1D\xFEV[_a\x0Ea\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x1E6V[_\x80`\x01`\x01`\xA0\x1B\x03\x85\x16a\x19\x82W`@Qc\x16\xF2\xCC\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82_\x03a\x19\xA2W`@QcB\x06\x1B%`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 T\x90\x81\x90\x03a\x1AHW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCE` \x90\x81R`@\x90\x91 T\x10a\x1A\nW`@Qc\x01\xA1D9`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x90\x81R`\xCE` \x90\x81R`@\x82 \x80T`\x01\x81\x01\x82U\x90\x83R\x91 \x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x87\x16\x91\x90\x91\x17\x90U[a\x1AR\x84\x82a*\xE3V[`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R\x81\x90 \x91\x90\x91UQ\x7FUH\xC87\xAB\x06\x8C\xF5j,$y\xDF\x08\x82\xA4\x92/\xD2\x03\xED\xB7Qs!\x83\x1D\x95\x07\x8C_b\x90a\x1A\xAE\x90\x88\x90\x88\x90\x88\x90a*|V[`@Q\x80\x91\x03\x90\xA1\x95\x92\x94P\x91\x92PPPV[``_a\x1A\xCD\x83a\x1ERV[`@\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[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06\xFCV[__\x82_\x03a\x1BzW`@QcB\x06\x1B%`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T\x80\x84\x11\x15a\x1B\xC0W`@QcK\x18\xB1\x93`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xCA\x84\x82a+\rV[`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R\x90\x81 \x82\x90U\x90\x91P\x81\x90\x03a\x1C\x12Wa\x1C\x07\x86\x86a\x1EyV[`\x01\x92P\x90Pa\x0B\xAAV[_\x96\x90\x95P\x93PPPPV[_a\x1C'a\x14\x0EV[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x91\x90\x91R`B\x81\x01\x83\x90R`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[_a\x15\xEA\x84`\x01`\x01`\xA0\x1B\x03\x85\x16\x84a\x1F\xF7V[``_a\x1C\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\0a\x1A\xC1V[\x90P\x80_\x81Q\x81\x10a\x1C\xB9Wa\x1C\xB9a*\xA0V[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x81`\x01\x81Q\x81\x10a\x1C\xD7Wa\x1C\xD7a*\xA0V[\x01` \x90\x81\x01Q`@Q`\x01`\x01`\xF8\x1B\x03\x19\x93\x84\x16\x92\x81\x01\x92\x90\x92R\x91\x90\x91\x16`!\x82\x01R`\"\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PP\x90V[___a\x1D\"\x85\x85a \x13V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a\x1D:Wa\x1D:a+ V[\x14\x80\x15a\x1DXWP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x1DiWPa\x1Di\x86\x86\x86a RV[\x96\x95PPPPPPV[a\x07\x86\x84c#\xB8r\xDD`\xE0\x1B\x85\x85\x85`@Q`$\x01a\x1D\x94\x93\x92\x91\x90a*|V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra!9V[_a\x19\x0B\x82a\"\x11V[_\x80\x80a\x1D\xE2\x85\x85a\"\x1AV[_\x81\x81R`\x02\x96\x90\x96\x01` R`@\x90\x95 T\x94\x95\x93PPPPV[_\x81\x81R`\x02\x83\x01` R`@\x81 T\x81\x90\x80a\x1E+Wa\x1E\x1F\x85\x85a\"%V[\x92P_\x91Pa\x19'\x90PV[`\x01\x92P\x90Pa\x19'V[_\x81\x81R`\x02\x83\x01` R`@\x81 \x81\x90Ua\x0Ea\x83\x83a\"0V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x19\x0BW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\xCE` R`@\x81 T\x90[\x81\x81\x10\x15a\x1F\x8BW`\x01`\x01`\xA0\x1B\x03\x84\x81\x16_\x90\x81R`\xCE` R`@\x90 \x80T\x91\x85\x16\x91\x83\x90\x81\x10a\x1E\xC9Wa\x1E\xC9a*\xA0V[_\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x1F\x83W`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xCE` R`@\x90 \x80Ta\x1F\x07\x90`\x01\x90a+\rV[\x81T\x81\x10a\x1F\x17Wa\x1F\x17a*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01T`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x84R`\xCE\x90\x92R`@\x90\x92 \x80T\x91\x90\x92\x16\x91\x90\x83\x90\x81\x10a\x1FSWa\x1FSa*\xA0V[\x90_R` _ \x01_a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UPa\x1F\x8BV[`\x01\x01a\x1E\x93V[\x81\x81\x03a\x1F\xABW`@Qc-\xF1ZA`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xCE` R`@\x90 \x80T\x80a\x1F\xD1Wa\x1F\xD1a+4V[_\x82\x81R` \x90 \x81\x01_\x19\x90\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90U\x01\x90UPPPPV[_\x82\x81R`\x02\x84\x01` R`@\x81 \x82\x90Ua\x15\xEA\x84\x84a\";V[__\x82Q`A\x03a GW` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa ;\x87\x82\x85\x85a\"FV[\x94P\x94PPPPa\x19'V[P_\x90P`\x02a\x19'V[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a z\x92\x91\x90a+HV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa \xB8\x91\x90a+`V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a \xF0W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a \xF5V[``\x91P[P\x91P\x91P\x81\x80\x15a!\tWP` \x81Q\x10\x15[\x80\x15a\x1DiWP\x80Qc\x0B\x13]?`\xE1\x1B\x90a!.\x90\x83\x01` \x90\x81\x01\x90\x84\x01a*\xF6V[\x14\x96\x95PPPPPPV[_a!\x8D\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a#\x03\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90P\x80Q_\x14\x80a!\xADWP\x80\x80` \x01\x90Q\x81\x01\x90a!\xAD\x91\x90a*]V[a\"\x0CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x06\xFCV[PPPV[_a\x19\x0B\x82T\x90V[_a\x0Ea\x83\x83a#\x11V[_a\x0Ea\x83\x83a#7V[_a\x0Ea\x83\x83a#NV[_a\x0Ea\x83\x83a$1V[_\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\"{WP_\x90P`\x03a\"\xFAV[`@\x80Q_\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\"\xCCW=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\"\xF4W_`\x01\x92P\x92PPa\"\xFAV[\x91P_\x90P[\x94P\x94\x92PPPV[``a\x15\xEA\x84\x84_\x85a$}V[_\x82_\x01\x82\x81T\x81\x10a#&Wa#&a*\xA0V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x0EaV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a$(W_a#p`\x01\x83a+\rV[\x85T\x90\x91P_\x90a#\x83\x90`\x01\x90a+\rV[\x90P\x81\x81\x14a#\xE2W_\x86_\x01\x82\x81T\x81\x10a#\xA1Wa#\xA1a*\xA0V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10a#\xC1Wa#\xC1a*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a#\xF3Wa#\xF3a+4V[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x19\x0BV[_\x91PPa\x19\x0BV[_\x81\x81R`\x01\x83\x01` R`@\x81 Ta$vWP\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\x19\x0BV[P_a\x19\x0BV[``\x82G\x10\x15a$\xDEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x06\xFCV[__\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa$\xF9\x91\x90a+`V[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a%3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a%8V[``\x91P[P\x91P\x91Pa\x10f\x87\x83\x83\x87``\x83\x15a%\xB2W\x82Q_\x03a%\xABW`\x01`\x01`\xA0\x1B\x03\x85\x16;a%\xABW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x06\xFCV[P\x81a\x15\xEAV[a\x15\xEA\x83\x83\x81Q\x15a%\xC7W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06\xFC\x91\x90a(\x80V[_` \x82\x84\x03\x12\x15a%\xF1W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0B;W__\xFD[___``\x84\x86\x03\x12\x15a&\x1EW__\xFD[\x835a&)\x81a%\xF8V[\x92P` \x84\x015a&9\x81a%\xF8V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[____`\x80\x85\x87\x03\x12\x15a&]W__\xFD[\x845a&h\x81a%\xF8V[\x93P` \x85\x015a&x\x81a%\xF8V[\x92P`@\x85\x015a&\x88\x81a%\xF8V[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[______`\xC0\x87\x89\x03\x12\x15a&\xC1W__\xFD[\x865a&\xCC\x81a%\xF8V[\x95P` \x87\x015a&\xDC\x81a%\xF8V[\x94P`@\x87\x015\x93P``\x87\x015a&\xF3\x81a%\xF8V[\x92P`\x80\x87\x015\x91P`\xA0\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x15W__\xFD[\x87\x01`\x1F\x81\x01\x89\x13a'%W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'?Wa'?a&\x98V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a'nWa'na&\x98V[`@R\x81\x81R\x82\x82\x01` \x01\x8B\x10\x15a'\x85W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92\x95P\x92\x95P\x92\x95V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a'\xD7W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a'\xB9V[P\x93\x94\x93PPPPV[`@\x80\x82R\x83Q\x90\x82\x01\x81\x90R_\x90` \x85\x01\x90``\x84\x01\x90\x83[\x81\x81\x10\x15a(#W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a'\xFCV[PP\x83\x81\x03` \x85\x01Ra\x1Di\x81\x86a'\xA7V[_` \x82\x84\x03\x12\x15a(GW__\xFD[\x815a\x0Ea\x81a%\xF8V[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x0Ea` \x83\x01\x84a(RV[_` \x82\x84\x03\x12\x15a(\xA2W__\xFD[\x815`\xFF\x81\x16\x81\x14a\x0EaW__\xFD[__` \x83\x85\x03\x12\x15a(\xC3W__\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a(\xD9W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a(\xE9W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a(\xFFW__\xFD[\x85` \x82`\x05\x1B\x84\x01\x01\x11\x15a)\x13W__\xFD[` \x91\x90\x91\x01\x95\x90\x94P\x92PPPV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a'\xD7W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a)5V[`@\x81R_a)n`@\x83\x01\x85a)#V[\x82\x81\x03` \x84\x01Ra)\x80\x81\x85a'\xA7V[\x95\x94PPPPPV[______`\xC0\x87\x89\x03\x12\x15a)\x9EW__\xFD[\x865a)\xA9\x81a%\xF8V[\x95P` \x87\x015a)\xB9\x81a%\xF8V[\x94P`@\x87\x015a)\xC9\x81a%\xF8V[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x81\x015\x94`\xA0\x90\x91\x015\x93P\x91PPV[__`@\x83\x85\x03\x12\x15a)\xFBW__\xFD[\x825a*\x06\x81a%\xF8V[\x94` \x93\x90\x93\x015\x93PPPV[` \x81R_a\x0Ea` \x83\x01\x84a)#V[__`@\x83\x85\x03\x12\x15a*7W__\xFD[\x825a*B\x81a%\xF8V[\x91P` \x83\x015a*R\x81a%\xF8V[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a*mW__\xFD[\x81Q\x80\x15\x15\x81\x14a\x0EaW__\xFD[`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x91\x90\x92\x16` \x82\x01R`@\x81\x01\x91\x90\x91R``\x01\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a*\xC4W__\xFD[\x81Qa\x0Ea\x81a%\xF8V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x19\x0BWa\x19\x0Ba*\xCFV[_` \x82\x84\x03\x12\x15a+\x06W__\xFD[PQ\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x19\x0BWa\x19\x0Ba*\xCFV[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[\x82\x81R`@` \x82\x01R_a\x15\xEA`@\x83\x01\x84a(RV[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE\xA2dipfsX\"\x12 QVB\x1C\xB9\xF4\x86]\x8C kb'y\x99\xDBuS\xF3j\xA1^\xD2\x84\xF4F\xE7\x8B\xB9\xA7MVdsolcC\0\x08\x1B\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x608060405234801561000f575f5ffd5b5060043610610213575f3560e01c80638b8aac3c1161011f578063debe1eab116100a9578063f3b4a00011610079578063f3b4a0001461052f578063f698da2514610539578063fabc1cbc14610541578063fd98042314610554578063fe243a1714610567575f5ffd5b8063debe1eab146104cf578063df5cf723146104e2578063e7a050aa14610509578063f2fde38b1461051c575f5ffd5b80639ac01d61116100ef5780639ac01d6114610463578063b5d8b5b814610476578063c665670214610489578063cbc2bd621461049c578063de44acb6146104af575f5ffd5b80638b8aac3c146103f65780638da5cb5b1461041e57806394f649dd1461042f578063967fc0d214610450575f5ffd5b8063595c6a67116101a0578063663c1de411610170578063663c1de41461035b578063715018a61461037d578063724af423146103855780637ecebe0014610398578063886f1195146103b7575f5ffd5b8063595c6a67146103055780635ac86ab71461030d5780635c975abb146103405780635de08ff214610348575f5ffd5b806336a8c500116101e657806336a8c5001461027857806348825e941461028e5780634b6d5d6e146102b557806350ff7225146102c857806354fd4d50146102f0575f5ffd5b8063136439dd146102175780631794bb3c1461022c5780632eae418c1461023f57806332e89ace14610252575b5f5ffd5b61022a6102253660046125e1565b610591565b005b61022a61023a36600461260c565b610666565b61022a61024d36600461264a565b61078c565b6102656102603660046126ac565b610844565b6040519081526020015b60405180910390f35b6102806108e8565b60405161026f9291906127e1565b6102657f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61022a6102c3366004612837565b610a05565b6102db6102d636600461260c565b610b3e565b6040805192835260208301919091520161026f565b6102f8610bb2565b60405161026f9190612880565b61022a610be2565b61033061031b366004612892565b609854600160ff9092169190911b9081161490565b604051901515815260200161026f565b609854610265565b61022a6103563660046128b2565b610c91565b610330610369366004612837565b60d16020525f908152604090205460ff1681565b61022a610de4565b61026561039336600461260c565b610df5565b6102656103a6366004612837565b60ca6020525f908152604090205481565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026f565b610265610404366004612837565b6001600160a01b03165f90815260ce602052604090205490565b6033546001600160a01b03166103de565b61044261043d366004612837565b610e68565b60405161026f92919061295c565b60cb546103de906001600160a01b031681565b610265610471366004612989565b610fe0565b61022a6104843660046128b2565b611071565b61022a610497366004612837565b6111b8565b6103de6104aa3660046129ea565b6111db565b6104c26104bd366004612837565b61120f565b60405161026f9190612a14565b61022a6104dd3660046129ea565b611282565b6103de7f000000000000000000000000000000000000000000000000000000000000000081565b61026561051736600461260c565b611346565b61022a61052a366004612837565b611398565b6103de620e16e481565b61026561140e565b61022a61054f3660046125e1565b6114c7565b610265610562366004612837565b6115dd565b610265610575366004612a26565b60cd60209081525f928352604080842090915290825290205481565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190612a5d565b61063457604051631d77d47760e21b815260040160405180910390fd5b60985481811681146106595760405163c61dca5d60e01b815260040160405180910390fd5b610662826115f2565b5050565b5f54610100900460ff161580801561068457505f54600160ff909116105b8061069d5750303b15801561069d57505f5460ff166001145b6107055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015610726575f805461ff0019166101001790555b61072f826115f2565b6107388461162f565b61074183611680565b8015610786575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107d55760405163f739589b60e01b815260040160405180910390fd5b6107dd6116e9565b604051636ce5768960e11b81526001600160a01b0384169063d9caed129061080d90879086908690600401612a7c565b5f604051808303815f87803b158015610824575f5ffd5b505af1158015610836573d5f5f3e3d5ffd5b505050506107866001606555565b6098545f90819060019081160361086e5760405163840a48d560e01b815260040160405180910390fd5b6108766116e9565b6001600160a01b0385165f90815260ca60205260409020546108a7866108a0818c8c8c878c610fe0565b8688611742565b6001600160a01b0386165f90815260ca602052604090206001820190556108d0868a8a8a611794565b9250506108dd6001606555565b509695505050505050565b6060805f6108f660d4611901565b90505f8167ffffffffffffffff81111561091257610912612698565b60405190808252806020026020018201604052801561093b578160200160208202803683370190505b5090505f8267ffffffffffffffff81111561095857610958612698565b604051908082528060200260200182016040528015610981578160200160208202803683370190505b5090505f5b838110156109fa575f5f61099b60d484611911565b91509150818584815181106109b2576109b2612aa0565b60200260200101906001600160a01b031690816001600160a01b031681525050808484815181106109e5576109e5612aa0565b60209081029190910101525050600101610986565b509094909350915050565b610a0d6116e9565b5f610a1960d48361192e565b915050610a2760d483611945565b50604080516001600160a01b0384168152602081018390527fd9d082c3ec4f3a3ffa55c324939a06407f5fbcb87d5e0ce3b9508c92c84ed839910160405180910390a18015610b3057816001600160a01b031663d9caed12620e16e4846001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190612ab4565b846040518463ffffffff1660e01b8152600401610b0293929190612a7c565b5f604051808303815f87803b158015610b19575f5ffd5b505af1158015610b2b573d5f5f3e3d5ffd5b505050505b50610b3b6001606555565b50565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b895760405163f739589b60e01b815260040160405180910390fd5b610b916116e9565b610b9c858585611959565b91509150610baa6001606555565b935093915050565b6060610bdd7f0000000000000000000000000000000000000000000000000000000000000000611ac1565b905090565b60405163237dfb4760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610c44573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c689190612a5d565b610c8557604051631d77d47760e21b815260040160405180910390fd5b610c8f5f196115f2565b565b60cb546001600160a01b03163314610cbc576040516320ba3ff960e21b815260040160405180910390fd5b610cc46116e9565b805f5b81811015610dd85760d15f858584818110610ce457610ce4612aa0565b9050602002016020810190610cf99190612837565b6001600160a01b0316815260208101919091526040015f205460ff16610dd057600160d15f868685818110610d3057610d30612aa0565b9050602002016020810190610d459190612837565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe848483818110610d9f57610d9f612aa0565b9050602002016020810190610db49190612837565b6040516001600160a01b03909116815260200160405180910390a15b600101610cc7565b50506106626001606555565b610dec611afe565b610c8f5f61162f565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e3f5760405163f739589b60e01b815260040160405180910390fd5b610e476116e9565b5f610e53858585611b58565b92505050610e616001606555565b9392505050565b6001600160a01b0381165f90815260ce60205260408120546060918291908167ffffffffffffffff811115610e9f57610e9f612698565b604051908082528060200260200182016040528015610ec8578160200160208202803683370190505b5090505f5b82811015610f56576001600160a01b0386165f90815260cd6020908152604080832060ce9092528220805491929184908110610f0b57610f0b612aa0565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610f4357610f43612aa0565b6020908102919091010152600101610ecd565b5060ce5f866001600160a01b03166001600160a01b031681526020019081526020015f208181805480602002602001604051908101604052809291908181526020018280548015610fce57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610fb0575b50505050509150935093505050915091565b604080517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922460208201526001600160a01b03808916928201929092528187166060820152908516608082015260a0810184905260c0810183905260e081018290525f90611066906101000160405160208183030381529060405280519060200120611c1e565b979650505050505050565b60cb546001600160a01b0316331461109c576040516320ba3ff960e21b815260040160405180910390fd5b6110a46116e9565b805f5b81811015610dd85760d15f8585848181106110c4576110c4612aa0565b90506020020160208101906110d99190612837565b6001600160a01b0316815260208101919091526040015f205460ff16156111b0575f60d15f86868581811061111057611110612aa0565b90506020020160208101906111259190612837565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba03084848381811061117f5761117f612aa0565b90506020020160208101906111949190612837565b6040516001600160a01b03909116815260200160405180910390a15b6001016110a7565b6111c0611afe565b6111c86116e9565b6111d181611680565b610b3b6001606555565b60ce602052815f5260405f2081815481106111f4575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0381165f90815260ce602090815260409182902080548351818402810184019094528084526060939283018282801561127657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611258575b50505050509050919050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112cb5760405163f739589b60e01b815260040160405180910390fd5b6112d36116e9565b5f6112df60d48461192e565b91506112f8905060d4846112f38585612ae3565b611c64565b50604080516001600160a01b0385168152602081018490527fca3e02a4ab7ad3c47a8e36e5a624c30170791726ab720f1babfef21046d953ff910160405180910390a1506106626001606555565b6098545f9081906001908116036113705760405163840a48d560e01b815260040160405180910390fd5b6113786116e9565b61138433868686611794565b91506113906001606555565b509392505050565b6113a0611afe565b6001600160a01b0381166114055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106fc565b610b3b8161162f565b60408051808201909152600a81526922b4b3b2b72630bcb2b960b11b6020909101525f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea61147b611c79565b805160209182012060408051928301949094529281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611523573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115479190612ab4565b6001600160a01b0316336001600160a01b0316146115785760405163794821ff60e01b815260040160405180910390fd5b6098548019821981161461159f5760405163c61dca5d60e01b815260040160405180910390fd5b609882905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f5f6115ea60d48461192e565b949350505050565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60026065540361173b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106fc565b6002606555565b4281101561176357604051630819bdcd60e01b815260040160405180910390fd5b6117776001600160a01b0385168484611d15565b61078657604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260d16020526040812054849060ff166117ce57604051632efd965160e11b815260040160405180910390fd5b6117e36001600160a01b038516338786611d73565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303815f875af115801561182f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118539190612af6565b91505f5f611862888886611959565b604051631e328e7960e11b81526001600160a01b038b811660048301528a8116602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b1580156118e0575f5ffd5b505af11580156118f2573d5f5f3e3d5ffd5b50505050505050949350505050565b5f61190b82611dcb565b92915050565b5f80808061191f8686611dd5565b909450925050505b9250929050565b5f80808061191f866001600160a01b038716611dfe565b5f610e61836001600160a01b038416611e36565b5f806001600160a01b038516611982576040516316f2ccc960e01b815260040160405180910390fd5b825f036119a2576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd6020908152604080832093881683529290529081205490819003611a48576001600160a01b0386165f90815260ce602090815260409091205410611a0a576040516301a1443960e31b815260040160405180910390fd5b6001600160a01b038681165f90815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169187169190911790555b611a528482612ae3565b6001600160a01b038088165f90815260cd60209081526040808320938a16835292905281902091909155517f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6290611aae90889088908890612a7c565b60405180910390a1959294509192505050565b60605f611acd83611e52565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6033546001600160a01b03163314610c8f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106fc565b5f5f825f03611b7a576040516342061b2560e11b815260040160405180910390fd5b6001600160a01b038086165f90815260cd602090815260408083209388168352929052205480841115611bc057604051634b18b19360e01b815260040160405180910390fd5b611bca8482612b0d565b6001600160a01b038088165f90815260cd60209081526040808320938a168352929052908120829055909150819003611c1257611c078686611e79565b600192509050610baa565b5f969095509350505050565b5f611c2761140e565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b5f6115ea846001600160a01b03851684611ff7565b60605f611ca57f0000000000000000000000000000000000000000000000000000000000000000611ac1565b9050805f81518110611cb957611cb9612aa0565b602001015160f81c60f81b81600181518110611cd757611cd7612aa0565b016020908101516040516001600160f81b03199384169281019290925291909116602182015260220160405160208183030381529060405291505090565b5f5f5f611d228585612013565b90925090505f816004811115611d3a57611d3a612b20565b148015611d585750856001600160a01b0316826001600160a01b0316145b80611d695750611d69868686612052565b9695505050505050565b610786846323b872dd60e01b858585604051602401611d9493929190612a7c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612139565b5f61190b82612211565b5f8080611de2858561221a565b5f81815260029690960160205260409095205494959350505050565b5f818152600283016020526040812054819080611e2b57611e1f8585612225565b92505f91506119279050565b600192509050611927565b5f8181526002830160205260408120819055610e618383612230565b5f60ff8216601f81111561190b57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b0382165f90815260ce6020526040812054905b81811015611f8b576001600160a01b038481165f90815260ce6020526040902080549185169183908110611ec957611ec9612aa0565b5f918252602090912001546001600160a01b031603611f83576001600160a01b0384165f90815260ce602052604090208054611f0790600190612b0d565b81548110611f1757611f17612aa0565b5f9182526020808320909101546001600160a01b03878116845260ce9092526040909220805491909216919083908110611f5357611f53612aa0565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550611f8b565b600101611e93565b818103611fab57604051632df15a4160e11b815260040160405180910390fd5b6001600160a01b0384165f90815260ce60205260409020805480611fd157611fd1612b34565b5f8281526020902081015f1990810180546001600160a01b031916905501905550505050565b5f82815260028401602052604081208290556115ea848461223b565b5f5f8251604103612047576020830151604084015160608501515f1a61203b87828585612246565b94509450505050611927565b505f90506002611927565b5f5f5f856001600160a01b0316631626ba7e60e01b868660405160240161207a929190612b48565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516120b89190612b60565b5f60405180830381855afa9150503d805f81146120f0576040519150601f19603f3d011682016040523d82523d5f602084013e6120f5565b606091505b509150915081801561210957506020815110155b8015611d6957508051630b135d3f60e11b9061212e9083016020908101908401612af6565b149695505050505050565b5f61218d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123039092919063ffffffff16565b905080515f14806121ad5750808060200190518101906121ad9190612a5d565b61220c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106fc565b505050565b5f61190b825490565b5f610e618383612311565b5f610e618383612337565b5f610e61838361234e565b5f610e618383612431565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561227b57505f905060036122fa565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156122cc573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166122f4575f600192509250506122fa565b91505f90505b94509492505050565b60606115ea84845f8561247d565b5f825f01828154811061232657612326612aa0565b905f5260205f200154905092915050565b5f8181526001830160205260408120541515610e61565b5f8181526001830160205260408120548015612428575f612370600183612b0d565b85549091505f9061238390600190612b0d565b90508181146123e2575f865f0182815481106123a1576123a1612aa0565b905f5260205f200154905080875f0184815481106123c1576123c1612aa0565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806123f3576123f3612b34565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061190b565b5f91505061190b565b5f81815260018301602052604081205461247657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561190b565b505f61190b565b6060824710156124de5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106fc565b5f5f866001600160a01b031685876040516124f99190612b60565b5f6040518083038185875af1925050503d805f8114612533576040519150601f19603f3d011682016040523d82523d5f602084013e612538565b606091505b509150915061106687838387606083156125b25782515f036125ab576001600160a01b0385163b6125ab5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106fc565b50816115ea565b6115ea83838151156125c75781518083602001fd5b8060405162461bcd60e51b81526004016106fc9190612880565b5f602082840312156125f1575f5ffd5b5035919050565b6001600160a01b0381168114610b3b575f5ffd5b5f5f5f6060848603121561261e575f5ffd5b8335612629816125f8565b92506020840135612639816125f8565b929592945050506040919091013590565b5f5f5f5f6080858703121561265d575f5ffd5b8435612668816125f8565b93506020850135612678816125f8565b92506040850135612688816125f8565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f5f5f60c087890312156126c1575f5ffd5b86356126cc816125f8565b955060208701356126dc816125f8565b94506040870135935060608701356126f3816125f8565b92506080870135915060a087013567ffffffffffffffff811115612715575f5ffd5b8701601f81018913612725575f5ffd5b803567ffffffffffffffff81111561273f5761273f612698565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561276e5761276e612698565b6040528181528282016020018b1015612785575f5ffd5b816020840160208301375f602083830101528093505050509295509295509295565b5f8151808452602084019350602083015f5b828110156127d75781518652602095860195909101906001016127b9565b5093949350505050565b604080825283519082018190525f9060208501906060840190835b818110156128235783516001600160a01b03168352602093840193909201916001016127fc565b50508381036020850152611d6981866127a7565b5f60208284031215612847575f5ffd5b8135610e61816125f8565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610e616020830184612852565b5f602082840312156128a2575f5ffd5b813560ff81168114610e61575f5ffd5b5f5f602083850312156128c3575f5ffd5b823567ffffffffffffffff8111156128d9575f5ffd5b8301601f810185136128e9575f5ffd5b803567ffffffffffffffff8111156128ff575f5ffd5b8560208260051b8401011115612913575f5ffd5b6020919091019590945092505050565b5f8151808452602084019350602083015f5b828110156127d75781516001600160a01b0316865260209586019590910190600101612935565b604081525f61296e6040830185612923565b828103602084015261298081856127a7565b95945050505050565b5f5f5f5f5f5f60c0878903121561299e575f5ffd5b86356129a9816125f8565b955060208701356129b9816125f8565b945060408701356129c9816125f8565b959894975094956060810135955060808101359460a0909101359350915050565b5f5f604083850312156129fb575f5ffd5b8235612a06816125f8565b946020939093013593505050565b602081525f610e616020830184612923565b5f5f60408385031215612a37575f5ffd5b8235612a42816125f8565b91506020830135612a52816125f8565b809150509250929050565b5f60208284031215612a6d575f5ffd5b81518015158114610e61575f5ffd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612ac4575f5ffd5b8151610e61816125f8565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561190b5761190b612acf565b5f60208284031215612b06575f5ffd5b5051919050565b8181038181111561190b5761190b612acf565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b828152604060208201525f6115ea6040830184612852565b5f82518060208501845e5f92019182525091905056fea26469706673582212205156421cb9f4865d8c206b62277999db7553f36aa15ed284f446e78bb9a74d5664736f6c634300081b0033
/// ```
#[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__\xFD[P`\x046\x10a\x02\x13W_5`\xE0\x1C\x80c\x8B\x8A\xAC<\x11a\x01\x1FW\x80c\xDE\xBE\x1E\xAB\x11a\0\xA9W\x80c\xF3\xB4\xA0\0\x11a\0yW\x80c\xF3\xB4\xA0\0\x14a\x05/W\x80c\xF6\x98\xDA%\x14a\x059W\x80c\xFA\xBC\x1C\xBC\x14a\x05AW\x80c\xFD\x98\x04#\x14a\x05TW\x80c\xFE$:\x17\x14a\x05gW__\xFD[\x80c\xDE\xBE\x1E\xAB\x14a\x04\xCFW\x80c\xDF\\\xF7#\x14a\x04\xE2W\x80c\xE7\xA0P\xAA\x14a\x05\tW\x80c\xF2\xFD\xE3\x8B\x14a\x05\x1CW__\xFD[\x80c\x9A\xC0\x1Da\x11a\0\xEFW\x80c\x9A\xC0\x1Da\x14a\x04cW\x80c\xB5\xD8\xB5\xB8\x14a\x04vW\x80c\xC6eg\x02\x14a\x04\x89W\x80c\xCB\xC2\xBDb\x14a\x04\x9CW\x80c\xDED\xAC\xB6\x14a\x04\xAFW__\xFD[\x80c\x8B\x8A\xAC<\x14a\x03\xF6W\x80c\x8D\xA5\xCB[\x14a\x04\x1EW\x80c\x94\xF6I\xDD\x14a\x04/W\x80c\x96\x7F\xC0\xD2\x14a\x04PW__\xFD[\x80cY\\jg\x11a\x01\xA0W\x80cf<\x1D\xE4\x11a\x01pW\x80cf<\x1D\xE4\x14a\x03[W\x80cqP\x18\xA6\x14a\x03}W\x80crJ\xF4#\x14a\x03\x85W\x80c~\xCE\xBE\0\x14a\x03\x98W\x80c\x88o\x11\x95\x14a\x03\xB7W__\xFD[\x80cY\\jg\x14a\x03\x05W\x80cZ\xC8j\xB7\x14a\x03\rW\x80c\\\x97Z\xBB\x14a\x03@W\x80c]\xE0\x8F\xF2\x14a\x03HW__\xFD[\x80c6\xA8\xC5\0\x11a\x01\xE6W\x80c6\xA8\xC5\0\x14a\x02xW\x80cH\x82^\x94\x14a\x02\x8EW\x80cKm]n\x14a\x02\xB5W\x80cP\xFFr%\x14a\x02\xC8W\x80cT\xFDMP\x14a\x02\xF0W__\xFD[\x80c\x13d9\xDD\x14a\x02\x17W\x80c\x17\x94\xBB<\x14a\x02,W\x80c.\xAEA\x8C\x14a\x02?W\x80c2\xE8\x9A\xCE\x14a\x02RW[__\xFD[a\x02*a\x02%6`\x04a%\xE1V[a\x05\x91V[\0[a\x02*a\x02:6`\x04a&\x0CV[a\x06fV[a\x02*a\x02M6`\x04a&JV[a\x07\x8CV[a\x02ea\x02`6`\x04a&\xACV[a\x08DV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x80a\x08\xE8V[`@Qa\x02o\x92\x91\x90a'\xE1V[a\x02e\x7FC7\xF8-\x14.A\xF2\xA8\xC1\x05G\xCD\x8C\x85\x9B\xDD\xB9\"b\xA6\x10X\xE7xB\xE2M\x9D\xEA\x92$\x81V[a\x02*a\x02\xC36`\x04a(7V[a\n\x05V[a\x02\xDBa\x02\xD66`\x04a&\x0CV[a\x0B>V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02oV[a\x02\xF8a\x0B\xB2V[`@Qa\x02o\x91\x90a(\x80V[a\x02*a\x0B\xE2V[a\x030a\x03\x1B6`\x04a(\x92V[`\x98T`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x02oV[`\x98Ta\x02eV[a\x02*a\x03V6`\x04a(\xB2V[a\x0C\x91V[a\x030a\x03i6`\x04a(7V[`\xD1` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[a\x02*a\r\xE4V[a\x02ea\x03\x936`\x04a&\x0CV[a\r\xF5V[a\x02ea\x03\xA66`\x04a(7V[`\xCA` R_\x90\x81R`@\x90 T\x81V[a\x03\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\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02oV[a\x02ea\x04\x046`\x04a(7V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\xCE` R`@\x90 T\x90V[`3T`\x01`\x01`\xA0\x1B\x03\x16a\x03\xDEV[a\x04Ba\x04=6`\x04a(7V[a\x0EhV[`@Qa\x02o\x92\x91\x90a)\\V[`\xCBTa\x03\xDE\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02ea\x04q6`\x04a)\x89V[a\x0F\xE0V[a\x02*a\x04\x846`\x04a(\xB2V[a\x10qV[a\x02*a\x04\x976`\x04a(7V[a\x11\xB8V[a\x03\xDEa\x04\xAA6`\x04a)\xEAV[a\x11\xDBV[a\x04\xC2a\x04\xBD6`\x04a(7V[a\x12\x0FV[`@Qa\x02o\x91\x90a*\x14V[a\x02*a\x04\xDD6`\x04a)\xEAV[a\x12\x82V[a\x03\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\x81V[a\x02ea\x05\x176`\x04a&\x0CV[a\x13FV[a\x02*a\x05*6`\x04a(7V[a\x13\x98V[a\x03\xDEb\x0E\x16\xE4\x81V[a\x02ea\x14\x0EV[a\x02*a\x05O6`\x04a%\xE1V[a\x14\xC7V[a\x02ea\x05b6`\x04a(7V[a\x15\xDDV[a\x02ea\x05u6`\x04a*&V[`\xCD` \x90\x81R_\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Qc#}\xFBG`\xE1\x1B\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\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x05\xF3W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\x17\x91\x90a*]V[a\x064W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98T\x81\x81\x16\x81\x14a\x06YW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06b\x82a\x15\xF2V[PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\x84WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x06\x9DWP0;\x15\x80\x15a\x06\x9DWP_T`\xFF\x16`\x01\x14[a\x07\x05W`@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[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x07&W_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x07/\x82a\x15\xF2V[a\x078\x84a\x16/V[a\x07A\x83a\x16\x80V[\x80\x15a\x07\x86W_\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[PPPPV[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`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xDDa\x16\xE9V[`@Qcl\xE5v\x89`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x16\x90c\xD9\xCA\xED\x12\x90a\x08\r\x90\x87\x90\x86\x90\x86\x90`\x04\x01a*|V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x08$W__\xFD[PZ\xF1\x15\x80\x15a\x086W=__>=_\xFD[PPPPa\x07\x86`\x01`eUV[`\x98T_\x90\x81\x90`\x01\x90\x81\x16\x03a\x08nW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08va\x16\xE9V[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x90\x81R`\xCA` R`@\x90 Ta\x08\xA7\x86a\x08\xA0\x81\x8C\x8C\x8C\x87\x8Ca\x0F\xE0V[\x86\x88a\x17BV[`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCA` R`@\x90 `\x01\x82\x01\x90Ua\x08\xD0\x86\x8A\x8A\x8Aa\x17\x94V[\x92PPa\x08\xDD`\x01`eUV[P\x96\x95PPPPPPV[``\x80_a\x08\xF6`\xD4a\x19\x01V[\x90P_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\t\x12Wa\t\x12a&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t;W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\tXWa\tXa&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\t\x81W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83\x81\x10\x15a\t\xFAW__a\t\x9B`\xD4\x84a\x19\x11V[\x91P\x91P\x81\x85\x84\x81Q\x81\x10a\t\xB2Wa\t\xB2a*\xA0V[` \x02` \x01\x01\x90`\x01`\x01`\xA0\x1B\x03\x16\x90\x81`\x01`\x01`\xA0\x1B\x03\x16\x81RPP\x80\x84\x84\x81Q\x81\x10a\t\xE5Wa\t\xE5a*\xA0V[` \x90\x81\x02\x91\x90\x91\x01\x01RPP`\x01\x01a\t\x86V[P\x90\x94\x90\x93P\x91PPV[a\n\ra\x16\xE9V[_a\n\x19`\xD4\x83a\x19.V[\x91PPa\n'`\xD4\x83a\x19EV[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R` \x81\x01\x83\x90R\x7F\xD9\xD0\x82\xC3\xECO:?\xFAU\xC3$\x93\x9A\x06@\x7F_\xBC\xB8}^\x0C\xE3\xB9P\x8C\x92\xC8N\xD89\x91\x01`@Q\x80\x91\x03\x90\xA1\x80\x15a\x0B0W\x81`\x01`\x01`\xA0\x1B\x03\x16c\xD9\xCA\xED\x12b\x0E\x16\xE4\x84`\x01`\x01`\xA0\x1B\x03\x16c$\x95\xA5\x99`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xBFW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xE3\x91\x90a*\xB4V[\x84`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x0B\x02\x93\x92\x91\x90a*|V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0B\x19W__\xFD[PZ\xF1\x15\x80\x15a\x0B+W=__>=_\xFD[PPPP[Pa\x0B;`\x01`eUV[PV[_\x803`\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\x89W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\x91a\x16\xE9V[a\x0B\x9C\x85\x85\x85a\x19YV[\x91P\x91Pa\x0B\xAA`\x01`eUV[\x93P\x93\x91PPV[``a\x0B\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\0a\x1A\xC1V[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\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\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0CDW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Ch\x91\x90a*]V[a\x0C\x85W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\x8F_\x19a\x15\xF2V[V[`\xCBT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xBCW`@Qc \xBA?\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0C\xC4a\x16\xE9V[\x80_[\x81\x81\x10\x15a\r\xD8W`\xD1_\x85\x85\x84\x81\x81\x10a\x0C\xE4Wa\x0C\xE4a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x0C\xF9\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16a\r\xD0W`\x01`\xD1_\x86\x86\x85\x81\x81\x10a\r0Wa\r0a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\rE\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U\x7F\x0C5\xB1}\x91\xC9n\xB2u\x1C\xD4V\xE1%/B\xA3\x86\xE5$\xEF\x9F\xF2n\xCC\x99P\x85\x9F\xDC\x04\xFE\x84\x84\x83\x81\x81\x10a\r\x9FWa\r\x9Fa*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\r\xB4\x91\x90a(7V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1[`\x01\x01a\x0C\xC7V[PPa\x06b`\x01`eUV[a\r\xECa\x1A\xFEV[a\x0C\x8F_a\x16/V[_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\x0E?W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0EGa\x16\xE9V[_a\x0ES\x85\x85\x85a\x1BXV[\x92PPPa\x0Ea`\x01`eUV[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\xCE` R`@\x81 T``\x91\x82\x91\x90\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x9FWa\x0E\x9Fa&\x98V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xC8W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x82\x81\x10\x15a\x0FVW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 `\xCE\x90\x92R\x82 \x80T\x91\x92\x91\x84\x90\x81\x10a\x0F\x0BWa\x0F\x0Ba*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01T`\x01`\x01`\xA0\x1B\x03\x16\x83R\x82\x01\x92\x90\x92R`@\x01\x90 T\x82Q\x83\x90\x83\x90\x81\x10a\x0FCWa\x0FCa*\xA0V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x01\x01a\x0E\xCDV[P`\xCE_\x86`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ \x81\x81\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x0F\xCEW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x0F\xB0W[PPPPP\x91P\x93P\x93PPP\x91P\x91V[`@\x80Q\x7FC7\xF8-\x14.A\xF2\xA8\xC1\x05G\xCD\x8C\x85\x9B\xDD\xB9\"b\xA6\x10X\xE7xB\xE2M\x9D\xEA\x92$` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x80\x89\x16\x92\x82\x01\x92\x90\x92R\x81\x87\x16``\x82\x01R\x90\x85\x16`\x80\x82\x01R`\xA0\x81\x01\x84\x90R`\xC0\x81\x01\x83\x90R`\xE0\x81\x01\x82\x90R_\x90a\x10f\x90a\x01\0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1C\x1EV[\x97\x96PPPPPPPV[`\xCBT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x10\x9CW`@Qc \xBA?\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x10\xA4a\x16\xE9V[\x80_[\x81\x81\x10\x15a\r\xD8W`\xD1_\x85\x85\x84\x81\x81\x10a\x10\xC4Wa\x10\xC4a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x10\xD9\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ T`\xFF\x16\x15a\x11\xB0W_`\xD1_\x86\x86\x85\x81\x81\x10a\x11\x10Wa\x11\x10a*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x11%\x91\x90a(7V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01_ \x80T`\xFF\x19\x16\x91\x15\x15\x91\x90\x91\x17\x90U\x7F@tA;KD>NX\x01\x9F(U\xA8vQ\x135\x8C|r\xE3\x95\t\xC6\xAFE\xFC\x0F[\xA00\x84\x84\x83\x81\x81\x10a\x11\x7FWa\x11\x7Fa*\xA0V[\x90P` \x02\x01` \x81\x01\x90a\x11\x94\x91\x90a(7V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1[`\x01\x01a\x10\xA7V[a\x11\xC0a\x1A\xFEV[a\x11\xC8a\x16\xE9V[a\x11\xD1\x81a\x16\x80V[a\x0B;`\x01`eUV[`\xCE` R\x81_R`@_ \x81\x81T\x81\x10a\x11\xF4W_\x80\xFD[_\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x91P\x82\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\xCE` \x90\x81R`@\x91\x82\x90 \x80T\x83Q\x81\x84\x02\x81\x01\x84\x01\x90\x94R\x80\x84R``\x93\x92\x83\x01\x82\x82\x80\x15a\x12vW` \x02\x82\x01\x91\x90_R` _ \x90[\x81T`\x01`\x01`\xA0\x1B\x03\x16\x81R`\x01\x90\x91\x01\x90` \x01\x80\x83\x11a\x12XW[PPPPP\x90P\x91\x90PV[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\x12\xCBW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12\xD3a\x16\xE9V[_a\x12\xDF`\xD4\x84a\x19.V[\x91Pa\x12\xF8\x90P`\xD4\x84a\x12\xF3\x85\x85a*\xE3V[a\x1CdV[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x85\x16\x81R` \x81\x01\x84\x90R\x7F\xCA>\x02\xA4\xABz\xD3\xC4z\x8E6\xE5\xA6$\xC3\x01py\x17&\xABr\x0F\x1B\xAB\xFE\xF2\x10F\xD9S\xFF\x91\x01`@Q\x80\x91\x03\x90\xA1Pa\x06b`\x01`eUV[`\x98T_\x90\x81\x90`\x01\x90\x81\x16\x03a\x13pW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13xa\x16\xE9V[a\x13\x843\x86\x86\x86a\x17\x94V[\x91Pa\x13\x90`\x01`eUV[P\x93\x92PPPV[a\x13\xA0a\x1A\xFEV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x14\x05W`@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\x01a\x06\xFCV[a\x0B;\x81a\x16/V[`@\x80Q\x80\x82\x01\x90\x91R`\n\x81Ri\"\xB4\xB3\xB2\xB7&0\xBC\xB2\xB9`\xB1\x1B` \x90\x91\x01R_\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x7Fq\xB6%\xCF\xADD\xBA\xC6;\x13\xDB\xA0\x7F.\x1D`\x84\xEE\x04\xB6\xF8u!\x01\xEC\xE6\x12mXN\xE6\xEAa\x14{a\x1CyV[\x80Q` \x91\x82\x01 `@\x80Q\x92\x83\x01\x94\x90\x94R\x92\x81\x01\x91\x90\x91R``\x81\x01\x91\x90\x91RF`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\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`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15#W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15G\x91\x90a*\xB4V[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15xW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98T\x80\x19\x82\x19\x81\x16\x14a\x15\x9FW`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x98\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[__a\x15\xEA`\xD4\x84a\x19.V[\x94\x93PPPPV[`\x98\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`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_\x90\xA3PPV[`\xCBT`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7FBd'^Y9U\xFF\x9DaF\xA5\x1AE%\xF6\xDD\xAC\xE2\xE8\x1D\xB99\x1A\xBC\xC9\xD1\xCAH\x04})\x91\x01`@Q\x80\x91\x03\x90\xA1`\xCB\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x02`eT\x03a\x17;W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06\xFCV[`\x02`eUV[B\x81\x10\x15a\x17cW`@Qc\x08\x19\xBD\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x17w`\x01`\x01`\xA0\x1B\x03\x85\x16\x84\x84a\x1D\x15V[a\x07\x86W`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\xD1` R`@\x81 T\x84\x90`\xFF\x16a\x17\xCEW`@Qc.\xFD\x96Q`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x17\xE3`\x01`\x01`\xA0\x1B\x03\x85\x163\x87\x86a\x1DsV[`@Qc\x11\xF9\xFB\xC9`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R\x86\x16\x90cG\xE7\xEF$\x90`D\x01` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x18/W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18S\x91\x90a*\xF6V[\x91P__a\x18b\x88\x88\x86a\x19YV[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8B\x81\x16`\x04\x83\x01R\x8A\x81\x16`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\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\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x18\xE0W__\xFD[PZ\xF1\x15\x80\x15a\x18\xF2W=__>=_\xFD[PPPPPPP\x94\x93PPPPV[_a\x19\x0B\x82a\x1D\xCBV[\x92\x91PPV[_\x80\x80\x80a\x19\x1F\x86\x86a\x1D\xD5V[\x90\x94P\x92PPP[\x92P\x92\x90PV[_\x80\x80\x80a\x19\x1F\x86`\x01`\x01`\xA0\x1B\x03\x87\x16a\x1D\xFEV[_a\x0Ea\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x1E6V[_\x80`\x01`\x01`\xA0\x1B\x03\x85\x16a\x19\x82W`@Qc\x16\xF2\xCC\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82_\x03a\x19\xA2W`@QcB\x06\x1B%`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R\x90\x81 T\x90\x81\x90\x03a\x1AHW`\x01`\x01`\xA0\x1B\x03\x86\x16_\x90\x81R`\xCE` \x90\x81R`@\x90\x91 T\x10a\x1A\nW`@Qc\x01\xA1D9`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x90\x81R`\xCE` \x90\x81R`@\x82 \x80T`\x01\x81\x01\x82U\x90\x83R\x91 \x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x91\x87\x16\x91\x90\x91\x17\x90U[a\x1AR\x84\x82a*\xE3V[`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R\x81\x90 \x91\x90\x91UQ\x7FUH\xC87\xAB\x06\x8C\xF5j,$y\xDF\x08\x82\xA4\x92/\xD2\x03\xED\xB7Qs!\x83\x1D\x95\x07\x8C_b\x90a\x1A\xAE\x90\x88\x90\x88\x90\x88\x90a*|V[`@Q\x80\x91\x03\x90\xA1\x95\x92\x94P\x91\x92PPPV[``_a\x1A\xCD\x83a\x1ERV[`@\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[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\x8FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06\xFCV[__\x82_\x03a\x1BzW`@QcB\x06\x1B%`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x80\x86\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T\x80\x84\x11\x15a\x1B\xC0W`@QcK\x18\xB1\x93`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1B\xCA\x84\x82a+\rV[`\x01`\x01`\xA0\x1B\x03\x80\x88\x16_\x90\x81R`\xCD` \x90\x81R`@\x80\x83 \x93\x8A\x16\x83R\x92\x90R\x90\x81 \x82\x90U\x90\x91P\x81\x90\x03a\x1C\x12Wa\x1C\x07\x86\x86a\x1EyV[`\x01\x92P\x90Pa\x0B\xAAV[_\x96\x90\x95P\x93PPPPV[_a\x1C'a\x14\x0EV[`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x91\x90\x91R`B\x81\x01\x83\x90R`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[_a\x15\xEA\x84`\x01`\x01`\xA0\x1B\x03\x85\x16\x84a\x1F\xF7V[``_a\x1C\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\0a\x1A\xC1V[\x90P\x80_\x81Q\x81\x10a\x1C\xB9Wa\x1C\xB9a*\xA0V[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x81`\x01\x81Q\x81\x10a\x1C\xD7Wa\x1C\xD7a*\xA0V[\x01` \x90\x81\x01Q`@Q`\x01`\x01`\xF8\x1B\x03\x19\x93\x84\x16\x92\x81\x01\x92\x90\x92R\x91\x90\x91\x16`!\x82\x01R`\"\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x91PP\x90V[___a\x1D\"\x85\x85a \x13V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a\x1D:Wa\x1D:a+ V[\x14\x80\x15a\x1DXWP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x1DiWPa\x1Di\x86\x86\x86a RV[\x96\x95PPPPPPV[a\x07\x86\x84c#\xB8r\xDD`\xE0\x1B\x85\x85\x85`@Q`$\x01a\x1D\x94\x93\x92\x91\x90a*|V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x93\x16\x92\x90\x92\x17\x90\x91Ra!9V[_a\x19\x0B\x82a\"\x11V[_\x80\x80a\x1D\xE2\x85\x85a\"\x1AV[_\x81\x81R`\x02\x96\x90\x96\x01` R`@\x90\x95 T\x94\x95\x93PPPPV[_\x81\x81R`\x02\x83\x01` R`@\x81 T\x81\x90\x80a\x1E+Wa\x1E\x1F\x85\x85a\"%V[\x92P_\x91Pa\x19'\x90PV[`\x01\x92P\x90Pa\x19'V[_\x81\x81R`\x02\x83\x01` R`@\x81 \x81\x90Ua\x0Ea\x83\x83a\"0V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x19\x0BW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\xCE` R`@\x81 T\x90[\x81\x81\x10\x15a\x1F\x8BW`\x01`\x01`\xA0\x1B\x03\x84\x81\x16_\x90\x81R`\xCE` R`@\x90 \x80T\x91\x85\x16\x91\x83\x90\x81\x10a\x1E\xC9Wa\x1E\xC9a*\xA0V[_\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x03a\x1F\x83W`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xCE` R`@\x90 \x80Ta\x1F\x07\x90`\x01\x90a+\rV[\x81T\x81\x10a\x1F\x17Wa\x1F\x17a*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01T`\x01`\x01`\xA0\x1B\x03\x87\x81\x16\x84R`\xCE\x90\x92R`@\x90\x92 \x80T\x91\x90\x92\x16\x91\x90\x83\x90\x81\x10a\x1FSWa\x1FSa*\xA0V[\x90_R` _ \x01_a\x01\0\n\x81T\x81`\x01`\x01`\xA0\x1B\x03\x02\x19\x16\x90\x83`\x01`\x01`\xA0\x1B\x03\x16\x02\x17\x90UPa\x1F\x8BV[`\x01\x01a\x1E\x93V[\x81\x81\x03a\x1F\xABW`@Qc-\xF1ZA`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\xCE` R`@\x90 \x80T\x80a\x1F\xD1Wa\x1F\xD1a+4V[_\x82\x81R` \x90 \x81\x01_\x19\x90\x81\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90U\x01\x90UPPPPV[_\x82\x81R`\x02\x84\x01` R`@\x81 \x82\x90Ua\x15\xEA\x84\x84a\";V[__\x82Q`A\x03a GW` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa ;\x87\x82\x85\x85a\"FV[\x94P\x94PPPPa\x19'V[P_\x90P`\x02a\x19'V[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a z\x92\x91\x90a+HV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa \xB8\x91\x90a+`V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a \xF0W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a \xF5V[``\x91P[P\x91P\x91P\x81\x80\x15a!\tWP` \x81Q\x10\x15[\x80\x15a\x1DiWP\x80Qc\x0B\x13]?`\xE1\x1B\x90a!.\x90\x83\x01` \x90\x81\x01\x90\x84\x01a*\xF6V[\x14\x96\x95PPPPPPV[_a!\x8D\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a#\x03\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90P\x80Q_\x14\x80a!\xADWP\x80\x80` \x01\x90Q\x81\x01\x90a!\xAD\x91\x90a*]V[a\"\x0CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x06\xFCV[PPPV[_a\x19\x0B\x82T\x90V[_a\x0Ea\x83\x83a#\x11V[_a\x0Ea\x83\x83a#7V[_a\x0Ea\x83\x83a#NV[_a\x0Ea\x83\x83a$1V[_\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\"{WP_\x90P`\x03a\"\xFAV[`@\x80Q_\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\"\xCCW=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\"\xF4W_`\x01\x92P\x92PPa\"\xFAV[\x91P_\x90P[\x94P\x94\x92PPPV[``a\x15\xEA\x84\x84_\x85a$}V[_\x82_\x01\x82\x81T\x81\x10a#&Wa#&a*\xA0V[\x90_R` _ \x01T\x90P\x92\x91PPV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x15\x15a\x0EaV[_\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a$(W_a#p`\x01\x83a+\rV[\x85T\x90\x91P_\x90a#\x83\x90`\x01\x90a+\rV[\x90P\x81\x81\x14a#\xE2W_\x86_\x01\x82\x81T\x81\x10a#\xA1Wa#\xA1a*\xA0V[\x90_R` _ \x01T\x90P\x80\x87_\x01\x84\x81T\x81\x10a#\xC1Wa#\xC1a*\xA0V[_\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a#\xF3Wa#\xF3a+4V[`\x01\x90\x03\x81\x81\x90_R` _ \x01_\x90U\x90U\x85`\x01\x01_\x86\x81R` \x01\x90\x81R` \x01_ _\x90U`\x01\x93PPPPa\x19\x0BV[_\x91PPa\x19\x0BV[_\x81\x81R`\x01\x83\x01` R`@\x81 Ta$vWP\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\x19\x0BV[P_a\x19\x0BV[``\x82G\x10\x15a$\xDEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x06\xFCV[__\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa$\xF9\x91\x90a+`V[_`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80_\x81\x14a%3W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a%8V[``\x91P[P\x91P\x91Pa\x10f\x87\x83\x83\x87``\x83\x15a%\xB2W\x82Q_\x03a%\xABW`\x01`\x01`\xA0\x1B\x03\x85\x16;a%\xABW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x06\xFCV[P\x81a\x15\xEAV[a\x15\xEA\x83\x83\x81Q\x15a%\xC7W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06\xFC\x91\x90a(\x80V[_` \x82\x84\x03\x12\x15a%\xF1W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0B;W__\xFD[___``\x84\x86\x03\x12\x15a&\x1EW__\xFD[\x835a&)\x81a%\xF8V[\x92P` \x84\x015a&9\x81a%\xF8V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[____`\x80\x85\x87\x03\x12\x15a&]W__\xFD[\x845a&h\x81a%\xF8V[\x93P` \x85\x015a&x\x81a%\xF8V[\x92P`@\x85\x015a&\x88\x81a%\xF8V[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[______`\xC0\x87\x89\x03\x12\x15a&\xC1W__\xFD[\x865a&\xCC\x81a%\xF8V[\x95P` \x87\x015a&\xDC\x81a%\xF8V[\x94P`@\x87\x015\x93P``\x87\x015a&\xF3\x81a%\xF8V[\x92P`\x80\x87\x015\x91P`\xA0\x87\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'\x15W__\xFD[\x87\x01`\x1F\x81\x01\x89\x13a'%W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a'?Wa'?a&\x98V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a'nWa'na&\x98V[`@R\x81\x81R\x82\x82\x01` \x01\x8B\x10\x15a'\x85W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92\x95P\x92\x95P\x92\x95V[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a'\xD7W\x81Q\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a'\xB9V[P\x93\x94\x93PPPPV[`@\x80\x82R\x83Q\x90\x82\x01\x81\x90R_\x90` \x85\x01\x90``\x84\x01\x90\x83[\x81\x81\x10\x15a(#W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a'\xFCV[PP\x83\x81\x03` \x85\x01Ra\x1Di\x81\x86a'\xA7V[_` \x82\x84\x03\x12\x15a(GW__\xFD[\x815a\x0Ea\x81a%\xF8V[_\x81Q\x80\x84R\x80` \x84\x01` \x86\x01^_` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[` \x81R_a\x0Ea` \x83\x01\x84a(RV[_` \x82\x84\x03\x12\x15a(\xA2W__\xFD[\x815`\xFF\x81\x16\x81\x14a\x0EaW__\xFD[__` \x83\x85\x03\x12\x15a(\xC3W__\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a(\xD9W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a(\xE9W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a(\xFFW__\xFD[\x85` \x82`\x05\x1B\x84\x01\x01\x11\x15a)\x13W__\xFD[` \x91\x90\x91\x01\x95\x90\x94P\x92PPPV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15a'\xD7W\x81Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01a)5V[`@\x81R_a)n`@\x83\x01\x85a)#V[\x82\x81\x03` \x84\x01Ra)\x80\x81\x85a'\xA7V[\x95\x94PPPPPV[______`\xC0\x87\x89\x03\x12\x15a)\x9EW__\xFD[\x865a)\xA9\x81a%\xF8V[\x95P` \x87\x015a)\xB9\x81a%\xF8V[\x94P`@\x87\x015a)\xC9\x81a%\xF8V[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x81\x015\x94`\xA0\x90\x91\x015\x93P\x91PPV[__`@\x83\x85\x03\x12\x15a)\xFBW__\xFD[\x825a*\x06\x81a%\xF8V[\x94` \x93\x90\x93\x015\x93PPPV[` \x81R_a\x0Ea` \x83\x01\x84a)#V[__`@\x83\x85\x03\x12\x15a*7W__\xFD[\x825a*B\x81a%\xF8V[\x91P` \x83\x015a*R\x81a%\xF8V[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a*mW__\xFD[\x81Q\x80\x15\x15\x81\x14a\x0EaW__\xFD[`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x81R\x91\x90\x92\x16` \x82\x01R`@\x81\x01\x91\x90\x91R``\x01\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_` \x82\x84\x03\x12\x15a*\xC4W__\xFD[\x81Qa\x0Ea\x81a%\xF8V[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x80\x82\x01\x80\x82\x11\x15a\x19\x0BWa\x19\x0Ba*\xCFV[_` \x82\x84\x03\x12\x15a+\x06W__\xFD[PQ\x91\x90PV[\x81\x81\x03\x81\x81\x11\x15a\x19\x0BWa\x19\x0Ba*\xCFV[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`1`\x04R`$_\xFD[\x82\x81R`@` \x82\x01R_a\x15\xEA`@\x83\x01\x84a(RV[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE\xA2dipfsX\"\x12 QVB\x1C\xB9\xF4\x86]\x8C kb'y\x99\xDBuS\xF3j\xA1^\xD2\x84\xF4F\xE7\x8B\xB9\xA7MVdsolcC\0\x08\x1B\x003",
);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
```solidity
error CurrentlyPaused();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct CurrentlyPaused;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
fn from(value: CurrentlyPaused) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for CurrentlyPaused {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "CurrentlyPaused()";
const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
```solidity
error InputAddressZero();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct InputAddressZero;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
fn from(value: InputAddressZero) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for InputAddressZero {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "InputAddressZero()";
const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
```solidity
error InvalidNewPausedStatus();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct InvalidNewPausedStatus;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
fn from(value: InvalidNewPausedStatus) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for InvalidNewPausedStatus {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
fn from(value: InvalidShortString) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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> = <Self::Parameters<'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: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<InvalidSignature> for UnderlyingRustTuple<'_> {
fn from(value: InvalidSignature) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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> = <Self::Parameters<'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: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `MaxStrategiesExceeded()` and selector `0x0d0a21c8`.
```solidity
error MaxStrategiesExceeded();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct MaxStrategiesExceeded;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<MaxStrategiesExceeded> for UnderlyingRustTuple<'_> {
fn from(value: MaxStrategiesExceeded) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for MaxStrategiesExceeded {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for MaxStrategiesExceeded {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "MaxStrategiesExceeded()";
const SELECTOR: [u8; 4] = [13u8, 10u8, 33u8, 200u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OnlyDelegationManager()` and selector `0xf739589b`.
```solidity
error OnlyDelegationManager();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OnlyDelegationManager;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OnlyDelegationManager> for UnderlyingRustTuple<'_> {
fn from(value: OnlyDelegationManager) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyDelegationManager {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OnlyDelegationManager {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OnlyDelegationManager()";
const SELECTOR: [u8; 4] = [247u8, 57u8, 88u8, 155u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
```solidity
error OnlyPauser();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OnlyPauser;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
fn from(value: OnlyPauser) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OnlyPauser {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OnlyPauser()";
const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OnlyStrategyWhitelister()` and selector `0x82e8ffe4`.
```solidity
error OnlyStrategyWhitelister();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OnlyStrategyWhitelister;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OnlyStrategyWhitelister> for UnderlyingRustTuple<'_> {
fn from(value: OnlyStrategyWhitelister) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyStrategyWhitelister {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OnlyStrategyWhitelister {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OnlyStrategyWhitelister()";
const SELECTOR: [u8; 4] = [130u8, 232u8, 255u8, 228u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
```solidity
error OnlyUnpauser();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OnlyUnpauser;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
fn from(value: OnlyUnpauser) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for OnlyUnpauser {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OnlyUnpauser()";
const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `SharesAmountTooHigh()` and selector `0x4b18b193`.
```solidity
error SharesAmountTooHigh();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct SharesAmountTooHigh;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<SharesAmountTooHigh> for UnderlyingRustTuple<'_> {
fn from(value: SharesAmountTooHigh) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesAmountTooHigh {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for SharesAmountTooHigh {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "SharesAmountTooHigh()";
const SELECTOR: [u8; 4] = [75u8, 24u8, 177u8, 147u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `SharesAmountZero()` and selector `0x840c364a`.
```solidity
error SharesAmountZero();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct SharesAmountZero;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<SharesAmountZero> for UnderlyingRustTuple<'_> {
fn from(value: SharesAmountZero) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesAmountZero {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for SharesAmountZero {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "SharesAmountZero()";
const SELECTOR: [u8; 4] = [132u8, 12u8, 54u8, 74u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `SignatureExpired()` and selector `0x0819bdcd`.
```solidity
error SignatureExpired();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct SignatureExpired;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<SignatureExpired> for UnderlyingRustTuple<'_> {
fn from(value: SignatureExpired) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for SignatureExpired {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for SignatureExpired {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "SignatureExpired()";
const SELECTOR: [u8; 4] = [8u8, 25u8, 189u8, 205u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `StakerAddressZero()` and selector `0x16f2ccc9`.
```solidity
error StakerAddressZero();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct StakerAddressZero;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<StakerAddressZero> for UnderlyingRustTuple<'_> {
fn from(value: StakerAddressZero) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for StakerAddressZero {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for StakerAddressZero {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "StakerAddressZero()";
const SELECTOR: [u8; 4] = [22u8, 242u8, 204u8, 201u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `StrategyNotFound()` and selector `0x5be2b482`.
```solidity
error StrategyNotFound();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct StrategyNotFound;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<StrategyNotFound> for UnderlyingRustTuple<'_> {
fn from(value: StrategyNotFound) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for StrategyNotFound {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for StrategyNotFound {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "StrategyNotFound()";
const SELECTOR: [u8; 4] = [91u8, 226u8, 180u8, 130u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `StrategyNotWhitelisted()` and selector `0x5dfb2ca2`.
```solidity
error StrategyNotWhitelisted();
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct StrategyNotWhitelisted;
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<StrategyNotWhitelisted> for UnderlyingRustTuple<'_> {
fn from(value: StrategyNotWhitelisted) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for StrategyNotWhitelisted {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for StrategyNotWhitelisted {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "StrategyNotWhitelisted()";
const SELECTOR: [u8; 4] = [93u8, 251u8, 44u8, 162u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
fn from(value: StringTooLong) -> Self {
(value.str,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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> = <Self::Parameters<'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: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self.str,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `BurnableSharesDecreased(address,uint256)` and selector `0xd9d082c3ec4f3a3ffa55c324939a06407f5fbcb87d5e0ce3b9508c92c84ed839`.
```solidity
event BurnableSharesDecreased(address strategy, uint256 shares);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct BurnableSharesDecreased {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::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 BurnableSharesDecreased {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "BurnableSharesDecreased(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
217u8, 208u8, 130u8, 195u8, 236u8, 79u8, 58u8, 63u8, 250u8, 85u8, 195u8, 36u8,
147u8, 154u8, 6u8, 64u8, 127u8, 95u8, 188u8, 184u8, 125u8, 94u8, 12u8, 227u8,
185u8, 80u8, 140u8, 146u8, 200u8, 78u8, 216u8, 57u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
strategy: data.0,
shares: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.shares,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for BurnableSharesDecreased {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&BurnableSharesDecreased> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &BurnableSharesDecreased) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `BurnableSharesIncreased(address,uint256)` and selector `0xca3e02a4ab7ad3c47a8e36e5a624c30170791726ab720f1babfef21046d953ff`.
```solidity
event BurnableSharesIncreased(address strategy, uint256 shares);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct BurnableSharesIncreased {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::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 BurnableSharesIncreased {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "BurnableSharesIncreased(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
202u8, 62u8, 2u8, 164u8, 171u8, 122u8, 211u8, 196u8, 122u8, 142u8, 54u8, 229u8,
166u8, 36u8, 195u8, 1u8, 112u8, 121u8, 23u8, 38u8, 171u8, 114u8, 15u8, 27u8,
171u8, 254u8, 242u8, 16u8, 70u8, 217u8, 83u8, 255u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
strategy: data.0,
shares: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.shares,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for BurnableSharesIncreased {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&BurnableSharesIncreased> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &BurnableSharesIncreased) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Deposit(address,address,uint256)` and selector `0x5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62`.
```solidity
event Deposit(address staker, address strategy, uint256 shares);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Deposit {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::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::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "Deposit(address,address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
85u8, 72u8, 200u8, 55u8, 171u8, 6u8, 140u8, 245u8, 106u8, 44u8, 36u8, 121u8,
223u8, 8u8, 130u8, 164u8, 146u8, 47u8, 210u8, 3u8, 237u8, 183u8, 81u8, 115u8,
33u8, 131u8, 29u8, 149u8, 7u8, 140u8, 95u8, 98u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
staker: data.0,
strategy: data.1,
shares: data.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.shares,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for 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, 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> = <Self::DataTuple<'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: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self { version: data.0 }
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.version,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for 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, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
```solidity
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OwnershipTransferred {
#[allow(missing_docs)]
pub previousOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newOwner: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OwnershipTransferred {
type DataTuple<'a> = ();
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, 31u8,
208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, 218u8,
175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
previousOwner: topics.1,
newOwner: topics.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
()
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.previousOwner.clone(),
self.newOwner.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.previousOwner,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.newOwner,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
```solidity
event Paused(address indexed account, uint256 newPausedStatus);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Paused {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::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 Paused {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "Paused(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8, 188u8,
152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8, 11u8, 182u8,
224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
account: topics.1,
newPausedStatus: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::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() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.account,
);
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, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `StrategyAddedToDepositWhitelist(address)` and selector `0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe`.
```solidity
event StrategyAddedToDepositWhitelist(address strategy);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct StrategyAddedToDepositWhitelist {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::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 StrategyAddedToDepositWhitelist {
type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "StrategyAddedToDepositWhitelist(address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
12u8, 53u8, 177u8, 125u8, 145u8, 201u8, 110u8, 178u8, 117u8, 28u8, 212u8, 86u8,
225u8, 37u8, 47u8, 66u8, 163u8, 134u8, 229u8, 36u8, 239u8, 159u8, 242u8, 110u8,
204u8, 153u8, 80u8, 133u8, 159u8, 220u8, 4u8, 254u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self { strategy: data.0 }
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for StrategyAddedToDepositWhitelist {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&StrategyAddedToDepositWhitelist> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &StrategyAddedToDepositWhitelist) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `StrategyRemovedFromDepositWhitelist(address)` and selector `0x4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030`.
```solidity
event StrategyRemovedFromDepositWhitelist(address strategy);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct StrategyRemovedFromDepositWhitelist {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::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 StrategyRemovedFromDepositWhitelist {
type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "StrategyRemovedFromDepositWhitelist(address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
64u8, 116u8, 65u8, 59u8, 75u8, 68u8, 62u8, 78u8, 88u8, 1u8, 159u8, 40u8, 85u8,
168u8, 118u8, 81u8, 19u8, 53u8, 140u8, 124u8, 114u8, 227u8, 149u8, 9u8, 198u8,
175u8, 69u8, 252u8, 15u8, 91u8, 160u8, 48u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self { strategy: data.0 }
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for StrategyRemovedFromDepositWhitelist {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&StrategyRemovedFromDepositWhitelist> for alloy_sol_types::private::LogData {
#[inline]
fn from(
this: &StrategyRemovedFromDepositWhitelist,
) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `StrategyWhitelisterChanged(address,address)` and selector `0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29`.
```solidity
event StrategyWhitelisterChanged(address previousAddress, address newAddress);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct StrategyWhitelisterChanged {
#[allow(missing_docs)]
pub previousAddress: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newAddress: alloy::sol_types::private::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 StrategyWhitelisterChanged {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "StrategyWhitelisterChanged(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
66u8, 100u8, 39u8, 94u8, 89u8, 57u8, 85u8, 255u8, 157u8, 97u8, 70u8, 165u8,
26u8, 69u8, 37u8, 246u8, 221u8, 172u8, 226u8, 232u8, 29u8, 185u8, 57u8, 26u8,
188u8, 201u8, 209u8, 202u8, 72u8, 4u8, 125u8, 41u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
previousAddress: data.0,
newAddress: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.previousAddress,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newAddress,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for StrategyWhitelisterChanged {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&StrategyWhitelisterChanged> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &StrategyWhitelisterChanged) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
```solidity
event Unpaused(address indexed account, uint256 newPausedStatus);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Unpaused {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::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 Unpaused {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "Unpaused(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8, 2u8,
188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8, 228u8, 152u8,
107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
account: topics.1,
newPausedStatus: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::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() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.account,
);
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 _delegation, address _pauserRegistry, string _version);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct constructorCall {
#[allow(missing_docs)]
pub _delegation: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _pauserRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _version: alloy::sol_types::private::String,
}
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
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::Address,
alloy::sol_types::private::String,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
fn from(value: constructorCall) -> Self {
(value._delegation, value._pauserRegistry, value._version)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_delegation: tuple.0,
_pauserRegistry: 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::Address,
alloy::sol_types::sol_data::String,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._delegation,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._pauserRegistry,
),
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self._version,
),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `DEFAULT_BURN_ADDRESS()` and selector `0xf3b4a000`.
```solidity
function DEFAULT_BURN_ADDRESS() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct DEFAULT_BURN_ADDRESSCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`DEFAULT_BURN_ADDRESS()`](DEFAULT_BURN_ADDRESSCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct DEFAULT_BURN_ADDRESSReturn {
#[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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<DEFAULT_BURN_ADDRESSCall> for UnderlyingRustTuple<'_> {
fn from(value: DEFAULT_BURN_ADDRESSCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for DEFAULT_BURN_ADDRESSCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<DEFAULT_BURN_ADDRESSReturn> for UnderlyingRustTuple<'_> {
fn from(value: DEFAULT_BURN_ADDRESSReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for DEFAULT_BURN_ADDRESSReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for DEFAULT_BURN_ADDRESSCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "DEFAULT_BURN_ADDRESS()";
const SELECTOR: [u8; 4] = [243u8, 180u8, 160u8, 0u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: DEFAULT_BURN_ADDRESSReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: DEFAULT_BURN_ADDRESSReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `DEPOSIT_TYPEHASH()` and selector `0x48825e94`.
```solidity
function DEPOSIT_TYPEHASH() external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct DEPOSIT_TYPEHASHCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`DEPOSIT_TYPEHASH()`](DEPOSIT_TYPEHASHCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct DEPOSIT_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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<DEPOSIT_TYPEHASHCall> for UnderlyingRustTuple<'_> {
fn from(value: DEPOSIT_TYPEHASHCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for DEPOSIT_TYPEHASHCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<DEPOSIT_TYPEHASHReturn> for UnderlyingRustTuple<'_> {
fn from(value: DEPOSIT_TYPEHASHReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for DEPOSIT_TYPEHASHReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for DEPOSIT_TYPEHASHCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "DEPOSIT_TYPEHASH()";
const SELECTOR: [u8; 4] = [72u8, 130u8, 94u8, 148u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: DEPOSIT_TYPEHASHReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: DEPOSIT_TYPEHASHReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `addShares(address,address,uint256)` and selector `0x50ff7225`.
```solidity
function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct addSharesCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`addShares(address,address,uint256)`](addSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct addSharesReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
#[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)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<addSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: addSharesCall) -> Self {
(value.staker, value.strategy, value.shares)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
strategy: tuple.1,
shares: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<addSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: addSharesReturn) -> Self {
(value._0, value._1)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
}
}
}
}
impl addSharesReturn {
fn _tokenize(&self) -> <addSharesCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self._0,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self._1,
),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for addSharesCall {
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> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = addSharesReturn;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "addShares(address,address,uint256)";
const SELECTOR: [u8; 4] = [80u8, 255u8, 114u8, 37u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.shares,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
addSharesReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `addStrategiesToDepositWhitelist(address[])` and selector `0x5de08ff2`.
```solidity
function addStrategiesToDepositWhitelist(address[] memory strategiesToWhitelist) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct addStrategiesToDepositWhitelistCall {
#[allow(missing_docs)]
pub strategiesToWhitelist:
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
}
///Container type for the return parameters of the [`addStrategiesToDepositWhitelist(address[])`](addStrategiesToDepositWhitelistCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct addStrategiesToDepositWhitelistReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<addStrategiesToDepositWhitelistCall> for UnderlyingRustTuple<'_> {
fn from(value: addStrategiesToDepositWhitelistCall) -> Self {
(value.strategiesToWhitelist,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for addStrategiesToDepositWhitelistCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategiesToWhitelist: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<addStrategiesToDepositWhitelistReturn> for UnderlyingRustTuple<'_> {
fn from(value: addStrategiesToDepositWhitelistReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for addStrategiesToDepositWhitelistReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl addStrategiesToDepositWhitelistReturn {
fn _tokenize(
&self,
) -> <addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for addStrategiesToDepositWhitelistCall {
type Parameters<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = addStrategiesToDepositWhitelistReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "addStrategiesToDepositWhitelist(address[])";
const SELECTOR: [u8; 4] = [93u8, 224u8, 143u8, 242u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(
&self.strategiesToWhitelist,
),)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
addStrategiesToDepositWhitelistReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `burnShares(address)` and selector `0x4b6d5d6e`.
```solidity
function burnShares(address strategy) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct burnSharesCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`burnShares(address)`](burnSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct burnSharesReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<burnSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: burnSharesCall) -> Self {
(value.strategy,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for burnSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { strategy: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<burnSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: burnSharesReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for burnSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl burnSharesReturn {
fn _tokenize(&self) -> <burnSharesCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for burnSharesCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = burnSharesReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "burnShares(address)";
const SELECTOR: [u8; 4] = [75u8, 109u8, 93u8, 110u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
burnSharesReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `calculateStrategyDepositDigestHash(address,address,address,uint256,uint256,uint256)` and selector `0x9ac01d61`.
```solidity
function calculateStrategyDepositDigestHash(address staker, address strategy, address token, uint256 amount, uint256 nonce, uint256 expiry) external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateStrategyDepositDigestHashCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub token: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub amount: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub nonce: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub expiry: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`calculateStrategyDepositDigestHash(address,address,address,uint256,uint256,uint256)`](calculateStrategyDepositDigestHashCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateStrategyDepositDigestHashReturn {
#[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)]
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<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::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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateStrategyDepositDigestHashCall> for UnderlyingRustTuple<'_> {
fn from(value: calculateStrategyDepositDigestHashCall) -> Self {
(
value.staker,
value.strategy,
value.token,
value.amount,
value.nonce,
value.expiry,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for calculateStrategyDepositDigestHashCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
strategy: tuple.1,
token: tuple.2,
amount: tuple.3,
nonce: tuple.4,
expiry: tuple.5,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateStrategyDepositDigestHashReturn> for UnderlyingRustTuple<'_> {
fn from(value: calculateStrategyDepositDigestHashReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for calculateStrategyDepositDigestHashReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for calculateStrategyDepositDigestHashCall {
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<256>,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "calculateStrategyDepositDigestHash(address,address,address,uint256,uint256,uint256)";
const SELECTOR: [u8; 4] = [154u8, 192u8, 29u8, 97u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.token,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.amount,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.nonce,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.expiry,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: calculateStrategyDepositDigestHashReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: calculateStrategyDepositDigestHashReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `delegation()` and selector `0xdf5cf723`.
```solidity
function delegation() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct delegationCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`delegation()`](delegationCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct delegationReturn {
#[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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<delegationCall> for UnderlyingRustTuple<'_> {
fn from(value: delegationCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<delegationReturn> for UnderlyingRustTuple<'_> {
fn from(value: delegationReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for delegationReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for delegationCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "delegation()";
const SELECTOR: [u8; 4] = [223u8, 92u8, 247u8, 35u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: delegationReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: delegationReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `depositIntoStrategy(address,address,uint256)` and selector `0xe7a050aa`.
```solidity
function depositIntoStrategy(address strategy, address token, uint256 amount) external returns (uint256 depositShares);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct depositIntoStrategyCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub token: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub amount: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`depositIntoStrategy(address,address,uint256)`](depositIntoStrategyCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct depositIntoStrategyReturn {
#[allow(missing_docs)]
pub depositShares: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<depositIntoStrategyCall> for UnderlyingRustTuple<'_> {
fn from(value: depositIntoStrategyCall) -> Self {
(value.strategy, value.token, value.amount)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for depositIntoStrategyCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategy: tuple.0,
token: tuple.1,
amount: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<depositIntoStrategyReturn> for UnderlyingRustTuple<'_> {
fn from(value: depositIntoStrategyReturn) -> Self {
(value.depositShares,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for depositIntoStrategyReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
depositShares: tuple.0,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for depositIntoStrategyCall {
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> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "depositIntoStrategy(address,address,uint256)";
const SELECTOR: [u8; 4] = [231u8, 160u8, 80u8, 170u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.token,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.amount,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: depositIntoStrategyReturn = r.into();
r.depositShares
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: depositIntoStrategyReturn = r.into();
r.depositShares
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `depositIntoStrategyWithSignature(address,address,uint256,address,uint256,bytes)` and selector `0x32e89ace`.
```solidity
function depositIntoStrategyWithSignature(address strategy, address token, uint256 amount, address staker, uint256 expiry, bytes memory signature) external returns (uint256 depositShares);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct depositIntoStrategyWithSignatureCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub token: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub amount: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub expiry: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub signature: alloy::sol_types::private::Bytes,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`depositIntoStrategyWithSignature(address,address,uint256,address,uint256,bytes)`](depositIntoStrategyWithSignatureCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct depositIntoStrategyWithSignatureReturn {
#[allow(missing_docs)]
pub depositShares: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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::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::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<depositIntoStrategyWithSignatureCall> for UnderlyingRustTuple<'_> {
fn from(value: depositIntoStrategyWithSignatureCall) -> Self {
(
value.strategy,
value.token,
value.amount,
value.staker,
value.expiry,
value.signature,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for depositIntoStrategyWithSignatureCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategy: tuple.0,
token: tuple.1,
amount: tuple.2,
staker: tuple.3,
expiry: tuple.4,
signature: tuple.5,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<depositIntoStrategyWithSignatureReturn> for UnderlyingRustTuple<'_> {
fn from(value: depositIntoStrategyWithSignatureReturn) -> Self {
(value.depositShares,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for depositIntoStrategyWithSignatureReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
depositShares: tuple.0,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for depositIntoStrategyWithSignatureCall {
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::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"depositIntoStrategyWithSignature(address,address,uint256,address,uint256,bytes)";
const SELECTOR: [u8; 4] = [50u8, 232u8, 154u8, 206u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.token,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.amount,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.expiry,
),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.signature,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: depositIntoStrategyWithSignatureReturn = r.into();
r.depositShares
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: depositIntoStrategyWithSignatureReturn = r.into();
r.depositShares
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `domainSeparator()` and selector `0xf698da25`.
```solidity
function domainSeparator() external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct domainSeparatorCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`domainSeparator()`](domainSeparatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct domainSeparatorReturn {
#[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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<domainSeparatorCall> for UnderlyingRustTuple<'_> {
fn from(value: domainSeparatorCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for domainSeparatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<domainSeparatorReturn> for UnderlyingRustTuple<'_> {
fn from(value: domainSeparatorReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for domainSeparatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for domainSeparatorCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "domainSeparator()";
const SELECTOR: [u8; 4] = [246u8, 152u8, 218u8, 37u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: domainSeparatorReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: domainSeparatorReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getBurnableShares(address)` and selector `0xfd980423`.
```solidity
function getBurnableShares(address strategy) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBurnableSharesCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getBurnableShares(address)`](getBurnableSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getBurnableSharesReturn {
#[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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBurnableSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: getBurnableSharesCall) -> Self {
(value.strategy,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBurnableSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { strategy: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getBurnableSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: getBurnableSharesReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getBurnableSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getBurnableSharesCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getBurnableShares(address)";
const SELECTOR: [u8; 4] = [253u8, 152u8, 4u8, 35u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getBurnableSharesReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getBurnableSharesReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getDeposits(address)` and selector `0x94f649dd`.
```solidity
function getDeposits(address staker) external view returns (address[] memory, uint256[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDepositsCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getDeposits(address)`](getDepositsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getDepositsReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
#[allow(missing_docs)]
pub _1:
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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDepositsCall> for UnderlyingRustTuple<'_> {
fn from(value: getDepositsCall) -> Self {
(value.staker,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getDepositsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { staker: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getDepositsReturn> for UnderlyingRustTuple<'_> {
fn from(value: getDepositsReturn) -> Self {
(value._0, value._1)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getDepositsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
}
}
}
}
impl getDepositsReturn {
fn _tokenize(&self) -> <getDepositsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(&self._0),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self._1),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getDepositsCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = getDepositsReturn;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getDeposits(address)";
const SELECTOR: [u8; 4] = [148u8, 246u8, 73u8, 221u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
getDepositsReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getStakerStrategyList(address)` and selector `0xde44acb6`.
```solidity
function getStakerStrategyList(address staker) external view returns (address[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getStakerStrategyListCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getStakerStrategyList(address)`](getStakerStrategyListCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getStakerStrategyListReturn {
#[allow(missing_docs)]
pub _0: 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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getStakerStrategyListCall> for UnderlyingRustTuple<'_> {
fn from(value: getStakerStrategyListCall) -> Self {
(value.staker,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getStakerStrategyListCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { staker: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getStakerStrategyListReturn> for UnderlyingRustTuple<'_> {
fn from(value: getStakerStrategyListReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getStakerStrategyListReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getStakerStrategyListCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'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<alloy::sol_types::sol_data::Address>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getStakerStrategyList(address)";
const SELECTOR: [u8; 4] = [222u8, 68u8, 172u8, 182u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getStakerStrategyListReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getStakerStrategyListReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getStrategiesWithBurnableShares()` and selector `0x36a8c500`.
```solidity
function getStrategiesWithBurnableShares() external view returns (address[] memory, uint256[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getStrategiesWithBurnableSharesCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getStrategiesWithBurnableShares()`](getStrategiesWithBurnableSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getStrategiesWithBurnableSharesReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
#[allow(missing_docs)]
pub _1:
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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getStrategiesWithBurnableSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: getStrategiesWithBurnableSharesCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getStrategiesWithBurnableSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getStrategiesWithBurnableSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: getStrategiesWithBurnableSharesReturn) -> Self {
(value._0, value._1)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getStrategiesWithBurnableSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_0: tuple.0,
_1: tuple.1,
}
}
}
}
impl getStrategiesWithBurnableSharesReturn {
fn _tokenize(
&self,
) -> <getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
(
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(&self._0),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self._1),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getStrategiesWithBurnableSharesCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = getStrategiesWithBurnableSharesReturn;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getStrategiesWithBurnableShares()";
const SELECTOR: [u8; 4] = [54u8, 168u8, 197u8, 0u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
getStrategiesWithBurnableSharesReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `increaseBurnableShares(address,uint256)` and selector `0xdebe1eab`.
```solidity
function increaseBurnableShares(address strategy, uint256 addedSharesToBurn) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct increaseBurnableSharesCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`increaseBurnableShares(address,uint256)`](increaseBurnableSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct increaseBurnableSharesReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<increaseBurnableSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: increaseBurnableSharesCall) -> Self {
(value.strategy, value.addedSharesToBurn)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for increaseBurnableSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategy: tuple.0,
addedSharesToBurn: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<increaseBurnableSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: increaseBurnableSharesReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for increaseBurnableSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl increaseBurnableSharesReturn {
fn _tokenize(
&self,
) -> <increaseBurnableSharesCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for increaseBurnableSharesCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = increaseBurnableSharesReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "increaseBurnableShares(address,uint256)";
const SELECTOR: [u8; 4] = [222u8, 190u8, 30u8, 171u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.addedSharesToBurn,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
increaseBurnableSharesReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `initialize(address,address,uint256)` and selector `0x1794bb3c`.
```solidity
function initialize(address initialOwner, address initialStrategyWhitelister, uint256 initialPausedStatus) 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 initialStrategyWhitelister: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`initialize(address,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)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
fn from(value: initializeCall) -> Self {
(
value.initialOwner,
value.initialStrategyWhitelister,
value.initialPausedStatus,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
initialOwner: tuple.0,
initialStrategyWhitelister: tuple.1,
initialPausedStatus: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
fn from(value: initializeReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl initializeReturn {
fn _tokenize(&self) -> <initializeCall as alloy_sol_types::SolCall>::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::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = initializeReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "initialize(address,address,uint256)";
const SELECTOR: [u8; 4] = [23u8, 148u8, 187u8, 60u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.initialOwner,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.initialStrategyWhitelister,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.initialPausedStatus,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
initializeReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `nonces(address)` and selector `0x7ecebe00`.
```solidity
function nonces(address signer) external view returns (uint256 nonce);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct noncesCall {
#[allow(missing_docs)]
pub signer: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, 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 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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<noncesCall> for UnderlyingRustTuple<'_> {
fn from(value: noncesCall) -> Self {
(value.signer,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for noncesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { signer: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<noncesReturn> for UnderlyingRustTuple<'_> {
fn from(value: noncesReturn) -> Self {
(value.nonce,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for noncesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { nonce: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for noncesCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "nonces(address)";
const SELECTOR: [u8; 4] = [126u8, 206u8, 190u8, 0u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.signer,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: noncesReturn = r.into();
r.nonce
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: noncesReturn = r.into();
r.nonce
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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, 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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
fn from(value: ownerCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
fn from(value: ownerReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ownerCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "owner()";
const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: ownerReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: ownerReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pause(uint256)` and selector `0x136439dd`.
```solidity
function pause(uint256 newPausedStatus) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseCall {
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`pause(uint256)`](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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
fn from(value: pauseCall) -> Self {
(value.newPausedStatus,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newPausedStatus: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauseReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl pauseReturn {
fn _tokenize(&self) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauseCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = pauseReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pause(uint256)";
const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
pauseReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pauseAll()` and selector `0x595c6a67`.
```solidity
function pauseAll() external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseAllCall;
///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseAllReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
fn from(value: pauseAllCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauseAllReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl pauseAllReturn {
fn _tokenize(&self) -> <pauseAllCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauseAllCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = pauseAllReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pauseAll()";
const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
pauseAllReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
```solidity
function paused(uint8 index) 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 index: u8,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`paused(uint8)`](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)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
fn from(value: paused_0Call) -> Self {
(value.index,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { index: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
fn from(value: paused_0Return) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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::Uint<8>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "paused(uint8)";
const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.index,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: paused_0Return = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: paused_0Return = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `paused()` and selector `0x5c975abb`.
```solidity
function paused() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct paused_1Call;
#[derive(serde::Serialize, serde::Deserialize, 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: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
fn from(value: paused_1Call) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
fn from(value: paused_1Return) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "paused()";
const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: paused_1Return = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: paused_1Return = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pauserRegistry()` and selector `0x886f1195`.
```solidity
function pauserRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauserRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauserRegistryReturn {
#[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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: pauserRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauserRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauserRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauserRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pauserRegistry()";
const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: pauserRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: pauserRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `removeDepositShares(address,address,uint256)` and selector `0x724af423`.
```solidity
function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct removeDepositSharesCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`removeDepositShares(address,address,uint256)`](removeDepositSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct removeDepositSharesReturn {
#[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)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<removeDepositSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: removeDepositSharesCall) -> Self {
(value.staker, value.strategy, value.depositSharesToRemove)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for removeDepositSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
strategy: tuple.1,
depositSharesToRemove: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<removeDepositSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: removeDepositSharesReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for removeDepositSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for removeDepositSharesCall {
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> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "removeDepositShares(address,address,uint256)";
const SELECTOR: [u8; 4] = [114u8, 74u8, 244u8, 35u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.depositSharesToRemove,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: removeDepositSharesReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: removeDepositSharesReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `removeStrategiesFromDepositWhitelist(address[])` and selector `0xb5d8b5b8`.
```solidity
function removeStrategiesFromDepositWhitelist(address[] memory strategiesToRemoveFromWhitelist) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct removeStrategiesFromDepositWhitelistCall {
#[allow(missing_docs)]
pub strategiesToRemoveFromWhitelist:
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
}
///Container type for the return parameters of the [`removeStrategiesFromDepositWhitelist(address[])`](removeStrategiesFromDepositWhitelistCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct removeStrategiesFromDepositWhitelistReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<removeStrategiesFromDepositWhitelistCall> for UnderlyingRustTuple<'_> {
fn from(value: removeStrategiesFromDepositWhitelistCall) -> Self {
(value.strategiesToRemoveFromWhitelist,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for removeStrategiesFromDepositWhitelistCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategiesToRemoveFromWhitelist: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<removeStrategiesFromDepositWhitelistReturn> for UnderlyingRustTuple<'_> {
fn from(value: removeStrategiesFromDepositWhitelistReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for removeStrategiesFromDepositWhitelistReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl removeStrategiesFromDepositWhitelistReturn {
fn _tokenize(
&self,
) -> <removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::ReturnToken<
'_,
>{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for removeStrategiesFromDepositWhitelistCall {
type Parameters<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = removeStrategiesFromDepositWhitelistReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "removeStrategiesFromDepositWhitelist(address[])";
const SELECTOR: [u8; 4] = [181u8, 216u8, 181u8, 184u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(
&self.strategiesToRemoveFromWhitelist,
),)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
removeStrategiesFromDepositWhitelistReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipCall> for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipReturn> for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl renounceOwnershipReturn {
fn _tokenize(
&self,
) -> <renounceOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for renounceOwnershipCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = renounceOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "renounceOwnership()";
const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
renounceOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setStrategyWhitelister(address)` and selector `0xc6656702`.
```solidity
function setStrategyWhitelister(address newStrategyWhitelister) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setStrategyWhitelisterCall {
#[allow(missing_docs)]
pub newStrategyWhitelister: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`setStrategyWhitelister(address)`](setStrategyWhitelisterCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setStrategyWhitelisterReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setStrategyWhitelisterCall> for UnderlyingRustTuple<'_> {
fn from(value: setStrategyWhitelisterCall) -> Self {
(value.newStrategyWhitelister,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setStrategyWhitelisterCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newStrategyWhitelister: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setStrategyWhitelisterReturn> for UnderlyingRustTuple<'_> {
fn from(value: setStrategyWhitelisterReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setStrategyWhitelisterReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setStrategyWhitelisterReturn {
fn _tokenize(
&self,
) -> <setStrategyWhitelisterCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setStrategyWhitelisterCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setStrategyWhitelisterReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setStrategyWhitelister(address)";
const SELECTOR: [u8; 4] = [198u8, 101u8, 103u8, 2u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newStrategyWhitelister,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setStrategyWhitelisterReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `stakerDepositShares(address,address)` and selector `0xfe243a17`.
```solidity
function stakerDepositShares(address staker, address strategy) external view returns (uint256 shares);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerDepositSharesCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`stakerDepositShares(address,address)`](stakerDepositSharesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerDepositSharesReturn {
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerDepositSharesCall> for UnderlyingRustTuple<'_> {
fn from(value: stakerDepositSharesCall) -> Self {
(value.staker, value.strategy)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerDepositSharesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
strategy: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerDepositSharesReturn> for UnderlyingRustTuple<'_> {
fn from(value: stakerDepositSharesReturn) -> Self {
(value.shares,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerDepositSharesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { shares: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for stakerDepositSharesCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "stakerDepositShares(address,address)";
const SELECTOR: [u8; 4] = [254u8, 36u8, 58u8, 23u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: stakerDepositSharesReturn = r.into();
r.shares
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: stakerDepositSharesReturn = r.into();
r.shares
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `stakerStrategyList(address,uint256)` and selector `0xcbc2bd62`.
```solidity
function stakerStrategyList(address staker, uint256) external view returns (address strategies);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerStrategyListCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _1: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`stakerStrategyList(address,uint256)`](stakerStrategyListCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerStrategyListReturn {
#[allow(missing_docs)]
pub strategies: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerStrategyListCall> for UnderlyingRustTuple<'_> {
fn from(value: stakerStrategyListCall) -> Self {
(value.staker, value._1)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerStrategyListCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
_1: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerStrategyListReturn> for UnderlyingRustTuple<'_> {
fn from(value: stakerStrategyListReturn) -> Self {
(value.strategies,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerStrategyListReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategies: tuple.0,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for stakerStrategyListCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "stakerStrategyList(address,uint256)";
const SELECTOR: [u8; 4] = [203u8, 194u8, 189u8, 98u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self._1,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: stakerStrategyListReturn = r.into();
r.strategies
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: stakerStrategyListReturn = r.into();
r.strategies
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `stakerStrategyListLength(address)` and selector `0x8b8aac3c`.
```solidity
function stakerStrategyListLength(address staker) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerStrategyListLengthCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`stakerStrategyListLength(address)`](stakerStrategyListLengthCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakerStrategyListLengthReturn {
#[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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerStrategyListLengthCall> for UnderlyingRustTuple<'_> {
fn from(value: stakerStrategyListLengthCall) -> Self {
(value.staker,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerStrategyListLengthCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { staker: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakerStrategyListLengthReturn> for UnderlyingRustTuple<'_> {
fn from(value: stakerStrategyListLengthReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakerStrategyListLengthReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for stakerStrategyListLengthCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "stakerStrategyListLength(address)";
const SELECTOR: [u8; 4] = [139u8, 138u8, 172u8, 60u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: stakerStrategyListLengthReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: stakerStrategyListLengthReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `strategyIsWhitelistedForDeposit(address)` and selector `0x663c1de4`.
```solidity
function strategyIsWhitelistedForDeposit(address strategy) external view returns (bool whitelisted);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct strategyIsWhitelistedForDepositCall {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`strategyIsWhitelistedForDeposit(address)`](strategyIsWhitelistedForDepositCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct strategyIsWhitelistedForDepositReturn {
#[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;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<strategyIsWhitelistedForDepositCall> for UnderlyingRustTuple<'_> {
fn from(value: strategyIsWhitelistedForDepositCall) -> Self {
(value.strategy,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for strategyIsWhitelistedForDepositCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { strategy: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<strategyIsWhitelistedForDepositReturn> for UnderlyingRustTuple<'_> {
fn from(value: strategyIsWhitelistedForDepositReturn) -> Self {
(value.whitelisted,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for strategyIsWhitelistedForDepositReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
whitelisted: tuple.0,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for strategyIsWhitelistedForDepositCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "strategyIsWhitelistedForDeposit(address)";
const SELECTOR: [u8; 4] = [102u8, 60u8, 29u8, 228u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: strategyIsWhitelistedForDepositReturn = r.into();
r.whitelisted
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: strategyIsWhitelistedForDepositReturn = r.into();
r.whitelisted
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `strategyWhitelister()` and selector `0x967fc0d2`.
```solidity
function strategyWhitelister() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct strategyWhitelisterCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`strategyWhitelister()`](strategyWhitelisterCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct strategyWhitelisterReturn {
#[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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<strategyWhitelisterCall> for UnderlyingRustTuple<'_> {
fn from(value: strategyWhitelisterCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for strategyWhitelisterCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<strategyWhitelisterReturn> for UnderlyingRustTuple<'_> {
fn from(value: strategyWhitelisterReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for strategyWhitelisterReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for strategyWhitelisterCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "strategyWhitelister()";
const SELECTOR: [u8; 4] = [150u8, 127u8, 192u8, 210u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: strategyWhitelisterReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: strategyWhitelisterReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipCall> for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipCall) -> Self {
(value.newOwner,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for transferOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { newOwner: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipReturn> for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for transferOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl transferOwnershipReturn {
fn _tokenize(
&self,
) -> <transferOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for transferOwnershipCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = transferOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "transferOwnership(address)";
const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newOwner,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
transferOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
```solidity
function unpause(uint256 newPausedStatus) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct unpauseCall {
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`unpause(uint256)`](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)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
fn from(value: unpauseCall) -> Self {
(value.newPausedStatus,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newPausedStatus: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
fn from(value: unpauseReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl unpauseReturn {
fn _tokenize(&self) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for unpauseCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = unpauseReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "unpause(uint256)";
const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
unpauseReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, 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, 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)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
fn from(value: versionCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
fn from(value: versionReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> 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> = <Self::Parameters<'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> = <Self::ReturnTuple<'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: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: versionReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: versionReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `withdrawSharesAsTokens(address,address,address,uint256)` and selector `0x2eae418c`.
```solidity
function withdrawSharesAsTokens(address staker, address strategy, address token, uint256 shares) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct withdrawSharesAsTokensCall {
#[allow(missing_docs)]
pub staker: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub token: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub shares: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`withdrawSharesAsTokens(address,address,address,uint256)`](withdrawSharesAsTokensCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct withdrawSharesAsTokensReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
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<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<withdrawSharesAsTokensCall> for UnderlyingRustTuple<'_> {
fn from(value: withdrawSharesAsTokensCall) -> Self {
(value.staker, value.strategy, value.token, value.shares)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for withdrawSharesAsTokensCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
staker: tuple.0,
strategy: tuple.1,
token: tuple.2,
shares: tuple.3,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<withdrawSharesAsTokensReturn> for UnderlyingRustTuple<'_> {
fn from(value: withdrawSharesAsTokensReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for withdrawSharesAsTokensReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl withdrawSharesAsTokensReturn {
fn _tokenize(
&self,
) -> <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for withdrawSharesAsTokensCall {
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> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = withdrawSharesAsTokensReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"withdrawSharesAsTokens(address,address,address,uint256)";
const SELECTOR: [u8; 4] = [46u8, 174u8, 65u8, 140u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.staker,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.token,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.shares,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
withdrawSharesAsTokensReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
///Container for all the [`StrategyManager`](self) function calls.
#[derive(serde::Serialize, serde::Deserialize)]
pub enum StrategyManagerCalls {
#[allow(missing_docs)]
DEFAULT_BURN_ADDRESS(DEFAULT_BURN_ADDRESSCall),
#[allow(missing_docs)]
DEPOSIT_TYPEHASH(DEPOSIT_TYPEHASHCall),
#[allow(missing_docs)]
addShares(addSharesCall),
#[allow(missing_docs)]
addStrategiesToDepositWhitelist(addStrategiesToDepositWhitelistCall),
#[allow(missing_docs)]
burnShares(burnSharesCall),
#[allow(missing_docs)]
calculateStrategyDepositDigestHash(calculateStrategyDepositDigestHashCall),
#[allow(missing_docs)]
delegation(delegationCall),
#[allow(missing_docs)]
depositIntoStrategy(depositIntoStrategyCall),
#[allow(missing_docs)]
depositIntoStrategyWithSignature(depositIntoStrategyWithSignatureCall),
#[allow(missing_docs)]
domainSeparator(domainSeparatorCall),
#[allow(missing_docs)]
getBurnableShares(getBurnableSharesCall),
#[allow(missing_docs)]
getDeposits(getDepositsCall),
#[allow(missing_docs)]
getStakerStrategyList(getStakerStrategyListCall),
#[allow(missing_docs)]
getStrategiesWithBurnableShares(getStrategiesWithBurnableSharesCall),
#[allow(missing_docs)]
increaseBurnableShares(increaseBurnableSharesCall),
#[allow(missing_docs)]
initialize(initializeCall),
#[allow(missing_docs)]
nonces(noncesCall),
#[allow(missing_docs)]
owner(ownerCall),
#[allow(missing_docs)]
pause(pauseCall),
#[allow(missing_docs)]
pauseAll(pauseAllCall),
#[allow(missing_docs)]
paused_0(paused_0Call),
#[allow(missing_docs)]
paused_1(paused_1Call),
#[allow(missing_docs)]
pauserRegistry(pauserRegistryCall),
#[allow(missing_docs)]
removeDepositShares(removeDepositSharesCall),
#[allow(missing_docs)]
removeStrategiesFromDepositWhitelist(removeStrategiesFromDepositWhitelistCall),
#[allow(missing_docs)]
renounceOwnership(renounceOwnershipCall),
#[allow(missing_docs)]
setStrategyWhitelister(setStrategyWhitelisterCall),
#[allow(missing_docs)]
stakerDepositShares(stakerDepositSharesCall),
#[allow(missing_docs)]
stakerStrategyList(stakerStrategyListCall),
#[allow(missing_docs)]
stakerStrategyListLength(stakerStrategyListLengthCall),
#[allow(missing_docs)]
strategyIsWhitelistedForDeposit(strategyIsWhitelistedForDepositCall),
#[allow(missing_docs)]
strategyWhitelister(strategyWhitelisterCall),
#[allow(missing_docs)]
transferOwnership(transferOwnershipCall),
#[allow(missing_docs)]
unpause(unpauseCall),
#[allow(missing_docs)]
version(versionCall),
#[allow(missing_docs)]
withdrawSharesAsTokens(withdrawSharesAsTokensCall),
}
#[automatically_derived]
impl StrategyManagerCalls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same 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, 100u8, 57u8, 221u8],
[23u8, 148u8, 187u8, 60u8],
[46u8, 174u8, 65u8, 140u8],
[50u8, 232u8, 154u8, 206u8],
[54u8, 168u8, 197u8, 0u8],
[72u8, 130u8, 94u8, 148u8],
[75u8, 109u8, 93u8, 110u8],
[80u8, 255u8, 114u8, 37u8],
[84u8, 253u8, 77u8, 80u8],
[89u8, 92u8, 106u8, 103u8],
[90u8, 200u8, 106u8, 183u8],
[92u8, 151u8, 90u8, 187u8],
[93u8, 224u8, 143u8, 242u8],
[102u8, 60u8, 29u8, 228u8],
[113u8, 80u8, 24u8, 166u8],
[114u8, 74u8, 244u8, 35u8],
[126u8, 206u8, 190u8, 0u8],
[136u8, 111u8, 17u8, 149u8],
[139u8, 138u8, 172u8, 60u8],
[141u8, 165u8, 203u8, 91u8],
[148u8, 246u8, 73u8, 221u8],
[150u8, 127u8, 192u8, 210u8],
[154u8, 192u8, 29u8, 97u8],
[181u8, 216u8, 181u8, 184u8],
[198u8, 101u8, 103u8, 2u8],
[203u8, 194u8, 189u8, 98u8],
[222u8, 68u8, 172u8, 182u8],
[222u8, 190u8, 30u8, 171u8],
[223u8, 92u8, 247u8, 35u8],
[231u8, 160u8, 80u8, 170u8],
[242u8, 253u8, 227u8, 139u8],
[243u8, 180u8, 160u8, 0u8],
[246u8, 152u8, 218u8, 37u8],
[250u8, 188u8, 28u8, 188u8],
[253u8, 152u8, 4u8, 35u8],
[254u8, 36u8, 58u8, 23u8],
];
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for StrategyManagerCalls {
const NAME: &'static str = "StrategyManagerCalls";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 36usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::DEFAULT_BURN_ADDRESS(_) => {
<DEFAULT_BURN_ADDRESSCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::DEPOSIT_TYPEHASH(_) => {
<DEPOSIT_TYPEHASHCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::addShares(_) => <addSharesCall as alloy_sol_types::SolCall>::SELECTOR,
Self::addStrategiesToDepositWhitelist(_) => {
<addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::burnShares(_) => <burnSharesCall as alloy_sol_types::SolCall>::SELECTOR,
Self::calculateStrategyDepositDigestHash(_) => {
<calculateStrategyDepositDigestHashCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::delegation(_) => <delegationCall as alloy_sol_types::SolCall>::SELECTOR,
Self::depositIntoStrategy(_) => {
<depositIntoStrategyCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::depositIntoStrategyWithSignature(_) => {
<depositIntoStrategyWithSignatureCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::domainSeparator(_) => {
<domainSeparatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getBurnableShares(_) => {
<getBurnableSharesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getDeposits(_) => <getDepositsCall as alloy_sol_types::SolCall>::SELECTOR,
Self::getStakerStrategyList(_) => {
<getStakerStrategyListCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getStrategiesWithBurnableShares(_) => {
<getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::increaseBurnableShares(_) => {
<increaseBurnableSharesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::initialize(_) => <initializeCall as alloy_sol_types::SolCall>::SELECTOR,
Self::nonces(_) => <noncesCall as alloy_sol_types::SolCall>::SELECTOR,
Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
Self::pauserRegistry(_) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::removeDepositShares(_) => {
<removeDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::removeStrategiesFromDepositWhitelist(_) => {
<removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::renounceOwnership(_) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setStrategyWhitelister(_) => {
<setStrategyWhitelisterCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::stakerDepositShares(_) => {
<stakerDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::stakerStrategyList(_) => {
<stakerStrategyListCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::stakerStrategyListLength(_) => {
<stakerStrategyListLengthCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::strategyIsWhitelistedForDeposit(_) => {
<strategyIsWhitelistedForDepositCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::strategyWhitelister(_) => {
<strategyWhitelisterCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::transferOwnership(_) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
Self::withdrawSharesAsTokens(_) => {
<withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(selector: [u8; 4], data: &[u8]) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result<StrategyManagerCalls>] = &[
{
fn pause(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::pause)
}
pause
},
{
fn initialize(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::initialize)
}
initialize
},
{
fn withdrawSharesAsTokens(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::withdrawSharesAsTokens)
}
withdrawSharesAsTokens
},
{
fn depositIntoStrategyWithSignature(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<depositIntoStrategyWithSignatureCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::depositIntoStrategyWithSignature)
}
depositIntoStrategyWithSignature
},
{
fn getStrategiesWithBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::getStrategiesWithBurnableShares)
}
getStrategiesWithBurnableShares
},
{
fn DEPOSIT_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<DEPOSIT_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::DEPOSIT_TYPEHASH)
}
DEPOSIT_TYPEHASH
},
{
fn burnShares(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<burnSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::burnShares)
}
burnShares
},
{
fn addShares(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<addSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::addShares)
}
addShares
},
{
fn version(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<versionCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::version)
}
version
},
{
fn pauseAll(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::pauseAll)
}
pauseAll
},
{
fn paused_0(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::paused_0)
}
paused_0
},
{
fn paused_1(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::paused_1)
}
paused_1
},
{
fn addStrategiesToDepositWhitelist(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::addStrategiesToDepositWhitelist)
}
addStrategiesToDepositWhitelist
},
{
fn strategyIsWhitelistedForDeposit(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<strategyIsWhitelistedForDepositCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::strategyIsWhitelistedForDeposit)
}
strategyIsWhitelistedForDeposit
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::renounceOwnership)
}
renounceOwnership
},
{
fn removeDepositShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<removeDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::removeDepositShares)
}
removeDepositShares
},
{
fn nonces(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<noncesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::nonces)
}
nonces
},
{
fn pauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::pauserRegistry)
}
pauserRegistry
},
{
fn stakerStrategyListLength(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerStrategyListLengthCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::stakerStrategyListLength)
}
stakerStrategyListLength
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::owner)
}
owner
},
{
fn getDeposits(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getDepositsCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::getDeposits)
}
getDeposits
},
{
fn strategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<strategyWhitelisterCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::strategyWhitelister)
}
strategyWhitelister
},
{
fn calculateStrategyDepositDigestHash(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<calculateStrategyDepositDigestHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
StrategyManagerCalls::calculateStrategyDepositDigestHash,
)
}
calculateStrategyDepositDigestHash
},
{
fn removeStrategiesFromDepositWhitelist(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
StrategyManagerCalls::removeStrategiesFromDepositWhitelist,
)
}
removeStrategiesFromDepositWhitelist
},
{
fn setStrategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<setStrategyWhitelisterCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::setStrategyWhitelister)
}
setStrategyWhitelister
},
{
fn stakerStrategyList(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerStrategyListCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::stakerStrategyList)
}
stakerStrategyList
},
{
fn getStakerStrategyList(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getStakerStrategyListCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::getStakerStrategyList)
}
getStakerStrategyList
},
{
fn increaseBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(StrategyManagerCalls::increaseBurnableShares)
}
increaseBurnableShares
},
{
fn delegation(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<delegationCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::delegation)
}
delegation
},
{
fn depositIntoStrategy(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<depositIntoStrategyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::depositIntoStrategy)
}
depositIntoStrategy
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::transferOwnership)
}
transferOwnership
},
{
fn DEFAULT_BURN_ADDRESS(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<DEFAULT_BURN_ADDRESSCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::DEFAULT_BURN_ADDRESS)
}
DEFAULT_BURN_ADDRESS
},
{
fn domainSeparator(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<domainSeparatorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::domainSeparator)
}
domainSeparator
},
{
fn unpause(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::unpause)
}
unpause
},
{
fn getBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::getBurnableShares)
}
getBurnableShares
},
{
fn stakerDepositShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(StrategyManagerCalls::stakerDepositShares)
}
stakerDepositShares
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
)
-> alloy_sol_types::Result<StrategyManagerCalls>] = &[
{
fn pause(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::pause)
}
pause
},
{
fn initialize(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::initialize)
}
initialize
},
{
fn withdrawSharesAsTokens(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::withdrawSharesAsTokens)
}
withdrawSharesAsTokens
},
{
fn depositIntoStrategyWithSignature(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<depositIntoStrategyWithSignatureCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::depositIntoStrategyWithSignature)
}
depositIntoStrategyWithSignature
},
{
fn getStrategiesWithBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::getStrategiesWithBurnableShares)
}
getStrategiesWithBurnableShares
},
{
fn DEPOSIT_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<DEPOSIT_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::DEPOSIT_TYPEHASH)
}
DEPOSIT_TYPEHASH
},
{
fn burnShares(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<burnSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::burnShares)
}
burnShares
},
{
fn addShares(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<addSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::addShares)
}
addShares
},
{
fn version(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<versionCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::version)
}
version
},
{
fn pauseAll(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::pauseAll)
}
pauseAll
},
{
fn paused_0(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::paused_0)
}
paused_0
},
{
fn paused_1(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::paused_1)
}
paused_1
},
{
fn addStrategiesToDepositWhitelist(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::addStrategiesToDepositWhitelist)
}
addStrategiesToDepositWhitelist
},
{
fn strategyIsWhitelistedForDeposit(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<strategyIsWhitelistedForDepositCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::strategyIsWhitelistedForDeposit)
}
strategyIsWhitelistedForDeposit
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::renounceOwnership)
}
renounceOwnership
},
{
fn removeDepositShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<removeDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::removeDepositShares)
}
removeDepositShares
},
{
fn nonces(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<noncesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::nonces)
}
nonces
},
{
fn pauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::pauserRegistry)
}
pauserRegistry
},
{
fn stakerStrategyListLength(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerStrategyListLengthCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::stakerStrategyListLength)
}
stakerStrategyListLength
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::owner)
}
owner
},
{
fn getDeposits(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getDepositsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::getDeposits)
}
getDeposits
},
{
fn strategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<strategyWhitelisterCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::strategyWhitelister)
}
strategyWhitelister
},
{
fn calculateStrategyDepositDigestHash(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<calculateStrategyDepositDigestHashCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
StrategyManagerCalls::calculateStrategyDepositDigestHash,
)
}
calculateStrategyDepositDigestHash
},
{
fn removeStrategiesFromDepositWhitelist(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
StrategyManagerCalls::removeStrategiesFromDepositWhitelist,
)
}
removeStrategiesFromDepositWhitelist
},
{
fn setStrategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<setStrategyWhitelisterCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::setStrategyWhitelister)
}
setStrategyWhitelister
},
{
fn stakerStrategyList(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerStrategyListCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::stakerStrategyList)
}
stakerStrategyList
},
{
fn getStakerStrategyList(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getStakerStrategyListCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::getStakerStrategyList)
}
getStakerStrategyList
},
{
fn increaseBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::increaseBurnableShares)
}
increaseBurnableShares
},
{
fn delegation(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<delegationCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::delegation)
}
delegation
},
{
fn depositIntoStrategy(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<depositIntoStrategyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::depositIntoStrategy)
}
depositIntoStrategy
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::transferOwnership)
}
transferOwnership
},
{
fn DEFAULT_BURN_ADDRESS(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<DEFAULT_BURN_ADDRESSCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::DEFAULT_BURN_ADDRESS)
}
DEFAULT_BURN_ADDRESS
},
{
fn domainSeparator(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<domainSeparatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::domainSeparator)
}
domainSeparator
},
{
fn unpause(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerCalls> {
<unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(StrategyManagerCalls::unpause)
}
unpause
},
{
fn getBurnableShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<getBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::getBurnableShares)
}
getBurnableShares
},
{
fn stakerDepositShares(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerCalls> {
<stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerCalls::stakerDepositShares)
}
stakerDepositShares
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::DEFAULT_BURN_ADDRESS(inner) => {
<DEFAULT_BURN_ADDRESSCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::DEPOSIT_TYPEHASH(inner) => {
<DEPOSIT_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::addShares(inner) => {
<addSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::addStrategiesToDepositWhitelist(inner) => {
<addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::burnShares(inner) => {
<burnSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::calculateStrategyDepositDigestHash(inner) => {
<calculateStrategyDepositDigestHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::delegation(inner) => {
<delegationCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::depositIntoStrategy(inner) => {
<depositIntoStrategyCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::depositIntoStrategyWithSignature(inner) => {
<depositIntoStrategyWithSignatureCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::domainSeparator(inner) => {
<domainSeparatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getBurnableShares(inner) => {
<getBurnableSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getDeposits(inner) => {
<getDepositsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getStakerStrategyList(inner) => {
<getStakerStrategyListCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getStrategiesWithBurnableShares(inner) => {
<getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::increaseBurnableShares(inner) => {
<increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::initialize(inner) => {
<initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::nonces(inner) => {
<noncesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pause(inner) => {
<pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pauseAll(inner) => {
<pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::paused_0(inner) => {
<paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::paused_1(inner) => {
<paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pauserRegistry(inner) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::removeDepositShares(inner) => {
<removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::removeStrategiesFromDepositWhitelist(inner) => {
<removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setStrategyWhitelister(inner) => {
<setStrategyWhitelisterCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::stakerDepositShares(inner) => {
<stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::stakerStrategyList(inner) => {
<stakerStrategyListCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::stakerStrategyListLength(inner) => {
<stakerStrategyListLengthCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::strategyIsWhitelistedForDeposit(inner) => {
<strategyIsWhitelistedForDepositCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::strategyWhitelister(inner) => {
<strategyWhitelisterCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::unpause(inner) => {
<unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::version(inner) => {
<versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::withdrawSharesAsTokens(inner) => {
<withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::DEFAULT_BURN_ADDRESS(inner) => {
<DEFAULT_BURN_ADDRESSCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::DEPOSIT_TYPEHASH(inner) => {
<DEPOSIT_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::addShares(inner) => {
<addSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::addStrategiesToDepositWhitelist(inner) => {
<addStrategiesToDepositWhitelistCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::burnShares(inner) => {
<burnSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::calculateStrategyDepositDigestHash(inner) => {
<calculateStrategyDepositDigestHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::delegation(inner) => {
<delegationCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::depositIntoStrategy(inner) => {
<depositIntoStrategyCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::depositIntoStrategyWithSignature(inner) => {
<depositIntoStrategyWithSignatureCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::domainSeparator(inner) => {
<domainSeparatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getBurnableShares(inner) => {
<getBurnableSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getDeposits(inner) => {
<getDepositsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getStakerStrategyList(inner) => {
<getStakerStrategyListCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getStrategiesWithBurnableShares(inner) => {
<getStrategiesWithBurnableSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::increaseBurnableShares(inner) => {
<increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::initialize(inner) => {
<initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::nonces(inner) => {
<noncesCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::pause(inner) => {
<pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::pauseAll(inner) => {
<pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::paused_0(inner) => {
<paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::paused_1(inner) => {
<paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::pauserRegistry(inner) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::removeDepositShares(inner) => {
<removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::removeStrategiesFromDepositWhitelist(inner) => {
<removeStrategiesFromDepositWhitelistCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setStrategyWhitelister(inner) => {
<setStrategyWhitelisterCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::stakerDepositShares(inner) => {
<stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::stakerStrategyList(inner) => {
<stakerStrategyListCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::stakerStrategyListLength(inner) => {
<stakerStrategyListLengthCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::strategyIsWhitelistedForDeposit(inner) => {
<strategyIsWhitelistedForDepositCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::strategyWhitelister(inner) => {
<strategyWhitelisterCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::unpause(inner) => {
<unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::version(inner) => {
<versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::withdrawSharesAsTokens(inner) => {
<withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
}
}
}
///Container for all the [`StrategyManager`](self) custom errors.
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Hash)]
pub enum StrategyManagerErrors {
#[allow(missing_docs)]
CurrentlyPaused(CurrentlyPaused),
#[allow(missing_docs)]
InputAddressZero(InputAddressZero),
#[allow(missing_docs)]
InvalidNewPausedStatus(InvalidNewPausedStatus),
#[allow(missing_docs)]
InvalidShortString(InvalidShortString),
#[allow(missing_docs)]
InvalidSignature(InvalidSignature),
#[allow(missing_docs)]
MaxStrategiesExceeded(MaxStrategiesExceeded),
#[allow(missing_docs)]
OnlyDelegationManager(OnlyDelegationManager),
#[allow(missing_docs)]
OnlyPauser(OnlyPauser),
#[allow(missing_docs)]
OnlyStrategyWhitelister(OnlyStrategyWhitelister),
#[allow(missing_docs)]
OnlyUnpauser(OnlyUnpauser),
#[allow(missing_docs)]
SharesAmountTooHigh(SharesAmountTooHigh),
#[allow(missing_docs)]
SharesAmountZero(SharesAmountZero),
#[allow(missing_docs)]
SignatureExpired(SignatureExpired),
#[allow(missing_docs)]
StakerAddressZero(StakerAddressZero),
#[allow(missing_docs)]
StrategyNotFound(StrategyNotFound),
#[allow(missing_docs)]
StrategyNotWhitelisted(StrategyNotWhitelisted),
#[allow(missing_docs)]
StringTooLong(StringTooLong),
}
#[automatically_derived]
impl StrategyManagerErrors {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same 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, 25u8, 189u8, 205u8],
[13u8, 10u8, 33u8, 200u8],
[22u8, 242u8, 204u8, 201u8],
[48u8, 90u8, 39u8, 169u8],
[75u8, 24u8, 177u8, 147u8],
[91u8, 226u8, 180u8, 130u8],
[93u8, 251u8, 44u8, 162u8],
[115u8, 99u8, 33u8, 118u8],
[117u8, 223u8, 81u8, 220u8],
[121u8, 72u8, 33u8, 255u8],
[130u8, 232u8, 255u8, 228u8],
[132u8, 10u8, 72u8, 213u8],
[132u8, 12u8, 54u8, 74u8],
[139u8, 170u8, 87u8, 159u8],
[179u8, 81u8, 43u8, 12u8],
[198u8, 29u8, 202u8, 93u8],
[247u8, 57u8, 88u8, 155u8],
];
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for StrategyManagerErrors {
const NAME: &'static str = "StrategyManagerErrors";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 17usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::CurrentlyPaused(_) => {
<CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
}
Self::InputAddressZero(_) => {
<InputAddressZero as alloy_sol_types::SolError>::SELECTOR
}
Self::InvalidNewPausedStatus(_) => {
<InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
}
Self::InvalidShortString(_) => {
<InvalidShortString as alloy_sol_types::SolError>::SELECTOR
}
Self::InvalidSignature(_) => {
<InvalidSignature as alloy_sol_types::SolError>::SELECTOR
}
Self::MaxStrategiesExceeded(_) => {
<MaxStrategiesExceeded as alloy_sol_types::SolError>::SELECTOR
}
Self::OnlyDelegationManager(_) => {
<OnlyDelegationManager as alloy_sol_types::SolError>::SELECTOR
}
Self::OnlyPauser(_) => <OnlyPauser as alloy_sol_types::SolError>::SELECTOR,
Self::OnlyStrategyWhitelister(_) => {
<OnlyStrategyWhitelister as alloy_sol_types::SolError>::SELECTOR
}
Self::OnlyUnpauser(_) => <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR,
Self::SharesAmountTooHigh(_) => {
<SharesAmountTooHigh as alloy_sol_types::SolError>::SELECTOR
}
Self::SharesAmountZero(_) => {
<SharesAmountZero as alloy_sol_types::SolError>::SELECTOR
}
Self::SignatureExpired(_) => {
<SignatureExpired as alloy_sol_types::SolError>::SELECTOR
}
Self::StakerAddressZero(_) => {
<StakerAddressZero as alloy_sol_types::SolError>::SELECTOR
}
Self::StrategyNotFound(_) => {
<StrategyNotFound as alloy_sol_types::SolError>::SELECTOR
}
Self::StrategyNotWhitelisted(_) => {
<StrategyNotWhitelisted as alloy_sol_types::SolError>::SELECTOR
}
Self::StringTooLong(_) => <StringTooLong as alloy_sol_types::SolError>::SELECTOR,
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(selector: [u8; 4], data: &[u8]) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result<StrategyManagerErrors>] = &[
{
fn SignatureExpired(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SignatureExpired as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::SignatureExpired)
}
SignatureExpired
},
{
fn MaxStrategiesExceeded(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<MaxStrategiesExceeded as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::MaxStrategiesExceeded)
}
MaxStrategiesExceeded
},
{
fn StakerAddressZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StakerAddressZero as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::StakerAddressZero)
}
StakerAddressZero
},
{
fn StringTooLong(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::StringTooLong)
}
StringTooLong
},
{
fn SharesAmountTooHigh(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SharesAmountTooHigh as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::SharesAmountTooHigh)
}
SharesAmountTooHigh
},
{
fn StrategyNotFound(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StrategyNotFound as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::StrategyNotFound)
}
StrategyNotFound
},
{
fn StrategyNotWhitelisted(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StrategyNotWhitelisted as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::StrategyNotWhitelisted)
}
StrategyNotWhitelisted
},
{
fn InputAddressZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::InputAddressZero)
}
InputAddressZero
},
{
fn OnlyPauser(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::OnlyPauser)
}
OnlyPauser
},
{
fn OnlyUnpauser(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::OnlyUnpauser)
}
OnlyUnpauser
},
{
fn OnlyStrategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyStrategyWhitelister as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::OnlyStrategyWhitelister)
}
OnlyStrategyWhitelister
},
{
fn CurrentlyPaused(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::CurrentlyPaused)
}
CurrentlyPaused
},
{
fn SharesAmountZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SharesAmountZero as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::SharesAmountZero)
}
SharesAmountZero
},
{
fn InvalidSignature(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidSignature as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::InvalidSignature)
}
InvalidSignature
},
{
fn InvalidShortString(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::InvalidShortString)
}
InvalidShortString
},
{
fn InvalidNewPausedStatus(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::InvalidNewPausedStatus)
}
InvalidNewPausedStatus
},
{
fn OnlyDelegationManager(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyDelegationManager as alloy_sol_types::SolError>::abi_decode_raw(data)
.map(StrategyManagerErrors::OnlyDelegationManager)
}
OnlyDelegationManager
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<
StrategyManagerErrors,
>] = &[
{
fn SignatureExpired(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SignatureExpired as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::SignatureExpired)
}
SignatureExpired
},
{
fn MaxStrategiesExceeded(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<MaxStrategiesExceeded as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::MaxStrategiesExceeded)
}
MaxStrategiesExceeded
},
{
fn StakerAddressZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StakerAddressZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::StakerAddressZero)
}
StakerAddressZero
},
{
fn StringTooLong(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StringTooLong as alloy_sol_types::SolError>::abi_decode_raw_validate(data)
.map(StrategyManagerErrors::StringTooLong)
}
StringTooLong
},
{
fn SharesAmountTooHigh(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SharesAmountTooHigh as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::SharesAmountTooHigh)
}
SharesAmountTooHigh
},
{
fn StrategyNotFound(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StrategyNotFound as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::StrategyNotFound)
}
StrategyNotFound
},
{
fn StrategyNotWhitelisted(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<StrategyNotWhitelisted as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::StrategyNotWhitelisted)
}
StrategyNotWhitelisted
},
{
fn InputAddressZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::InputAddressZero)
}
InputAddressZero
},
{
fn OnlyPauser(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw_validate(data)
.map(StrategyManagerErrors::OnlyPauser)
}
OnlyPauser
},
{
fn OnlyUnpauser(data: &[u8]) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw_validate(data)
.map(StrategyManagerErrors::OnlyUnpauser)
}
OnlyUnpauser
},
{
fn OnlyStrategyWhitelister(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyStrategyWhitelister as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::OnlyStrategyWhitelister)
}
OnlyStrategyWhitelister
},
{
fn CurrentlyPaused(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::CurrentlyPaused)
}
CurrentlyPaused
},
{
fn SharesAmountZero(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<SharesAmountZero as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::SharesAmountZero)
}
SharesAmountZero
},
{
fn InvalidSignature(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidSignature as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::InvalidSignature)
}
InvalidSignature
},
{
fn InvalidShortString(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::InvalidShortString)
}
InvalidShortString
},
{
fn InvalidNewPausedStatus(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::InvalidNewPausedStatus)
}
InvalidNewPausedStatus
},
{
fn OnlyDelegationManager(
data: &[u8],
) -> alloy_sol_types::Result<StrategyManagerErrors> {
<OnlyDelegationManager as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(StrategyManagerErrors::OnlyDelegationManager)
}
OnlyDelegationManager
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::CurrentlyPaused(inner) => {
<CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::InputAddressZero(inner) => {
<InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::InvalidNewPausedStatus(inner) => {
<InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::InvalidShortString(inner) => {
<InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::InvalidSignature(inner) => {
<InvalidSignature as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::MaxStrategiesExceeded(inner) => {
<MaxStrategiesExceeded as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::OnlyDelegationManager(inner) => {
<OnlyDelegationManager as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::OnlyPauser(inner) => {
<OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::OnlyStrategyWhitelister(inner) => {
<OnlyStrategyWhitelister as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::OnlyUnpauser(inner) => {
<OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::SharesAmountTooHigh(inner) => {
<SharesAmountTooHigh as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::SharesAmountZero(inner) => {
<SharesAmountZero as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::SignatureExpired(inner) => {
<SignatureExpired as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::StakerAddressZero(inner) => {
<StakerAddressZero as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::StrategyNotFound(inner) => {
<StrategyNotFound as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::StrategyNotWhitelisted(inner) => {
<StrategyNotWhitelisted as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
Self::StringTooLong(inner) => {
<StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::CurrentlyPaused(inner) => {
<CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::InputAddressZero(inner) => {
<InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::InvalidNewPausedStatus(inner) => {
<InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
inner, out,
)
}
Self::InvalidShortString(inner) => {
<InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::InvalidSignature(inner) => {
<InvalidSignature as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::MaxStrategiesExceeded(inner) => {
<MaxStrategiesExceeded as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::OnlyDelegationManager(inner) => {
<OnlyDelegationManager as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::OnlyPauser(inner) => {
<OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::OnlyStrategyWhitelister(inner) => {
<OnlyStrategyWhitelister as alloy_sol_types::SolError>::abi_encode_raw(
inner, out,
)
}
Self::OnlyUnpauser(inner) => {
<OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::SharesAmountTooHigh(inner) => {
<SharesAmountTooHigh as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::SharesAmountZero(inner) => {
<SharesAmountZero as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::SignatureExpired(inner) => {
<SignatureExpired as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::StakerAddressZero(inner) => {
<StakerAddressZero as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::StrategyNotFound(inner) => {
<StrategyNotFound as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
Self::StrategyNotWhitelisted(inner) => {
<StrategyNotWhitelisted as alloy_sol_types::SolError>::abi_encode_raw(
inner, out,
)
}
Self::StringTooLong(inner) => {
<StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
}
}
}
}
///Container for all the [`StrategyManager`](self) events.
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Hash)]
pub enum StrategyManagerEvents {
#[allow(missing_docs)]
BurnableSharesDecreased(BurnableSharesDecreased),
#[allow(missing_docs)]
BurnableSharesIncreased(BurnableSharesIncreased),
#[allow(missing_docs)]
Deposit(Deposit),
#[allow(missing_docs)]
Initialized(Initialized),
#[allow(missing_docs)]
OwnershipTransferred(OwnershipTransferred),
#[allow(missing_docs)]
Paused(Paused),
#[allow(missing_docs)]
StrategyAddedToDepositWhitelist(StrategyAddedToDepositWhitelist),
#[allow(missing_docs)]
StrategyRemovedFromDepositWhitelist(StrategyRemovedFromDepositWhitelist),
#[allow(missing_docs)]
StrategyWhitelisterChanged(StrategyWhitelisterChanged),
#[allow(missing_docs)]
Unpaused(Unpaused),
}
#[automatically_derived]
impl StrategyManagerEvents {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same 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]] = &[
[
12u8, 53u8, 177u8, 125u8, 145u8, 201u8, 110u8, 178u8, 117u8, 28u8, 212u8, 86u8,
225u8, 37u8, 47u8, 66u8, 163u8, 134u8, 229u8, 36u8, 239u8, 159u8, 242u8, 110u8,
204u8, 153u8, 80u8, 133u8, 159u8, 220u8, 4u8, 254u8,
],
[
53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8, 2u8,
188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8, 228u8, 152u8,
107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
],
[
64u8, 116u8, 65u8, 59u8, 75u8, 68u8, 62u8, 78u8, 88u8, 1u8, 159u8, 40u8, 85u8,
168u8, 118u8, 81u8, 19u8, 53u8, 140u8, 124u8, 114u8, 227u8, 149u8, 9u8, 198u8,
175u8, 69u8, 252u8, 15u8, 91u8, 160u8, 48u8,
],
[
66u8, 100u8, 39u8, 94u8, 89u8, 57u8, 85u8, 255u8, 157u8, 97u8, 70u8, 165u8, 26u8,
69u8, 37u8, 246u8, 221u8, 172u8, 226u8, 232u8, 29u8, 185u8, 57u8, 26u8, 188u8,
201u8, 209u8, 202u8, 72u8, 4u8, 125u8, 41u8,
],
[
85u8, 72u8, 200u8, 55u8, 171u8, 6u8, 140u8, 245u8, 106u8, 44u8, 36u8, 121u8, 223u8,
8u8, 130u8, 164u8, 146u8, 47u8, 210u8, 3u8, 237u8, 183u8, 81u8, 115u8, 33u8, 131u8,
29u8, 149u8, 7u8, 140u8, 95u8, 98u8,
],
[
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,
],
[
171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8, 188u8,
152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8, 11u8, 182u8,
224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
],
[
202u8, 62u8, 2u8, 164u8, 171u8, 122u8, 211u8, 196u8, 122u8, 142u8, 54u8, 229u8,
166u8, 36u8, 195u8, 1u8, 112u8, 121u8, 23u8, 38u8, 171u8, 114u8, 15u8, 27u8, 171u8,
254u8, 242u8, 16u8, 70u8, 217u8, 83u8, 255u8,
],
[
217u8, 208u8, 130u8, 195u8, 236u8, 79u8, 58u8, 63u8, 250u8, 85u8, 195u8, 36u8,
147u8, 154u8, 6u8, 64u8, 127u8, 95u8, 188u8, 184u8, 125u8, 94u8, 12u8, 227u8,
185u8, 80u8, 140u8, 146u8, 200u8, 78u8, 216u8, 57u8,
],
];
}
#[automatically_derived]
impl alloy_sol_types::SolEventInterface for StrategyManagerEvents {
const NAME: &'static str = "StrategyManagerEvents";
const COUNT: usize = 10usize;
fn decode_raw_log(
topics: &[alloy_sol_types::Word],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
match topics.first().copied() {
Some(
<BurnableSharesDecreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<BurnableSharesDecreased as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::BurnableSharesDecreased)
}
Some(
<BurnableSharesIncreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<BurnableSharesIncreased as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::BurnableSharesIncreased)
}
Some(<Deposit as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Deposit as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Deposit)
}
Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::Initialized)
}
Some(
<OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::OwnershipTransferred)
}
Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Paused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Paused)
}
Some(
<StrategyAddedToDepositWhitelist as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<StrategyAddedToDepositWhitelist as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::StrategyAddedToDepositWhitelist)
}
Some(
<StrategyRemovedFromDepositWhitelist as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<StrategyRemovedFromDepositWhitelist as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::StrategyRemovedFromDepositWhitelist)
}
Some(
<StrategyWhitelisterChanged as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
) => {
<StrategyWhitelisterChanged as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::StrategyWhitelisterChanged)
}
Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Unpaused)
}
_ => {
alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
name: <Self as alloy_sol_types::SolEventInterface>::NAME,
log: alloy_sol_types::private::Box::new(
alloy_sol_types::private::LogData::new_unchecked(
topics.to_vec(),
data.to_vec().into(),
),
),
})
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for StrategyManagerEvents {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
match self {
Self::BurnableSharesDecreased(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::BurnableSharesIncreased(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::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::Paused(inner) => alloy_sol_types::private::IntoLogData::to_log_data(inner),
Self::StrategyAddedToDepositWhitelist(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::StrategyRemovedFromDepositWhitelist(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::StrategyWhitelisterChanged(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::BurnableSharesDecreased(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::BurnableSharesIncreased(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::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::Paused(inner) => alloy_sol_types::private::IntoLogData::into_log_data(inner),
Self::StrategyAddedToDepositWhitelist(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::StrategyRemovedFromDepositWhitelist(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::StrategyWhitelisterChanged(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 [`StrategyManager`](self) contract instance.
See the [wrapper's documentation](`StrategyManagerInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> StrategyManagerInstance<P, N> {
StrategyManagerInstance::<P, N>::new(address, provider)
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub fn deploy<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>(
provider: P,
_delegation: alloy::sol_types::private::Address,
_pauserRegistry: alloy::sol_types::private::Address,
_version: alloy::sol_types::private::String,
) -> impl ::core::future::Future<Output = alloy_contract::Result<StrategyManagerInstance<P, N>>>
{
StrategyManagerInstance::<P, N>::deploy(provider, _delegation, _pauserRegistry, _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>,
N: alloy_contract::private::Network,
>(
provider: P,
_delegation: alloy::sol_types::private::Address,
_pauserRegistry: alloy::sol_types::private::Address,
_version: alloy::sol_types::private::String,
) -> alloy_contract::RawCallBuilder<P, N> {
StrategyManagerInstance::<P, N>::deploy_builder(
provider,
_delegation,
_pauserRegistry,
_version,
)
}
/**A [`StrategyManager`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`StrategyManager`](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 StrategyManagerInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for StrategyManagerInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("StrategyManagerInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
StrategyManagerInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`StrategyManager`](self) contract instance.
See the [wrapper's documentation](`StrategyManagerInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
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,
_delegation: alloy::sol_types::private::Address,
_pauserRegistry: alloy::sol_types::private::Address,
_version: alloy::sol_types::private::String,
) -> alloy_contract::Result<StrategyManagerInstance<P, N>> {
let call_builder =
Self::deploy_builder(provider, _delegation, _pauserRegistry, _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,
_delegation: alloy::sol_types::private::Address,
_pauserRegistry: alloy::sol_types::private::Address,
_version: alloy::sol_types::private::String,
) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
provider,
[
&BYTECODE[..],
&alloy_sol_types::SolConstructor::abi_encode(&constructorCall {
_delegation,
_pauserRegistry,
_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<P: ::core::clone::Clone, N> StrategyManagerInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> StrategyManagerInstance<P, N> {
StrategyManagerInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
StrategyManagerInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
///Creates a new call builder for the [`DEFAULT_BURN_ADDRESS`] function.
pub fn DEFAULT_BURN_ADDRESS(
&self,
) -> alloy_contract::SolCallBuilder<&P, DEFAULT_BURN_ADDRESSCall, N> {
self.call_builder(&DEFAULT_BURN_ADDRESSCall)
}
///Creates a new call builder for the [`DEPOSIT_TYPEHASH`] function.
pub fn DEPOSIT_TYPEHASH(
&self,
) -> alloy_contract::SolCallBuilder<&P, DEPOSIT_TYPEHASHCall, N> {
self.call_builder(&DEPOSIT_TYPEHASHCall)
}
///Creates a new call builder for the [`addShares`] function.
pub fn addShares(
&self,
staker: alloy::sol_types::private::Address,
strategy: alloy::sol_types::private::Address,
shares: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, addSharesCall, N> {
self.call_builder(&addSharesCall {
staker,
strategy,
shares,
})
}
///Creates a new call builder for the [`addStrategiesToDepositWhitelist`] function.
pub fn addStrategiesToDepositWhitelist(
&self,
strategiesToWhitelist: alloy::sol_types::private::Vec<
alloy::sol_types::private::Address,
>,
) -> alloy_contract::SolCallBuilder<&P, addStrategiesToDepositWhitelistCall, N> {
self.call_builder(&addStrategiesToDepositWhitelistCall {
strategiesToWhitelist,
})
}
///Creates a new call builder for the [`burnShares`] function.
pub fn burnShares(
&self,
strategy: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, burnSharesCall, N> {
self.call_builder(&burnSharesCall { strategy })
}
///Creates a new call builder for the [`calculateStrategyDepositDigestHash`] function.
pub fn calculateStrategyDepositDigestHash(
&self,
staker: alloy::sol_types::private::Address,
strategy: alloy::sol_types::private::Address,
token: alloy::sol_types::private::Address,
amount: alloy::sol_types::private::primitives::aliases::U256,
nonce: alloy::sol_types::private::primitives::aliases::U256,
expiry: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, calculateStrategyDepositDigestHashCall, N> {
self.call_builder(&calculateStrategyDepositDigestHashCall {
staker,
strategy,
token,
amount,
nonce,
expiry,
})
}
///Creates a new call builder for the [`delegation`] function.
pub fn delegation(&self) -> alloy_contract::SolCallBuilder<&P, delegationCall, N> {
self.call_builder(&delegationCall)
}
///Creates a new call builder for the [`depositIntoStrategy`] function.
pub fn depositIntoStrategy(
&self,
strategy: alloy::sol_types::private::Address,
token: alloy::sol_types::private::Address,
amount: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, depositIntoStrategyCall, N> {
self.call_builder(&depositIntoStrategyCall {
strategy,
token,
amount,
})
}
///Creates a new call builder for the [`depositIntoStrategyWithSignature`] function.
pub fn depositIntoStrategyWithSignature(
&self,
strategy: alloy::sol_types::private::Address,
token: alloy::sol_types::private::Address,
amount: alloy::sol_types::private::primitives::aliases::U256,
staker: alloy::sol_types::private::Address,
expiry: alloy::sol_types::private::primitives::aliases::U256,
signature: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, depositIntoStrategyWithSignatureCall, N> {
self.call_builder(&depositIntoStrategyWithSignatureCall {
strategy,
token,
amount,
staker,
expiry,
signature,
})
}
///Creates a new call builder for the [`domainSeparator`] function.
pub fn domainSeparator(
&self,
) -> alloy_contract::SolCallBuilder<&P, domainSeparatorCall, N> {
self.call_builder(&domainSeparatorCall)
}
///Creates a new call builder for the [`getBurnableShares`] function.
pub fn getBurnableShares(
&self,
strategy: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getBurnableSharesCall, N> {
self.call_builder(&getBurnableSharesCall { strategy })
}
///Creates a new call builder for the [`getDeposits`] function.
pub fn getDeposits(
&self,
staker: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getDepositsCall, N> {
self.call_builder(&getDepositsCall { staker })
}
///Creates a new call builder for the [`getStakerStrategyList`] function.
pub fn getStakerStrategyList(
&self,
staker: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getStakerStrategyListCall, N> {
self.call_builder(&getStakerStrategyListCall { staker })
}
///Creates a new call builder for the [`getStrategiesWithBurnableShares`] function.
pub fn getStrategiesWithBurnableShares(
&self,
) -> alloy_contract::SolCallBuilder<&P, getStrategiesWithBurnableSharesCall, N> {
self.call_builder(&getStrategiesWithBurnableSharesCall)
}
///Creates a new call builder for the [`increaseBurnableShares`] function.
pub fn increaseBurnableShares(
&self,
strategy: alloy::sol_types::private::Address,
addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, increaseBurnableSharesCall, N> {
self.call_builder(&increaseBurnableSharesCall {
strategy,
addedSharesToBurn,
})
}
///Creates a new call builder for the [`initialize`] function.
pub fn initialize(
&self,
initialOwner: alloy::sol_types::private::Address,
initialStrategyWhitelister: alloy::sol_types::private::Address,
initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
self.call_builder(&initializeCall {
initialOwner,
initialStrategyWhitelister,
initialPausedStatus,
})
}
///Creates a new call builder for the [`nonces`] function.
pub fn nonces(
&self,
signer: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, noncesCall, N> {
self.call_builder(&noncesCall { signer })
}
///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 [`pause`] function.
pub fn pause(
&self,
newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
self.call_builder(&pauseCall { newPausedStatus })
}
///Creates a new call builder for the [`pauseAll`] function.
pub fn pauseAll(&self) -> alloy_contract::SolCallBuilder<&P, pauseAllCall, N> {
self.call_builder(&pauseAllCall)
}
///Creates a new call builder for the [`paused_0`] function.
pub fn paused_0(&self, index: u8) -> alloy_contract::SolCallBuilder<&P, paused_0Call, N> {
self.call_builder(&paused_0Call { index })
}
///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 [`pauserRegistry`] function.
pub fn pauserRegistry(&self) -> alloy_contract::SolCallBuilder<&P, pauserRegistryCall, N> {
self.call_builder(&pauserRegistryCall)
}
///Creates a new call builder for the [`removeDepositShares`] function.
pub fn removeDepositShares(
&self,
staker: alloy::sol_types::private::Address,
strategy: alloy::sol_types::private::Address,
depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, removeDepositSharesCall, N> {
self.call_builder(&removeDepositSharesCall {
staker,
strategy,
depositSharesToRemove,
})
}
///Creates a new call builder for the [`removeStrategiesFromDepositWhitelist`] function.
pub fn removeStrategiesFromDepositWhitelist(
&self,
strategiesToRemoveFromWhitelist: alloy::sol_types::private::Vec<
alloy::sol_types::private::Address,
>,
) -> alloy_contract::SolCallBuilder<&P, removeStrategiesFromDepositWhitelistCall, N>
{
self.call_builder(&removeStrategiesFromDepositWhitelistCall {
strategiesToRemoveFromWhitelist,
})
}
///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 [`setStrategyWhitelister`] function.
pub fn setStrategyWhitelister(
&self,
newStrategyWhitelister: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, setStrategyWhitelisterCall, N> {
self.call_builder(&setStrategyWhitelisterCall {
newStrategyWhitelister,
})
}
///Creates a new call builder for the [`stakerDepositShares`] function.
pub fn stakerDepositShares(
&self,
staker: alloy::sol_types::private::Address,
strategy: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, stakerDepositSharesCall, N> {
self.call_builder(&stakerDepositSharesCall { staker, strategy })
}
///Creates a new call builder for the [`stakerStrategyList`] function.
pub fn stakerStrategyList(
&self,
staker: alloy::sol_types::private::Address,
_1: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, stakerStrategyListCall, N> {
self.call_builder(&stakerStrategyListCall { staker, _1 })
}
///Creates a new call builder for the [`stakerStrategyListLength`] function.
pub fn stakerStrategyListLength(
&self,
staker: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, stakerStrategyListLengthCall, N> {
self.call_builder(&stakerStrategyListLengthCall { staker })
}
///Creates a new call builder for the [`strategyIsWhitelistedForDeposit`] function.
pub fn strategyIsWhitelistedForDeposit(
&self,
strategy: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, strategyIsWhitelistedForDepositCall, N> {
self.call_builder(&strategyIsWhitelistedForDepositCall { strategy })
}
///Creates a new call builder for the [`strategyWhitelister`] function.
pub fn strategyWhitelister(
&self,
) -> alloy_contract::SolCallBuilder<&P, strategyWhitelisterCall, N> {
self.call_builder(&strategyWhitelisterCall)
}
///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 [`unpause`] function.
pub fn unpause(
&self,
newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
self.call_builder(&unpauseCall { newPausedStatus })
}
///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 [`withdrawSharesAsTokens`] function.
pub fn withdrawSharesAsTokens(
&self,
staker: alloy::sol_types::private::Address,
strategy: alloy::sol_types::private::Address,
token: alloy::sol_types::private::Address,
shares: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, withdrawSharesAsTokensCall, N> {
self.call_builder(&withdrawSharesAsTokensCall {
staker,
strategy,
token,
shares,
})
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
StrategyManagerInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
///Creates a new event filter for the [`BurnableSharesDecreased`] event.
pub fn BurnableSharesDecreased_filter(
&self,
) -> alloy_contract::Event<&P, BurnableSharesDecreased, N> {
self.event_filter::<BurnableSharesDecreased>()
}
///Creates a new event filter for the [`BurnableSharesIncreased`] event.
pub fn BurnableSharesIncreased_filter(
&self,
) -> alloy_contract::Event<&P, BurnableSharesIncreased, N> {
self.event_filter::<BurnableSharesIncreased>()
}
///Creates a new event filter for the [`Deposit`] event.
pub fn Deposit_filter(&self) -> alloy_contract::Event<&P, Deposit, N> {
self.event_filter::<Deposit>()
}
///Creates a new event filter for the [`Initialized`] event.
pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
self.event_filter::<Initialized>()
}
///Creates a new event filter for the [`OwnershipTransferred`] event.
pub fn OwnershipTransferred_filter(
&self,
) -> alloy_contract::Event<&P, OwnershipTransferred, N> {
self.event_filter::<OwnershipTransferred>()
}
///Creates a new event filter for the [`Paused`] event.
pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
self.event_filter::<Paused>()
}
///Creates a new event filter for the [`StrategyAddedToDepositWhitelist`] event.
pub fn StrategyAddedToDepositWhitelist_filter(
&self,
) -> alloy_contract::Event<&P, StrategyAddedToDepositWhitelist, N> {
self.event_filter::<StrategyAddedToDepositWhitelist>()
}
///Creates a new event filter for the [`StrategyRemovedFromDepositWhitelist`] event.
pub fn StrategyRemovedFromDepositWhitelist_filter(
&self,
) -> alloy_contract::Event<&P, StrategyRemovedFromDepositWhitelist, N> {
self.event_filter::<StrategyRemovedFromDepositWhitelist>()
}
///Creates a new event filter for the [`StrategyWhitelisterChanged`] event.
pub fn StrategyWhitelisterChanged_filter(
&self,
) -> alloy_contract::Event<&P, StrategyWhitelisterChanged, N> {
self.event_filter::<StrategyWhitelisterChanged>()
}
///Creates a new event filter for the [`Unpaused`] event.
pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
self.event_filter::<Unpaused>()
}
}
}