UNPKG

@aztec/contract-artifacts

Version:

Smart contract compilation artifacts for the latest version of AZTEC.

701 lines 48.7 kB
{ "abi": [ { "inputs": [ { "internalType": "address[]", "name": "_owners", "type": "address[]" }, { "internalType": "uint256", "name": "_required", "type": "uint256" }, { "internalType": "uint256", "name": "_secondsTimeLocked", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Confirmation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "confirmationTime", "type": "uint256" } ], "name": "ConfirmationTimeSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Execution", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "ExecutionFailure", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnerAddition", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnerRemoval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "required", "type": "uint256" } ], "name": "RequirementChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Revocation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "Submission", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "secondsTimeLocked", "type": "uint256" } ], "name": "TimeLockChange", "type": "event" }, { "payable": true, "stateMutability": "payable", "type": "fallback" }, { "constant": true, "inputs": [], "name": "MAX_OWNER_COUNT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "addOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "_required", "type": "uint256" } ], "name": "changeRequirement", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "_secondsTimeLocked", "type": "uint256" } ], "name": "changeTimeLock", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "confirmTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "confirmationTimes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "confirmations", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "executeTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "getConfirmationCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "getConfirmations", "outputs": [ { "internalType": "address[]", "name": "_confirmations", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getOwners", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bool", "name": "pending", "type": "bool" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "name": "getTransactionCount", "outputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "from", "type": "uint256" }, { "internalType": "uint256", "name": "to", "type": "uint256" }, { "internalType": "bool", "name": "pending", "type": "bool" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "name": "getTransactionIds", "outputs": [ { "internalType": "uint256[]", "name": "_transactionIds", "type": "uint256[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "isConfirmed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "owners", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "replaceOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "required", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "revokeConfirmation", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "secondsTimeLocked", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "submitTransaction", "outputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "transactionCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transactions", "outputs": [ { "internalType": "address", "name": "destination", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "bool", "name": "executed", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "transactionId", "type": "uint256" } ], "name": "emergencyExecuteInvalidateProof", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040523480156200001157600080fd5b5060405162001d9638038062001d96833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82518660208202830111640100000000821117156200008c57600080fd5b82525081516020918201928201910280838360005b83811015620000bb578181015183820152602001620000a1565b5050505091909101604090815260208301519201518551929450925084918491508390839083908160328211801590620000f55750818111155b80156200010157508015155b80156200010d57508115155b6200011757600080fd5b60005b8451811015620001e957600260008683815181106200013557fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615801562000191575060006001600160a01b03168582815181106200017d57fe5b60200260200101516001600160a01b031614155b6200019b57600080fd5b600160026000878481518110620001ae57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200011a565b508351620001ff90600390602087019062000215565b5050506004555060065550620002a99350505050565b8280548282559060005260206000209081019282156200026d579160200282015b828111156200026d57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000236565b506200027b9291506200027f565b5090565b620002a691905b808211156200027b5780546001600160a01b031916815560010162000286565b90565b611add80620002b96000396000f3fe6080604052600436106101665760003560e01c80639ace38c2116100d1578063c01a8c841161008a578063d74f8edd11610064578063d74f8edd146106f5578063dc8452cd1461070a578063e20056e61461071f578063ee22610b1461075a57610166565b8063c01a8c84146105d9578063c642747414610603578063d38f2d82146106cb57610166565b80639ace38c2146103fe578063a0e67e2b146104cb578063a8abe69a14610530578063b5dc40c314610570578063b77bf6001461059a578063ba51a6df146105af57610166565b8063547415251161012357806354741525146102ef57806360669380146103235780637065cb481461034d578063784547a7146103805780637ad28c51146103aa5780638b51d13f146103d457610166565b8063025e7c27146101a5578063173825d9146101eb57806320ea8d861461021e5780632f54bf6e146102485780633411c81c1461028f57806337bd78a0146102c8575b34156101a35760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b3480156101b157600080fd5b506101cf600480360360208110156101c857600080fd5b5035610784565b604080516001600160a01b039092168252519081900360200190f35b3480156101f757600080fd5b506101a36004803603602081101561020e57600080fd5b50356001600160a01b03166107ab565b34801561022a57600080fd5b506101a36004803603602081101561024157600080fd5b5035610917565b34801561025457600080fd5b5061027b6004803603602081101561026b57600080fd5b50356001600160a01b03166109cd565b604080519115158252519081900360200190f35b34801561029b57600080fd5b5061027b600480360360408110156102b257600080fd5b50803590602001356001600160a01b03166109e2565b3480156102d457600080fd5b506102dd610a02565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6004803603604081101561031257600080fd5b508035151590602001351515610a08565b34801561032f57600080fd5b506101a36004803603602081101561034657600080fd5b5035610a74565b34801561035957600080fd5b506101a36004803603602081101561037057600080fd5b50356001600160a01b0316610cdc565b34801561038c57600080fd5b5061027b600480360360208110156103a357600080fd5b5035610df0565b3480156103b657600080fd5b506101a3600480360360208110156103cd57600080fd5b5035610e77565b3480156103e057600080fd5b506102dd600480360360208110156103f757600080fd5b5035610ebe565b34801561040a57600080fd5b506104286004803603602081101561042157600080fd5b5035610f2d565b60405180856001600160a01b03166001600160a01b031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561048d578181015183820152602001610475565b50505050905090810190601f1680156104ba5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156104d757600080fd5b506104e0610feb565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561051c578181015183820152602001610504565b505050509050019250505060405180910390f35b34801561053c57600080fd5b506104e06004803603608081101561055357600080fd5b50803590602081013590604081013515159060600135151561104e565b34801561057c57600080fd5b506104e06004803603602081101561059357600080fd5b5035611179565b3480156105a657600080fd5b506102dd6112f0565b3480156105bb57600080fd5b506101a3600480360360208110156105d257600080fd5b50356112f6565b3480156105e557600080fd5b506101a3600480360360208110156105fc57600080fd5b5035611373565b34801561060f57600080fd5b506102dd6004803603606081101561062657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561065657600080fd5b82018360208201111561066857600080fd5b8035906020019184600183028401116401000000008311171561068a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149b945050505050565b3480156106d757600080fd5b506102dd600480360360208110156106ee57600080fd5b50356114ba565b34801561070157600080fd5b506102dd6114cc565b34801561071657600080fd5b506102dd6114d1565b34801561072b57600080fd5b506101a36004803603604081101561074257600080fd5b506001600160a01b03813581169160200135166114d7565b34801561076657600080fd5b506101a36004803603602081101561077d57600080fd5b5035611669565b6003818154811061079157fe5b6000918252602090912001546001600160a01b0316905081565b3330146107b757600080fd5b6001600160a01b038116600090815260026020526040902054819060ff166107de57600080fd5b6001600160a01b0382166000908152600260205260408120805460ff191690555b600354600019018110156108b257826001600160a01b03166003828154811061082457fe5b6000918252602090912001546001600160a01b031614156108aa5760038054600019810190811061085157fe5b600091825260209091200154600380546001600160a01b03909216918390811061087757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506108b2565b6001016107ff565b506003805460001901906108c690826119e7565b5060035460045411156108df576003546108df906112f6565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff1661093357600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1661095d57600080fd5b600084815260208190526040902060030154849060ff161561097e57600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b60065481565b6000805b600554811015610a6d57838015610a35575060008181526020819052604090206003015460ff16155b80610a595750828015610a59575060008181526020819052604090206003015460ff165b15610a65576001820191505b600101610a0c565b5092915050565b600081815260208190526040902060030154819060ff1615610a9557600080fd5b81610a9f81610df0565b610ae9576040805162461bcd60e51b8152602060048201526016602482015275151617d393d517d19553131657d0d3d391925493515160521b604482015290519081900360640190fd5b600083815260208181526040918290206002808201805485516001821615610100026000190190911692909204601f81018590048502830185019095528482529193606093919291830182828015610b825780601f10610b5757610100808354040283529160200191610b82565b820191906000526020600020905b815481529060010190602001808311610b6557829003601f168201915b5050505050905063caaaa5d8602082015160e01c1460008114610ba457610ba9565b600080fd5b5060038201805460ff1916600190811790915582548382015460028086018054604080516020601f600019998516156101000299909901909316949094049687018290048202840182019052858352610c68956001600160a01b03909516949291908390830182828015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050611847565b15610c9d5760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610cd5565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b5050505050565b333014610ce857600080fd5b6001600160a01b038116600090815260026020526040902054819060ff1615610d1057600080fd5b816001600160a01b038116610d2457600080fd5b60038054905060010160045460328211158015610d415750818111155b8015610d4c57508015155b8015610d5757508115155b610d6057600080fd5b6001600160a01b038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610e6f5760008481526001602052604081206003805491929184908110610e1e57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610e52576001820191505b600454821415610e6757600192505050610e72565b600101610df5565b50505b919050565b333014610e8357600080fd5b60068190556040805182815290517fd1c9101a34feff75cccef14a28785a0279cb0b49c1f321f21f5f422e746b43779181900360200190a150565b6000805b600354811015610f275760008381526001602052604081206003805491929184908110610eeb57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610f1f576001820191505b600101610ec2565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f81018890048802840188019096528583526001600160a01b0390931695909491929190830182828015610fd85780601f10610fad57610100808354040283529160200191610fd8565b820191906000526020600020905b815481529060010190602001808311610fbb57829003601f168201915b5050506003909301549192505060ff1684565b6060600380548060200260200160405190810160405280929190818152602001828054801561104357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611025575b505050505090505b90565b60608060055460405190808252806020026020018201604052801561107d578160200160208202803883390190505b5090506000805b6005548110156110fe578580156110ad575060008181526020819052604090206003015460ff16155b806110d157508480156110d1575060008181526020819052604090206003015460ff165b156110f657808383815181106110e357fe5b6020026020010181815250506001820191505b600101611084565b87870360405190808252806020026020018201604052801561112a578160200160208202803883390190505b5093508790505b8681101561116e5782818151811061114557fe5b6020026020010151848983038151811061115b57fe5b6020908102919091010152600101611131565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156111ab578160200160208202803883390190505b5090506000805b60035481101561126e57600085815260016020526040812060038054919291849081106111db57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615611266576003818154811061121557fe5b9060005260206000200160009054906101000a90046001600160a01b031683838151811061123f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b6001016111b2565b81604051908082528060200260200182016040528015611298578160200160208202803883390190505b509350600090505b818110156112e8578281815181106112b457fe5b60200260200101518482815181106112c857fe5b6001600160a01b03909216602092830291909101909101526001016112a0565b505050919050565b60055481565b33301461130257600080fd5b60035481603282118015906113175750818111155b801561132257508015155b801561132d57508115155b61133657600080fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526002602052604090205460ff1661138f57600080fd5b60008281526020819052604090205482906001600160a01b03166113b257600080fd5b60008381526001602090815260408083203380855292529091205484919060ff16156113dd57600080fd5b846113e781610df0565b1561142e576040805162461bcd60e51b8152602060048201526012602482015271151617d19553131657d0d3d391925493515160721b604482015290519081900360640190fd5b6000868152600160208181526040808420338086529252808420805460ff1916909317909255905188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361148486610df0565b1561149357611493864261187f565b505050505050565b60006114a88484846118ca565b90506114b381611373565b9392505050565b60076020526000908152604090205481565b603281565b60045481565b806001600160a01b0381166114eb57600080fd5b3330146114f757600080fd5b6001600160a01b038316600090815260026020526040902054839060ff1661151e57600080fd5b6001600160a01b038316600090815260026020526040902054839060ff161561154657600080fd5b60005b6003548110156115ce57856001600160a01b03166003828154811061156a57fe5b6000918252602090912001546001600160a01b031614156115c657846003828154811061159357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506115ce565b600101611549565b506001600160a01b03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b600081815260208190526040902060030154819060ff161561168a57600080fd5b8161169481610df0565b6116de576040805162461bcd60e51b8152602060048201526016602482015275151617d393d517d19553131657d0d3d391925493515160521b604482015290519081900360640190fd5b60065460008481526007602052604090205484910142101561173e576040805162461bcd60e51b815260206004820152601460248201527354494d455f4c4f434b5f494e434f4d504c45544560601b604482015290519081900360640190fd5b6000848152602081815260409182902060038101805460ff19166001908117909155815481830154600280850180548851601f6000199783161561010002979097019091169290920494850187900487028201870190975283815293956117d6956001600160a01b03909316949193928390830182828015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b1561180b5760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610cd5565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a2600301805460ff1916905550505050565b600084611853816119ab565b61185c57600080fd5b60006040516020850160008288838b8d6187965a03f19998505050505050505050565b6000828152600760209081526040918290208390558151838152915184927f0b237afe65f1514fd7ea3f923ea4fe792bdd07000a912b6cd1602a8e7f573c8d92908290030190a25050565b6000836001600160a01b0381166118e057600080fd5b600554604080516080810182526001600160a01b038881168252602080830189815283850189815260006060860181905287815280845295909520845181546001600160a01b03191694169390931783555160018301559251805194965091939092611953926002850192910190611a10565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906119df57508115155b949350505050565b815481835581811115611a0b57600083815260209020611a0b918101908301611a8e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a5157805160ff1916838001178555611a7e565b82800160010185558215611a7e579182015b82811115611a7e578251825591602001919060010190611a63565b50611a8a929150611a8e565b5090565b61104b91905b80821115611a8a5760008155600101611a9456fea265627a7a7231582026a42208bf917af6e90a6d982d8e5e50dbc3da40deb4fbe4b4f74533f8c157b964736f6c63430005110032", "compiler": { "name": "solc", "version": "0.5.17+commit.d19bba13.Emscripten.clang" }, "deployedBytecode": "0x6080604052600436106101665760003560e01c80639ace38c2116100d1578063c01a8c841161008a578063d74f8edd11610064578063d74f8edd146106f5578063dc8452cd1461070a578063e20056e61461071f578063ee22610b1461075a57610166565b8063c01a8c84146105d9578063c642747414610603578063d38f2d82146106cb57610166565b80639ace38c2146103fe578063a0e67e2b146104cb578063a8abe69a14610530578063b5dc40c314610570578063b77bf6001461059a578063ba51a6df146105af57610166565b8063547415251161012357806354741525146102ef57806360669380146103235780637065cb481461034d578063784547a7146103805780637ad28c51146103aa5780638b51d13f146103d457610166565b8063025e7c27146101a5578063173825d9146101eb57806320ea8d861461021e5780632f54bf6e146102485780633411c81c1461028f57806337bd78a0146102c8575b34156101a35760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a25b005b3480156101b157600080fd5b506101cf600480360360208110156101c857600080fd5b5035610784565b604080516001600160a01b039092168252519081900360200190f35b3480156101f757600080fd5b506101a36004803603602081101561020e57600080fd5b50356001600160a01b03166107ab565b34801561022a57600080fd5b506101a36004803603602081101561024157600080fd5b5035610917565b34801561025457600080fd5b5061027b6004803603602081101561026b57600080fd5b50356001600160a01b03166109cd565b604080519115158252519081900360200190f35b34801561029b57600080fd5b5061027b600480360360408110156102b257600080fd5b50803590602001356001600160a01b03166109e2565b3480156102d457600080fd5b506102dd610a02565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6004803603604081101561031257600080fd5b508035151590602001351515610a08565b34801561032f57600080fd5b506101a36004803603602081101561034657600080fd5b5035610a74565b34801561035957600080fd5b506101a36004803603602081101561037057600080fd5b50356001600160a01b0316610cdc565b34801561038c57600080fd5b5061027b600480360360208110156103a357600080fd5b5035610df0565b3480156103b657600080fd5b506101a3600480360360208110156103cd57600080fd5b5035610e77565b3480156103e057600080fd5b506102dd600480360360208110156103f757600080fd5b5035610ebe565b34801561040a57600080fd5b506104286004803603602081101561042157600080fd5b5035610f2d565b60405180856001600160a01b03166001600160a01b031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b8381101561048d578181015183820152602001610475565b50505050905090810190601f1680156104ba5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156104d757600080fd5b506104e0610feb565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561051c578181015183820152602001610504565b505050509050019250505060405180910390f35b34801561053c57600080fd5b506104e06004803603608081101561055357600080fd5b50803590602081013590604081013515159060600135151561104e565b34801561057c57600080fd5b506104e06004803603602081101561059357600080fd5b5035611179565b3480156105a657600080fd5b506102dd6112f0565b3480156105bb57600080fd5b506101a3600480360360208110156105d257600080fd5b50356112f6565b3480156105e557600080fd5b506101a3600480360360208110156105fc57600080fd5b5035611373565b34801561060f57600080fd5b506102dd6004803603606081101561062657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561065657600080fd5b82018360208201111561066857600080fd5b8035906020019184600183028401116401000000008311171561068a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061149b945050505050565b3480156106d757600080fd5b506102dd600480360360208110156106ee57600080fd5b50356114ba565b34801561070157600080fd5b506102dd6114cc565b34801561071657600080fd5b506102dd6114d1565b34801561072b57600080fd5b506101a36004803603604081101561074257600080fd5b506001600160a01b03813581169160200135166114d7565b34801561076657600080fd5b506101a36004803603602081101561077d57600080fd5b5035611669565b6003818154811061079157fe5b6000918252602090912001546001600160a01b0316905081565b3330146107b757600080fd5b6001600160a01b038116600090815260026020526040902054819060ff166107de57600080fd5b6001600160a01b0382166000908152600260205260408120805460ff191690555b600354600019018110156108b257826001600160a01b03166003828154811061082457fe5b6000918252602090912001546001600160a01b031614156108aa5760038054600019810190811061085157fe5b600091825260209091200154600380546001600160a01b03909216918390811061087757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506108b2565b6001016107ff565b506003805460001901906108c690826119e7565b5060035460045411156108df576003546108df906112f6565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff1661093357600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1661095d57600080fd5b600084815260208190526040902060030154849060ff161561097e57600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b60065481565b6000805b600554811015610a6d57838015610a35575060008181526020819052604090206003015460ff16155b80610a595750828015610a59575060008181526020819052604090206003015460ff165b15610a65576001820191505b600101610a0c565b5092915050565b600081815260208190526040902060030154819060ff1615610a9557600080fd5b81610a9f81610df0565b610ae9576040805162461bcd60e51b8152602060048201526016602482015275151617d393d517d19553131657d0d3d391925493515160521b604482015290519081900360640190fd5b600083815260208181526040918290206002808201805485516001821615610100026000190190911692909204601f81018590048502830185019095528482529193606093919291830182828015610b825780601f10610b5757610100808354040283529160200191610b82565b820191906000526020600020905b815481529060010190602001808311610b6557829003601f168201915b5050505050905063caaaa5d8602082015160e01c1460008114610ba457610ba9565b600080fd5b5060038201805460ff1916600190811790915582548382015460028086018054604080516020601f600019998516156101000299909901909316949094049687018290048202840182019052858352610c68956001600160a01b03909516949291908390830182828015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050611847565b15610c9d5760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610cd5565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b5050505050565b333014610ce857600080fd5b6001600160a01b038116600090815260026020526040902054819060ff1615610d1057600080fd5b816001600160a01b038116610d2457600080fd5b60038054905060010160045460328211158015610d415750818111155b8015610d4c57508015155b8015610d5757508115155b610d6057600080fd5b6001600160a01b038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610e6f5760008481526001602052604081206003805491929184908110610e1e57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610e52576001820191505b600454821415610e6757600192505050610e72565b600101610df5565b50505b919050565b333014610e8357600080fd5b60068190556040805182815290517fd1c9101a34feff75cccef14a28785a0279cb0b49c1f321f21f5f422e746b43779181900360200190a150565b6000805b600354811015610f275760008381526001602052604081206003805491929184908110610eeb57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610f1f576001820191505b600101610ec2565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f81018890048802840188019096528583526001600160a01b0390931695909491929190830182828015610fd85780601f10610fad57610100808354040283529160200191610fd8565b820191906000526020600020905b815481529060010190602001808311610fbb57829003601f168201915b5050506003909301549192505060ff1684565b6060600380548060200260200160405190810160405280929190818152602001828054801561104357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611025575b505050505090505b90565b60608060055460405190808252806020026020018201604052801561107d578160200160208202803883390190505b5090506000805b6005548110156110fe578580156110ad575060008181526020819052604090206003015460ff16155b806110d157508480156110d1575060008181526020819052604090206003015460ff165b156110f657808383815181106110e357fe5b6020026020010181815250506001820191505b600101611084565b87870360405190808252806020026020018201604052801561112a578160200160208202803883390190505b5093508790505b8681101561116e5782818151811061114557fe5b6020026020010151848983038151811061115b57fe5b6020908102919091010152600101611131565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156111ab578160200160208202803883390190505b5090506000805b60035481101561126e57600085815260016020526040812060038054919291849081106111db57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615611266576003818154811061121557fe5b9060005260206000200160009054906101000a90046001600160a01b031683838151811061123f57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b6001016111b2565b81604051908082528060200260200182016040528015611298578160200160208202803883390190505b509350600090505b818110156112e8578281815181106112b457fe5b60200260200101518482815181106112c857fe5b6001600160a01b03909216602092830291909101909101526001016112a0565b505050919050565b60055481565b33301461130257600080fd5b60035481603282118015906113175750818111155b801561132257508015155b801561132d57508115155b61133657600080fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b3360008181526002602052604090205460ff1661138f57600080fd5b60008281526020819052604090205482906001600160a01b03166113b257600080fd5b60008381526001602090815260408083203380855292529091205484919060ff16156113dd57600080fd5b846113e781610df0565b1561142e576040805162461bcd60e51b8152602060048201526012602482015271151617d19553131657d0d3d391925493515160721b604482015290519081900360640190fd5b6000868152600160208181526040808420338086529252808420805460ff1916909317909255905188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361148486610df0565b1561149357611493864261187f565b505050505050565b60006114a88484846118ca565b90506114b381611373565b9392505050565b60076020526000908152604090205481565b603281565b60045481565b806001600160a01b0381166114eb57600080fd5b3330146114f757600080fd5b6001600160a01b038316600090815260026020526040902054839060ff1661151e57600080fd5b6001600160a01b038316600090815260026020526040902054839060ff161561154657600080fd5b60005b6003548110156115ce57856001600160a01b03166003828154811061156a57fe5b6000918252602090912001546001600160a01b031614156115c657846003828154811061159357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506115ce565b600101611549565b506001600160a01b03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b600081815260208190526040902060030154819060ff161561168a57600080fd5b8161169481610df0565b6116de576040805162461bcd60e51b8152602060048201526016602482015275151617d393d517d19553131657d0d3d391925493515160521b604482015290519081900360640190fd5b60065460008481526007602052604090205484910142101561173e576040805162461bcd60e51b815260206004820152601460248201527354494d455f4c4f434b5f494e434f4d504c45544560601b604482015290519081900360640190fd5b6000848152602081815260409182902060038101805460ff19166001908117909155815481830154600280850180548851601f6000199783161561010002979097019091169290920494850187900487028201870190975283815293956117d6956001600160a01b03909316949193928390830182828015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b1561180b5760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2610cd5565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a2600301805460ff1916905550505050565b600084611853816119ab565b61185c57600080fd5b60006040516020850160008288838b8d6187965a03f19998505050505050505050565b6000828152600760209081526040918290208390558151838152915184927f0b237afe65f1514fd7ea3f923ea4fe792bdd07000a912b6cd1602a8e7f573c8d92908290030190a25050565b6000836001600160a01b0381166118e057600080fd5b600554604080516080810182526001600160a01b038881168252602080830189815283850189815260006060860181905287815280845295909520845181546001600160a01b03191694169390931783555160018301559251805194965091939092611953926002850192910190611a10565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906119df57508115155b949350505050565b815481835581811115611a0b57600083815260209020611a0b918101908301611a8e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a5157805160ff1916838001178555611a7e565b82800160010185558215611a7e579182015b82811115611a7e578251825591602001919060010190611a63565b50611a8a929150611a8e565b5090565b61104b91905b80821115611a8a5760008155600101611a9456fea265627a7a7231582026a42208bf917af6e90a6d982d8e5e50dbc3da40deb4fbe4b4f74533f8c157b964736f6c63430005110032", "schemaVersion": "3.0.19" }