/**
Generated by the following Solidity interface...
```solidity
interface SimpleSingleERC1155 {
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
error ERC1155InvalidApprover(address approver);
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
error ERC1155InvalidOperator(address operator);
error ERC1155InvalidReceiver(address receiver);
error ERC1155InvalidSender(address sender);
error ERC1155MissingApprovalForAll(address operator, address owner);
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
event URI(string value, uint256 indexed id);
constructor(address tokenOwner, uint256 tokenId, uint256 supply);
function balanceOf(address account, uint256 id) external view returns (uint256);
function balanceOfBatch(address[] memory accounts, uint256[] memory ids) external view returns (uint256[] memory);
function isApprovedForAll(address account, address operator) external view returns (bool);
function safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory values, bytes memory data) external;
function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) external;
function setApprovalForAll(address operator, bool approved) external;
function supportsInterface(bytes4 interfaceId) external view returns (bool);
function uri(uint256) external view returns (string memory);
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "constructor",
"inputs": [
{
"name": "tokenOwner",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "supply",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceOf",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "balanceOfBatch",
"inputs": [
{
"name": "accounts",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "isApprovedForAll",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "safeBatchTransferFrom",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "values",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "safeTransferFrom",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setApprovalForAll",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "uri",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"type": "event",
"name": "ApprovalForAll",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"type": "event",
"name": "TransferBatch",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "ids",
"type": "uint256[]",
"indexed": false,
"internalType": "uint256[]"
},
{
"name": "values",
"type": "uint256[]",
"indexed": false,
"internalType": "uint256[]"
}
],
"anonymous": false
},
{
"type": "event",
"name": "TransferSingle",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "URI",
"inputs": [
{
"name": "value",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "error",
"name": "ERC1155InsufficientBalance",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ERC1155InvalidApprover",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1155InvalidArrayLength",
"inputs": [
{
"name": "idsLength",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "valuesLength",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"type": "error",
"name": "ERC1155InvalidOperator",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1155InvalidReceiver",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1155InvalidSender",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"type": "error",
"name": "ERC1155MissingApprovalForAll",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
}
]
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod SimpleSingleERC1155 {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x60806040523461007157611404388190036080601f8201601f19168101906001600160401b0382119082101761007557606092829160405260803912610071576080516001600160a01b0381168103610071576100629060a05160c051916100db565b604051610da290816106628239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761007557604052565b6001600160401b03811161007557601f01601f191660200190565b604051906100d6602083610089565b5f8252565b90929160206040516100ee604082610089565b6013815201937f53696d706c6553696e676c6545524331313535000000000000000000000000008552600254600181811c911680156101bf575b60208210146101ab57601f8111610163575b5093519293610161936001600160681b03191660261760025561015b6100c7565b926101c9565b565b60025f52601f0160051c7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace908101905b8181106101a0575061013a565b5f8155600101610193565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610128565b91936001600160a01b03831693909190841561033f5760405195600187526020870192835260408701600181526060880191825260808801604052875181519081810361032a5750505f5b885181101561026d578060019160051b8a0161026561025d8a61024860606020860151950151945f525f60205260405f2090565b9060018060a01b03165f5260205260405f2090565b918254610352565b905501610214565b509194939690929560018251145f146102ef575f87517fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f626102c4875160405191829133958360209093929193604081019481520152565b0390a45b80516001036102e15750506101619351905191336105c3565b915091610161945033610494565b5f6040517f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb3391806103228888836103a6565b0390a46102c8565b635b05999160e01b5f5260045260245260445ffd5b632bfa23e760e11b5f525f60045260245ffd5b9190820180921161035f57565b634e487b7160e01b5f52601160045260245ffd5b90602080835192838152019201905f5b8181106103905750505090565b8251845260209384019390920191600101610383565b90916103bd6103cb93604084526040840190610373565b916020818403910152610373565b90565b9081602091031261007157516001600160e01b0319811681036100715790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b0391821681529116602082015260a0604082018190526103cb949193919261045792916104499190860190610373565b908482036060860152610373565b9160808184039101526103ee565b3d1561048f573d90610476826100ac565b916104846040519384610089565b82523d5f602084013e565b606090565b939093929192843b6104a8575b5050505050565b6104cb5f92602094604051968795869563bc197c8160e01b875260048701610412565b03815f6001600160a01b0387165af15f9181610559575b5061051c57506104f0610465565b805191908261051557632bfa23e760e11b5f526001600160a01b03821660045260245ffd5b9050602001fd5b6001600160e01b0319166343e6837f60e01b0161053e57505f808080806104a1565b632bfa23e760e11b5f526001600160a01b031660045260245ffd5b61057c91925060203d602011610583575b6105748183610089565b8101906103ce565b905f6104e2565b503d61056a565b6001600160a01b039182168152911660208201526040810191909152606081019190915260a0608082018190526103cb929101906103ee565b939093929192843b6105d6575050505050565b6105f95f92602094604051968795869563f23a6e6160e01b87526004870161058a565b03815f6001600160a01b0387165af15f9181610640575b5061061e57506104f0610465565b6001600160e01b031916630dc5919f60e01b0161053e57505f808080806104a1565b61065a91925060203d602011610583576105748183610089565b905f61061056fe60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461009357806301ffc9a71461008e5780630e89341c146100895780632eb2c2d6146100845780634e1273f41461007f578063a22cb4651461007a578063e985e9c5146100755763f242432a14610070575f80fd5b610683565b610627565b610571565b6104b0565b6103dd565b6101d7565b610131565b346100db5760403660031901126100db5760206100d26100b16100df565b6024355f525f835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b5f80fd5b600435906001600160a01b03821682036100db57565b602435906001600160a01b03821682036100db57565b35906001600160a01b03821682036100db57565b6001600160e01b03198116036100db57565b346100db5760203660031901126100db5760206004356101508161011f565b63ffffffff60e01b16636cdb3d1360e11b811490811561018e575b811561017d575b506040519015158152f35b6301ffc9a760e01b1490505f610172565b6303a24d0760e21b8114915061016b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206101d492818152019061019f565b90565b346100db5760203660031901126100db576040515f6002548060011c90600181169081156102c1575b6020831082146102ad5782855260208501919081156102945750600114610242575b61023e84610232818603826102df565b604051918291826101c3565b0390f35b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8184106102805750500161023282610222565b80548484015260209093019260010161026d565b60ff191682525090151560051b01905061023282610222565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610200565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761030157604052565b6102cb565b67ffffffffffffffff81116103015760051b60200190565b9080601f830112156100db57813561033581610306565b9261034360405194856102df565b81845260208085019260051b8201019283116100db57602001905b82821061036b5750505090565b813581526020918201910161035e565b67ffffffffffffffff811161030157601f01601f191660200190565b81601f820112156100db578035906103ae8261037b565b926103bc60405194856102df565b828452602083830101116100db57815f926020809301838601378301015290565b346100db5760a03660031901126100db576103f66100df565b6103fe6100f5565b9060443567ffffffffffffffff81116100db5761041f90369060040161031e565b60643567ffffffffffffffff81116100db5761043f90369060040161031e565b906084359367ffffffffffffffff85116100db5761046461046a953690600401610397565b93610780565b005b90602080835192838152019201905f5b8181106104895750505090565b825184526020938401939092019160010161047c565b9060206101d492818152019061046c565b346100db5760403660031901126100db5760043567ffffffffffffffff81116100db57366023820112156100db578060040135906104ed82610306565b916104fb60405193846102df565b8083526024602084019160051b830101913683116100db57602401905b828210610559578360243567ffffffffffffffff81116100db5761023e9161054761054d92369060040161031e565b90610806565b6040519182918261049f565b602080916105668461010b565b815201910190610518565b346100db5760403660031901126100db5761058a6100df565b6024358015158082036100db576001600160a01b03831692831561061557335f9081526001602090815260408083206001600160a01b039094168352929052209060ff801983541691161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160405180610610339482919091602081019215159052565b0390a3005b62ced3e160e81b5f525f60045260245ffd5b346100db5760403660031901126100db57602060ff6106776106476100df565b61064f6100f5565b6001600160a01b039182165f9081526001865260408082209290931681526020919091522090565b54166040519015158152f35b346100db5760a03660031901126100db5761069c6100df565b6106a46100f5565b60643560443560843567ffffffffffffffff81116100db576106ca903690600401610397565b926001600160a01b038516338114158061075d575b610747576001600160a01b0382161561073457156107225761046a94604051926001845260208401526040830193600185526060840152608083016040526108ba565b626a0d4560e21b5f525f60045260245ffd5b632bfa23e760e11b5f525f60045260245ffd5b63711bec9160e11b5f523360045260245260445ffd5b505f81815260016020908152604080832033845290915290205460ff16156106df565b939291906001600160a01b03851633811415806107bb575b610747576001600160a01b038216156107345715610722576107b9946108ba565b565b505f81815260016020908152604080832033845290915290205460ff1615610798565b80518210156107f25760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b919091805183518082036108a557505080519061082282610306565b9161083060405193846102df565b80835261083f601f1991610306565b013660208401375f5b815181101561089e578061088d60019260051b60208082870101519189010151905f918252602082815260408084206001600160a01b03909316845291905290205490565b61089782866107de565b5201610848565b5090925050565b635b05999160e01b5f5260045260245260445ffd5b9493929091938451825190818103610aad5750506001600160a01b038681169586151595918516801515939192905f5b84518110156109e0578060051b90898988602080868b010151958c0101519261095f575b93600194610920575b505050016108ea565b6109559161093861094d925f525f60205260405f2090565b9060018060a01b03165f5260205260405f2090565b918254610ac2565b90555f8981610917565b505090916109788d610938835f525f60205260405f2090565b548281106109a9578291898f6109a0600197968f950391610938855f525f60205260405f2090565b5590945061090e565b6040516303dee4c560e01b81526001600160a01b038f16600482015260248101919091526044810183905260648101829052608490fd5b5091989593929790965060018851145f14610a735760208881015186820151604080519283529282015233917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291a45b610a3c575b5050505050565b8451600103610a6257602080610a589601519201519233610cce565b5f80808080610a35565b610a6e94919233610b9f565b610a58565b6040517f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb339180610aa5898d83610ae3565b0390a4610a30565b635b05999160e01b5f5260045260245260445ffd5b91908201809211610acf57565b634e487b7160e01b5f52601160045260245ffd5b9091610afa6101d49360408452604084019061046c565b91602081840391015261046c565b908160209103126100db57516101d48161011f565b6001600160a01b0391821681529116602082015260a0604082018190526101d49491939192610b629291610b54919086019061046c565b90848203606086015261046c565b91608081840391015261019f565b3d15610b9a573d90610b818261037b565b91610b8f60405193846102df565b82523d5f602084013e565b606090565b9091949293853b610bb3575b505050505050565b602093610bd591604051968795869563bc197c8160e01b875260048701610b1d565b03815f6001600160a01b0387165af15f9181610c64575b50610c265750610bfa610b70565b8051919082610c1f57632bfa23e760e11b5f526001600160a01b03821660045260245ffd5b9050602001fd5b6001600160e01b0319166343e6837f60e01b01610c4957505f8080808080610bab565b632bfa23e760e11b5f526001600160a01b031660045260245ffd5b610c8791925060203d602011610c8e575b610c7f81836102df565b810190610b08565b905f610bec565b503d610c75565b6001600160a01b039182168152911660208201526040810191909152606081019190915260a0608082018190526101d49291019061019f565b9091949293853b610ce157505050505050565b602093610d0391604051968795869563f23a6e6160e01b875260048701610c95565b03815f6001600160a01b0387165af15f9181610d4b575b50610d285750610bfa610b70565b6001600160e01b031916630dc5919f60e01b01610c4957505f8080808080610bab565b610d6591925060203d602011610c8e57610c7f81836102df565b905f610d1a56fea26469706673582212201be919d0cdd95f998e85ef5ddc8b0849e7b88c53f6ad9623f548f495aa563ce164736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R4a\0qWa\x14\x048\x81\x90\x03`\x80`\x1F\x82\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17a\0uW``\x92\x82\x91`@R`\x809\x12a\0qW`\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0qWa\0b\x90`\xA0Q`\xC0Q\x91a\0\xDBV[`@Qa\r\xA2\x90\x81a\x06b\x829\xF3[_\x80\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17a\0uW`@RV[`\x01`\x01`@\x1B\x03\x81\x11a\0uW`\x1F\x01`\x1F\x19\x16` \x01\x90V[`@Q\x90a\0\xD6` \x83a\0\x89V[_\x82RV[\x90\x92\x91` `@Qa\0\xEE`@\x82a\0\x89V[`\x13\x81R\x01\x93\x7FSimpleSingleERC1155\0\0\0\0\0\0\0\0\0\0\0\0\0\x85R`\x02T`\x01\x81\x81\x1C\x91\x16\x80\x15a\x01\xBFW[` \x82\x10\x14a\x01\xABW`\x1F\x81\x11a\x01cW[P\x93Q\x92\x93a\x01a\x93`\x01`\x01`h\x1B\x03\x19\x16`&\x17`\x02Ua\x01[a\0\xC7V[\x92a\x01\xC9V[V[`\x02_R`\x1F\x01`\x05\x1C\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE\x90\x81\x01\x90[\x81\x81\x10a\x01\xA0WPa\x01:V[_\x81U`\x01\x01a\x01\x93V[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x90`\x7F\x16\x90a\x01(V[\x91\x93`\x01`\x01`\xA0\x1B\x03\x83\x16\x93\x90\x91\x90\x84\x15a\x03?W`@Q\x95`\x01\x87R` \x87\x01\x92\x83R`@\x87\x01`\x01\x81R``\x88\x01\x91\x82R`\x80\x88\x01`@R\x87Q\x81Q\x90\x81\x81\x03a\x03*WPP_[\x88Q\x81\x10\x15a\x02mW\x80`\x01\x91`\x05\x1B\x8A\x01a\x02ea\x02]\x8Aa\x02H``` \x86\x01Q\x95\x01Q\x94_R_` R`@_ \x90V[\x90`\x01\x80`\xA0\x1B\x03\x16_R` R`@_ \x90V[\x91\x82Ta\x03RV[\x90U\x01a\x02\x14V[P\x91\x94\x93\x96\x90\x92\x95`\x01\x82Q\x14_\x14a\x02\xEFW_\x87Q\x7F\xC3\xD5\x81h\xC5\xAEs\x97s\x1D\x06=[\xBF=exTBsC\xF4\xC0\x83$\x0Fz\xAC\xAA-\x0Fba\x02\xC4\x87Q`@Q\x91\x82\x913\x95\x83` \x90\x93\x92\x91\x93`@\x81\x01\x94\x81R\x01RV[\x03\x90\xA4[\x80Q`\x01\x03a\x02\xE1WPPa\x01a\x93Q\x90Q\x913a\x05\xC3V[\x91P\x91a\x01a\x94P3a\x04\x94V[_`@Q\x7FJ9\xDC\x06\xD4\xC0\xDB\xC6Kp\xAF\x90\xFDi\x8A#:Q\x8A\xA5\xD0~Y]\x98;\x8C\x05&\xC8\xF7\xFB3\x91\x80a\x03\"\x88\x88\x83a\x03\xA6V[\x03\x90\xA4a\x02\xC8V[c[\x05\x99\x91`\xE0\x1B_R`\x04R`$R`D_\xFD[c+\xFA#\xE7`\xE1\x1B_R_`\x04R`$_\xFD[\x91\x90\x82\x01\x80\x92\x11a\x03_WV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x90` \x80\x83Q\x92\x83\x81R\x01\x92\x01\x90_[\x81\x81\x10a\x03\x90WPPP\x90V[\x82Q\x84R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x03\x83V[\x90\x91a\x03\xBDa\x03\xCB\x93`@\x84R`@\x84\x01\x90a\x03sV[\x91` \x81\x84\x03\x91\x01Ra\x03sV[\x90V[\x90\x81` \x91\x03\x12a\0qWQ`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\0qW\x90V[\x80Q\x80\x83R` \x92\x91\x81\x90\x84\x01\x84\x84\x01^_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`\xA0`@\x82\x01\x81\x90Ra\x03\xCB\x94\x91\x93\x91\x92a\x04W\x92\x91a\x04I\x91\x90\x86\x01\x90a\x03sV[\x90\x84\x82\x03``\x86\x01Ra\x03sV[\x91`\x80\x81\x84\x03\x91\x01Ra\x03\xEEV[=\x15a\x04\x8FW=\x90a\x04v\x82a\0\xACV[\x91a\x04\x84`@Q\x93\x84a\0\x89V[\x82R=_` \x84\x01>V[``\x90V[\x93\x90\x93\x92\x91\x92\x84;a\x04\xA8W[PPPPPV[a\x04\xCB_\x92` \x94`@Q\x96\x87\x95\x86\x95c\xBC\x19|\x81`\xE0\x1B\x87R`\x04\x87\x01a\x04\x12V[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\x05YW[Pa\x05\x1CWPa\x04\xF0a\x04eV[\x80Q\x91\x90\x82a\x05\x15Wc+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04R`$_\xFD[\x90P` \x01\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16cC\xE6\x83\x7F`\xE0\x1B\x01a\x05>WP_\x80\x80\x80\x80a\x04\xA1V[c+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x16`\x04R`$_\xFD[a\x05|\x91\x92P` =` \x11a\x05\x83W[a\x05t\x81\x83a\0\x89V[\x81\x01\x90a\x03\xCEV[\x90_a\x04\xE2V[P=a\x05jV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`@\x81\x01\x91\x90\x91R``\x81\x01\x91\x90\x91R`\xA0`\x80\x82\x01\x81\x90Ra\x03\xCB\x92\x91\x01\x90a\x03\xEEV[\x93\x90\x93\x92\x91\x92\x84;a\x05\xD6WPPPPPV[a\x05\xF9_\x92` \x94`@Q\x96\x87\x95\x86\x95c\xF2:na`\xE0\x1B\x87R`\x04\x87\x01a\x05\x8AV[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\x06@W[Pa\x06\x1EWPa\x04\xF0a\x04eV[`\x01`\x01`\xE0\x1B\x03\x19\x16c\r\xC5\x91\x9F`\xE0\x1B\x01a\x05>WP_\x80\x80\x80\x80a\x04\xA1V[a\x06Z\x91\x92P` =` \x11a\x05\x83Wa\x05t\x81\x83a\0\x89V[\x90_a\x06\x10V\xFE`\x80`@R`\x046\x10\x15a\0\x11W_\x80\xFD[_5`\xE0\x1C\x80b\xFD\xD5\x8E\x14a\0\x93W\x80c\x01\xFF\xC9\xA7\x14a\0\x8EW\x80c\x0E\x894\x1C\x14a\0\x89W\x80c.\xB2\xC2\xD6\x14a\0\x84W\x80cN\x12s\xF4\x14a\0\x7FW\x80c\xA2,\xB4e\x14a\0zW\x80c\xE9\x85\xE9\xC5\x14a\0uWc\xF2BC*\x14a\0pW_\x80\xFD[a\x06\x83V[a\x06'V[a\x05qV[a\x04\xB0V[a\x03\xDDV[a\x01\xD7V[a\x011V[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW` a\0\xD2a\0\xB1a\0\xDFV[`$5_R_\x83R`@_ \x90`\x01\x80`\xA0\x1B\x03\x16_R` R`@_ \x90V[T`@Q\x90\x81R\xF3[_\x80\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x03a\0\xDBWV[4a\0\xDBW` 6`\x03\x19\x01\x12a\0\xDBW` `\x045a\x01P\x81a\x01\x1FV[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16cl\xDB=\x13`\xE1\x1B\x81\x14\x90\x81\x15a\x01\x8EW[\x81\x15a\x01}W[P`@Q\x90\x15\x15\x81R\xF3[c\x01\xFF\xC9\xA7`\xE0\x1B\x14\x90P_a\x01rV[c\x03\xA2M\x07`\xE2\x1B\x81\x14\x91Pa\x01kV[\x80Q\x80\x83R` \x92\x91\x81\x90\x84\x01\x84\x84\x01^_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x01\xD4\x92\x81\x81R\x01\x90a\x01\x9FV[\x90V[4a\0\xDBW` 6`\x03\x19\x01\x12a\0\xDBW`@Q_`\x02T\x80`\x01\x1C\x90`\x01\x81\x16\x90\x81\x15a\x02\xC1W[` \x83\x10\x82\x14a\x02\xADW\x82\x85R` \x85\x01\x91\x90\x81\x15a\x02\x94WP`\x01\x14a\x02BW[a\x02>\x84a\x022\x81\x86\x03\x82a\x02\xDFV[`@Q\x91\x82\x91\x82a\x01\xC3V[\x03\x90\xF3[`\x02_\x90\x81R\x92P\x90\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE[\x81\x84\x10a\x02\x80WPP\x01a\x022\x82a\x02\"V[\x80T\x84\x84\x01R` \x90\x93\x01\x92`\x01\x01a\x02mV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x90Pa\x022\x82a\x02\"V[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x91`\x7F\x16\x91a\x02\0V[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\x01W`@RV[a\x02\xCBV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x01W`\x05\x1B` \x01\x90V[\x90\x80`\x1F\x83\x01\x12\x15a\0\xDBW\x815a\x035\x81a\x03\x06V[\x92a\x03C`@Q\x94\x85a\x02\xDFV[\x81\x84R` \x80\x85\x01\x92`\x05\x1B\x82\x01\x01\x92\x83\x11a\0\xDBW` \x01\x90[\x82\x82\x10a\x03kWPPP\x90V[\x815\x81R` \x91\x82\x01\x91\x01a\x03^V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x01W`\x1F\x01`\x1F\x19\x16` \x01\x90V[\x81`\x1F\x82\x01\x12\x15a\0\xDBW\x805\x90a\x03\xAE\x82a\x03{V[\x92a\x03\xBC`@Q\x94\x85a\x02\xDFV[\x82\x84R` \x83\x83\x01\x01\x11a\0\xDBW\x81_\x92` \x80\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[4a\0\xDBW`\xA06`\x03\x19\x01\x12a\0\xDBWa\x03\xF6a\0\xDFV[a\x03\xFEa\0\xF5V[\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x04\x1F\x906\x90`\x04\x01a\x03\x1EV[`d5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x04?\x906\x90`\x04\x01a\x03\x1EV[\x90`\x845\x93g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x11a\0\xDBWa\x04da\x04j\x956\x90`\x04\x01a\x03\x97V[\x93a\x07\x80V[\0[\x90` \x80\x83Q\x92\x83\x81R\x01\x92\x01\x90_[\x81\x81\x10a\x04\x89WPPP\x90V[\x82Q\x84R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x04|V[\x90` a\x01\xD4\x92\x81\x81R\x01\x90a\x04lV[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW`\x045g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBW6`#\x82\x01\x12\x15a\0\xDBW\x80`\x04\x015\x90a\x04\xED\x82a\x03\x06V[\x91a\x04\xFB`@Q\x93\x84a\x02\xDFV[\x80\x83R`$` \x84\x01\x91`\x05\x1B\x83\x01\x01\x916\x83\x11a\0\xDBW`$\x01\x90[\x82\x82\x10a\x05YW\x83`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x02>\x91a\x05Ga\x05M\x926\x90`\x04\x01a\x03\x1EV[\x90a\x08\x06V[`@Q\x91\x82\x91\x82a\x04\x9FV[` \x80\x91a\x05f\x84a\x01\x0BV[\x81R\x01\x91\x01\x90a\x05\x18V[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBWa\x05\x8Aa\0\xDFV[`$5\x80\x15\x15\x80\x82\x03a\0\xDBW`\x01`\x01`\xA0\x1B\x03\x83\x16\x92\x83\x15a\x06\x15W3_\x90\x81R`\x01` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R\x92\x90R \x90`\xFF\x80\x19\x83T\x16\x91\x16\x17\x90U\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1`@Q\x80a\x06\x103\x94\x82\x91\x90\x91` \x81\x01\x92\x15\x15\x90RV[\x03\x90\xA3\0[b\xCE\xD3\xE1`\xE8\x1B_R_`\x04R`$_\xFD[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW` `\xFFa\x06wa\x06Ga\0\xDFV[a\x06Oa\0\xF5V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16_\x90\x81R`\x01\x86R`@\x80\x82 \x92\x90\x93\x16\x81R` \x91\x90\x91R \x90V[T\x16`@Q\x90\x15\x15\x81R\xF3[4a\0\xDBW`\xA06`\x03\x19\x01\x12a\0\xDBWa\x06\x9Ca\0\xDFV[a\x06\xA4a\0\xF5V[`d5`D5`\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x06\xCA\x906\x90`\x04\x01a\x03\x97V[\x92`\x01`\x01`\xA0\x1B\x03\x85\x163\x81\x14\x15\x80a\x07]W[a\x07GW`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x074W\x15a\x07\"Wa\x04j\x94`@Q\x92`\x01\x84R` \x84\x01R`@\x83\x01\x93`\x01\x85R``\x84\x01R`\x80\x83\x01`@Ra\x08\xBAV[bj\rE`\xE2\x1B_R_`\x04R`$_\xFD[c+\xFA#\xE7`\xE1\x1B_R_`\x04R`$_\xFD[cq\x1B\xEC\x91`\xE1\x1B_R3`\x04R`$R`D_\xFD[P_\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 T`\xFF\x16\x15a\x06\xDFV[\x93\x92\x91\x90`\x01`\x01`\xA0\x1B\x03\x85\x163\x81\x14\x15\x80a\x07\xBBW[a\x07GW`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x074W\x15a\x07\"Wa\x07\xB9\x94a\x08\xBAV[V[P_\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 T`\xFF\x16\x15a\x07\x98V[\x80Q\x82\x10\x15a\x07\xF2W` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x91\x90\x91\x80Q\x83Q\x80\x82\x03a\x08\xA5WPP\x80Q\x90a\x08\"\x82a\x03\x06V[\x91a\x080`@Q\x93\x84a\x02\xDFV[\x80\x83Ra\x08?`\x1F\x19\x91a\x03\x06V[\x016` \x84\x017_[\x81Q\x81\x10\x15a\x08\x9EW\x80a\x08\x8D`\x01\x92`\x05\x1B` \x80\x82\x87\x01\x01Q\x91\x89\x01\x01Q\x90_\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x84R\x91\x90R\x90 T\x90V[a\x08\x97\x82\x86a\x07\xDEV[R\x01a\x08HV[P\x90\x92PPV[c[\x05\x99\x91`\xE0\x1B_R`\x04R`$R`D_\xFD[\x94\x93\x92\x90\x91\x93\x84Q\x82Q\x90\x81\x81\x03a\n\xADWPP`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x95\x86\x15\x15\x95\x91\x85\x16\x80\x15\x15\x93\x91\x92\x90_[\x84Q\x81\x10\x15a\t\xE0W\x80`\x05\x1B\x90\x89\x89\x88` \x80\x86\x8B\x01\x01Q\x95\x8C\x01\x01Q\x92a\t_W[\x93`\x01\x94a\t W[PPP\x01a\x08\xEAV[a\tU\x91a\t8a\tM\x92_R_` R`@_ \x90V[\x90`\x01\x80`\xA0\x1B\x03\x16_R` R`@_ \x90V[\x91\x82Ta\n\xC2V[\x90U_\x89\x81a\t\x17V[PP\x90\x91a\tx\x8Da\t8\x83_R_` R`@_ \x90V[T\x82\x81\x10a\t\xA9W\x82\x91\x89\x8Fa\t\xA0`\x01\x97\x96\x8F\x95\x03\x91a\t8\x85_R_` R`@_ \x90V[U\x90\x94Pa\t\x0EV[`@Qc\x03\xDE\xE4\xC5`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16`\x04\x82\x01R`$\x81\x01\x91\x90\x91R`D\x81\x01\x83\x90R`d\x81\x01\x82\x90R`\x84\x90\xFD[P\x91\x98\x95\x93\x92\x97\x90\x96P`\x01\x88Q\x14_\x14a\nsW` \x88\x81\x01Q\x86\x82\x01Q`@\x80Q\x92\x83R\x92\x82\x01R3\x91\x7F\xC3\xD5\x81h\xC5\xAEs\x97s\x1D\x06=[\xBF=exTBsC\xF4\xC0\x83$\x0Fz\xAC\xAA-\x0Fb\x91\xA4[a\n<W[PPPPPV[\x84Q`\x01\x03a\nbW` \x80a\nX\x96\x01Q\x92\x01Q\x923a\x0C\xCEV[_\x80\x80\x80\x80a\n5V[a\nn\x94\x91\x923a\x0B\x9FV[a\nXV[`@Q\x7FJ9\xDC\x06\xD4\xC0\xDB\xC6Kp\xAF\x90\xFDi\x8A#:Q\x8A\xA5\xD0~Y]\x98;\x8C\x05&\xC8\xF7\xFB3\x91\x80a\n\xA5\x89\x8D\x83a\n\xE3V[\x03\x90\xA4a\n0V[c[\x05\x99\x91`\xE0\x1B_R`\x04R`$R`D_\xFD[\x91\x90\x82\x01\x80\x92\x11a\n\xCFWV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x90\x91a\n\xFAa\x01\xD4\x93`@\x84R`@\x84\x01\x90a\x04lV[\x91` \x81\x84\x03\x91\x01Ra\x04lV[\x90\x81` \x91\x03\x12a\0\xDBWQa\x01\xD4\x81a\x01\x1FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`\xA0`@\x82\x01\x81\x90Ra\x01\xD4\x94\x91\x93\x91\x92a\x0Bb\x92\x91a\x0BT\x91\x90\x86\x01\x90a\x04lV[\x90\x84\x82\x03``\x86\x01Ra\x04lV[\x91`\x80\x81\x84\x03\x91\x01Ra\x01\x9FV[=\x15a\x0B\x9AW=\x90a\x0B\x81\x82a\x03{V[\x91a\x0B\x8F`@Q\x93\x84a\x02\xDFV[\x82R=_` \x84\x01>V[``\x90V[\x90\x91\x94\x92\x93\x85;a\x0B\xB3W[PPPPPPV[` \x93a\x0B\xD5\x91`@Q\x96\x87\x95\x86\x95c\xBC\x19|\x81`\xE0\x1B\x87R`\x04\x87\x01a\x0B\x1DV[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\x0CdW[Pa\x0C&WPa\x0B\xFAa\x0BpV[\x80Q\x91\x90\x82a\x0C\x1FWc+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04R`$_\xFD[\x90P` \x01\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16cC\xE6\x83\x7F`\xE0\x1B\x01a\x0CIWP_\x80\x80\x80\x80\x80a\x0B\xABV[c+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x16`\x04R`$_\xFD[a\x0C\x87\x91\x92P` =` \x11a\x0C\x8EW[a\x0C\x7F\x81\x83a\x02\xDFV[\x81\x01\x90a\x0B\x08V[\x90_a\x0B\xECV[P=a\x0CuV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`@\x81\x01\x91\x90\x91R``\x81\x01\x91\x90\x91R`\xA0`\x80\x82\x01\x81\x90Ra\x01\xD4\x92\x91\x01\x90a\x01\x9FV[\x90\x91\x94\x92\x93\x85;a\x0C\xE1WPPPPPPV[` \x93a\r\x03\x91`@Q\x96\x87\x95\x86\x95c\xF2:na`\xE0\x1B\x87R`\x04\x87\x01a\x0C\x95V[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\rKW[Pa\r(WPa\x0B\xFAa\x0BpV[`\x01`\x01`\xE0\x1B\x03\x19\x16c\r\xC5\x91\x9F`\xE0\x1B\x01a\x0CIWP_\x80\x80\x80\x80\x80a\x0B\xABV[a\re\x91\x92P` =` \x11a\x0C\x8EWa\x0C\x7F\x81\x83a\x02\xDFV[\x90_a\r\x1AV\xFE\xA2dipfsX\"\x12 \x1B\xE9\x19\xD0\xCD\xD9_\x99\x8E\x85\xEF]\xDC\x8B\x08I\xE7\xB8\x8CS\xF6\xAD\x96#\xF5H\xF4\x95\xAAV<\xE1dsolcC\0\x08\x1E\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461009357806301ffc9a71461008e5780630e89341c146100895780632eb2c2d6146100845780634e1273f41461007f578063a22cb4651461007a578063e985e9c5146100755763f242432a14610070575f80fd5b610683565b610627565b610571565b6104b0565b6103dd565b6101d7565b610131565b346100db5760403660031901126100db5760206100d26100b16100df565b6024355f525f835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b5f80fd5b600435906001600160a01b03821682036100db57565b602435906001600160a01b03821682036100db57565b35906001600160a01b03821682036100db57565b6001600160e01b03198116036100db57565b346100db5760203660031901126100db5760206004356101508161011f565b63ffffffff60e01b16636cdb3d1360e11b811490811561018e575b811561017d575b506040519015158152f35b6301ffc9a760e01b1490505f610172565b6303a24d0760e21b8114915061016b565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206101d492818152019061019f565b90565b346100db5760203660031901126100db576040515f6002548060011c90600181169081156102c1575b6020831082146102ad5782855260208501919081156102945750600114610242575b61023e84610232818603826102df565b604051918291826101c3565b0390f35b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8184106102805750500161023282610222565b80548484015260209093019260010161026d565b60ff191682525090151560051b01905061023282610222565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610200565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761030157604052565b6102cb565b67ffffffffffffffff81116103015760051b60200190565b9080601f830112156100db57813561033581610306565b9261034360405194856102df565b81845260208085019260051b8201019283116100db57602001905b82821061036b5750505090565b813581526020918201910161035e565b67ffffffffffffffff811161030157601f01601f191660200190565b81601f820112156100db578035906103ae8261037b565b926103bc60405194856102df565b828452602083830101116100db57815f926020809301838601378301015290565b346100db5760a03660031901126100db576103f66100df565b6103fe6100f5565b9060443567ffffffffffffffff81116100db5761041f90369060040161031e565b60643567ffffffffffffffff81116100db5761043f90369060040161031e565b906084359367ffffffffffffffff85116100db5761046461046a953690600401610397565b93610780565b005b90602080835192838152019201905f5b8181106104895750505090565b825184526020938401939092019160010161047c565b9060206101d492818152019061046c565b346100db5760403660031901126100db5760043567ffffffffffffffff81116100db57366023820112156100db578060040135906104ed82610306565b916104fb60405193846102df565b8083526024602084019160051b830101913683116100db57602401905b828210610559578360243567ffffffffffffffff81116100db5761023e9161054761054d92369060040161031e565b90610806565b6040519182918261049f565b602080916105668461010b565b815201910190610518565b346100db5760403660031901126100db5761058a6100df565b6024358015158082036100db576001600160a01b03831692831561061557335f9081526001602090815260408083206001600160a01b039094168352929052209060ff801983541691161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160405180610610339482919091602081019215159052565b0390a3005b62ced3e160e81b5f525f60045260245ffd5b346100db5760403660031901126100db57602060ff6106776106476100df565b61064f6100f5565b6001600160a01b039182165f9081526001865260408082209290931681526020919091522090565b54166040519015158152f35b346100db5760a03660031901126100db5761069c6100df565b6106a46100f5565b60643560443560843567ffffffffffffffff81116100db576106ca903690600401610397565b926001600160a01b038516338114158061075d575b610747576001600160a01b0382161561073457156107225761046a94604051926001845260208401526040830193600185526060840152608083016040526108ba565b626a0d4560e21b5f525f60045260245ffd5b632bfa23e760e11b5f525f60045260245ffd5b63711bec9160e11b5f523360045260245260445ffd5b505f81815260016020908152604080832033845290915290205460ff16156106df565b939291906001600160a01b03851633811415806107bb575b610747576001600160a01b038216156107345715610722576107b9946108ba565b565b505f81815260016020908152604080832033845290915290205460ff1615610798565b80518210156107f25760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b919091805183518082036108a557505080519061082282610306565b9161083060405193846102df565b80835261083f601f1991610306565b013660208401375f5b815181101561089e578061088d60019260051b60208082870101519189010151905f918252602082815260408084206001600160a01b03909316845291905290205490565b61089782866107de565b5201610848565b5090925050565b635b05999160e01b5f5260045260245260445ffd5b9493929091938451825190818103610aad5750506001600160a01b038681169586151595918516801515939192905f5b84518110156109e0578060051b90898988602080868b010151958c0101519261095f575b93600194610920575b505050016108ea565b6109559161093861094d925f525f60205260405f2090565b9060018060a01b03165f5260205260405f2090565b918254610ac2565b90555f8981610917565b505090916109788d610938835f525f60205260405f2090565b548281106109a9578291898f6109a0600197968f950391610938855f525f60205260405f2090565b5590945061090e565b6040516303dee4c560e01b81526001600160a01b038f16600482015260248101919091526044810183905260648101829052608490fd5b5091989593929790965060018851145f14610a735760208881015186820151604080519283529282015233917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291a45b610a3c575b5050505050565b8451600103610a6257602080610a589601519201519233610cce565b5f80808080610a35565b610a6e94919233610b9f565b610a58565b6040517f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb339180610aa5898d83610ae3565b0390a4610a30565b635b05999160e01b5f5260045260245260445ffd5b91908201809211610acf57565b634e487b7160e01b5f52601160045260245ffd5b9091610afa6101d49360408452604084019061046c565b91602081840391015261046c565b908160209103126100db57516101d48161011f565b6001600160a01b0391821681529116602082015260a0604082018190526101d49491939192610b629291610b54919086019061046c565b90848203606086015261046c565b91608081840391015261019f565b3d15610b9a573d90610b818261037b565b91610b8f60405193846102df565b82523d5f602084013e565b606090565b9091949293853b610bb3575b505050505050565b602093610bd591604051968795869563bc197c8160e01b875260048701610b1d565b03815f6001600160a01b0387165af15f9181610c64575b50610c265750610bfa610b70565b8051919082610c1f57632bfa23e760e11b5f526001600160a01b03821660045260245ffd5b9050602001fd5b6001600160e01b0319166343e6837f60e01b01610c4957505f8080808080610bab565b632bfa23e760e11b5f526001600160a01b031660045260245ffd5b610c8791925060203d602011610c8e575b610c7f81836102df565b810190610b08565b905f610bec565b503d610c75565b6001600160a01b039182168152911660208201526040810191909152606081019190915260a0608082018190526101d49291019061019f565b9091949293853b610ce157505050505050565b602093610d0391604051968795869563f23a6e6160e01b875260048701610c95565b03815f6001600160a01b0387165af15f9181610d4b575b50610d285750610bfa610b70565b6001600160e01b031916630dc5919f60e01b01610c4957505f8080808080610bab565b610d6591925060203d602011610c8e57610c7f81836102df565b905f610d1a56fea26469706673582212201be919d0cdd95f998e85ef5ddc8b0849e7b88c53f6ad9623f548f495aa563ce164736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R`\x046\x10\x15a\0\x11W_\x80\xFD[_5`\xE0\x1C\x80b\xFD\xD5\x8E\x14a\0\x93W\x80c\x01\xFF\xC9\xA7\x14a\0\x8EW\x80c\x0E\x894\x1C\x14a\0\x89W\x80c.\xB2\xC2\xD6\x14a\0\x84W\x80cN\x12s\xF4\x14a\0\x7FW\x80c\xA2,\xB4e\x14a\0zW\x80c\xE9\x85\xE9\xC5\x14a\0uWc\xF2BC*\x14a\0pW_\x80\xFD[a\x06\x83V[a\x06'V[a\x05qV[a\x04\xB0V[a\x03\xDDV[a\x01\xD7V[a\x011V[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW` a\0\xD2a\0\xB1a\0\xDFV[`$5_R_\x83R`@_ \x90`\x01\x80`\xA0\x1B\x03\x16_R` R`@_ \x90V[T`@Q\x90\x81R\xF3[_\x80\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[`$5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[5\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xDBWV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x03a\0\xDBWV[4a\0\xDBW` 6`\x03\x19\x01\x12a\0\xDBW` `\x045a\x01P\x81a\x01\x1FV[c\xFF\xFF\xFF\xFF`\xE0\x1B\x16cl\xDB=\x13`\xE1\x1B\x81\x14\x90\x81\x15a\x01\x8EW[\x81\x15a\x01}W[P`@Q\x90\x15\x15\x81R\xF3[c\x01\xFF\xC9\xA7`\xE0\x1B\x14\x90P_a\x01rV[c\x03\xA2M\x07`\xE2\x1B\x81\x14\x91Pa\x01kV[\x80Q\x80\x83R` \x92\x91\x81\x90\x84\x01\x84\x84\x01^_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90` a\x01\xD4\x92\x81\x81R\x01\x90a\x01\x9FV[\x90V[4a\0\xDBW` 6`\x03\x19\x01\x12a\0\xDBW`@Q_`\x02T\x80`\x01\x1C\x90`\x01\x81\x16\x90\x81\x15a\x02\xC1W[` \x83\x10\x82\x14a\x02\xADW\x82\x85R` \x85\x01\x91\x90\x81\x15a\x02\x94WP`\x01\x14a\x02BW[a\x02>\x84a\x022\x81\x86\x03\x82a\x02\xDFV[`@Q\x91\x82\x91\x82a\x01\xC3V[\x03\x90\xF3[`\x02_\x90\x81R\x92P\x90\x7F@W\x87\xFA\x12\xA8#\xE0\xF2\xB7c\x1C\xC4\x1B;\xA8\x82\x8B3!\xCA\x81\x11\x11\xFAu\xCD:\xA3\xBBZ\xCE[\x81\x84\x10a\x02\x80WPP\x01a\x022\x82a\x02\"V[\x80T\x84\x84\x01R` \x90\x93\x01\x92`\x01\x01a\x02mV[`\xFF\x19\x16\x82RP\x90\x15\x15`\x05\x1B\x01\x90Pa\x022\x82a\x02\"V[cNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[\x91`\x7F\x16\x91a\x02\0V[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\x01W`@RV[a\x02\xCBV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x01W`\x05\x1B` \x01\x90V[\x90\x80`\x1F\x83\x01\x12\x15a\0\xDBW\x815a\x035\x81a\x03\x06V[\x92a\x03C`@Q\x94\x85a\x02\xDFV[\x81\x84R` \x80\x85\x01\x92`\x05\x1B\x82\x01\x01\x92\x83\x11a\0\xDBW` \x01\x90[\x82\x82\x10a\x03kWPPP\x90V[\x815\x81R` \x91\x82\x01\x91\x01a\x03^V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\x01W`\x1F\x01`\x1F\x19\x16` \x01\x90V[\x81`\x1F\x82\x01\x12\x15a\0\xDBW\x805\x90a\x03\xAE\x82a\x03{V[\x92a\x03\xBC`@Q\x94\x85a\x02\xDFV[\x82\x84R` \x83\x83\x01\x01\x11a\0\xDBW\x81_\x92` \x80\x93\x01\x83\x86\x017\x83\x01\x01R\x90V[4a\0\xDBW`\xA06`\x03\x19\x01\x12a\0\xDBWa\x03\xF6a\0\xDFV[a\x03\xFEa\0\xF5V[\x90`D5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x04\x1F\x906\x90`\x04\x01a\x03\x1EV[`d5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x04?\x906\x90`\x04\x01a\x03\x1EV[\x90`\x845\x93g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x11a\0\xDBWa\x04da\x04j\x956\x90`\x04\x01a\x03\x97V[\x93a\x07\x80V[\0[\x90` \x80\x83Q\x92\x83\x81R\x01\x92\x01\x90_[\x81\x81\x10a\x04\x89WPPP\x90V[\x82Q\x84R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01a\x04|V[\x90` a\x01\xD4\x92\x81\x81R\x01\x90a\x04lV[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW`\x045g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBW6`#\x82\x01\x12\x15a\0\xDBW\x80`\x04\x015\x90a\x04\xED\x82a\x03\x06V[\x91a\x04\xFB`@Q\x93\x84a\x02\xDFV[\x80\x83R`$` \x84\x01\x91`\x05\x1B\x83\x01\x01\x916\x83\x11a\0\xDBW`$\x01\x90[\x82\x82\x10a\x05YW\x83`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x02>\x91a\x05Ga\x05M\x926\x90`\x04\x01a\x03\x1EV[\x90a\x08\x06V[`@Q\x91\x82\x91\x82a\x04\x9FV[` \x80\x91a\x05f\x84a\x01\x0BV[\x81R\x01\x91\x01\x90a\x05\x18V[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBWa\x05\x8Aa\0\xDFV[`$5\x80\x15\x15\x80\x82\x03a\0\xDBW`\x01`\x01`\xA0\x1B\x03\x83\x16\x92\x83\x15a\x06\x15W3_\x90\x81R`\x01` \x90\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R\x92\x90R \x90`\xFF\x80\x19\x83T\x16\x91\x16\x17\x90U\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1`@Q\x80a\x06\x103\x94\x82\x91\x90\x91` \x81\x01\x92\x15\x15\x90RV[\x03\x90\xA3\0[b\xCE\xD3\xE1`\xE8\x1B_R_`\x04R`$_\xFD[4a\0\xDBW`@6`\x03\x19\x01\x12a\0\xDBW` `\xFFa\x06wa\x06Ga\0\xDFV[a\x06Oa\0\xF5V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16_\x90\x81R`\x01\x86R`@\x80\x82 \x92\x90\x93\x16\x81R` \x91\x90\x91R \x90V[T\x16`@Q\x90\x15\x15\x81R\xF3[4a\0\xDBW`\xA06`\x03\x19\x01\x12a\0\xDBWa\x06\x9Ca\0\xDFV[a\x06\xA4a\0\xF5V[`d5`D5`\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\xDBWa\x06\xCA\x906\x90`\x04\x01a\x03\x97V[\x92`\x01`\x01`\xA0\x1B\x03\x85\x163\x81\x14\x15\x80a\x07]W[a\x07GW`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x074W\x15a\x07\"Wa\x04j\x94`@Q\x92`\x01\x84R` \x84\x01R`@\x83\x01\x93`\x01\x85R``\x84\x01R`\x80\x83\x01`@Ra\x08\xBAV[bj\rE`\xE2\x1B_R_`\x04R`$_\xFD[c+\xFA#\xE7`\xE1\x1B_R_`\x04R`$_\xFD[cq\x1B\xEC\x91`\xE1\x1B_R3`\x04R`$R`D_\xFD[P_\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 T`\xFF\x16\x15a\x06\xDFV[\x93\x92\x91\x90`\x01`\x01`\xA0\x1B\x03\x85\x163\x81\x14\x15\x80a\x07\xBBW[a\x07GW`\x01`\x01`\xA0\x1B\x03\x82\x16\x15a\x074W\x15a\x07\"Wa\x07\xB9\x94a\x08\xBAV[V[P_\x81\x81R`\x01` \x90\x81R`@\x80\x83 3\x84R\x90\x91R\x90 T`\xFF\x16\x15a\x07\x98V[\x80Q\x82\x10\x15a\x07\xF2W` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x91\x90\x91\x80Q\x83Q\x80\x82\x03a\x08\xA5WPP\x80Q\x90a\x08\"\x82a\x03\x06V[\x91a\x080`@Q\x93\x84a\x02\xDFV[\x80\x83Ra\x08?`\x1F\x19\x91a\x03\x06V[\x016` \x84\x017_[\x81Q\x81\x10\x15a\x08\x9EW\x80a\x08\x8D`\x01\x92`\x05\x1B` \x80\x82\x87\x01\x01Q\x91\x89\x01\x01Q\x90_\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x90\x93\x16\x84R\x91\x90R\x90 T\x90V[a\x08\x97\x82\x86a\x07\xDEV[R\x01a\x08HV[P\x90\x92PPV[c[\x05\x99\x91`\xE0\x1B_R`\x04R`$R`D_\xFD[\x94\x93\x92\x90\x91\x93\x84Q\x82Q\x90\x81\x81\x03a\n\xADWPP`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x95\x86\x15\x15\x95\x91\x85\x16\x80\x15\x15\x93\x91\x92\x90_[\x84Q\x81\x10\x15a\t\xE0W\x80`\x05\x1B\x90\x89\x89\x88` \x80\x86\x8B\x01\x01Q\x95\x8C\x01\x01Q\x92a\t_W[\x93`\x01\x94a\t W[PPP\x01a\x08\xEAV[a\tU\x91a\t8a\tM\x92_R_` R`@_ \x90V[\x90`\x01\x80`\xA0\x1B\x03\x16_R` R`@_ \x90V[\x91\x82Ta\n\xC2V[\x90U_\x89\x81a\t\x17V[PP\x90\x91a\tx\x8Da\t8\x83_R_` R`@_ \x90V[T\x82\x81\x10a\t\xA9W\x82\x91\x89\x8Fa\t\xA0`\x01\x97\x96\x8F\x95\x03\x91a\t8\x85_R_` R`@_ \x90V[U\x90\x94Pa\t\x0EV[`@Qc\x03\xDE\xE4\xC5`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16`\x04\x82\x01R`$\x81\x01\x91\x90\x91R`D\x81\x01\x83\x90R`d\x81\x01\x82\x90R`\x84\x90\xFD[P\x91\x98\x95\x93\x92\x97\x90\x96P`\x01\x88Q\x14_\x14a\nsW` \x88\x81\x01Q\x86\x82\x01Q`@\x80Q\x92\x83R\x92\x82\x01R3\x91\x7F\xC3\xD5\x81h\xC5\xAEs\x97s\x1D\x06=[\xBF=exTBsC\xF4\xC0\x83$\x0Fz\xAC\xAA-\x0Fb\x91\xA4[a\n<W[PPPPPV[\x84Q`\x01\x03a\nbW` \x80a\nX\x96\x01Q\x92\x01Q\x923a\x0C\xCEV[_\x80\x80\x80\x80a\n5V[a\nn\x94\x91\x923a\x0B\x9FV[a\nXV[`@Q\x7FJ9\xDC\x06\xD4\xC0\xDB\xC6Kp\xAF\x90\xFDi\x8A#:Q\x8A\xA5\xD0~Y]\x98;\x8C\x05&\xC8\xF7\xFB3\x91\x80a\n\xA5\x89\x8D\x83a\n\xE3V[\x03\x90\xA4a\n0V[c[\x05\x99\x91`\xE0\x1B_R`\x04R`$R`D_\xFD[\x91\x90\x82\x01\x80\x92\x11a\n\xCFWV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x90\x91a\n\xFAa\x01\xD4\x93`@\x84R`@\x84\x01\x90a\x04lV[\x91` \x81\x84\x03\x91\x01Ra\x04lV[\x90\x81` \x91\x03\x12a\0\xDBWQa\x01\xD4\x81a\x01\x1FV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`\xA0`@\x82\x01\x81\x90Ra\x01\xD4\x94\x91\x93\x91\x92a\x0Bb\x92\x91a\x0BT\x91\x90\x86\x01\x90a\x04lV[\x90\x84\x82\x03``\x86\x01Ra\x04lV[\x91`\x80\x81\x84\x03\x91\x01Ra\x01\x9FV[=\x15a\x0B\x9AW=\x90a\x0B\x81\x82a\x03{V[\x91a\x0B\x8F`@Q\x93\x84a\x02\xDFV[\x82R=_` \x84\x01>V[``\x90V[\x90\x91\x94\x92\x93\x85;a\x0B\xB3W[PPPPPPV[` \x93a\x0B\xD5\x91`@Q\x96\x87\x95\x86\x95c\xBC\x19|\x81`\xE0\x1B\x87R`\x04\x87\x01a\x0B\x1DV[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\x0CdW[Pa\x0C&WPa\x0B\xFAa\x0BpV[\x80Q\x91\x90\x82a\x0C\x1FWc+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04R`$_\xFD[\x90P` \x01\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16cC\xE6\x83\x7F`\xE0\x1B\x01a\x0CIWP_\x80\x80\x80\x80\x80a\x0B\xABV[c+\xFA#\xE7`\xE1\x1B_R`\x01`\x01`\xA0\x1B\x03\x16`\x04R`$_\xFD[a\x0C\x87\x91\x92P` =` \x11a\x0C\x8EW[a\x0C\x7F\x81\x83a\x02\xDFV[\x81\x01\x90a\x0B\x08V[\x90_a\x0B\xECV[P=a\x0CuV[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x81R\x91\x16` \x82\x01R`@\x81\x01\x91\x90\x91R``\x81\x01\x91\x90\x91R`\xA0`\x80\x82\x01\x81\x90Ra\x01\xD4\x92\x91\x01\x90a\x01\x9FV[\x90\x91\x94\x92\x93\x85;a\x0C\xE1WPPPPPPV[` \x93a\r\x03\x91`@Q\x96\x87\x95\x86\x95c\xF2:na`\xE0\x1B\x87R`\x04\x87\x01a\x0C\x95V[\x03\x81_`\x01`\x01`\xA0\x1B\x03\x87\x16Z\xF1_\x91\x81a\rKW[Pa\r(WPa\x0B\xFAa\x0BpV[`\x01`\x01`\xE0\x1B\x03\x19\x16c\r\xC5\x91\x9F`\xE0\x1B\x01a\x0CIWP_\x80\x80\x80\x80\x80a\x0B\xABV[a\re\x91\x92P` =` \x11a\x0C\x8EWa\x0C\x7F\x81\x83a\x02\xDFV[\x90_a\r\x1AV\xFE\xA2dipfsX\"\x12 \x1B\xE9\x19\xD0\xCD\xD9_\x99\x8E\x85\xEF]\xDC\x8B\x08I\xE7\xB8\x8CS\xF6\xAD\x96#\xF5H\xF4\x95\xAAV<\xE1dsolcC\0\x08\x1E\x003",
);
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InsufficientBalance(address,uint256,uint256,uint256)` and selector `0x03dee4c5`.
```solidity
error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InsufficientBalance {
#[allow(missing_docs)]
pub sender: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub balance: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub needed: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub tokenId: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ERC1155InsufficientBalance>
for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InsufficientBalance) -> Self {
(value.sender, value.balance, value.needed, value.tokenId)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for ERC1155InsufficientBalance {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
sender: tuple.0,
balance: tuple.1,
needed: tuple.2,
tokenId: tuple.3,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InsufficientBalance {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InsufficientBalance(address,uint256,uint256,uint256)";
const SELECTOR: [u8; 4] = [3u8, 222u8, 228u8, 197u8];
#[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.sender,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.balance),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.needed),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.tokenId),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InvalidApprover(address)` and selector `0x3e31884e`.
```solidity
error ERC1155InvalidApprover(address approver);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InvalidApprover {
#[allow(missing_docs)]
pub approver: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ERC1155InvalidApprover> for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InvalidApprover) -> Self {
(value.approver,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1155InvalidApprover {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { approver: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InvalidApprover {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InvalidApprover(address)";
const SELECTOR: [u8; 4] = [62u8, 49u8, 136u8, 78u8];
#[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.approver,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InvalidArrayLength(uint256,uint256)` and selector `0x5b059991`.
```solidity
error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InvalidArrayLength {
#[allow(missing_docs)]
pub idsLength: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub valuesLength: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ERC1155InvalidArrayLength>
for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InvalidArrayLength) -> Self {
(value.idsLength, value.valuesLength)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for ERC1155InvalidArrayLength {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
idsLength: tuple.0,
valuesLength: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InvalidArrayLength {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InvalidArrayLength(uint256,uint256)";
const SELECTOR: [u8; 4] = [91u8, 5u8, 153u8, 145u8];
#[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.idsLength),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.valuesLength),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InvalidOperator(address)` and selector `0xced3e100`.
```solidity
error ERC1155InvalidOperator(address operator);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InvalidOperator {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ERC1155InvalidOperator> for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InvalidOperator) -> Self {
(value.operator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1155InvalidOperator {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operator: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InvalidOperator {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InvalidOperator(address)";
const SELECTOR: [u8; 4] = [206u8, 211u8, 225u8, 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.operator,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InvalidReceiver(address)` and selector `0x57f447ce`.
```solidity
error ERC1155InvalidReceiver(address receiver);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InvalidReceiver {
#[allow(missing_docs)]
pub receiver: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ERC1155InvalidReceiver> for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InvalidReceiver) -> Self {
(value.receiver,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1155InvalidReceiver {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { receiver: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InvalidReceiver {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InvalidReceiver(address)";
const SELECTOR: [u8; 4] = [87u8, 244u8, 71u8, 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.receiver,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155InvalidSender(address)` and selector `0x01a83514`.
```solidity
error ERC1155InvalidSender(address sender);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155InvalidSender {
#[allow(missing_docs)]
pub sender: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
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<ERC1155InvalidSender> for UnderlyingRustTuple<'_> {
fn from(value: ERC1155InvalidSender) -> Self {
(value.sender,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1155InvalidSender {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { sender: tuple.0 }
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155InvalidSender {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155InvalidSender(address)";
const SELECTOR: [u8; 4] = [1u8, 168u8, 53u8, 20u8];
#[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.sender,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Custom error with signature `ERC1155MissingApprovalForAll(address,address)` and selector `0xe237d922`.
```solidity
error ERC1155MissingApprovalForAll(address operator, address owner);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ERC1155MissingApprovalForAll {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub owner: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
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<ERC1155MissingApprovalForAll>
for UnderlyingRustTuple<'_> {
fn from(value: ERC1155MissingApprovalForAll) -> Self {
(value.operator, value.owner)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for ERC1155MissingApprovalForAll {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operator: tuple.0,
owner: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolError for ERC1155MissingApprovalForAll {
type Parameters<'a> = UnderlyingSolTuple<'a>;
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ERC1155MissingApprovalForAll(address,address)";
const SELECTOR: [u8; 4] = [226u8, 55u8, 217u8, 34u8];
#[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.operator,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.owner,
),
)
}
#[inline]
fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
<Self::Parameters<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Self::new)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `ApprovalForAll(address,address,bool)` and selector `0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31`.
```solidity
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct ApprovalForAll {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub approved: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for ApprovalForAll {
type DataTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type DataToken<'a> = <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 = "ApprovalForAll(address,address,bool)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
23u8, 48u8, 126u8, 171u8, 57u8, 171u8, 97u8, 7u8, 232u8, 137u8, 152u8,
69u8, 173u8, 61u8, 89u8, 189u8, 150u8, 83u8, 242u8, 0u8, 242u8, 32u8,
146u8, 4u8, 137u8, 202u8, 43u8, 89u8, 55u8, 105u8, 108u8, 49u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
account: topics.1,
operator: topics.2,
approved: 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::Bool as alloy_sol_types::SolType>::tokenize(
&self.approved,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.account.clone(),
self.operator.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <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,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.operator,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for ApprovalForAll {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&ApprovalForAll> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &ApprovalForAll) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `TransferBatch(address,address,address,uint256[],uint256[])` and selector `0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb`.
```solidity
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct TransferBatch {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub from: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub to: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub ids: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
#[allow(missing_docs)]
pub values: 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;
#[automatically_derived]
impl alloy_sol_types::SolEvent for TransferBatch {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
);
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,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "TransferBatch(address,address,address,uint256[],uint256[])";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
74u8, 57u8, 220u8, 6u8, 212u8, 192u8, 219u8, 198u8, 75u8, 112u8, 175u8,
144u8, 253u8, 105u8, 138u8, 35u8, 58u8, 81u8, 138u8, 165u8, 208u8, 126u8,
89u8, 93u8, 152u8, 59u8, 140u8, 5u8, 38u8, 200u8, 247u8, 251u8,
]);
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 {
operator: topics.1,
from: topics.2,
to: topics.3,
ids: data.0,
values: 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::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self.ids),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self.values),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.operator.clone(),
self.from.clone(),
self.to.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <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.operator,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.from,
);
out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.to,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for TransferBatch {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&TransferBatch> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &TransferBatch) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `TransferSingle(address,address,address,uint256,uint256)` and selector `0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62`.
```solidity
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct TransferSingle {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub from: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub to: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub id: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub value: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for TransferSingle {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
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,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "TransferSingle(address,address,address,uint256,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
195u8, 213u8, 129u8, 104u8, 197u8, 174u8, 115u8, 151u8, 115u8, 29u8, 6u8,
61u8, 91u8, 191u8, 61u8, 101u8, 120u8, 84u8, 66u8, 115u8, 67u8, 244u8,
192u8, 131u8, 36u8, 15u8, 122u8, 172u8, 170u8, 45u8, 15u8, 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 {
operator: topics.1,
from: topics.2,
to: topics.3,
id: data.0,
value: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(
alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
),
);
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.id),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.value),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.operator.clone(),
self.from.clone(),
self.to.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <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.operator,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.from,
);
out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.to,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for TransferSingle {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&TransferSingle> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &TransferSingle) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `URI(string,uint256)` and selector `0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b`.
```solidity
event URI(string value, uint256 indexed id);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct URI {
#[allow(missing_docs)]
pub value: alloy::sol_types::private::String,
#[allow(missing_docs)]
pub id: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for URI {
type DataTuple<'a> = (alloy::sol_types::sol_data::String,);
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::Uint<256>,
);
const SIGNATURE: &'static str = "URI(string,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
107u8, 183u8, 255u8, 112u8, 134u8, 25u8, 186u8, 6u8, 16u8, 203u8, 162u8,
149u8, 165u8, 133u8, 146u8, 224u8, 69u8, 29u8, 238u8, 38u8, 34u8, 147u8,
140u8, 135u8, 85u8, 102u8, 118u8, 136u8, 218u8, 243u8, 82u8, 155u8,
]);
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 {
value: data.0,
id: topics.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::String as alloy_sol_types::SolType>::tokenize(
&self.value,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.id.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::Uint<
256,
> as alloy_sol_types::EventTopic>::encode_topic(&self.id);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for URI {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&URI> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &URI) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
/**Constructor`.
```solidity
constructor(address tokenOwner, uint256 tokenId, uint256 supply);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct constructorCall {
#[allow(missing_docs)]
pub tokenOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub tokenId: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub supply: alloy::sol_types::private::primitives::aliases::U256,
}
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<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.tokenOwner, value.tokenId, value.supply)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
tokenOwner: tuple.0,
tokenId: tuple.1,
supply: tuple.2,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolConstructor for constructorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
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.tokenOwner,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.tokenId),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.supply),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `balanceOf(address,uint256)` and selector `0x00fdd58e`.
```solidity
function balanceOf(address account, uint256 id) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct balanceOfCall {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub id: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`balanceOf(address,uint256)`](balanceOfCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct balanceOfReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
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<balanceOfCall> for UnderlyingRustTuple<'_> {
fn from(value: balanceOfCall) -> Self {
(value.account, value.id)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for balanceOfCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
account: tuple.0,
id: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<balanceOfReturn> for UnderlyingRustTuple<'_> {
fn from(value: balanceOfReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for balanceOfReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for balanceOfCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
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 = "balanceOf(address,uint256)";
const SELECTOR: [u8; 4] = [0u8, 253u8, 213u8, 142u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.account,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.id),
)
}
#[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: balanceOfReturn = 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: balanceOfReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `balanceOfBatch(address[],uint256[])` and selector `0x4e1273f4`.
```solidity
function balanceOfBatch(address[] memory accounts, uint256[] memory ids) external view returns (uint256[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct balanceOfBatchCall {
#[allow(missing_docs)]
pub accounts: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
#[allow(missing_docs)]
pub ids: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`balanceOfBatch(address[],uint256[])`](balanceOfBatchCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct balanceOfBatchReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
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<balanceOfBatchCall> for UnderlyingRustTuple<'_> {
fn from(value: balanceOfBatchCall) -> Self {
(value.accounts, value.ids)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for balanceOfBatchCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
accounts: tuple.0,
ids: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
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::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<balanceOfBatchReturn>
for UnderlyingRustTuple<'_> {
fn from(value: balanceOfBatchReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for balanceOfBatchReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for balanceOfBatchCall {
type Parameters<'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 Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>;
type ReturnTuple<'a> = (
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 = "balanceOfBatch(address[],uint256[])";
const SELECTOR: [u8; 4] = [78u8, 18u8, 115u8, 244u8];
#[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.accounts),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self.ids),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Array<
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: balanceOfBatchReturn = 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: balanceOfBatchReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`.
```solidity
function isApprovedForAll(address account, address operator) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct isApprovedForAllCall {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`isApprovedForAll(address,address)`](isApprovedForAllCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct isApprovedForAllReturn {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<isApprovedForAllCall>
for UnderlyingRustTuple<'_> {
fn from(value: isApprovedForAllCall) -> Self {
(value.account, value.operator)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for isApprovedForAllCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
account: tuple.0,
operator: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<isApprovedForAllReturn>
for UnderlyingRustTuple<'_> {
fn from(value: isApprovedForAllReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for isApprovedForAllReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for isApprovedForAllCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type Token<'a> = <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 = "isApprovedForAll(address,address)";
const SELECTOR: [u8; 4] = [233u8, 133u8, 233u8, 197u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.account,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[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: isApprovedForAllReturn = 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: isApprovedForAllReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)` and selector `0x2eb2c2d6`.
```solidity
function safeBatchTransferFrom(address from, address to, uint256[] memory ids, uint256[] memory values, bytes memory data) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct safeBatchTransferFromCall {
#[allow(missing_docs)]
pub from: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub to: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub ids: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
#[allow(missing_docs)]
pub values: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
#[allow(missing_docs)]
pub data: alloy::sol_types::private::Bytes,
}
///Container type for the return parameters of the [`safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)`](safeBatchTransferFromCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct safeBatchTransferFromReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<safeBatchTransferFromCall>
for UnderlyingRustTuple<'_> {
fn from(value: safeBatchTransferFromCall) -> Self {
(value.from, value.to, value.ids, value.values, value.data)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for safeBatchTransferFromCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
from: tuple.0,
to: tuple.1,
ids: tuple.2,
values: tuple.3,
data: tuple.4,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<safeBatchTransferFromReturn>
for UnderlyingRustTuple<'_> {
fn from(value: safeBatchTransferFromReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for safeBatchTransferFromReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl safeBatchTransferFromReturn {
fn _tokenize(
&self,
) -> <safeBatchTransferFromCall as alloy_sol_types::SolCall>::ReturnToken<
'_,
> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for safeBatchTransferFromCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = safeBatchTransferFromReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)";
const SELECTOR: [u8; 4] = [46u8, 178u8, 194u8, 214u8];
#[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.from,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.to,
),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self.ids),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<256>,
> as alloy_sol_types::SolType>::tokenize(&self.values),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.data,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
safeBatchTransferFromReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `safeTransferFrom(address,address,uint256,uint256,bytes)` and selector `0xf242432a`.
```solidity
function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct safeTransferFromCall {
#[allow(missing_docs)]
pub from: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub to: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub id: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub value: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub data: alloy::sol_types::private::Bytes,
}
///Container type for the return parameters of the [`safeTransferFrom(address,address,uint256,uint256,bytes)`](safeTransferFromCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct safeTransferFromReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<safeTransferFromCall>
for UnderlyingRustTuple<'_> {
fn from(value: safeTransferFromCall) -> Self {
(value.from, value.to, value.id, value.value, value.data)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for safeTransferFromCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
from: tuple.0,
to: tuple.1,
id: tuple.2,
value: tuple.3,
data: tuple.4,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<safeTransferFromReturn>
for UnderlyingRustTuple<'_> {
fn from(value: safeTransferFromReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for safeTransferFromReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl safeTransferFromReturn {
fn _tokenize(
&self,
) -> <safeTransferFromCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for safeTransferFromCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = safeTransferFromReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "safeTransferFrom(address,address,uint256,uint256,bytes)";
const SELECTOR: [u8; 4] = [242u8, 66u8, 67u8, 42u8];
#[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.from,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.to,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.id),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.value),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.data,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
safeTransferFromReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465`.
```solidity
function setApprovalForAll(address operator, bool approved) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setApprovalForAllCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub approved: bool,
}
///Container type for the return parameters of the [`setApprovalForAll(address,bool)`](setApprovalForAllCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setApprovalForAllReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bool,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address, bool);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setApprovalForAllCall>
for UnderlyingRustTuple<'_> {
fn from(value: setApprovalForAllCall) -> Self {
(value.operator, value.approved)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for setApprovalForAllCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operator: tuple.0,
approved: tuple.1,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setApprovalForAllReturn>
for UnderlyingRustTuple<'_> {
fn from(value: setApprovalForAllReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for setApprovalForAllReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setApprovalForAllReturn {
fn _tokenize(
&self,
) -> <setApprovalForAllCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setApprovalForAllCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bool,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = setApprovalForAllReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setApprovalForAll(address,bool)";
const SELECTOR: [u8; 4] = [162u8, 44u8, 180u8, 101u8];
#[inline]
fn new<'a>(
tuple: <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.operator,
),
<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
&self.approved,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setApprovalForAllReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`.
```solidity
function supportsInterface(bytes4 interfaceId) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct supportsInterfaceCall {
#[allow(missing_docs)]
pub interfaceId: alloy::sol_types::private::FixedBytes<4>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct supportsInterfaceReturn {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<supportsInterfaceCall>
for UnderlyingRustTuple<'_> {
fn from(value: supportsInterfaceCall) -> Self {
(value.interfaceId,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for supportsInterfaceCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { interfaceId: tuple.0 }
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<supportsInterfaceReturn>
for UnderlyingRustTuple<'_> {
fn from(value: supportsInterfaceReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for supportsInterfaceReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for supportsInterfaceCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "supportsInterface(bytes4)";
const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
4,
> as alloy_sol_types::SolType>::tokenize(&self.interfaceId),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: supportsInterfaceReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: supportsInterfaceReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `uri(uint256)` and selector `0x0e89341c`.
```solidity
function uri(uint256) external view returns (string memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct uriCall(pub alloy::sol_types::private::primitives::aliases::U256);
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`uri(uint256)`](uriCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct uriReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::String,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<uriCall> for UnderlyingRustTuple<'_> {
fn from(value: uriCall) -> Self {
(value.0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for uriCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self(tuple.0)
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<uriReturn> for UnderlyingRustTuple<'_> {
fn from(value: uriReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for uriReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for uriCall {
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 = 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 = "uri(uint256)";
const SELECTOR: [u8; 4] = [14u8, 137u8, 52u8, 28u8];
#[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.0),
)
}
#[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: uriReturn = 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: uriReturn = r.into();
r._0
})
}
}
};
///Container for all the [`SimpleSingleERC1155`](self) function calls.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive()]
pub enum SimpleSingleERC1155Calls {
#[allow(missing_docs)]
balanceOf(balanceOfCall),
#[allow(missing_docs)]
balanceOfBatch(balanceOfBatchCall),
#[allow(missing_docs)]
isApprovedForAll(isApprovedForAllCall),
#[allow(missing_docs)]
safeBatchTransferFrom(safeBatchTransferFromCall),
#[allow(missing_docs)]
safeTransferFrom(safeTransferFromCall),
#[allow(missing_docs)]
setApprovalForAll(setApprovalForAllCall),
#[allow(missing_docs)]
supportsInterface(supportsInterfaceCall),
#[allow(missing_docs)]
uri(uriCall),
}
impl SimpleSingleERC1155Calls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[0u8, 253u8, 213u8, 142u8],
[1u8, 255u8, 201u8, 167u8],
[14u8, 137u8, 52u8, 28u8],
[46u8, 178u8, 194u8, 214u8],
[78u8, 18u8, 115u8, 244u8],
[162u8, 44u8, 180u8, 101u8],
[233u8, 133u8, 233u8, 197u8],
[242u8, 66u8, 67u8, 42u8],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(balanceOf),
::core::stringify!(supportsInterface),
::core::stringify!(uri),
::core::stringify!(safeBatchTransferFrom),
::core::stringify!(balanceOfBatch),
::core::stringify!(setApprovalForAll),
::core::stringify!(isApprovedForAll),
::core::stringify!(safeTransferFrom),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<balanceOfCall as alloy_sol_types::SolCall>::SIGNATURE,
<supportsInterfaceCall as alloy_sol_types::SolCall>::SIGNATURE,
<uriCall as alloy_sol_types::SolCall>::SIGNATURE,
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::SIGNATURE,
<balanceOfBatchCall as alloy_sol_types::SolCall>::SIGNATURE,
<setApprovalForAllCall as alloy_sol_types::SolCall>::SIGNATURE,
<isApprovedForAllCall as alloy_sol_types::SolCall>::SIGNATURE,
<safeTransferFromCall as alloy_sol_types::SolCall>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for SimpleSingleERC1155Calls {
const NAME: &'static str = "SimpleSingleERC1155Calls";
const MIN_DATA_LENGTH: usize = 32usize;
const COUNT: usize = 8usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::balanceOf(_) => {
<balanceOfCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::balanceOfBatch(_) => {
<balanceOfBatchCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::isApprovedForAll(_) => {
<isApprovedForAllCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::safeBatchTransferFrom(_) => {
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::safeTransferFrom(_) => {
<safeTransferFromCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setApprovalForAll(_) => {
<setApprovalForAllCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::supportsInterface(_) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::uri(_) => <uriCall 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<SimpleSingleERC1155Calls>] = &[
{
fn balanceOf(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<balanceOfCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(SimpleSingleERC1155Calls::balanceOf)
}
balanceOf
},
{
fn supportsInterface(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::supportsInterface)
}
supportsInterface
},
{
fn uri(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<uriCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(SimpleSingleERC1155Calls::uri)
}
uri
},
{
fn safeBatchTransferFrom(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::safeBatchTransferFrom)
}
safeBatchTransferFrom
},
{
fn balanceOfBatch(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<balanceOfBatchCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::balanceOfBatch)
}
balanceOfBatch
},
{
fn setApprovalForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<setApprovalForAllCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::setApprovalForAll)
}
setApprovalForAll
},
{
fn isApprovedForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<isApprovedForAllCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::isApprovedForAll)
}
isApprovedForAll
},
{
fn safeTransferFrom(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<safeTransferFromCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Calls::safeTransferFrom)
}
safeTransferFrom
},
];
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<SimpleSingleERC1155Calls>] = &[
{
fn balanceOf(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<balanceOfCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::balanceOf)
}
balanceOf
},
{
fn supportsInterface(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::supportsInterface)
}
supportsInterface
},
{
fn uri(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<uriCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::uri)
}
uri
},
{
fn safeBatchTransferFrom(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::safeBatchTransferFrom)
}
safeBatchTransferFrom
},
{
fn balanceOfBatch(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<balanceOfBatchCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::balanceOfBatch)
}
balanceOfBatch
},
{
fn setApprovalForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<setApprovalForAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::setApprovalForAll)
}
setApprovalForAll
},
{
fn isApprovedForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<isApprovedForAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::isApprovedForAll)
}
isApprovedForAll
},
{
fn safeTransferFrom(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Calls> {
<safeTransferFromCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Calls::safeTransferFrom)
}
safeTransferFrom
},
];
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::balanceOf(inner) => {
<balanceOfCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::balanceOfBatch(inner) => {
<balanceOfBatchCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::isApprovedForAll(inner) => {
<isApprovedForAllCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::safeBatchTransferFrom(inner) => {
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::safeTransferFrom(inner) => {
<safeTransferFromCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setApprovalForAll(inner) => {
<setApprovalForAllCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::supportsInterface(inner) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::uri(inner) => {
<uriCall 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::balanceOf(inner) => {
<balanceOfCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::balanceOfBatch(inner) => {
<balanceOfBatchCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::isApprovedForAll(inner) => {
<isApprovedForAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::safeBatchTransferFrom(inner) => {
<safeBatchTransferFromCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::safeTransferFrom(inner) => {
<safeTransferFromCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setApprovalForAll(inner) => {
<setApprovalForAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::supportsInterface(inner) => {
<supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::uri(inner) => {
<uriCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
}
}
}
///Container for all the [`SimpleSingleERC1155`](self) custom errors.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Debug, PartialEq, Eq, Hash)]
pub enum SimpleSingleERC1155Errors {
#[allow(missing_docs)]
ERC1155InsufficientBalance(ERC1155InsufficientBalance),
#[allow(missing_docs)]
ERC1155InvalidApprover(ERC1155InvalidApprover),
#[allow(missing_docs)]
ERC1155InvalidArrayLength(ERC1155InvalidArrayLength),
#[allow(missing_docs)]
ERC1155InvalidOperator(ERC1155InvalidOperator),
#[allow(missing_docs)]
ERC1155InvalidReceiver(ERC1155InvalidReceiver),
#[allow(missing_docs)]
ERC1155InvalidSender(ERC1155InvalidSender),
#[allow(missing_docs)]
ERC1155MissingApprovalForAll(ERC1155MissingApprovalForAll),
}
impl SimpleSingleERC1155Errors {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[1u8, 168u8, 53u8, 20u8],
[3u8, 222u8, 228u8, 197u8],
[62u8, 49u8, 136u8, 78u8],
[87u8, 244u8, 71u8, 206u8],
[91u8, 5u8, 153u8, 145u8],
[206u8, 211u8, 225u8, 0u8],
[226u8, 55u8, 217u8, 34u8],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(ERC1155InvalidSender),
::core::stringify!(ERC1155InsufficientBalance),
::core::stringify!(ERC1155InvalidApprover),
::core::stringify!(ERC1155InvalidReceiver),
::core::stringify!(ERC1155InvalidArrayLength),
::core::stringify!(ERC1155InvalidOperator),
::core::stringify!(ERC1155MissingApprovalForAll),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<ERC1155InvalidSender as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155InvalidApprover as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155InvalidOperator as alloy_sol_types::SolError>::SIGNATURE,
<ERC1155MissingApprovalForAll as alloy_sol_types::SolError>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for SimpleSingleERC1155Errors {
const NAME: &'static str = "SimpleSingleERC1155Errors";
const MIN_DATA_LENGTH: usize = 32usize;
const COUNT: usize = 7usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::ERC1155InsufficientBalance(_) => {
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155InvalidApprover(_) => {
<ERC1155InvalidApprover as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155InvalidArrayLength(_) => {
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155InvalidOperator(_) => {
<ERC1155InvalidOperator as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155InvalidReceiver(_) => {
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155InvalidSender(_) => {
<ERC1155InvalidSender as alloy_sol_types::SolError>::SELECTOR
}
Self::ERC1155MissingApprovalForAll(_) => {
<ERC1155MissingApprovalForAll 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<SimpleSingleERC1155Errors>] = &[
{
fn ERC1155InvalidSender(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidSender as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidSender)
}
ERC1155InvalidSender
},
{
fn ERC1155InsufficientBalance(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InsufficientBalance)
}
ERC1155InsufficientBalance
},
{
fn ERC1155InvalidApprover(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidApprover as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidApprover)
}
ERC1155InvalidApprover
},
{
fn ERC1155InvalidReceiver(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidReceiver)
}
ERC1155InvalidReceiver
},
{
fn ERC1155InvalidArrayLength(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidArrayLength)
}
ERC1155InvalidArrayLength
},
{
fn ERC1155InvalidOperator(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidOperator as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidOperator)
}
ERC1155InvalidOperator
},
{
fn ERC1155MissingApprovalForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155MissingApprovalForAll as alloy_sol_types::SolError>::abi_decode_raw(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155MissingApprovalForAll)
}
ERC1155MissingApprovalForAll
},
];
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<SimpleSingleERC1155Errors>] = &[
{
fn ERC1155InvalidSender(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidSender as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidSender)
}
ERC1155InvalidSender
},
{
fn ERC1155InsufficientBalance(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InsufficientBalance)
}
ERC1155InsufficientBalance
},
{
fn ERC1155InvalidApprover(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidApprover as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidApprover)
}
ERC1155InvalidApprover
},
{
fn ERC1155InvalidReceiver(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidReceiver)
}
ERC1155InvalidReceiver
},
{
fn ERC1155InvalidArrayLength(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidArrayLength)
}
ERC1155InvalidArrayLength
},
{
fn ERC1155InvalidOperator(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155InvalidOperator as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155InvalidOperator)
}
ERC1155InvalidOperator
},
{
fn ERC1155MissingApprovalForAll(
data: &[u8],
) -> alloy_sol_types::Result<SimpleSingleERC1155Errors> {
<ERC1155MissingApprovalForAll as alloy_sol_types::SolError>::abi_decode_raw_validate(
data,
)
.map(SimpleSingleERC1155Errors::ERC1155MissingApprovalForAll)
}
ERC1155MissingApprovalForAll
},
];
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::ERC1155InsufficientBalance(inner) => {
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155InvalidApprover(inner) => {
<ERC1155InvalidApprover as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155InvalidArrayLength(inner) => {
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155InvalidOperator(inner) => {
<ERC1155InvalidOperator as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155InvalidReceiver(inner) => {
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155InvalidSender(inner) => {
<ERC1155InvalidSender as alloy_sol_types::SolError>::abi_encoded_size(
inner,
)
}
Self::ERC1155MissingApprovalForAll(inner) => {
<ERC1155MissingApprovalForAll 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::ERC1155InsufficientBalance(inner) => {
<ERC1155InsufficientBalance as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155InvalidApprover(inner) => {
<ERC1155InvalidApprover as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155InvalidArrayLength(inner) => {
<ERC1155InvalidArrayLength as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155InvalidOperator(inner) => {
<ERC1155InvalidOperator as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155InvalidReceiver(inner) => {
<ERC1155InvalidReceiver as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155InvalidSender(inner) => {
<ERC1155InvalidSender as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
Self::ERC1155MissingApprovalForAll(inner) => {
<ERC1155MissingApprovalForAll as alloy_sol_types::SolError>::abi_encode_raw(
inner,
out,
)
}
}
}
}
///Container for all the [`SimpleSingleERC1155`](self) events.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Debug, PartialEq, Eq, Hash)]
pub enum SimpleSingleERC1155Events {
#[allow(missing_docs)]
ApprovalForAll(ApprovalForAll),
#[allow(missing_docs)]
TransferBatch(TransferBatch),
#[allow(missing_docs)]
TransferSingle(TransferSingle),
#[allow(missing_docs)]
URI(URI),
}
impl SimpleSingleERC1155Events {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same 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]] = &[
[
23u8, 48u8, 126u8, 171u8, 57u8, 171u8, 97u8, 7u8, 232u8, 137u8, 152u8,
69u8, 173u8, 61u8, 89u8, 189u8, 150u8, 83u8, 242u8, 0u8, 242u8, 32u8,
146u8, 4u8, 137u8, 202u8, 43u8, 89u8, 55u8, 105u8, 108u8, 49u8,
],
[
74u8, 57u8, 220u8, 6u8, 212u8, 192u8, 219u8, 198u8, 75u8, 112u8, 175u8,
144u8, 253u8, 105u8, 138u8, 35u8, 58u8, 81u8, 138u8, 165u8, 208u8, 126u8,
89u8, 93u8, 152u8, 59u8, 140u8, 5u8, 38u8, 200u8, 247u8, 251u8,
],
[
107u8, 183u8, 255u8, 112u8, 134u8, 25u8, 186u8, 6u8, 16u8, 203u8, 162u8,
149u8, 165u8, 133u8, 146u8, 224u8, 69u8, 29u8, 238u8, 38u8, 34u8, 147u8,
140u8, 135u8, 85u8, 102u8, 118u8, 136u8, 218u8, 243u8, 82u8, 155u8,
],
[
195u8, 213u8, 129u8, 104u8, 197u8, 174u8, 115u8, 151u8, 115u8, 29u8, 6u8,
61u8, 91u8, 191u8, 61u8, 101u8, 120u8, 84u8, 66u8, 115u8, 67u8, 244u8,
192u8, 131u8, 36u8, 15u8, 122u8, 172u8, 170u8, 45u8, 15u8, 98u8,
],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(ApprovalForAll),
::core::stringify!(TransferBatch),
::core::stringify!(URI),
::core::stringify!(TransferSingle),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<ApprovalForAll as alloy_sol_types::SolEvent>::SIGNATURE,
<TransferBatch as alloy_sol_types::SolEvent>::SIGNATURE,
<URI as alloy_sol_types::SolEvent>::SIGNATURE,
<TransferSingle as alloy_sol_types::SolEvent>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 32usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 32usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolEventInterface for SimpleSingleERC1155Events {
const NAME: &'static str = "SimpleSingleERC1155Events";
const COUNT: usize = 4usize;
fn decode_raw_log(
topics: &[alloy_sol_types::Word],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
match topics.first().copied() {
Some(<ApprovalForAll as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<ApprovalForAll as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::ApprovalForAll)
}
Some(<TransferBatch as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<TransferBatch as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::TransferBatch)
}
Some(<TransferSingle as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<TransferSingle as alloy_sol_types::SolEvent>::decode_raw_log(
topics,
data,
)
.map(Self::TransferSingle)
}
Some(<URI as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<URI as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::URI)
}
_ => {
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 SimpleSingleERC1155Events {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
match self {
Self::ApprovalForAll(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::TransferBatch(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::TransferSingle(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::URI(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
}
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
match self {
Self::ApprovalForAll(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::TransferBatch(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::TransferSingle(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::URI(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
}
}
}
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`SimpleSingleERC1155`](self) contract instance.
See the [wrapper's documentation](`SimpleSingleERC1155Instance`) 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,
) -> SimpleSingleERC1155Instance<P, N> {
SimpleSingleERC1155Instance::<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,
tokenOwner: alloy::sol_types::private::Address,
tokenId: alloy::sol_types::private::primitives::aliases::U256,
supply: alloy::sol_types::private::primitives::aliases::U256,
) -> impl ::core::future::Future<
Output = alloy_contract::Result<SimpleSingleERC1155Instance<P, N>>,
> {
SimpleSingleERC1155Instance::<
P,
N,
>::deploy(__provider, tokenOwner, tokenId, supply)
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper 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,
tokenOwner: alloy::sol_types::private::Address,
tokenId: alloy::sol_types::private::primitives::aliases::U256,
supply: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::RawCallBuilder<P, N> {
SimpleSingleERC1155Instance::<
P,
N,
>::deploy_builder(__provider, tokenOwner, tokenId, supply)
}
/**A [`SimpleSingleERC1155`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`SimpleSingleERC1155`](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 SimpleSingleERC1155Instance<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 SimpleSingleERC1155Instance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("SimpleSingleERC1155Instance").field(&self.address).finish()
}
}
/// Instantiation and getters/setters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SimpleSingleERC1155Instance<P, N> {
/**Creates a new wrapper around an on-chain [`SimpleSingleERC1155`](self) contract instance.
See the [wrapper's documentation](`SimpleSingleERC1155Instance`) for more details.*/
#[inline]
pub const fn new(
address: alloy_sol_types::private::Address,
__provider: P,
) -> Self {
Self {
address,
provider: __provider,
_network: ::core::marker::PhantomData,
}
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub async fn deploy(
__provider: P,
tokenOwner: alloy::sol_types::private::Address,
tokenId: alloy::sol_types::private::primitives::aliases::U256,
supply: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::Result<SimpleSingleERC1155Instance<P, N>> {
let call_builder = Self::deploy_builder(
__provider,
tokenOwner,
tokenId,
supply,
);
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,
tokenOwner: alloy::sol_types::private::Address,
tokenId: alloy::sol_types::private::primitives::aliases::U256,
supply: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
__provider,
[
&BYTECODE[..],
&alloy_sol_types::SolConstructor::abi_encode(
&constructorCall {
tokenOwner,
tokenId,
supply,
},
)[..],
]
.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> SimpleSingleERC1155Instance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> SimpleSingleERC1155Instance<P, N> {
SimpleSingleERC1155Instance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SimpleSingleERC1155Instance<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 [`balanceOf`] function.
pub fn balanceOf(
&self,
account: alloy::sol_types::private::Address,
id: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, balanceOfCall, N> {
self.call_builder(&balanceOfCall { account, id })
}
///Creates a new call builder for the [`balanceOfBatch`] function.
pub fn balanceOfBatch(
&self,
accounts: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
ids: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
) -> alloy_contract::SolCallBuilder<&P, balanceOfBatchCall, N> {
self.call_builder(
&balanceOfBatchCall {
accounts,
ids,
},
)
}
///Creates a new call builder for the [`isApprovedForAll`] function.
pub fn isApprovedForAll(
&self,
account: alloy::sol_types::private::Address,
operator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, isApprovedForAllCall, N> {
self.call_builder(
&isApprovedForAllCall {
account,
operator,
},
)
}
///Creates a new call builder for the [`safeBatchTransferFrom`] function.
pub fn safeBatchTransferFrom(
&self,
from: alloy::sol_types::private::Address,
to: alloy::sol_types::private::Address,
ids: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
values: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U256,
>,
data: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, safeBatchTransferFromCall, N> {
self.call_builder(
&safeBatchTransferFromCall {
from,
to,
ids,
values,
data,
},
)
}
///Creates a new call builder for the [`safeTransferFrom`] function.
pub fn safeTransferFrom(
&self,
from: alloy::sol_types::private::Address,
to: alloy::sol_types::private::Address,
id: alloy::sol_types::private::primitives::aliases::U256,
value: alloy::sol_types::private::primitives::aliases::U256,
data: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, safeTransferFromCall, N> {
self.call_builder(
&safeTransferFromCall {
from,
to,
id,
value,
data,
},
)
}
///Creates a new call builder for the [`setApprovalForAll`] function.
pub fn setApprovalForAll(
&self,
operator: alloy::sol_types::private::Address,
approved: bool,
) -> alloy_contract::SolCallBuilder<&P, setApprovalForAllCall, N> {
self.call_builder(
&setApprovalForAllCall {
operator,
approved,
},
)
}
///Creates a new call builder for the [`supportsInterface`] function.
pub fn supportsInterface(
&self,
interfaceId: alloy::sol_types::private::FixedBytes<4>,
) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> {
self.call_builder(
&supportsInterfaceCall {
interfaceId,
},
)
}
///Creates a new call builder for the [`uri`] function.
pub fn uri(
&self,
_0: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, uriCall, N> {
self.call_builder(&uriCall(_0))
}
}
/// Event filters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SimpleSingleERC1155Instance<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 [`ApprovalForAll`] event.
pub fn ApprovalForAll_filter(
&self,
) -> alloy_contract::Event<&P, ApprovalForAll, N> {
self.event_filter::<ApprovalForAll>()
}
///Creates a new event filter for the [`TransferBatch`] event.
pub fn TransferBatch_filter(
&self,
) -> alloy_contract::Event<&P, TransferBatch, N> {
self.event_filter::<TransferBatch>()
}
///Creates a new event filter for the [`TransferSingle`] event.
pub fn TransferSingle_filter(
&self,
) -> alloy_contract::Event<&P, TransferSingle, N> {
self.event_filter::<TransferSingle>()
}
///Creates a new event filter for the [`URI`] event.
pub fn URI_filter(&self) -> alloy_contract::Event<&P, URI, N> {
self.event_filter::<URI>()
}
}
}