UNPKG

@credenza-web3/contracts

Version:

Credenza Contracts

704 lines (703 loc) 43.2 kB
{ "_format": "hh-sol-artifact-1", "contractName": "CredenzaTestToken", "sourceName": "contracts/tokens/CredenzaTestToken.sol", "abi": [ { "inputs": [], "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": "contractAddress", "type": "address" } ], "name": "addAvailableCurrencyTokenContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "requestedAmount", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "buyWithEther", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "requestedAmount", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "currencyTokenContract", "type": "address" } ], "name": "buyWithToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "requestedAmount", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "buyWithToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearOwners", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "getAvailableCurrencyTokenContractsList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBeneficiaryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDefaultCurrencyTokenContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDescription", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getPriceEther", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getPriceFiat", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getPriceToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVersion", "outputs": [ { "internalType": "string", "name": "version", "type": "string" } ], "stateMutability": "pure", "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": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "isAvailableCurrencyTokenContract", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "removeAvailableCurrencyTokenContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "addr", "type": "address" } ], "name": "setBeneficiaryAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenContract", "type": "address" } ], "name": "setDefaultCurrencyTokenContractAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "setDescription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setPriceEther", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setPriceFiat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setPriceToken", "outputs": [], "stateMutability": "nonpayable", "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" } ], "bytecode": "0x608060405234801562000010575f80fd5b506040518060400160405280601381526020017f43726564656e7a6120546573742056616c7565000000000000000000000000008152506040518060400160405280600481526020016310d4915160e21b815250816003908162000075919062000240565b50600462000084828262000240565b50505062000098336200009e60201b60201c565b62000308565b6006541580620000bc5750335f9081526005602052604090205460ff165b620001185760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff166200019d576001600160a01b0381165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790555b50565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001c957607f821691505b602082108103620001e857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200023b575f81815260208120601f850160051c81016020861015620002165750805b601f850160051c820191505b81811015620002375782815560010162000222565b5050505b505050565b81516001600160401b038111156200025c576200025c620001a0565b62000274816200026d8454620001b4565b84620001ee565b602080601f831160018114620002aa575f8415620002925750858301515b5f19600386901b1c1916600185901b17855562000237565b5f85815260208120601f198616915b82811015620002da57888601518255948401946001909101908401620002b9565b5085821015620002f857878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b611a5d80620003165f395ff3fe608060405260043610610212575f3560e01c80637065cb481161011e578063a457c2d7116100a8578063d1eff8951161006d578063d1eff89514610659578063d36223f114610676578063dd62ed3e14610690578063e1461f12146106af578063ec6be06e146106da575f80fd5b8063a457c2d71461059a578063a9059cbb146105b9578063adfadad3146105d8578063b33a599f14610603578063b68de97414610622575f80fd5b806380dc439e116100ee57806380dc439e1461052157806388d0f86a1461053457806390c3f38f1461055357806395d89b4114610572578063a0e67e2b14610586575f80fd5b80637065cb481461048e57806370a08231146104ad578063724e5c17146104e15780638003e27f14610500575f80fd5b806323b872dd1161019f5780633a932dba1161016f5780633a932dba146103fe5780633de4fdc81461041d57806340c10f191461043c5780635260f5e61461045b578063578680be1461046f575f80fd5b806323b872dd146103865780632f54bf6e146103a5578063313ce567146103c457806339509351146103df575f80fd5b8063173825d9116101e5578063173825d9146102e5578063177ed0f31461030657806318160ddd1461033f5780631a092541146103535780631abe7cb314610367575f80fd5b806306fdde0314610216578063095ea7b3146102405780630d8e6e2c1461026f57806316bef596146102b4575b5f80fd5b348015610221575f80fd5b5061022a6106f9565b6040516102379190611446565b60405180910390f35b34801561024b575f80fd5b5061025f61025a3660046114a5565b610789565b6040519015158152602001610237565b34801561027a575f80fd5b5060408051808201909152601981527f43726564656e7a6154657374546f6b656e207620302e312e3000000000000000602082015261022a565b3480156102bf575f80fd5b50600b546001600160a01b03165b6040516001600160a01b039091168152602001610237565b3480156102f0575f80fd5b506103046102ff3660046114cf565b6107a2565b005b348015610311575f80fd5b506103316103203660046114f1565b5f908152600a602052604090205490565b604051908152602001610237565b34801561034a575f80fd5b50600254610331565b34801561035e575f80fd5b5061022a61085c565b348015610372575f80fd5b50610304610381366004611508565b61086b565b348015610391575f80fd5b5061025f6103a0366004611528565b6108ab565b3480156103b0575f80fd5b5061025f6103bf3660046114cf565b6108ce565b3480156103cf575f80fd5b5060405160068152602001610237565b3480156103ea575f80fd5b5061025f6103f93660046114a5565b6108eb565b348015610409575f80fd5b506103046104183660046114cf565b61090c565b348015610428575f80fd5b506103046104373660046114cf565b61095b565b348015610447575f80fd5b506103046104563660046114a5565b6109ef565b348015610466575f80fd5b50610304610a12565b34801561047a575f80fd5b50610304610489366004611508565b610ab7565b348015610499575f80fd5b506103046104a83660046114cf565b610af7565b3480156104b8575f80fd5b506103316104c73660046114cf565b6001600160a01b03165f9081526020819052604090205490565b3480156104ec575f80fd5b506103046104fb366004611566565b610b98565b34801561050b575f80fd5b50610514610bd5565b60405161023791906115ad565b61030461052f3660046115f9565b610c34565b34801561053f575f80fd5b5061030461054e366004611508565b610c70565b34801561055e575f80fd5b5061030461056d366004611643565b610cb0565b34801561057d575f80fd5b5061022a610ceb565b348015610591575f80fd5b50610514610cfa565b3480156105a5575f80fd5b5061025f6105b43660046114a5565b610d58565b3480156105c4575f80fd5b5061025f6105d33660046114a5565b610dd2565b3480156105e3575f80fd5b506103316105f23660046114f1565b5f9081526009602052604090205490565b34801561060e575f80fd5b5061030461061d3660046114cf565b610ddf565b34801561062d575f80fd5b5061025f61063c3660046114cf565b6001600160a01b03165f908152600c602052604090205460ff1690565b348015610664575f80fd5b50600e546001600160a01b03166102cd565b348015610681575f80fd5b5061030461052f3660046115f9565b34801561069b575f80fd5b506103316106aa3660046116ee565b610e9f565b3480156106ba575f80fd5b506103316106c93660046114f1565b5f9081526008602052604090205490565b3480156106e5575f80fd5b506103046106f43660046114cf565b610ec9565b60606003805461070890611725565b80601f016020809104026020016040519081016040528092919081815260200182805461073490611725565b801561077f5780601f106107565761010080835404028352916020019161077f565b820191905f5260205f20905b81548152906001019060200180831161076257829003601f168201915b5050505050905090565b5f33610796818585610f1a565b60019150505b92915050565b60065415806107b557506107b5336108ce565b6107da5760405162461bcd60e51b81526004016107d19061175d565b60405180910390fd5b6107e3816108ce565b61082f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016107d1565b6001600160a01b0381165f908152600560205260409020805460ff1916905561085960068261103d565b50565b60606007805461070890611725565b600654158061087e575061087e336108ce565b61089a5760405162461bcd60e51b81526004016107d19061175d565b5f9182526008602052604090912055565b5f336108b8858285611141565b6108c38585856111b9565b506001949350505050565b6001600160a01b03165f9081526005602052604090205460ff1690565b5f336107968185856108fd8383610e9f565b61090791906117b3565b610f1a565b600654158061091f575061091f336108ce565b61093b5760405162461bcd60e51b81526004016107d19061175d565b600b80546001600160a01b0319166001600160a01b038316179055610859815b600654158061096e575061096e336108ce565b61098a5760405162461bcd60e51b81526004016107d19061175d565b6001600160a01b03165f818152600c60205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b610a0e826109ff6006600a6118a6565b610a0990846118b4565b61135b565b5050565b6006541580610a255750610a25336108ce565b610a415760405162461bcd60e51b81526004016107d19061175d565b5f5b600654811015610aa9575f60055f60068481548110610a6457610a646118cb565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580610aa1816118df565b915050610a43565b50610ab560065f611418565b565b6006541580610aca5750610aca336108ce565b610ae65760405162461bcd60e51b81526004016107d19061175d565b5f918252600a602052604090912055565b6006541580610b0a5750610b0a336108ce565b610b265760405162461bcd60e51b81526004016107d19061175d565b610b2f816108ce565b610859576001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b60448201526064016107d1565b6060600d80548060200260200160405190810160405280929190818152602001828054801561077f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c0d575050505050905090565b60405162461bcd60e51b815260206004820152601160248201527010d55494915390d657d11254d050931151607a1b60448201526064016107d1565b6006541580610c835750610c83336108ce565b610c9f5760405162461bcd60e51b81526004016107d19061175d565b5f9182526009602052604090912055565b6006541580610cc35750610cc3336108ce565b610cdf5760405162461bcd60e51b81526004016107d19061175d565b6007610a0e8282611944565b60606004805461070890611725565b6060600680548060200260200160405190810160405280929190818152602001828054801561077f57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c0d575050505050905090565b5f3381610d658286610e9f565b905083811015610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d1565b6108c38286868403610f1a565b5f336107968185856111b9565b6006541580610df25750610df2336108ce565b610e0e5760405162461bcd60e51b81526004016107d19061175d565b6001600160a01b0381165f908152600c602052604090205460ff16610e755760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c6560448201526064016107d1565b6001600160a01b0381165f908152600c60205260409020805460ff19169055610859600d8261103d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6006541580610edc5750610edc336108ce565b610ef85760405162461bcd60e51b81526004016107d19061175d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d1565b6001600160a01b038216610fdd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5b825481101561113c57816001600160a01b0316838281548110611064576110646118cb565b5f918252602090912001546001600160a01b03160361112a578254839061108d90600190611a00565b8154811061109d5761109d6118cb565b905f5260205f20015f9054906101000a90046001600160a01b03168382815481106110ca576110ca6118cb565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508280548061110557611105611a13565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80611134816118df565b91505061103f565b505050565b5f61114c8484610e9f565b90505f1981146111b357818110156111a65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107d1565b6111b38484848403610f1a565b50505050565b6001600160a01b03831661121d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d1565b6001600160a01b03821661127f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d1565b6001600160a01b0383165f90815260208190526040902054818110156112f65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107d1565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36111b3565b6001600160a01b0382166113b15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107d1565b8060025f8282546113c291906117b3565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5080545f8255905f5260205f209081019061085991905b80821115611442575f815560010161142f565b5090565b5f6020808352835180828501525f5b8181101561147157858101830151858201604001528201611455565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610859575f80fd5b5f80604083850312156114b6575f80fd5b82356114c181611491565b946020939093013593505050565b5f602082840312156114df575f80fd5b81356114ea81611491565b9392505050565b5f60208284031215611501575f80fd5b5035919050565b5f8060408385031215611519575f80fd5b50508035926020909101359150565b5f805f6060848603121561153a575f80fd5b833561154581611491565b9250602084013561155581611491565b929592945050506040919091013590565b5f805f8060808587031215611579575f80fd5b8435935060208501359250604085013561159281611491565b915060608501356115a281611491565b939692955090935050565b602080825282518282018190525f9190848201906040850190845b818110156115ed5783516001600160a01b0316835292840192918401916001016115c8565b50909695505050505050565b5f805f6060848603121561160b575f80fd5b8335925060208401359150604084013561162481611491565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611653575f80fd5b813567ffffffffffffffff8082111561166a575f80fd5b818401915084601f83011261167d575f80fd5b81358181111561168f5761168f61162f565b604051601f8201601f19908116603f011681019083821181831017156116b7576116b761162f565b816040528281528760208487010111156116cf575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f80604083850312156116ff575f80fd5b823561170a81611491565b9150602083013561171a81611491565b809150509250929050565b600181811c9082168061173957607f821691505b60208210810361175757634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561079c5761079c61179f565b600181815b8085111561180057815f19048211156117e6576117e661179f565b808516156117f357918102915b93841c93908002906117cb565b509250929050565b5f826118165750600161079c565b8161182257505f61079c565b816001811461183857600281146118425761185e565b600191505061079c565b60ff8411156118535761185361179f565b50506001821b61079c565b5060208310610133831016604e8410600b8410161715611881575081810a61079c565b61188b83836117c6565b805f190482111561189e5761189e61179f565b029392505050565b5f6114ea60ff841683611808565b808202811582820484141761079c5761079c61179f565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118f0576118f061179f565b5060010190565b601f82111561113c575f81815260208120601f850160051c8101602086101561191d5750805b601f850160051c820191505b8181101561193c57828155600101611929565b505050505050565b815167ffffffffffffffff81111561195e5761195e61162f565b6119728161196c8454611725565b846118f7565b602080601f8311600181146119a5575f841561198e5750858301515b5f19600386901b1c1916600185901b17855561193c565b5f85815260208120601f198616915b828110156119d3578886015182559484019460019091019084016119b4565b50858210156119f057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561079c5761079c61179f565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122018accea847076201118040fa82f86799945c9c5869c9337c15d7774539e2d20c64736f6c63430008140033", "deployedBytecode": "0x608060405260043610610212575f3560e01c80637065cb481161011e578063a457c2d7116100a8578063d1eff8951161006d578063d1eff89514610659578063d36223f114610676578063dd62ed3e14610690578063e1461f12146106af578063ec6be06e146106da575f80fd5b8063a457c2d71461059a578063a9059cbb146105b9578063adfadad3146105d8578063b33a599f14610603578063b68de97414610622575f80fd5b806380dc439e116100ee57806380dc439e1461052157806388d0f86a1461053457806390c3f38f1461055357806395d89b4114610572578063a0e67e2b14610586575f80fd5b80637065cb481461048e57806370a08231146104ad578063724e5c17146104e15780638003e27f14610500575f80fd5b806323b872dd1161019f5780633a932dba1161016f5780633a932dba146103fe5780633de4fdc81461041d57806340c10f191461043c5780635260f5e61461045b578063578680be1461046f575f80fd5b806323b872dd146103865780632f54bf6e146103a5578063313ce567146103c457806339509351146103df575f80fd5b8063173825d9116101e5578063173825d9146102e5578063177ed0f31461030657806318160ddd1461033f5780631a092541146103535780631abe7cb314610367575f80fd5b806306fdde0314610216578063095ea7b3146102405780630d8e6e2c1461026f57806316bef596146102b4575b5f80fd5b348015610221575f80fd5b5061022a6106f9565b6040516102379190611446565b60405180910390f35b34801561024b575f80fd5b5061025f61025a3660046114a5565b610789565b6040519015158152602001610237565b34801561027a575f80fd5b5060408051808201909152601981527f43726564656e7a6154657374546f6b656e207620302e312e3000000000000000602082015261022a565b3480156102bf575f80fd5b50600b546001600160a01b03165b6040516001600160a01b039091168152602001610237565b3480156102f0575f80fd5b506103046102ff3660046114cf565b6107a2565b005b348015610311575f80fd5b506103316103203660046114f1565b5f908152600a602052604090205490565b604051908152602001610237565b34801561034a575f80fd5b50600254610331565b34801561035e575f80fd5b5061022a61085c565b348015610372575f80fd5b50610304610381366004611508565b61086b565b348015610391575f80fd5b5061025f6103a0366004611528565b6108ab565b3480156103b0575f80fd5b5061025f6103bf3660046114cf565b6108ce565b3480156103cf575f80fd5b5060405160068152602001610237565b3480156103ea575f80fd5b5061025f6103f93660046114a5565b6108eb565b348015610409575f80fd5b506103046104183660046114cf565b61090c565b348015610428575f80fd5b506103046104373660046114cf565b61095b565b348015610447575f80fd5b506103046104563660046114a5565b6109ef565b348015610466575f80fd5b50610304610a12565b34801561047a575f80fd5b50610304610489366004611508565b610ab7565b348015610499575f80fd5b506103046104a83660046114cf565b610af7565b3480156104b8575f80fd5b506103316104c73660046114cf565b6001600160a01b03165f9081526020819052604090205490565b3480156104ec575f80fd5b506103046104fb366004611566565b610b98565b34801561050b575f80fd5b50610514610bd5565b60405161023791906115ad565b61030461052f3660046115f9565b610c34565b34801561053f575f80fd5b5061030461054e366004611508565b610c70565b34801561055e575f80fd5b5061030461056d366004611643565b610cb0565b34801561057d575f80fd5b5061022a610ceb565b348015610591575f80fd5b50610514610cfa565b3480156105a5575f80fd5b5061025f6105b43660046114a5565b610d58565b3480156105c4575f80fd5b5061025f6105d33660046114a5565b610dd2565b3480156105e3575f80fd5b506103316105f23660046114f1565b5f9081526009602052604090205490565b34801561060e575f80fd5b5061030461061d3660046114cf565b610ddf565b34801561062d575f80fd5b5061025f61063c3660046114cf565b6001600160a01b03165f908152600c602052604090205460ff1690565b348015610664575f80fd5b50600e546001600160a01b03166102cd565b348015610681575f80fd5b5061030461052f3660046115f9565b34801561069b575f80fd5b506103316106aa3660046116ee565b610e9f565b3480156106ba575f80fd5b506103316106c93660046114f1565b5f9081526008602052604090205490565b3480156106e5575f80fd5b506103046106f43660046114cf565b610ec9565b60606003805461070890611725565b80601f016020809104026020016040519081016040528092919081815260200182805461073490611725565b801561077f5780601f106107565761010080835404028352916020019161077f565b820191905f5260205f20905b81548152906001019060200180831161076257829003601f168201915b5050505050905090565b5f33610796818585610f1a565b60019150505b92915050565b60065415806107b557506107b5336108ce565b6107da5760405162461bcd60e51b81526004016107d19061175d565b60405180910390fd5b6107e3816108ce565b61082f5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e6572000060448201526064016107d1565b6001600160a01b0381165f908152600560205260409020805460ff1916905561085960068261103d565b50565b60606007805461070890611725565b600654158061087e575061087e336108ce565b61089a5760405162461bcd60e51b81526004016107d19061175d565b5f9182526008602052604090912055565b5f336108b8858285611141565b6108c38585856111b9565b506001949350505050565b6001600160a01b03165f9081526005602052604090205460ff1690565b5f336107968185856108fd8383610e9f565b61090791906117b3565b610f1a565b600654158061091f575061091f336108ce565b61093b5760405162461bcd60e51b81526004016107d19061175d565b600b80546001600160a01b0319166001600160a01b038316179055610859815b600654158061096e575061096e336108ce565b61098a5760405162461bcd60e51b81526004016107d19061175d565b6001600160a01b03165f818152600c60205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b610a0e826109ff6006600a6118a6565b610a0990846118b4565b61135b565b5050565b6006541580610a255750610a25336108ce565b610a415760405162461bcd60e51b81526004016107d19061175d565b5f5b600654811015610aa9575f60055f60068481548110610a6457610a646118cb565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580610aa1816118df565b915050610a43565b50610ab560065f611418565b565b6006541580610aca5750610aca336108ce565b610ae65760405162461bcd60e51b81526004016107d19061175d565b5f918252600a602052604090912055565b6006541580610b0a5750610b0a336108ce565b610b265760405162461bcd60e51b81526004016107d19061175d565b610b2f816108ce565b610859576001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b60448201526064016107d1565b6060600d80548060200260200160405190810160405280929190818152602001828054801561077f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c0d575050505050905090565b60405162461bcd60e51b815260206004820152601160248201527010d55494915390d657d11254d050931151607a1b60448201526064016107d1565b6006541580610c835750610c83336108ce565b610c9f5760405162461bcd60e51b81526004016107d19061175d565b5f9182526009602052604090912055565b6006541580610cc35750610cc3336108ce565b610cdf5760405162461bcd60e51b81526004016107d19061175d565b6007610a0e8282611944565b60606004805461070890611725565b6060600680548060200260200160405190810160405280929190818152602001828054801561077f57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c0d575050505050905090565b5f3381610d658286610e9f565b905083811015610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d1565b6108c38286868403610f1a565b5f336107968185856111b9565b6006541580610df25750610df2336108ce565b610e0e5760405162461bcd60e51b81526004016107d19061175d565b6001600160a01b0381165f908152600c602052604090205460ff16610e755760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c6560448201526064016107d1565b6001600160a01b0381165f908152600c60205260409020805460ff19169055610859600d8261103d565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6006541580610edc5750610edc336108ce565b610ef85760405162461bcd60e51b81526004016107d19061175d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f7c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d1565b6001600160a01b038216610fdd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d1565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5b825481101561113c57816001600160a01b0316838281548110611064576110646118cb565b5f918252602090912001546001600160a01b03160361112a578254839061108d90600190611a00565b8154811061109d5761109d6118cb565b905f5260205f20015f9054906101000a90046001600160a01b03168382815481106110ca576110ca6118cb565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508280548061110557611105611a13565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80611134816118df565b91505061103f565b505050565b5f61114c8484610e9f565b90505f1981146111b357818110156111a65760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107d1565b6111b38484848403610f1a565b50505050565b6001600160a01b03831661121d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d1565b6001600160a01b03821661127f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d1565b6001600160a01b0383165f90815260208190526040902054818110156112f65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107d1565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36111b3565b6001600160a01b0382166113b15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107d1565b8060025f8282546113c291906117b3565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5080545f8255905f5260205f209081019061085991905b80821115611442575f815560010161142f565b5090565b5f6020808352835180828501525f5b8181101561147157858101830151858201604001528201611455565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610859575f80fd5b5f80604083850312156114b6575f80fd5b82356114c181611491565b946020939093013593505050565b5f602082840312156114df575f80fd5b81356114ea81611491565b9392505050565b5f60208284031215611501575f80fd5b5035919050565b5f8060408385031215611519575f80fd5b50508035926020909101359150565b5f805f6060848603121561153a575f80fd5b833561154581611491565b9250602084013561155581611491565b929592945050506040919091013590565b5f805f8060808587031215611579575f80fd5b8435935060208501359250604085013561159281611491565b915060608501356115a281611491565b939692955090935050565b602080825282518282018190525f9190848201906040850190845b818110156115ed5783516001600160a01b0316835292840192918401916001016115c8565b50909695505050505050565b5f805f6060848603121561160b575f80fd5b8335925060208401359150604084013561162481611491565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611653575f80fd5b813567ffffffffffffffff8082111561166a575f80fd5b818401915084601f83011261167d575f80fd5b81358181111561168f5761168f61162f565b604051601f8201601f19908116603f011681019083821181831017156116b7576116b761162f565b816040528281528760208487010111156116cf575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f80604083850312156116ff575f80fd5b823561170a81611491565b9150602083013561171a81611491565b809150509250929050565b600181811c9082168061173957607f821691505b60208210810361175757634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561079c5761079c61179f565b600181815b8085111561180057815f19048211156117e6576117e661179f565b808516156117f357918102915b93841c93908002906117cb565b509250929050565b5f826118165750600161079c565b8161182257505f61079c565b816001811461183857600281146118425761185e565b600191505061079c565b60ff8411156118535761185361179f565b50506001821b61079c565b5060208310610133831016604e8410600b8410161715611881575081810a61079c565b61188b83836117c6565b805f190482111561189e5761189e61179f565b029392505050565b5f6114ea60ff841683611808565b808202811582820484141761079c5761079c61179f565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118f0576118f061179f565b5060010190565b601f82111561113c575f81815260208120601f850160051c8101602086101561191d5750805b601f850160051c820191505b8181101561193c57828155600101611929565b505050505050565b815167ffffffffffffffff81111561195e5761195e61162f565b6119728161196c8454611725565b846118f7565b602080601f8311600181146119a5575f841561198e5750858301515b5f19600386901b1c1916600185901b17855561193c565b5f85815260208120601f198616915b828110156119d3578886015182559484019460019091019084016119b4565b50858210156119f057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561079c5761079c61179f565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122018accea847076201118040fa82f86799945c9c5869c9337c15d7774539e2d20c64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }