UNPKG

@credenza-web3/contracts

Version:

Credenza Contracts

508 lines (507 loc) 38.8 kB
{ "_format": "hh-sol-artifact-1", "contractName": "TokenEscrowContract", "sourceName": "contracts/TokenEscrowContract.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "approver", "type": "address" } ], "name": "ApproverAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "FundsLoaded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "FundsReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "approver", "type": "address" } ], "name": "PaymentApproved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "RecipientDeclared", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "canceller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TransactionCancelled", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_approver", "type": "address" } ], "name": "addApprover", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "addOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "amount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "approvalsCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "approvePayment", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "approvers", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "clearOwners", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_approvers", "type": "address[]" } ], "name": "declareApprovers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "declareRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositor", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fundsLoaded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [], "name": "getTrustedForwarder", "outputs": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "hasApproved", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprover", "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": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "loadEscrowFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "recipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "removeOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "retrieveApproverStatus", "outputs": [ { "internalType": "bool[]", "name": "", "type": "bool[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "retrieveApprovers", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "retrieveLoadedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "description", "type": "string" } ], "name": "setDescription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_forwarder", "type": "address" } ], "name": "setTrustedForwarder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalApprovers", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60a060405234801561001057600080fd5b50604051611c2f380380611c2f83398101604081905261002f91610045565b60016004556001600160a01b0316608052610075565b60006020828403121561005757600080fd5b81516001600160a01b038116811461006e57600080fd5b9392505050565b608051611b8a6100a560003960008181610411015281816107c60152818161099501526115f10152611b8a6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063a0e67e2b11610104578063ce1b815f116100a2578063f4a4c0a711610071578063f4a4c0a7146103fb578063fa2c689e14610403578063fc0c546a1461040c578063fc99981d1461043357600080fd5b8063ce1b815f146103b1578063d3650fb8146103c2578063da742228146103d5578063e02160c4146103e857600080fd5b8063c2e395a7116100de578063c2e395a71461035e578063c6d7ef0314610373578063c73992e41461037b578063c7c4ff461461039e57600080fd5b8063a0e67e2b1461032d578063aa8c217c14610342578063b646c1941461034b57600080fd5b806366d003ac1161017157806374b25b8e1161014b57806374b25b8e146102ee57806390c3f38f1461030557806396fd3409146103185780639e2af36c1461032057600080fd5b806366d003ac146102885780636d218e48146102b85780637065cb48146102db57600080fd5b80635260f5e6116101ad5780635260f5e614610243578063572b6c051461024b5780635c5008181461026d5780635c8cf7501461028057600080fd5b8063173825d9146101d45780631a092541146101e95780632f54bf6e14610207575b600080fd5b6101e76101e23660046117af565b610446565b005b6101f1610516565b6040516101fe91906117df565b60405180910390f35b6102336102153660046117af565b6001600160a01b031660009081526020819052604090205460ff1690565b60405190151581526020016101fe565b6101e76105a8565b6102336102593660046117af565b6003546001600160a01b0391821691161490565b6101e761027b366004611834565b610653565b6101e76108cf565b6006546102a09061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b6102336102c63660046117af565b600a6020526000908152604090205460ff1681565b6101e76102e93660046117af565b610a9f565b6102f760085481565b6040519081526020016101fe565b6101e7610313366004611863565b610b57565b6101e7610b9f565b6006546102339060ff1681565b610335610d8d565b6040516101fe9190611914565b6102f760055481565b6101e76103593660046117af565b610dee565b610366610f5e565b6040516101fe9190611961565b6005546102f7565b6102336103893660046117af565b600b6020526000908152604090205460ff1681565b6007546102a0906001600160a01b031681565b6003546001600160a01b03166102a0565b6102a06103d0366004611834565b611036565b6101e76103e33660046117af565b611060565b6101e76103f636600461199b565b6110af565b61033561121e565b6102f760095481565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6101e76104413660046117af565b61127e565b600154158061045b575061045b610215611372565b6104805760405162461bcd60e51b815260040161047790611a10565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff166104e85760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610477565b6001600160a01b0381166000908152602081905260409020805460ff191690556105136001826113a6565b50565b60606002805461052590611a52565b80601f016020809104026020016040519081016040528092919081815260200182805461055190611a52565b801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b5050505050905090565b60015415806105bd57506105bd610215611372565b6105d95760405162461bcd60e51b815260040161047790611a10565b60005b600154811015610644576000806000600184815481106105fe576105fe611a87565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061063c81611ab3565b9150506105dc565b50610651600160006116f8565b565b61065b6114b0565b60065460ff16156106a75760405162461bcd60e51b8152602060048201526016602482015275115cd8dc9bddce88185b1c9958591e481b1bd859195960521b6044820152606401610477565b600081116106f75760405162461bcd60e51b815260206004820152601960248201527f457363726f773a20616d6f756e74206d757374206265203e30000000000000006044820152606401610477565b6000610701611372565b600780546001600160a01b0319166001600160a01b038316179055905061072781610a9f565b6001600160a01b038181166000818152600a60205260408082208054600160ff199182168117909255600c8054808401825594527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790930180546001600160a01b03191685179055600881905560058790556006805490931617909155516323b872dd60e01b81526004810191909152306024820152604481018490527f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303816000875af1158015610811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108359190611ace565b6108815760405162461bcd60e51b815260206004820152601d60248201527f457363726f773a20746f6b656e207472616e73666572206661696c65640000006044820152606401610477565b806001600160a01b03167f4565ff6fbd6c52f5c536c335b15ea7178d5cb5c4fc9d7ce2e2d3985225aea785836040516108bc91815260200190565b60405180910390a2506105136001600455565b60015415806108e457506108e4610215611372565b6109005760405162461bcd60e51b815260040161047790611a10565b6109086114b0565b60065460ff1661095a5760405162461bcd60e51b815260206004820152601a60248201527f457363726f773a206e6f2066756e647320746f2063616e63656c0000000000006044820152606401610477565b6000610964611372565b60055460075460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905292935090917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af11580156109e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a049190611ace565b610a485760405162461bcd60e51b8152602060048201526015602482015274115cd8dc9bddce881c995d1d5c9b8819985a5b1959605a1b6044820152606401610477565b816001600160a01b03167fdceb09d55d6cf1424fafc2f14ad2b30c9e2cae7d1b5f28ef953c630ffef6659e82604051610a8391815260200190565b60405180910390a2610a9361150a565b50506106516001600455565b6001541580610ab45750610ab4610215611372565b610ad05760405162461bcd60e51b815260040161047790611a10565b6001600160a01b03811660009081526020819052604090205460ff1615610af45750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b6001541580610b6c5750610b6c610215611372565b610b885760405162461bcd60e51b815260040161047790611a10565b8051610b9b906002906020840190611716565b5050565b610ba76114b0565b6000610bb1611372565b6001600160a01b0381166000908152600a602052604090205490915060ff16610c1c5760405162461bcd60e51b815260206004820152601760248201527f457363726f773a206e6f7420616e20617070726f7665720000000000000000006044820152606401610477565b6001600160a01b0381166000908152600b602052604090205460ff1615610c855760405162461bcd60e51b815260206004820152601860248201527f457363726f773a20616c726561647920617070726f76656400000000000000006044820152606401610477565b60065460ff16610ca75760405162461bcd60e51b815260040161047790611af0565b60065461010090046001600160a01b0316610d045760405162461bcd60e51b815260206004820152601760248201527f457363726f773a20726563697069656e7420756e7365740000000000000000006044820152606401610477565b6001600160a01b0381166000908152600b60205260408120805460ff191660011790556009805491610d3583611ab3565b90915550506040516001600160a01b038216907ff38e0318caadc897596ef4a074a12afea95ec5bce6c8c27e54120e5b6da26fb890600090a26008546009541415610d8257610d826115bf565b506106516001600455565b6060600180548060200260200160405190810160405280929190818152602001828054801561059e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dc7575050505050905090565b6001541580610e035750610e03610215611372565b610e1f5760405162461bcd60e51b815260040161047790611a10565b60065460ff16610e415760405162461bcd60e51b815260040161047790611af0565b6001600160a01b038116610e8f5760405162461bcd60e51b815260206004820152601560248201527422b9b1b937bb9d103d32b9379030b8383937bb32b960591b6044820152606401610477565b6001600160a01b0381166000908152600a602052604090205460ff16610513576001600160a01b0381166000818152600a60205260408120805460ff19166001908117909155600c8054918201815582527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169092179091556008805491610f2283611ab3565b90915550506040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a250565b600c5460609060009067ffffffffffffffff811115610f7f57610f7f61184d565b604051908082528060200260200182016040528015610fa8578160200160208202803683370190505b50905060005b600c5481101561103057600b6000600c8381548110610fcf57610fcf611a87565b60009182526020808320909101546001600160a01b03168352820192909252604001902054825160ff9091169083908390811061100e5761100e611a87565b911515602092830291909101909101528061102881611ab3565b915050610fae565b50919050565b600c818154811061104657600080fd5b6000918252602090912001546001600160a01b0316905081565b60015415806110755750611075610215611372565b6110915760405162461bcd60e51b815260040161047790611a10565b600380546001600160a01b0319166001600160a01b03831617905550565b60015415806110c457506110c4610215611372565b6110e05760405162461bcd60e51b815260040161047790611a10565b60065460ff166111025760405162461bcd60e51b815260040161047790611af0565b60005b8181101561121957600083838381811061112157611121611a87565b905060200201602081019061113691906117af565b6001600160a01b0381166000908152600a602052604090205490915060ff16611206576001600160a01b0381166000818152600a60205260408120805460ff19166001908117909155600c8054918201815582527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690921790915560088054916111cc83611ab3565b90915550506040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a25b508061121181611ab3565b915050611105565b505050565b6060600c80548060200260200160405190810160405280929190818152602001828054801561059e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610dc7575050505050905090565b60015415806112935750611293610215611372565b6112af5760405162461bcd60e51b815260040161047790611a10565b6001600160a01b0381166112fe5760405162461bcd60e51b8152602060048201526016602482015275115cd8dc9bddce881e995c9bc81c9958da5c1a595b9d60521b6044820152606401610477565b60065460ff166113205760405162461bcd60e51b815260040161047790611af0565b60068054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517f9026684f979adf409a07ab388368302b05b5c18fae3dbf3c0a6f4cb5be333d0590600090a250565b60006014361080159061138f57506003546001600160a01b031633145b156113a1575060131936013560601c90565b503390565b60005b825481101561121957816001600160a01b03168382815481106113ce576113ce611a87565b6000918252602090912001546001600160a01b0316141561149e57825483906113f990600190611b27565b8154811061140957611409611a87565b9060005260206000200160009054906101000a90046001600160a01b031683828154811061143957611439611a87565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508280548061147757611477611b3e565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b806114a881611ab3565b9150506113a9565b600260045414156115035760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610477565b6002600455565b60005b600c5481101561157b576000600c828154811061152c5761152c611a87565b60009182526020808320909101546001600160a01b03168252600a81526040808320805460ff19908116909155600b90925290912080549091169055508061157381611ab3565b91505061150d565b50611588600c60006116f8565b60006005819055600680546001600160a81b0319169055600780546001600160a01b031916905560088190556009556106516105a8565b60055460065460405163a9059cbb60e01b81526101009091046001600160a01b039081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561163a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165e9190611ace565b6116aa5760405162461bcd60e51b815260206004820152601f60248201527f457363726f773a2072656c65617365207472616e73666572206661696c6564006044820152606401610477565b6006546040518281526101009091046001600160a01b0316907f221c08a06b07a64803b3787861a3f276212fcccb51c2e6234077a9b8cb13047a9060200160405180910390a261051361150a565b5080546000825590600052602060002090810190610513919061179a565b82805461172290611a52565b90600052602060002090601f016020900481019282611744576000855561178a565b82601f1061175d57805160ff191683800117855561178a565b8280016001018555821561178a579182015b8281111561178a57825182559160200191906001019061176f565b5061179692915061179a565b5090565b5b80821115611796576000815560010161179b565b6000602082840312156117c157600080fd5b81356001600160a01b03811681146117d857600080fd5b9392505050565b600060208083528351808285015260005b8181101561180c578581018301518582016040015282016117f0565b8181111561181e576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561184657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561187557600080fd5b813567ffffffffffffffff8082111561188d57600080fd5b818401915084601f8301126118a157600080fd5b8135818111156118b3576118b361184d565b604051601f8201601f19908116603f011681019083821181831017156118db576118db61184d565b816040528281528760208487010111156118f457600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020808252825182820181905260009190848201906040850190845b818110156119555783516001600160a01b031683529284019291840191600101611930565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561195557835115158352928401929184019160010161197d565b600080602083850312156119ae57600080fd5b823567ffffffffffffffff808211156119c657600080fd5b818501915085601f8301126119da57600080fd5b8135818111156119e957600080fd5b8660208260051b85010111156119fe57600080fd5b60209290920196919550909350505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b600181811c90821680611a6657607f821691505b6020821081141561103057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ac757611ac7611a9d565b5060010190565b600060208284031215611ae057600080fd5b815180151581146117d857600080fd5b60208082526017908201527f457363726f773a206e6f2066756e6473206c6f61646564000000000000000000604082015260600190565b600082821015611b3957611b39611a9d565b500390565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204150b9ccf894d16ef8d7cba4f1682f04d0ae005c74a142e7a1618fef0be217bd64736f6c634300080c0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063a0e67e2b11610104578063ce1b815f116100a2578063f4a4c0a711610071578063f4a4c0a7146103fb578063fa2c689e14610403578063fc0c546a1461040c578063fc99981d1461043357600080fd5b8063ce1b815f146103b1578063d3650fb8146103c2578063da742228146103d5578063e02160c4146103e857600080fd5b8063c2e395a7116100de578063c2e395a71461035e578063c6d7ef0314610373578063c73992e41461037b578063c7c4ff461461039e57600080fd5b8063a0e67e2b1461032d578063aa8c217c14610342578063b646c1941461034b57600080fd5b806366d003ac1161017157806374b25b8e1161014b57806374b25b8e146102ee57806390c3f38f1461030557806396fd3409146103185780639e2af36c1461032057600080fd5b806366d003ac146102885780636d218e48146102b85780637065cb48146102db57600080fd5b80635260f5e6116101ad5780635260f5e614610243578063572b6c051461024b5780635c5008181461026d5780635c8cf7501461028057600080fd5b8063173825d9146101d45780631a092541146101e95780632f54bf6e14610207575b600080fd5b6101e76101e23660046117af565b610446565b005b6101f1610516565b6040516101fe91906117df565b60405180910390f35b6102336102153660046117af565b6001600160a01b031660009081526020819052604090205460ff1690565b60405190151581526020016101fe565b6101e76105a8565b6102336102593660046117af565b6003546001600160a01b0391821691161490565b6101e761027b366004611834565b610653565b6101e76108cf565b6006546102a09061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101fe565b6102336102c63660046117af565b600a6020526000908152604090205460ff1681565b6101e76102e93660046117af565b610a9f565b6102f760085481565b6040519081526020016101fe565b6101e7610313366004611863565b610b57565b6101e7610b9f565b6006546102339060ff1681565b610335610d8d565b6040516101fe9190611914565b6102f760055481565b6101e76103593660046117af565b610dee565b610366610f5e565b6040516101fe9190611961565b6005546102f7565b6102336103893660046117af565b600b6020526000908152604090205460ff1681565b6007546102a0906001600160a01b031681565b6003546001600160a01b03166102a0565b6102a06103d0366004611834565b611036565b6101e76103e33660046117af565b611060565b6101e76103f636600461199b565b6110af565b61033561121e565b6102f760095481565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6101e76104413660046117af565b61127e565b600154158061045b575061045b610215611372565b6104805760405162461bcd60e51b815260040161047790611a10565b60405180910390fd5b6001600160a01b03811660009081526020819052604090205460ff166104e85760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610477565b6001600160a01b0381166000908152602081905260409020805460ff191690556105136001826113a6565b50565b60606002805461052590611a52565b80601f016020809104026020016040519081016040528092919081815260200182805461055190611a52565b801561059e5780601f106105735761010080835404028352916020019161059e565b820191906000526020600020905b81548152906001019060200180831161058157829003601f168201915b5050505050905090565b60015415806105bd57506105bd610215611372565b6105d95760405162461bcd60e51b815260040161047790611a10565b60005b600154811015610644576000806000600184815481106105fe576105fe611a87565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061063c81611ab3565b9150506105dc565b50610651600160006116f8565b565b61065b6114b0565b60065460ff16156106a75760405162461bcd60e51b8152602060048201526016602482015275115cd8dc9bddce88185b1c9958591e481b1bd859195960521b6044820152606401610477565b600081116106f75760405162461bcd60e51b815260206004820152601960248201527f457363726f773a20616d6f756e74206d757374206265203e30000000000000006044820152606401610477565b6000610701611372565b600780546001600160a01b0319166001600160a01b038316179055905061072781610a9f565b6001600160a01b038181166000818152600a60205260408082208054600160ff199182168117909255600c8054808401825594527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790930180546001600160a01b03191685179055600881905560058790556006805490931617909155516323b872dd60e01b81526004810191909152306024820152604481018490527f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303816000875af1158015610811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108359190611ace565b6108815760405162461bcd60e51b815260206004820152601d60248201527f457363726f773a20746f6b656e207472616e73666572206661696c65640000006044820152606401610477565b806001600160a01b03167f4565ff6fbd6c52f5c536c335b15ea7178d5cb5c4fc9d7ce2e2d3985225aea785836040516108bc91815260200190565b60405180910390a2506105136001600455565b60015415806108e457506108e4610215611372565b6109005760405162461bcd60e51b815260040161047790611a10565b6109086114b0565b60065460ff1661095a5760405162461bcd60e51b815260206004820152601a60248201527f457363726f773a206e6f2066756e647320746f2063616e63656c0000000000006044820152606401610477565b6000610964611372565b60055460075460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905292935090917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af11580156109e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a049190611ace565b610a485760405162461bcd60e51b8152602060048201526015602482015274115cd8dc9bddce881c995d1d5c9b8819985a5b1959605a1b6044820152606401610477565b816001600160a01b03167fdceb09d55d6cf1424fafc2f14ad2b30c9e2cae7d1b5f28ef953c630ffef6659e82604051610a8391815260200190565b60405180910390a2610a9361150a565b50506106516001600455565b6001541580610ab45750610ab4610215611372565b610ad05760405162461bcd60e51b815260040161047790611a10565b6001600160a01b03811660009081526020819052604090205460ff1615610af45750565b6001600160a01b03166000818152602081905260408120805460ff191660019081179091558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055565b6001541580610b6c5750610b6c610215611372565b610b885760405162461bcd60e51b815260040161047790611a10565b8051610b9b906002906020840190611716565b5050565b610ba76114b0565b6000610bb1611372565b6001600160a01b0381166000908152600a602052604090205490915060ff16610c1c5760405162461bcd60e51b815260206004820152601760248201527f457363726f773a206e6f7420616e20617070726f7665720000000000000000006044820152606401610477565b6001600160a01b0381166000908152600b602052604090205460ff1615610c855760405162461bcd60e51b815260206004820152601860248201527f457363726f773a20616c726561647920617070726f76656400000000000000006044820152606401610477565b60065460ff16610ca75760405162461bcd60e51b815260040161047790611af0565b60065461010090046001600160a01b0316610d045760405162461bcd60e51b815260206004820152601760248201527f457363726f773a20726563697069656e7420756e7365740000000000000000006044820152606401610477565b6001600160a01b0381166000908152600b60205260408120805460ff191660011790556009805491610d3583611ab3565b90915550506040516001600160a01b038216907ff38e0318caadc897596ef4a074a12afea95ec5bce6c8c27e54120e5b6da26fb890600090a26008546009541415610d8257610d826115bf565b506106516001600455565b6060600180548060200260200160405190810160405280929190818152602001828054801561059e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610dc7575050505050905090565b6001541580610e035750610e03610215611372565b610e1f5760405162461bcd60e51b815260040161047790611a10565b60065460ff16610e415760405162461bcd60e51b815260040161047790611af0565b6001600160a01b038116610e8f5760405162461bcd60e51b815260206004820152601560248201527422b9b1b937bb9d103d32b9379030b8383937bb32b960591b6044820152606401610477565b6001600160a01b0381166000908152600a602052604090205460ff16610513576001600160a01b0381166000818152600a60205260408120805460ff19166001908117909155600c8054918201815582527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b0319169092179091556008805491610f2283611ab3565b90915550506040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a250565b600c5460609060009067ffffffffffffffff811115610f7f57610f7f61184d565b604051908082528060200260200182016040528015610fa8578160200160208202803683370190505b50905060005b600c5481101561103057600b6000600c8381548110610fcf57610fcf611a87565b60009182526020808320909101546001600160a01b03168352820192909252604001902054825160ff9091169083908390811061100e5761100e611a87565b911515602092830291909101909101528061102881611ab3565b915050610fae565b50919050565b600c818154811061104657600080fd5b6000918252602090912001546001600160a01b0316905081565b60015415806110755750611075610215611372565b6110915760405162461bcd60e51b815260040161047790611a10565b600380546001600160a01b0319166001600160a01b03831617905550565b60015415806110c457506110c4610215611372565b6110e05760405162461bcd60e51b815260040161047790611a10565b60065460ff166111025760405162461bcd60e51b815260040161047790611af0565b60005b8181101561121957600083838381811061112157611121611a87565b905060200201602081019061113691906117af565b6001600160a01b0381166000908152600a602052604090205490915060ff16611206576001600160a01b0381166000818152600a60205260408120805460ff19166001908117909155600c8054918201815582527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70180546001600160a01b03191690921790915560088054916111cc83611ab3565b90915550506040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a25b508061121181611ab3565b915050611105565b505050565b6060600c80548060200260200160405190810160405280929190818152602001828054801561059e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610dc7575050505050905090565b60015415806112935750611293610215611372565b6112af5760405162461bcd60e51b815260040161047790611a10565b6001600160a01b0381166112fe5760405162461bcd60e51b8152602060048201526016602482015275115cd8dc9bddce881e995c9bc81c9958da5c1a595b9d60521b6044820152606401610477565b60065460ff166113205760405162461bcd60e51b815260040161047790611af0565b60068054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517f9026684f979adf409a07ab388368302b05b5c18fae3dbf3c0a6f4cb5be333d0590600090a250565b60006014361080159061138f57506003546001600160a01b031633145b156113a1575060131936013560601c90565b503390565b60005b825481101561121957816001600160a01b03168382815481106113ce576113ce611a87565b6000918252602090912001546001600160a01b0316141561149e57825483906113f990600190611b27565b8154811061140957611409611a87565b9060005260206000200160009054906101000a90046001600160a01b031683828154811061143957611439611a87565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508280548061147757611477611b3e565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b806114a881611ab3565b9150506113a9565b600260045414156115035760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610477565b6002600455565b60005b600c5481101561157b576000600c828154811061152c5761152c611a87565b60009182526020808320909101546001600160a01b03168252600a81526040808320805460ff19908116909155600b90925290912080549091169055508061157381611ab3565b91505061150d565b50611588600c60006116f8565b60006005819055600680546001600160a81b0319169055600780546001600160a01b031916905560088190556009556106516105a8565b60055460065460405163a9059cbb60e01b81526101009091046001600160a01b039081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561163a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165e9190611ace565b6116aa5760405162461bcd60e51b815260206004820152601f60248201527f457363726f773a2072656c65617365207472616e73666572206661696c6564006044820152606401610477565b6006546040518281526101009091046001600160a01b0316907f221c08a06b07a64803b3787861a3f276212fcccb51c2e6234077a9b8cb13047a9060200160405180910390a261051361150a565b5080546000825590600052602060002090810190610513919061179a565b82805461172290611a52565b90600052602060002090601f016020900481019282611744576000855561178a565b82601f1061175d57805160ff191683800117855561178a565b8280016001018555821561178a579182015b8281111561178a57825182559160200191906001019061176f565b5061179692915061179a565b5090565b5b80821115611796576000815560010161179b565b6000602082840312156117c157600080fd5b81356001600160a01b03811681146117d857600080fd5b9392505050565b600060208083528351808285015260005b8181101561180c578581018301518582016040015282016117f0565b8181111561181e576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561184657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561187557600080fd5b813567ffffffffffffffff8082111561188d57600080fd5b818401915084601f8301126118a157600080fd5b8135818111156118b3576118b361184d565b604051601f8201601f19908116603f011681019083821181831017156118db576118db61184d565b816040528281528760208487010111156118f457600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020808252825182820181905260009190848201906040850190845b818110156119555783516001600160a01b031683529284019291840191600101611930565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561195557835115158352928401929184019160010161197d565b600080602083850312156119ae57600080fd5b823567ffffffffffffffff808211156119c657600080fd5b818501915085601f8301126119da57600080fd5b8135818111156119e957600080fd5b8660208260051b85010111156119fe57600080fd5b60209290920196919550909350505050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b600181811c90821680611a6657607f821691505b6020821081141561103057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ac757611ac7611a9d565b5060010190565b600060208284031215611ae057600080fd5b815180151581146117d857600080fd5b60208082526017908201527f457363726f773a206e6f2066756e6473206c6f61646564000000000000000000604082015260600190565b600082821015611b3957611b39611a9d565b500390565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204150b9ccf894d16ef8d7cba4f1682f04d0ae005c74a142e7a1618fef0be217bd64736f6c634300080c0033", "linkReferences": {}, "deployedLinkReferences": {} }