UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

406 lines (405 loc) 48.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "BasicTreasury", "sourceName": "contracts/presets/BasicTreasury.sol", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "TREASURY_RESOURCE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "resource_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__BasicTreasury_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "string", "name": "resource_", "type": "string" }, { "internalType": "string", "name": "relatedExpertPanelName_", "type": "string" } ], "name": "__BasicTreasury_initAndSetDeps", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "member_", "type": "address" }, { "internalType": "string", "name": "permission_", "type": "string" } ], "name": "checkPermission", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" } ], "name": "getERC20Balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInjector", "outputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNativeBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResource", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getResourceRecords", "outputs": [ { "components": [ { "internalType": "string", "name": "existingRole", "type": "string" }, { "internalType": "string", "name": "resource", "type": "string" }, { "internalType": "string[]", "name": "permissions", "type": "string[]" } ], "internalType": "struct IDAOIntegration.ResourceRecords[]", "name": "records_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "permissionManager", "outputs": [ { "internalType": "contract IPermissionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "sendERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "name": "sendNative", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "registry_", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "setDependencies", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "injector_", "type": "address" } ], "name": "setInjector", "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": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b62000115565b600054610100900460ff16156200005a5760405162461bcd60e51b81526004016200005190620000b3565b60405180910390fd5b60005460ff90811614620000b1576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a89162000105565b60405180910390a15b565b60208082528101620000ff81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000ff565b60805161267e6200014d600039600081816104010152818161044a01528181610560015281816105a0015261061c015261267e6000f3fe6080604052600436106101185760003560e01c806388a9d554116100a0578063c936aca611610064578063c936aca6146102db578063cc7a2049146102fb578063d4b93efa14610328578063d8ad4e1c14610348578063f13bdd4d1461036857600080fd5b806388a9d554146102535780638cb941cc146102665780638f975a6414610286578063b588d225146102a6578063bb65dc83146102c657600080fd5b80634f1ef286116100e75780634f1ef286146101c957806352d1902d146101dc5780635c60da1b146101fe5780636680756614610213578063691304511461023357600080fd5b806301ffc9a7146101245780633659cfe61461015a5780633aa91f841461017c5780633e3b5b191461019e57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004611898565b61038a565b60405161015191906118c3565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046118f6565b6103f7565b005b34801561018857600080fd5b506101916104c8565b604051610151919061196d565b3480156101aa57600080fd5b506000805160206125e2833981519152545b6040516101519190611987565b61017a6101d7366004611a90565b610556565b3480156101e857600080fd5b506101f161060f565b6040516101519190611aee565b34801561020a57600080fd5b506101bc61066c565b34801561021f57600080fd5b5061017a61022e366004611b0d565b61067b565b34801561023f57600080fd5b5061017a61024e366004611a90565b6106c1565b34801561025f57600080fd5b50476101f1565b34801561027257600080fd5b5061017a6102813660046118f6565b610766565b34801561029257600080fd5b5061017a6102a1366004611b40565b610784565b3480156102b257600080fd5b506101f16102c13660046118f6565b6107bb565b3480156102d257600080fd5b5061019161082b565b3480156102e757600080fd5b5061017a6102f6366004611b90565b6108bd565b34801561030757600080fd5b5060025461031b906001600160a01b031681565b6040516101519190611c4e565b34801561033457600080fd5b5061017a610343366004611c5c565b6109c1565b34801561035457600080fd5b50610144610363366004611a90565b610a93565b34801561037457600080fd5b5061037d610b11565b6040516101519190611dc7565b60006001600160e01b031982166363c8929f60e01b14806103bb57506001600160e01b0319821663f13bdd4d60e01b145b806103d657506001600160e01b031982166336e447a160e21b145b806103f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104485760405162461bcd60e51b815260040161043f90611e21565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661047a611087565b6001600160a01b0316146104a05760405162461bcd60e51b815260040161043f90611e78565b6104a9816110a3565b604080516000808252602082019092526104c59183919061119c565b50565b600180546104d590611e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461050190611e9e565b801561054e5780601f106105235761010080835404028352916020019161054e565b820191906000526020600020905b81548152906001019060200180831161053157829003601f168201915b505050505081565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361059e5760405162461bcd60e51b815260040161043f90611e21565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105d0611087565b6001600160a01b0316146105f65760405162461bcd60e51b815260040161043f90611e78565b6105ff826110a3565b61060b8282600161119c565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106595760405162461bcd60e51b815260040161043f90611f22565b5060008051602061260283398151915290565b6000610676611087565b905090565b6106a26040518060400160405280600681526020016555504441544560d01b81525061127e565b61060b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83836112a4565b6106c96112b8565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190611f3d565b600280546001600160a01b0319166001600160a01b039290921691909117905550336000805160206125e2833981519152555050565b61076e6112b8565b6104c5816000805160206125e283398151915255565b6107ab6040518060400160405280600681526020016555504441544560d01b81525061127e565b6107b68383836112a4565b505050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906107ea903090600401611987565b602060405180830381865afa158015610807573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190611f69565b60606001805461083a90611e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461086690611e9e565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b600054610100900460ff16158080156108dd5750600054600160ff909116105b806108f75750303b1580156108f7575060005460ff166001145b6109135760405162461bcd60e51b815260040161043f90611fd3565b6000805460ff191660011790558015610936576000805461ff0019166101001790555b6040805160008152602081019091526109509085906106c1565b610966846000805160206125e283398151915255565b610970838361130c565b80156109bb576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906109b290600190611ff7565b60405180910390a15b50505050565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a175760405162461bcd60e51b815260040161043f90611fd3565b6000805460ff191660011790558015610a3a576000805461ff0019166101001790555b610a44838361130c565b80156107b6576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610a8690600190611ff7565b60405180910390a1505050565b600254604051633ca8e36d60e11b81526000916001600160a01b031690637951c6da90610ac9908690600190879060040161207f565b602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a91906120c6565b9392505050565b60408051600380825260808201909252606091816020015b610b4d60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610b295790505090506000610bc660405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b815250815250611325565b90506040518060600160405280610c6660038054610be390611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0f90611e9e565b8015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505061139e565b600081518110610c7857610c786120e7565b6020026020010151815260200160018054610c9290611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cbe90611e9e565b8015610d0b5780601f10610ce057610100808354040283529160200191610d0b565b820191906000526020600020905b815481529060010190602001808311610cee57829003601f168201915b505050505081526020018281525082600081518110610d2c57610d2c6120e7565b60200260200101819052506000610d6e60405180602001604052806040518060400160405280600681526020016511561411549560d21b8152508152506113d2565b90506040518060600160405280610e0e60038054610d8b90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610db790611e9e565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050611416565b600081518110610e2057610e206120e7565b6020026020010151815260200160018054610e3a90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6690611e9e565b8015610eb35780601f10610e8857610100808354040283529160200191610eb3565b820191906000526020600020905b815481529060010190602001808311610e9657829003601f168201915b505050505081526020018281525083600181518110610ed457610ed46120e7565b60200260200101819052506040518060600160405280610f7d60038054610efa90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2690611e9e565b8015610f735780601f10610f4857610100808354040283529160200191610f73565b820191906000526020600020905b815481529060010190602001808311610f5657829003601f168201915b5050505050611437565b600081518110610f8f57610f8f6120e7565b6020026020010151815260200160018054610fa990611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd590611e9e565b80156110225780601f10610ff757610100808354040283529160200191611022565b820191906000526020600020905b81548152906001019060200180831161100557829003601f168201915b5050505050815260200161106160405180602001604052806040518060400160405280600681526020016555504441544560d01b8152508152506113d2565b81525083600281518110611077576110776120e7565b6020026020010181905250505090565b600080516020612602833981519152546001600160a01b031690565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa1580156110ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611111919061211c565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561114e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111729190611f3d565b9050336001600160a01b0382161461060b5760405162461bcd60e51b815260040161043f90612180565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111cf576107b683611458565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611229575060408051601f3d908101601f1916820190925261122691810190611f69565b60015b6112455760405162461bcd60e51b815260040161043f906121d9565b60008051602061260283398151915281146112725760405162461bcd60e51b815260040161043f9061222d565b506107b68383836114ae565b6112883382610a93565b6104c55760405162461bcd60e51b815260040161043f9061226f565b6107b66001600160a01b03841683836114d3565b60006112d06000805160206125e28339815191525490565b90506001600160a01b03811615806112f057506001600160a01b03811633145b6104c55760405162461bcd60e51b815260040161043f906122b1565b60016113188382612359565b5060036107b68282612359565b6040805160028082526060828101909352816020015b606081526020019060019003908161133b57505082518151919250908290600090611368576113686120e7565b602090810291909101015281600160200201518160018151811061138e5761138e6120e7565b6020026020010181905250919050565b60606103f16040518060200160405280846040516020016113bf919061243b565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b60608152602001906001900390816113e95750508251815191925090829060009061138e5761138e6120e7565b60606103f16040518060200160405280846040516020016113bf919061245d565b60606103f16040518060200160405280846040516020016113bf9190612476565b6001600160a01b0381163b61147f5760405162461bcd60e51b815260040161043f906124d7565b60008051602061260283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114b783611598565b6000825111806114c45750805b156107b6576109bb83836115d8565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0384160161158457600080836001600160a01b031683604051611512906124e7565b60006040518083038185875af1925050503d806000811461154f576040519150601f19603f3d011682016040523d82523d6000602084013e611554565b606091505b509150915061157c82826040518060600160405280603581526020016125ad603591396115fd565b505050505050565b6107b66001600160a01b0384168383611616565b6115a181611458565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b0a83836040518060600160405280602781526020016126226027913961166c565b6060831561160c575081610b0a565b610b0a83836116e4565b6107b68363a9059cbb60e01b84846040516024016116359291906124f0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261170e565b6060600080856001600160a01b031685604051611689919061250b565b600060405180830381855af49150503d80600081146116c4576040519150601f19603f3d011682016040523d82523d6000602084013e6116c9565b606091505b50915091506116da868383876117a0565b9695505050505050565b8151156116f45781518083602001fd5b8060405162461bcd60e51b815260040161043f919061196d565b6000611763826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117f19092919063ffffffff16565b905080516000148061178457508080602001905181019061178491906120c6565b6107b65760405162461bcd60e51b815260040161043f9061255a565b606083156117df5782516000036117d8576001600160a01b0385163b6117d85760405162461bcd60e51b815260040161043f9061259c565b50816117e9565b6117e983836116e4565b949350505050565b60606117e9848460008585600080866001600160a01b03168587604051611818919061250b565b60006040518083038185875af1925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915061186b878383876117a0565b979650505050505050565b6001600160e01b031981165b81146104c557600080fd5b80356103f181611876565b6000602082840312156118ad576118ad600080fd5b60006117e9848461188d565b8015155b82525050565b602081016103f182846118b9565b60006001600160a01b0382166103f1565b611882816118d1565b80356103f1816118e2565b60006020828403121561190b5761190b600080fd5b60006117e984846118eb565b60005b8381101561193257818101518382015260200161191a565b50506000910152565b6000611945825190565b80845260208401935061195c818560208601611917565b601f01601f19169290920192915050565b60208082528101610b0a818461193b565b6118bd816118d1565b602081016103f1828461197e565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156119d1576119d1611995565b6040525050565b60006119e360405190565b90506119ef82826119ab565b919050565b600067ffffffffffffffff821115611a0e57611a0e611995565b601f19601f83011660200192915050565b82818337506000910152565b6000611a3e611a39846119f4565b6119d8565b905082815260208101848484011115611a5957611a59600080fd5b611a64848285611a1f565b509392505050565b600082601f830112611a8057611a80600080fd5b81356117e9848260208601611a2b565b60008060408385031215611aa657611aa6600080fd5b6000611ab285856118eb565b925050602083013567ffffffffffffffff811115611ad257611ad2600080fd5b611ade85828601611a6c565b9150509250929050565b806118bd565b602081016103f18284611ae8565b80611882565b80356103f181611afc565b60008060408385031215611b2357611b23600080fd5b6000611b2f85856118eb565b9250506020611ade85828601611b02565b600080600060608486031215611b5857611b58600080fd5b6000611b6486866118eb565b9350506020611b75868287016118eb565b9250506040611b8686828701611b02565b9150509250925092565b600080600060608486031215611ba857611ba8600080fd5b6000611bb486866118eb565b935050602084013567ffffffffffffffff811115611bd457611bd4600080fd5b611be086828701611a6c565b925050604084013567ffffffffffffffff811115611c0057611c00600080fd5b611b8686828701611a6c565b60006103f16001600160a01b038316611c23565b90565b6001600160a01b031690565b60006103f182611c0c565b60006103f182611c2f565b6118bd81611c3a565b602081016103f18284611c45565b60008060408385031215611c7257611c72600080fd5b823567ffffffffffffffff811115611c8c57611c8c600080fd5b611ab285828601611a6c565b6000610b0a838361193b565b60200190565b6000611cb4825190565b80845260208401935083602082028501611cce8560200190565b60005b84811015611d025783830388528151611cea8482611c98565b93505060208201602098909801979150600101611cd1565b50909695505050505050565b8051606080845260009190840190611d26828261193b565b91505060208301518482036020860152611d40828261193b565b91505060408301518482036040860152611d5a8282611caa565b95945050505050565b6000610b0a8383611d0e565b6000611d79825190565b80845260208401935083602082028501611d938560200190565b60005b84811015611d025783830388528151611daf8482611d63565b93505060208201602098909801979150600101611d96565b60208082528101610b0a8184611d6f565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290505b60400190565b602080825281016103f181611dd8565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b60208201529050611e1b565b602080825281016103f181611e31565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611eb257607f821691505b602082108103611ec457611ec4611e88565b50919050565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060208201529050611e1b565b602080825281016103f181611eca565b80516103f1816118e2565b600060208284031215611f5257611f52600080fd5b60006117e98484611f32565b80516103f181611afc565b600060208284031215611f7e57611f7e600080fd5b60006117e98484611f5e565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529050611e1b565b602080825281016103f181611f8a565b600060ff82166103f1565b6118bd81611fe3565b602081016103f18284611fee565b6000815461201281611e9e565b808552602085019450600182168015612032576001811461204857612076565b60ff198316865260208215150286019350612076565b60008581526020902060005b8381101561207057815488820152600190910190602001612054565b87019450505b50505092915050565b6060810161208d828661197e565b818103602083015261209f8185612005565b90508181036040830152611d5a818461193b565b801515611882565b80516103f1816120b3565b6000602082840312156120db576120db600080fd5b60006117e984846120bb565b634e487b7160e01b600052603260045260246000fd5b60006103f1826118d1565b611882816120fd565b80516103f181612108565b60006020828403121561213157612131600080fd5b60006117e98484612111565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b60208201529050611e1b565b602080825281016103f18161213d565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b60208201529050611e1b565b602080825281016103f181612190565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b60208201529050611e1b565b602080825281016103f1816121e9565b601c8152602081017f54726561737572793a207065726d697373696f6e2064656e6965642e0000000081529050611ca4565b602080825281016103f18161223d565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f7200000000000081529050611ca4565b602080825281016103f18161227f565b60006103f1611c208381565b6122d6836122c1565b815460001960089490940293841b1916921b91909117905550565b60006107b68184846122cd565b8181101561060b576123116000826122f1565b6001016122fe565b601f8211156107b6576000818152602090206020601f850104810160208510156123405750805b6123526020601f8601048301826122fe565b5050505050565b815167ffffffffffffffff81111561237357612373611995565b61237d8254611e9e565b612388828285612319565b506020601f8211600181146123bd57600083156123a55750848201515b600019600885021c1981166002850217855550612352565b600084815260208120601f198516915b828110156123ed57878501518255602094850194600190920191016123cd565b508482101561240a5783870151600019601f87166008021c191681555b50505050600202600101905550565b6000612423825190565b612431818560208601611917565b9290920192915050565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e016103f18183612419565b6d2220a7a2bc3832b93a2937b6329d60911b8152612450565b6d2220a7ab37ba34b733a937b6329d60911b8152612450565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529050611e1b565b602080825281016103f18161248f565b6119ef81611c20565b604081016124fe828561197e565b610b0a6020830184611ae8565b6103f18183612419565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611e1b565b602080825281016103f181612515565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611ca4565b602080825281016103f18161256a56fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642e3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122058d0395906092152c695d175188508a236193a7bf57ad0f88e8ced73e96fe13864736f6c63430008140033", "deployedBytecode": "0x6080604052600436106101185760003560e01c806388a9d554116100a0578063c936aca611610064578063c936aca6146102db578063cc7a2049146102fb578063d4b93efa14610328578063d8ad4e1c14610348578063f13bdd4d1461036857600080fd5b806388a9d554146102535780638cb941cc146102665780638f975a6414610286578063b588d225146102a6578063bb65dc83146102c657600080fd5b80634f1ef286116100e75780634f1ef286146101c957806352d1902d146101dc5780635c60da1b146101fe5780636680756614610213578063691304511461023357600080fd5b806301ffc9a7146101245780633659cfe61461015a5780633aa91f841461017c5780633e3b5b191461019e57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004611898565b61038a565b60405161015191906118c3565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046118f6565b6103f7565b005b34801561018857600080fd5b506101916104c8565b604051610151919061196d565b3480156101aa57600080fd5b506000805160206125e2833981519152545b6040516101519190611987565b61017a6101d7366004611a90565b610556565b3480156101e857600080fd5b506101f161060f565b6040516101519190611aee565b34801561020a57600080fd5b506101bc61066c565b34801561021f57600080fd5b5061017a61022e366004611b0d565b61067b565b34801561023f57600080fd5b5061017a61024e366004611a90565b6106c1565b34801561025f57600080fd5b50476101f1565b34801561027257600080fd5b5061017a6102813660046118f6565b610766565b34801561029257600080fd5b5061017a6102a1366004611b40565b610784565b3480156102b257600080fd5b506101f16102c13660046118f6565b6107bb565b3480156102d257600080fd5b5061019161082b565b3480156102e757600080fd5b5061017a6102f6366004611b90565b6108bd565b34801561030757600080fd5b5060025461031b906001600160a01b031681565b6040516101519190611c4e565b34801561033457600080fd5b5061017a610343366004611c5c565b6109c1565b34801561035457600080fd5b50610144610363366004611a90565b610a93565b34801561037457600080fd5b5061037d610b11565b6040516101519190611dc7565b60006001600160e01b031982166363c8929f60e01b14806103bb57506001600160e01b0319821663f13bdd4d60e01b145b806103d657506001600160e01b031982166336e447a160e21b145b806103f157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104485760405162461bcd60e51b815260040161043f90611e21565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661047a611087565b6001600160a01b0316146104a05760405162461bcd60e51b815260040161043f90611e78565b6104a9816110a3565b604080516000808252602082019092526104c59183919061119c565b50565b600180546104d590611e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461050190611e9e565b801561054e5780601f106105235761010080835404028352916020019161054e565b820191906000526020600020905b81548152906001019060200180831161053157829003601f168201915b505050505081565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361059e5760405162461bcd60e51b815260040161043f90611e21565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105d0611087565b6001600160a01b0316146105f65760405162461bcd60e51b815260040161043f90611e78565b6105ff826110a3565b61060b8282600161119c565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106595760405162461bcd60e51b815260040161043f90611f22565b5060008051602061260283398151915290565b6000610676611087565b905090565b6106a26040518060400160405280600681526020016555504441544560d01b81525061127e565b61060b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83836112a4565b6106c96112b8565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107309190611f3d565b600280546001600160a01b0319166001600160a01b039290921691909117905550336000805160206125e2833981519152555050565b61076e6112b8565b6104c5816000805160206125e283398151915255565b6107ab6040518060400160405280600681526020016555504441544560d01b81525061127e565b6107b68383836112a4565b505050565b6040516370a0823160e01b81526000906001600160a01b038316906370a08231906107ea903090600401611987565b602060405180830381865afa158015610807573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f19190611f69565b60606001805461083a90611e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461086690611e9e565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b600054610100900460ff16158080156108dd5750600054600160ff909116105b806108f75750303b1580156108f7575060005460ff166001145b6109135760405162461bcd60e51b815260040161043f90611fd3565b6000805460ff191660011790558015610936576000805461ff0019166101001790555b6040805160008152602081019091526109509085906106c1565b610966846000805160206125e283398151915255565b610970838361130c565b80156109bb576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906109b290600190611ff7565b60405180910390a15b50505050565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a175760405162461bcd60e51b815260040161043f90611fd3565b6000805460ff191660011790558015610a3a576000805461ff0019166101001790555b610a44838361130c565b80156107b6576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610a8690600190611ff7565b60405180910390a1505050565b600254604051633ca8e36d60e11b81526000916001600160a01b031690637951c6da90610ac9908690600190879060040161207f565b602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a91906120c6565b9392505050565b60408051600380825260808201909252606091816020015b610b4d60405180606001604052806060815260200160608152602001606081525090565b815260200190600190039081610b295790505090506000610bc660405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b815250815250611325565b90506040518060600160405280610c6660038054610be390611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0f90611e9e565b8015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505061139e565b600081518110610c7857610c786120e7565b6020026020010151815260200160018054610c9290611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cbe90611e9e565b8015610d0b5780601f10610ce057610100808354040283529160200191610d0b565b820191906000526020600020905b815481529060010190602001808311610cee57829003601f168201915b505050505081526020018281525082600081518110610d2c57610d2c6120e7565b60200260200101819052506000610d6e60405180602001604052806040518060400160405280600681526020016511561411549560d21b8152508152506113d2565b90506040518060600160405280610e0e60038054610d8b90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610db790611e9e565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050611416565b600081518110610e2057610e206120e7565b6020026020010151815260200160018054610e3a90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6690611e9e565b8015610eb35780601f10610e8857610100808354040283529160200191610eb3565b820191906000526020600020905b815481529060010190602001808311610e9657829003601f168201915b505050505081526020018281525083600181518110610ed457610ed46120e7565b60200260200101819052506040518060600160405280610f7d60038054610efa90611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2690611e9e565b8015610f735780601f10610f4857610100808354040283529160200191610f73565b820191906000526020600020905b815481529060010190602001808311610f5657829003601f168201915b5050505050611437565b600081518110610f8f57610f8f6120e7565b6020026020010151815260200160018054610fa990611e9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd590611e9e565b80156110225780601f10610ff757610100808354040283529160200191611022565b820191906000526020600020905b81548152906001019060200180831161100557829003601f168201915b5050505050815260200161106160405180602001604052806040518060400160405280600681526020016555504441544560d01b8152508152506113d2565b81525083600281518110611077576110776120e7565b6020026020010181905250505090565b600080516020612602833981519152546001600160a01b031690565b60025460408051631082599b60e31b815290516000926001600160a01b031691638412ccd89160048083019260209291908290030181865afa1580156110ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611111919061211c565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561114e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111729190611f3d565b9050336001600160a01b0382161461060b5760405162461bcd60e51b815260040161043f90612180565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111cf576107b683611458565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611229575060408051601f3d908101601f1916820190925261122691810190611f69565b60015b6112455760405162461bcd60e51b815260040161043f906121d9565b60008051602061260283398151915281146112725760405162461bcd60e51b815260040161043f9061222d565b506107b68383836114ae565b6112883382610a93565b6104c55760405162461bcd60e51b815260040161043f9061226f565b6107b66001600160a01b03841683836114d3565b60006112d06000805160206125e28339815191525490565b90506001600160a01b03811615806112f057506001600160a01b03811633145b6104c55760405162461bcd60e51b815260040161043f906122b1565b60016113188382612359565b5060036107b68282612359565b6040805160028082526060828101909352816020015b606081526020019060019003908161133b57505082518151919250908290600090611368576113686120e7565b602090810291909101015281600160200201518160018151811061138e5761138e6120e7565b6020026020010181905250919050565b60606103f16040518060200160405280846040516020016113bf919061243b565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b60608152602001906001900390816113e95750508251815191925090829060009061138e5761138e6120e7565b60606103f16040518060200160405280846040516020016113bf919061245d565b60606103f16040518060200160405280846040516020016113bf9190612476565b6001600160a01b0381163b61147f5760405162461bcd60e51b815260040161043f906124d7565b60008051602061260283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114b783611598565b6000825111806114c45750805b156107b6576109bb83836115d8565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0384160161158457600080836001600160a01b031683604051611512906124e7565b60006040518083038185875af1925050503d806000811461154f576040519150601f19603f3d011682016040523d82523d6000602084013e611554565b606091505b509150915061157c82826040518060600160405280603581526020016125ad603591396115fd565b505050505050565b6107b66001600160a01b0384168383611616565b6115a181611458565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b0a83836040518060600160405280602781526020016126226027913961166c565b6060831561160c575081610b0a565b610b0a83836116e4565b6107b68363a9059cbb60e01b84846040516024016116359291906124f0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261170e565b6060600080856001600160a01b031685604051611689919061250b565b600060405180830381855af49150503d80600081146116c4576040519150601f19603f3d011682016040523d82523d6000602084013e6116c9565b606091505b50915091506116da868383876117a0565b9695505050505050565b8151156116f45781518083602001fd5b8060405162461bcd60e51b815260040161043f919061196d565b6000611763826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117f19092919063ffffffff16565b905080516000148061178457508080602001905181019061178491906120c6565b6107b65760405162461bcd60e51b815260040161043f9061255a565b606083156117df5782516000036117d8576001600160a01b0385163b6117d85760405162461bcd60e51b815260040161043f9061259c565b50816117e9565b6117e983836116e4565b949350505050565b60606117e9848460008585600080866001600160a01b03168587604051611818919061250b565b60006040518083038185875af1925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915061186b878383876117a0565b979650505050505050565b6001600160e01b031981165b81146104c557600080fd5b80356103f181611876565b6000602082840312156118ad576118ad600080fd5b60006117e9848461188d565b8015155b82525050565b602081016103f182846118b9565b60006001600160a01b0382166103f1565b611882816118d1565b80356103f1816118e2565b60006020828403121561190b5761190b600080fd5b60006117e984846118eb565b60005b8381101561193257818101518382015260200161191a565b50506000910152565b6000611945825190565b80845260208401935061195c818560208601611917565b601f01601f19169290920192915050565b60208082528101610b0a818461193b565b6118bd816118d1565b602081016103f1828461197e565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156119d1576119d1611995565b6040525050565b60006119e360405190565b90506119ef82826119ab565b919050565b600067ffffffffffffffff821115611a0e57611a0e611995565b601f19601f83011660200192915050565b82818337506000910152565b6000611a3e611a39846119f4565b6119d8565b905082815260208101848484011115611a5957611a59600080fd5b611a64848285611a1f565b509392505050565b600082601f830112611a8057611a80600080fd5b81356117e9848260208601611a2b565b60008060408385031215611aa657611aa6600080fd5b6000611ab285856118eb565b925050602083013567ffffffffffffffff811115611ad257611ad2600080fd5b611ade85828601611a6c565b9150509250929050565b806118bd565b602081016103f18284611ae8565b80611882565b80356103f181611afc565b60008060408385031215611b2357611b23600080fd5b6000611b2f85856118eb565b9250506020611ade85828601611b02565b600080600060608486031215611b5857611b58600080fd5b6000611b6486866118eb565b9350506020611b75868287016118eb565b9250506040611b8686828701611b02565b9150509250925092565b600080600060608486031215611ba857611ba8600080fd5b6000611bb486866118eb565b935050602084013567ffffffffffffffff811115611bd457611bd4600080fd5b611be086828701611a6c565b925050604084013567ffffffffffffffff811115611c0057611c00600080fd5b611b8686828701611a6c565b60006103f16001600160a01b038316611c23565b90565b6001600160a01b031690565b60006103f182611c0c565b60006103f182611c2f565b6118bd81611c3a565b602081016103f18284611c45565b60008060408385031215611c7257611c72600080fd5b823567ffffffffffffffff811115611c8c57611c8c600080fd5b611ab285828601611a6c565b6000610b0a838361193b565b60200190565b6000611cb4825190565b80845260208401935083602082028501611cce8560200190565b60005b84811015611d025783830388528151611cea8482611c98565b93505060208201602098909801979150600101611cd1565b50909695505050505050565b8051606080845260009190840190611d26828261193b565b91505060208301518482036020860152611d40828261193b565b91505060408301518482036040860152611d5a8282611caa565b95945050505050565b6000610b0a8383611d0e565b6000611d79825190565b80845260208401935083602082028501611d938560200190565b60005b84811015611d025783830388528151611daf8482611d63565b93505060208201602098909801979150600101611d96565b60208082528101610b0a8184611d6f565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290505b60400190565b602080825281016103f181611dd8565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b60208201529050611e1b565b602080825281016103f181611e31565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611eb257607f821691505b602082108103611ec457611ec4611e88565b50919050565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060208201529050611e1b565b602080825281016103f181611eca565b80516103f1816118e2565b600060208284031215611f5257611f52600080fd5b60006117e98484611f32565b80516103f181611afc565b600060208284031215611f7e57611f7e600080fd5b60006117e98484611f5e565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529050611e1b565b602080825281016103f181611f8a565b600060ff82166103f1565b6118bd81611fe3565b602081016103f18284611fee565b6000815461201281611e9e565b808552602085019450600182168015612032576001811461204857612076565b60ff198316865260208215150286019350612076565b60008581526020902060005b8381101561207057815488820152600190910190602001612054565b87019450505b50505092915050565b6060810161208d828661197e565b818103602083015261209f8185612005565b90508181036040830152611d5a818461193b565b801515611882565b80516103f1816120b3565b6000602082840312156120db576120db600080fd5b60006117e984846120bb565b634e487b7160e01b600052603260045260246000fd5b60006103f1826118d1565b611882816120fd565b80516103f181612108565b60006020828403121561213157612131600080fd5b60006117e98484612111565b60288152602081017f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f208152673ab833b930b2329760c11b60208201529050611e1b565b602080825281016103f18161213d565b602e8152602081017f45524331393637557067726164653a206e657720696d706c656d656e7461746981526d6f6e206973206e6f74205555505360901b60208201529050611e1b565b602080825281016103f181612190565b60298152602081017f45524331393637557067726164653a20756e737570706f727465642070726f788152681a58589b195555525160ba1b60208201529050611e1b565b602080825281016103f1816121e9565b601c8152602081017f54726561737572793a207065726d697373696f6e2064656e6965642e0000000081529050611ca4565b602080825281016103f18161223d565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f7200000000000081529050611ca4565b602080825281016103f18161227f565b60006103f1611c208381565b6122d6836122c1565b815460001960089490940293841b1916921b91909117905550565b60006107b68184846122cd565b8181101561060b576123116000826122f1565b6001016122fe565b601f8211156107b6576000818152602090206020601f850104810160208510156123405750805b6123526020601f8601048301826122fe565b5050505050565b815167ffffffffffffffff81111561237357612373611995565b61237d8254611e9e565b612388828285612319565b506020601f8211600181146123bd57600083156123a55750848201515b600019600885021c1981166002850217855550612352565b600084815260208120601f198516915b828110156123ed57878501518255602094850194600190920191016123cd565b508482101561240a5783870151600019601f87166008021c191681555b50505050600202600101905550565b6000612423825190565b612431818560208601611917565b9290920192915050565b6d2220a7a6b2b6b132b92937b6329d60911b81525b600e016103f18183612419565b6d2220a7a2bc3832b93a2937b6329d60911b8152612450565b6d2220a7ab37ba34b733a937b6329d60911b8152612450565b602d8152602081017f455243313936373a206e657720696d706c656d656e746174696f6e206973206e81526c1bdd08184818dbdb9d1c9858dd609a1b60208201529050611e1b565b602080825281016103f18161248f565b6119ef81611c20565b604081016124fe828561197e565b610b0a6020830184611ae8565b6103f18183612419565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611e1b565b602080825281016103f181612515565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529050611ca4565b602080825281016103f18161256a56fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642e3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122058d0395906092152c695d175188508a236193a7bf57ad0f88e8ced73e96fe13864736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }