@kodex-data/evm-contracts
Version:
This is a package that provides utilities and modules for Ethereum Virtual Machine (EVM) contracts.
1,211 lines (1,206 loc) • 472 kB
JavaScript
import { utils, Contract, ContractFactory } from 'ethers';
/* Autogenerated file. Do not edit manually. */
const _abi$A = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "previousAdminRole",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "newAdminRole",
type: "bytes32",
},
],
name: "RoleAdminChanged",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
],
name: "RoleGranted",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
],
name: "RoleRevoked",
type: "event",
},
{
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
],
name: "getRoleAdmin",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "grantRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "hasRole",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4",
},
],
name: "supportsInterface",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
];
class AccessControl__factory {
static createInterface() {
return new utils.Interface(_abi$A);
}
static connect(address, signerOrProvider) {
return new Contract(address, _abi$A, signerOrProvider);
}
}
AccessControl__factory.abi = _abi$A;
/* Autogenerated file. Do not edit manually. */
const _abi$z = [
{
inputs: [
{
internalType: "string",
name: "_name",
type: "string",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "string",
name: "action",
type: "string",
},
{
indexed: false,
internalType: "address",
name: "moderator",
type: "address",
},
{
indexed: false,
internalType: "bytes",
name: "current",
type: "bytes",
},
{
indexed: false,
internalType: "bytes",
name: "parent",
type: "bytes",
},
{
indexed: false,
internalType: "uint256",
name: "index",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "time",
type: "uint256",
},
],
name: "DataEvent",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "moderator",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "timestamp",
type: "uint256",
},
],
name: "ModeratorAdded",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "moderator",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "timestamp",
type: "uint256",
},
],
name: "ModeratorRemoved",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "previousAdminRole",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "newAdminRole",
type: "bytes32",
},
],
name: "RoleAdminChanged",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
],
name: "RoleGranted",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address",
},
],
name: "RoleRevoked",
type: "event",
},
{
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "ROLE_MODERATOR",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
name: "_data",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "_hash",
type: "bytes",
},
],
name: "addData",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "moderator",
type: "address",
},
],
name: "addModerator",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes[]",
name: "_hashes",
type: "bytes[]",
},
],
name: "addMultiple",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "createDate",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "deployedBlock",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "index",
type: "uint256",
},
],
name: "getData",
outputs: [
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getDataHeight",
outputs: [
{
internalType: "uint256",
name: "dataHeight",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getManifest",
outputs: [
{
internalType: "bytes",
name: "manifest",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getModerators",
outputs: [
{
internalType: "address[]",
name: "moderators",
type: "address[]",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "getModeratorsCount",
outputs: [
{
internalType: "uint256",
name: "moderatorCount",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
],
name: "getRoleAdmin",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "grantRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "_hash",
type: "bytes",
},
],
name: "hasData",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "hasRole",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "moderator",
type: "address",
},
],
name: "isModerator",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "index",
type: "uint256",
},
],
name: "removeData",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "moderator",
type: "address",
},
],
name: "removeModerator",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "manifest",
type: "bytes",
},
],
name: "setManifest",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4",
},
],
name: "supportsInterface",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "index",
type: "uint256",
},
{
internalType: "bytes",
name: "_hash",
type: "bytes",
},
],
name: "updateData",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
];
const _bytecode$9 = "0x6080604052600060055543600855426009553480156200001e57600080fd5b50604051620021bb380380620021bb833981016040819052620000419162000559565b6200005c336001620000b360201b62000c7f1790919060201c565b506200006a600033620000d3565b620000967f58c8e11deab7910e89bf18a1168c6e6ef28748f00fd3094549459f01cec5e0aa33620000e3565b8051620000ab906007906020840190620004b3565b5050620007ae565b6000620000ca836001600160a01b03841662000111565b90505b92915050565b620000df828262000163565b5050565b600082815260208190526040902060010154620001008162000203565b6200010c838362000163565b505050565b60008181526001830160205260408120546200015a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620000cd565b506000620000cd565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000df576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001bf3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6200020f813362000212565b50565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000df576200025181620002ab60201b62000c9b1760201c565b6200026783602062000cad620002be821b17811c565b6040516020016200027a9291906200060d565b60408051601f198184030181529082905262461bcd60e51b8252620002a29160040162000686565b60405180910390fd5b6060620000cd6001600160a01b03831660145b60606000620002cf836002620006d6565b620002dc906002620006bb565b6001600160401b038111156200030257634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156200032d576020820181803683370190505b509050600360fc1b816000815181106200035757634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200039557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000620003bb846002620006d6565b620003c8906001620006bb565b90505b600181111562000462576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106200040c57634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106200043157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936200045a816200072b565b9050620003cb565b508315620000ca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620002a2565b828054620004c19062000745565b90600052602060002090601f016020900481019282620004e5576000855562000530565b82601f106200050057805160ff191683800117855562000530565b8280016001018555821562000530579182015b828111156200053057825182559160200191906001019062000513565b506200053e92915062000542565b5090565b5b808211156200053e576000815560010162000543565b6000602082840312156200056b578081fd5b81516001600160401b038082111562000582578283fd5b818401915084601f83011262000596578283fd5b815181811115620005ab57620005ab62000798565b604051601f8201601f19908116603f01168101908382118183101715620005d657620005d662000798565b81604052828152876020848701011115620005ef578586fd5b62000602836020830160208801620006f8565b979650505050505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835162000647816017850160208801620006f8565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200067a816028840160208801620006f8565b01602801949350505050565b6020815260008251806020840152620006a7816040850160208701620006f8565b601f01601f19169190910160400192915050565b60008219821115620006d157620006d162000782565b500190565b6000816000190483118215151615620006f357620006f362000782565b500290565b60005b8381101562000715578181015183820152602001620006fb565b8381111562000725576000848401525b50505050565b6000816200073d576200073d62000782565b506000190190565b600181811c908216806200075a57607f821691505b602082108114156200077c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6119fd80620007be6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806383017d40116100de578063b1b41ad011610097578063d488a07011610071578063d488a07014610355578063d547741f14610368578063ec08f0ba1461037b578063fa6f39361461038457600080fd5b8063b1b41ad014610327578063b532e4cb1461032f578063bc0fd6d71461034257600080fd5b806383017d40146102a957806385a6e7e0146102d3578063869d785f146102e657806391d14854146102f9578063a217fddf1461030c578063a94840bb1461031457600080fd5b8063248a9ca31161014b57806336568abe1161012557806336568abe146102725780633f4226721461028557806374ac35301461028d57806382ea7bfe146102a057600080fd5b8063248a9ca3146102255780632f2ff15d146102485780632fc3f1941461025d57600080fd5b80630178fe3f1461019357806301ffc9a7146101bc5780630288f0fb146101df57806303a7f8251461020257806306fdde031461021557806307c40eae1461021d575b600080fd5b6101a66101a1366004611425565b610397565b6040516101b391906116e4565b60405180910390f35b6101cf6101ca366004611468565b610439565b60405190151581526020016101b3565b6101f46000805160206119a883398151915281565b6040519081526020016101b3565b6101a6610210366004611425565b610470565b6101a661050a565b6005546101f4565b6101f4610233366004611425565b60009081526020819052604090206001015490565b61025b61025636600461143d565b610517565b005b610265610541565b6040516101b39190611697565b61025b61028036600461143d565b610552565b6101f46105d5565b61025b61029b366004611363565b6105e1565b6101f460085481565b6102bc6102b7366004611490565b610665565b6040805192151583526020830191909152016101b3565b61025b6102e1366004611490565b61071a565b61025b6102f4366004611349565b61080b565b6101cf61030736600461143d565b610881565b6101f4600081565b61025b610322366004611425565b6108aa565b6101a661095f565b61025b61033d366004611349565b6109f1565b6102bc610350366004611490565b610a5b565b61025b6103633660046114cb565b610b45565b61025b61037636600461143d565b610c4d565b6101f460095481565b6101cf610392366004611349565b610c72565b60008181526006602052604090208054606091906103b490611905565b80601f01602080910402602001604051908101604052809291908181526020018280546103e090611905565b801561042d5780601f106104025761010080835404028352916020019161042d565b820191906000526020600020905b81548152906001019060200180831161041057829003601f168201915b50505050509050919050565b60006001600160e01b03198216637965db0b60e01b148061046a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6006602052600090815260409020805461048990611905565b80601f01602080910402602001604051908101604052809291908181526020018280546104b590611905565b80156105025780601f106104d757610100808354040283529160200191610502565b820191906000526020600020905b8154815290600101906020018083116104e557829003601f168201915b505050505081565b6007805461048990611905565b60008281526020819052604090206001015461053281610e8f565b61053c8383610e9c565b505050565b606061054d6001610f20565b905090565b6001600160a01b03811633146105c75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105d18282610f2d565b5050565b600061054d6001610f92565b6000805160206119a88339815191526105f981610e8f565b60005b825181101561053c57600083828151811061062757634e487b7160e01b600052603260045260246000fd5b60200260200101519050600061063c82610a5b565b509050806106505761064d82610665565b50505b5050808061065d90611940565b9150506105fc565b6000806000805160206119a883398151915261068081610e8f565b600061068b85610a5b565b5090508061070b57600554600090815260066020908152604090912086516106b5928801906111f3565b506005805490819060006106c883611940565b91905055506000805160206119888339815191526106e33390565b87600384426040516106f99594939291906117fe565b60405180910390a19093509150610714565b60055490935091505b50915091565b6000805160206119a883398151915261073281610e8f565b60006004805461074190611905565b80601f016020809104026020016040519081016040528092919081815260200182805461076d90611905565b80156107ba5780601f1061078f576101008083540402835291602001916107ba565b820191906000526020600020905b81548152906001019060200180831161079d57829003601f168201915b505086519394506107d6936004935060208801925090506111f3565b50600080516020611988833981519152336004836000426040516107fe9594939291906117ba565b60405180910390a1505050565b600061081681610e8f565b61082e6000805160206119a883398151915283610552565b610839600183610f9c565b50816001600160a01b03167f2fe5f48942b148782f3a6b85eaa72434774a478d6b642e515c0fc0f805a8b99b4260405161087591815260200190565b60405180910390a25050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6000805160206119a88339815191526108c281610e8f565b60408051600060208201520160408051601f1981840301815282825280516020918201206000868152600690925291902090916108ff91906115b3565b6040518091039020146105d1576000805160206119888339815191523360008481526006602052604090819020905161094092919060039087904290611763565b60405180910390a160008281526006602052604081206105d191611277565b60606004805461096e90611905565b80601f016020809104026020016040519081016040528092919081815260200182805461099a90611905565b80156109e75780601f106109bc576101008083540402835291602001916109e7565b820191906000526020600020905b8154815290600101906020018083116109ca57829003601f168201915b5050505050905090565b60006109fc81610e8f565b610a07600183610c7f565b50610a206000805160206119a883398151915283610517565b816001600160a01b03167f7100a86ecf94bef5c32984e74b6847c32372ee773dd408da230116e910b2f2744260405161087591815260200190565b60008060005b600554811015610b395760008181526006602052604081208054610a8490611905565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab090611905565b8015610afd5780601f10610ad257610100808354040283529160200191610afd565b820191906000526020600020905b815481529060010190602001808311610ae057829003601f168201915b50505050509050848051906020012081805190602001201415610b265750600194909350915050565b5080610b3181611940565b915050610a61565b50600093849350915050565b6000805160206119a8833981519152610b5d81610e8f565b60008381526006602052604081208054610b7690611905565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba290611905565b8015610bef5780601f10610bc457610100808354040283529160200191610bef565b820191906000526020600020905b815481529060010190602001808311610bd257829003601f168201915b50505060008781526006602090815260409091208751949550610c199490935090870191506111f3565b506000805160206119888339815191523384838742604051610c3f9594939291906116f7565b60405180910390a150505050565b600082815260208190526040902060010154610c6881610e8f565b61053c8383610f2d565b600061046a600183610fb1565b6000610c94836001600160a01b038416610fd3565b9392505050565b606061046a6001600160a01b03831660145b60606000610cbc836002611888565b610cc7906002611870565b67ffffffffffffffff811115610ced57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d17576020820181803683370190505b509050600360fc1b81600081518110610d4057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d7d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610da1846002611888565b610dac906001611870565b90505b6001811115610e40576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610dee57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610e1257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610e39816118ee565b9050610daf565b508315610c945760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105be565b610e998133611022565b50565b610ea68282610881565b6105d1576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610edc3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60606000610c948361107b565b610f378282610881565b156105d1576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061046a825490565b6000610c94836001600160a01b0384166110d6565b6001600160a01b03811660009081526001830160205260408120541515610c94565b600081815260018301602052604081205461101a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561046a565b50600061046a565b61102c8282610881565b6105d15761103981610c9b565b611044836020610cad565b604051602001611055929190611622565b60408051601f198184030181529082905262461bcd60e51b82526105be916004016116e4565b60608160000180548060200260200160405190810160405280929190818152602001828054801561042d57602002820191906000526020600020905b8154815260200190600101908083116110b75750505050509050919050565b600081815260018301602052604081205480156111e95760006110fa6001836118a7565b855490915060009061110e906001906118a7565b905081811461118f57600086600001828154811061113c57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061116d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806111ae57634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061046a565b600091505061046a565b8280546111ff90611905565b90600052602060002090601f0160209004810192826112215760008555611267565b82601f1061123a57805160ff1916838001178555611267565b82800160010185558215611267579182015b8281111561126757825182559160200191906001019061124c565b506112739291506112ad565b5090565b50805461128390611905565b6000825580601f10611293575050565b601f016020900490600052602060002090810190610e9991905b5b8082111561127357600081556001016112ae565b80356001600160a01b03811681146112d957600080fd5b919050565b600082601f8301126112ee578081fd5b813567ffffffffffffffff81111561130857611308611971565b61131b601f8201601f191660200161183f565b81815284602083860101111561132f578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121561135a578081fd5b610c94826112c2565b60006020808385031215611375578182fd5b823567ffffffffffffffff8082111561138c578384fd5b818501915085601f83011261139f578384fd5b8135818111156113b1576113b1611971565b8060051b6113c085820161183f565b8281528581019085870183870188018b10156113da578889fd5b8893505b84841015611417578035868111156113f457898afd5b6114028c8a838b01016112de565b845250600193909301929187019187016113de565b509998505050505050505050565b600060208284031215611436578081fd5b5035919050565b6000806040838503121561144f578081fd5b8235915061145f602084016112c2565b90509250929050565b600060208284031215611479578081fd5b81356001600160e01b031981168114610c94578182fd5b6000602082840312156114a1578081fd5b813567ffffffffffffffff8111156114b7578182fd5b6114c3848285016112de565b949350505050565b600080604083850312156114dd578182fd5b82359150602083013567ffffffffffffffff8111156114fa578182fd5b611506858286016112de565b9150509250929050565b600081518084526115288160208601602086016118be565b601f01601f19169290920160200192915050565b6000815461154981611905565b808552602060018381168015611566576001811461157a576115a8565b60ff198516888401526040880195506115a8565b866000528260002060005b858110156115a05781548a8201860152908301908401611585565b890184019650505b505050505092915050565b60008083546115c181611905565b600182811680156115d957600181146115ea57611616565b60ff19841687528287019450611616565b8786526020808720875b8581101561160d5781548a8201529084019082016115f4565b50505082870194505b50929695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161165a8160178501602088016118be565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161168b8160288401602088016118be565b01602801949350505050565b6020808252825182820181905260009190848201906040850190845b818110156116d85783516001600160a01b0316835292840192918401916001016116b3565b50909695505050505050565b602081526000610c946020830184611510565b60c0808252600790820152661d591c185d195960ca1b60e08201526001600160a01b03861660208201526101006040820181905260009061173a81840188611510565b9050828103606084015261174e8187611510565b6080840195909552505060a001529392505050565b60c0808252600790820152661c995b5bdd995960ca1b60e08201526001600160a01b0386166020820152610100604082018190526000906117a68184018861153c565b9050828103606084015261174e818761153c565b60c0808252600890820152671b585b9a59995cdd60c21b60e08201526001600160a01b03861660208201526101006040820181905260009061173a8184018861153c565b60c080825260059082015264185919195960da1b60e08201526001600160a01b0386166020820152610100604082018190526000906117a681840188611510565b604051601f8201601f1916810167ffffffffffffffff8111828210171561186857611868611971565b604052919050565b600082198211156118835761188361195b565b500190565b60008160001904831182151516156118a2576118a261195b565b500290565b6000828210156118b9576118b961195b565b500390565b60005b838110156118d95781810151838201526020016118c1565b838111156118e8576000848401525b50505050565b6000816118fd576118fd61195b565b506000190190565b600181811c9082168061191957607f821691505b6020821081141561193a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119545761195461195b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe7e618e13fca5c5429bfab6e0538714bd4ab64b9a1c053e3368e176922d6176e858c8e11deab7910e89bf18a1168c6e6ef28748f00fd3094549459f01cec5e0aaa26469706673582212200661761b223e94f1971ab5bad3e97e73906c4d499d5379d079d03899815d1ad764736f6c63430008040033";
const isSuperArgs$9 = (xs) => xs.length > 1;
class ByteStore__factory extends ContractFactory {
constructor(...args) {
if (isSuperArgs$9(args)) {
super(...args);
}
else {
super(_abi$z, _bytecode$9, args[0]);
}
}
deploy(_name, overrides) {
return super.deploy(_name, overrides || {});
}
getDeployTransaction(_name, overrides) {
return super.getDeployTransaction(_name, overrides || {});
}
attach(address) {
return super.attach(address);
}
connect(signer) {
return super.connect(signer);
}
static createInterface() {
return new utils.Interface(_abi$z);
}
static connect(address, signerOrProvider) {
return new Contract(address, _abi$z, signerOrProvider);
}
}
ByteStore__factory.bytecode = _bytecode$9;
ByteStore__factory.abi = _abi$z;
/* Autogenerated file. Do not edit manually. */
const _abi$y = [
{
inputs: [],
name: "Empty",
type: "error",
},
{
inputs: [],
name: "OutOfBounds",
type: "error",
},
];
const _bytecode$8 = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092480b17e1a167cc223b4f35407ad44da2bd6ac65c335ff6a1373c5749015cc964736f6c63430008040033";
const isSuperArgs$8 = (xs) => xs.length > 1;
class DoubleEndedQueue__factory extends ContractFactory {
constructor(...args) {
if (isSuperArgs$8(args)) {
super(...args);
}
else {
super(_abi$y, _bytecode$8, args[0]);
}
}
deploy(overrides) {
return super.deploy(overrides || {});
}
getDeployTransaction(overrides) {
return super.getDeployTransaction(overrides || {});
}
attach(address) {
return super.attach(address);
}
connect(signer) {
return super.connect(signer);
}
static createInterface() {
return new utils.Interface(_abi$y);
}
static connect(address, signerOrProvider) {
return new Contract(address, _abi$y, signerOrProvider);
}
}
DoubleEndedQueue__factory.bytecode = _bytecode$8;
DoubleEndedQueue__factory.abi = _abi$y;
/* Autogenerated file. Do not edit manually. */
const _abi$x = [
{
inputs: [
{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4",
},
],
name: "supportsInterface",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
];
class ERC165__factory {
static createInterface() {
return new utils.Interface(_abi$x);
}
static connect(address, signerOrProvider) {
return new Contract(address, _abi$x, signerOrProvider);
}
}
ERC165__factory.abi = _abi$x;
/* Autogenerated file. Do not edit manually. */
const _abi$w = [
{
inputs: [
{
internalType: "string",
name: "name_",
type: "string",
},
{
internalType: "string",
name: "symbol_",
type: "string",
},
],
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Transfer",
type: "event",
},
{
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "decimals",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "subtractedValue",
type: "uint256",
},
],
name: "decreaseAllowance",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "addedValue",
type: "uint256",
},
],
name: "increaseAllowance",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "symbol",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "from",
type: "address",
},
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
];
const _bytecode$7 = "0x60806040523480156200001157600080fd5b5060405162000ae038038062000ae08339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b600181811c908216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610855806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061076d565b60405180910390f35b6100df6100da366004610744565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610709565b61024a565b604051601281526020016100c3565b6100df610131366004610744565b61026e565b6100f36101443660046106b6565b6001600160a01b031660009081526020819052604090205490565b6100b6610290565b6100df610175366004610744565b61029f565b6100df610188366004610744565b61031f565b6100f361019b3660046106d7565b61032d565b6060600380546101af906107e4565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107e4565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b600033610240818585610358565b5060019392505050565b60003361025885828561047c565b6102638585856104f6565b506001949350505050565b600033610240818585610281838361032d565b61028b91906107c0565b610358565b6060600480546101af906107e4565b600033816102ad828661032d565b9050838110156103125760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102638286868403610358565b6000336102408185856104f6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610309565b6001600160a01b03821661041b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610309565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610488848461032d565b905060001981146104f057818110156104e35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610309565b6104f08484848403610358565b50505050565b6001600160a01b03831661055a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647