UNPKG

@giveth/bridge-contract

Version:
985 lines 77.6 kB
{ "contractName": "GivethBridgeMock", "source": "./contracts/GivethBridgeMock.sol", "compilerOutput": { "abi": [ { "constant": true, "inputs": [], "name": "maxSecurityGuardDelay", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "token", "type": "address" }, { "name": "accepted", "type": "bool" } ], "name": "whitelistToken", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "checkIn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "giver", "type": "address" }, { "name": "receiverId", "type": "uint64" }, { "name": "token", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "donateAndCreateGiver", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_token", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "escapeFunds", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newTimeLock", "type": "uint256" } ], "name": "setTimelock", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "escapeHatchCaller", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "changeOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "securityGuardLastCheckin", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "unpause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "giverId", "type": "uint64" }, { "name": "receiverId", "type": "uint64" }, { "name": "token", "type": "address" }, { "name": "_amount", "type": "uint256" } ], "name": "donate", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_idPayment", "type": "uint256" } ], "name": "disburseAuthorizedPayment", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "paused", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_dac", "type": "address" } ], "name": "removeOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "allowed", "type": "bool" } ], "name": "setAllowDisbursePaymentWhenPaused", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "numberOfAuthorizedPayments", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwnerCandidate", "type": "address" } ], "name": "proposeOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_authorize", "type": "bool" } ], "name": "authorizeSpender", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "acceptOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_idPayment", "type": "uint256" } ], "name": "cancelPayment", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "pause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_idPayment", "type": "uint256" }, { "name": "_delay", "type": "uint256" } ], "name": "delayPayment", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "allowDisbursePaymentWhenPaused", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_idPayments", "type": "uint256[]" } ], "name": "disburseAuthorizedPayments", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_token", "type": "address" } ], "name": "isTokenEscapable", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "giver", "type": "address" }, { "name": "receiverId", "type": "uint64" } ], "name": "donateAndCreateGiver", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": true, "inputs": [], "name": "mock_time", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "authorizedPayments", "outputs": [ { "name": "name", "type": "string" }, { "name": "reference", "type": "bytes32" }, { "name": "spender", "type": "address" }, { "name": "earliestPayTime", "type": "uint256" }, { "name": "canceled", "type": "bool" }, { "name": "paid", "type": "bool" }, { "name": "recipient", "type": "address" }, { "name": "token", "type": "address" }, { "name": "amount", "type": "uint256" }, { "name": "securityGuardDelay", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_token", "type": "address" } ], "name": "escapeHatch", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_t", "type": "uint256" } ], "name": "setMockedTime", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "securityGuard", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newSecurityGuard", "type": "address" } ], "name": "setSecurityGuard", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "depositEscapedFunds", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "giverId", "type": "uint64" }, { "name": "receiverId", "type": "uint64" } ], "name": "donate", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": true, "inputs": [], "name": "timeLock", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "newOwnerCandidate", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newEscapeHatchCaller", "type": "address" } ], "name": "changeHatchEscapeCaller", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "allowedSpenders", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_maxSecurityGuardDelay", "type": "uint256" } ], "name": "setMaxSecurityGuardDelay", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "absoluteMinTimeLock", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_name", "type": "string" }, { "name": "_reference", "type": "bytes32" }, { "name": "_recipient", "type": "address" }, { "name": "_token", "type": "address" }, { "name": "_amount", "type": "uint256" }, { "name": "_paymentDelay", "type": "uint256" } ], "name": "authorizePayment", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "escapeHatchDestination", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "_escapeHatchCaller", "type": "address" }, { "name": "_escapeHatchDestination", "type": "address" }, { "name": "_absoluteMinTimeLock", "type": "uint256" }, { "name": "_timeLock", "type": "uint256" }, { "name": "_securityGuard", "type": "address" }, { "name": "_maxSecurityGuardDelay", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "giverId", "type": "uint64" }, { "indexed": false, "name": "receiverId", "type": "uint64" }, { "indexed": false, "name": "token", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" } ], "name": "Donate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "giver", "type": "address" }, { "indexed": false, "name": "receiverId", "type": "uint64" }, { "indexed": false, "name": "token", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" } ], "name": "DonateAndCreateGiver", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "token", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" } ], "name": "EscapeFundsCalled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "idPayment", "type": "uint256" }, { "indexed": true, "name": "recipient", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "token", "type": "address" }, { "indexed": false, "name": "reference", "type": "bytes32" } ], "name": "PaymentAuthorized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "idPayment", "type": "uint256" }, { "indexed": true, "name": "recipient", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "token", "type": "address" } ], "name": "PaymentExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "idPayment", "type": "uint256" } ], "name": "PaymentCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "authorized", "type": "bool" } ], "name": "SpenderAuthorization", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Pause", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Unpause", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "token", "type": "address" } ], "name": "EscapeHatchBlackistedToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "token", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" } ], "name": "EscapeHatchCalled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "by", "type": "address" }, { "indexed": true, "name": "to", "type": "address" } ], "name": "OwnershipRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [], "name": "OwnershipRemoved", "type": "event" } ], "evm": { "bytecode": { "object": "60806040526005805460ff1916905534801561001a57600080fd5b5060405160c0806122eb8339810160409081528151602080840151928401516060850151608086015160a09096015160008054600160a060020a03199081163317825560028054600160a060020a03988916908316179055600380549888169882169890981790975560089390935560099190915560078054949096169390941692909217909355600a919091558052600e90527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c805460ff19166001179055612202806100e96000396000f30060806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b2e742381146102135780630ffb1d8b1461023a578063183ff085146102625780631870c10f146102775780631b28591c146102a25780631e891c0a146102c65780631f6eb6e7146102de5780632af4c31e1461030f5780633f487b8b146103305780633f4ba83a146103455780634c4316c71461035a57806352892478146103845780635c975abb1461039c578063666a3427146103c5578063672f412c146103e657806368b8c5a114610400578063710bf32214610415578063793c0fd41461043657806379ba50971461045c5780638422927d146104715780638456cb5914610489578063846a5dde1461049e578063859bcc71146104b9578063863da000146104ce578063892db057146105235780638da5cb5b1461054457806391f5c3a8146105595780639da47a6b1461057a578063a0927a6a1461058f578063a142d60814610679578063ab8be2311461069a578063b2ca3ec4146106b2578063bb2a51d1146106c7578063bd541ad0146106e8578063bde60ac9146106f0578063d085835a1461070b578063d091b55014610720578063d836fbe814610735578063d8528af014610756578063da4793ac14610777578063ea8a66c71461078f578063f37b74ca146107a4578063f5b61230146107e0575b600080fd5b34801561021f57600080fd5b506102286107f5565b60408051918252519081900360200190f35b34801561024657600080fd5b50610260600160a060020a036004351660243515156107fb565b005b34801561026e57600080fd5b50610260610886565b610260600160a060020a0360043581169067ffffffffffffffff6024351690604435166064356108aa565b3480156102ae57600080fd5b50610260600160a060020a0360043516602435610957565b3480156102d257600080fd5b50610260600435610b13565b3480156102ea57600080fd5b506102f3610b77565b60408051600160a060020a039092168252519081900360200190f35b34801561031b57600080fd5b50610260600160a060020a0360043516610b86565b34801561033c57600080fd5b50610228610c97565b34801561035157600080fd5b50610260610c9d565b61026067ffffffffffffffff60043581169060243516600160a060020a0360443516606435610d33565b34801561039057600080fd5b50610260600435610de1565b3480156103a857600080fd5b506103b1610e59565b604080519115158252519081900360200190f35b3480156103d157600080fd5b50610260600160a060020a0360043516610e62565b3480156103f257600080fd5b506102606004351515610f59565b34801561040c57600080fd5b50610228610fcd565b34801561042157600080fd5b50610260600160a060020a0360043516610fd4565b34801561044257600080fd5b50610260600160a060020a03600435166024351515611076565b34801561046857600080fd5b50610260611126565b34801561047d57600080fd5b506102606004356111e9565b34801561049557600080fd5b506102606112d0565b3480156104aa57600080fd5b50610260600435602435611344565b3480156104c557600080fd5b506103b16113f6565b3480156104da57600080fd5b5060408051602060048035808201358381028086018501909652808552610260953695939460249493850192918291850190849080828437509497506113ff9650505050505050565b34801561052f57600080fd5b506103b1600160a060020a036004351661143f565b34801561055057600080fd5b506102f361145e565b610260600160a060020a036004351667ffffffffffffffff6024351661146d565b34801561058657600080fd5b5061022861147a565b34801561059b57600080fd5b506105a7600435611480565b6040805160208082018c9052600160a060020a03808c1693830193909352606082018a9052881515608083015287151560a083015286831660c083015291851660e0820152610100810184905261012081018390526101408082528c51908201528b51909182916101608301918e019080838360005b8381101561063557818101518382015260200161061d565b50505050905090810190601f1680156106625780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561068557600080fd5b50610260600160a060020a0360043516611581565b3480156106a657600080fd5b506102606004356118d6565b3480156106be57600080fd5b506102f36118db565b3480156106d357600080fd5b50610260600160a060020a03600435166118ea565b61026061195c565b61026067ffffffffffffffff60043581169060243516611973565b34801561071757600080fd5b50610228611980565b34801561072c57600080fd5b506102f3611986565b34801561074157600080fd5b50610260600160a060020a0360043516611995565b34801561076257600080fd5b506103b1600160a060020a0360043516611a30565b34801561078357600080fd5b50610260600435611a45565b34801561079b57600080fd5b50610228611a9a565b3480156107b057600080fd5b50610228602460048035828101929101359035600160a060020a036044358116906064351660843560a435611aa0565b3480156107ec57600080fd5b506102f3611c34565b600a5481565b60055460ff161561080b57600080fd5b600054600160a060020a0316331461085b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600e60205260409020805460ff1916911515919091179055565b600754600160a060020a0316331461089d57600080fd5b6108a5611c43565b600d55565b60055460009060ff16156108bd57600080fd5b600160a060020a03851615156108d257600080fd5b67ffffffffffffffff841615156108e857600080fd5b6108f28383611c49565b60408051600160a060020a03808916825267ffffffffffffffff881660208301528616818301526060810183905290519192507f300ed237d4114d1c2df9984e698721646d6c45633d6c1c5430450cdecf61571d919081900360800190a15050505050565b600254600090600160a060020a031633148061097d5750600054600160a060020a031633145b15156109d3576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a0383161515610a2357600354604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610a1d573d6000803e3d6000fd5b50610aca565b50600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163a9059cbb9160448083019260209291908290030181600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050506040513d6020811015610abd57600080fd5b50511515610aca57600080fd5b60408051600160a060020a03851681526020810184905281517f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae3929181900390910190a1505050565b600054600160a060020a03163314610b63576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600854811015610b7257600080fd5b600955565b600254600160a060020a031681565b60008054600160a060020a03163314610bd7576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a0382161515610c37576040805160e560020a62461bcd02815260206004820152601760248201527f6572725f6f776e6564496e76616c696441646472657373000000000000000000604482015290519081900360640190fd5b5060008054600160a060020a03838116600160a060020a031980841691909117808555600180549092169091556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600d5481565b600054600160a060020a03163314610ced576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161515610cfe57600080fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060ff1615610d4657600080fd5b67ffffffffffffffff85161515610d5c57600080fd5b67ffffffffffffffff84161515610d7257600080fd5b610d7c8383611c49565b6040805167ffffffffffffffff808916825287166020820152600160a060020a038616818301526060810183905290519192507fc77b8feedf86922981aed41179f4a071d80467c7f17c5c13837269e363ac545b919081900360800190a15050505050565b60055460009060ff161580610df85750600b5460ff165b1515610e0357600080fd5b6006548210610e1157600080fd5b6006805483908110610e1f57fe5b9060005260206000209060080201905060095481600301540361070801600d5410151515610e4c57600080fd5b610e5582611d4c565b5050565b60055460ff1681565b600054600160a060020a03163314610eb2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b610dac600160a060020a03821614610f14576040805160e560020a62461bcd02815260206004820152601360248201527f6572725f6f776e6564496e76616c696444616300000000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a031990811682556001805490911690556040517f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb9190a150565b600054600160a060020a03163314610fa9576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161515610fba57600080fd5b600b805460ff1916911515919091179055565b6006545b90565b600054600160a060020a03163314611024576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a03838116919091179182905560405191169033907f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec490600090a350565b600054600160a060020a031633146110c6576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff1916851515908117909155825190815291517f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c8272819281900390910190a25050565b600154600090600160a060020a0316331461118b576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f6f776e65644e6f7443616e6469646174650000000000000000000000604482015290519081900360640190fd5b506000805460018054600160a060020a03808216600160a060020a03198086169190911780875592169092556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60008054600160a060020a0316331461123a576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600654821061124857600080fd5b600680548390811061125657fe5b60009182526020909120600890910201600481015490915060ff161561127b57600080fd5b6004810154610100900460ff161561129257600080fd5b60048101805460ff1916600117905560405182907ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30190600090a25050565b600054600160a060020a03163314611320576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161561133057600080fd5b600b805460ff19169055611342611f93565b565b600754600090600160a060020a0316331461135e57600080fd5b600654831061136c57600080fd5b670de0b6b3a764000082111561138157600080fd5b600680548490811061138f57fe5b90600052602060002090600802019050600a5482826007015401111515156113b657600080fd5b6004810154610100900460ff16156113cd57600080fd5b600481015460ff16156113df57600080fd5b600781018054830190556003018054909101905550565b600b5460ff1681565b6000805b825182101561143a57828281518110151561141a57fe5b90602001906020020151905061142f81610de1565b600190910190611403565b505050565b600160a060020a031660009081526004602052604090205460ff161590565b600054600160a060020a031681565b610e5582826000806108aa565b600f5481565b600680548290811061148e57fe5b60009182526020918290206008919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156115275780601f106114fc57610100808354040283529160200191611527565b820191906000526020600020905b81548152906001019060200180831161150a57829003601f168201915b5050505060018301546002840154600385015460048601546005870154600688015460079098015496979496600160a060020a039485169650929460ff80841695610100850490911694620100009094048116939216918a565b6002546000908190600160a060020a03163314806115a95750600054600160a060020a031633145b15156115ff576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205460ff1615611670576040805160e560020a62461bcd02815260206004820152601d60248201527f6572725f657363617061626c65426c61636b6c6973746564546f6b656e000000604482015290519081900360640190fd5b600160a060020a03831615156117085760035460405130319350600160a060020a03909116906108fc8415029084906000818181858888f193505050501580156116be573d6000803e3d6000fd5b5060408051600160a060020a03851681526020810184905281517fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f2929181900390910190a161143a565b50604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600160a060020a038316916370a08231916024808201926020929091908290030181600087803b15801561176d57600080fd5b505af1158015611781573d6000803e3d6000fd5b505050506040513d602081101561179757600080fd5b5051600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519294509083169163a9059cbb916044808201926020929091908290030181600087803b15801561180b57600080fd5b505af115801561181f573d6000803e3d6000fd5b505050506040513d602081101561183557600080fd5b5051151561188d576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f657363617061626c655472616e736665720000000000000000000000604482015290519081900360640190fd5b60408051600160a060020a03851681526020810184905281517fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f2929181900390910190a1505050565b600f55565b600754600160a060020a031681565b600054600160a060020a0316331461193a576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b600354600160a060020a0316331461134257600080fd5b610e558282600080610d33565b60095481565b600154600160a060020a031681565b600254600160a060020a03163314806119b85750600054600160a060020a031633145b1515611a0e576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b600c6020526000908152604090205460ff1681565b600054600160a060020a03163314611a95576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600a55565b60085481565b6005546000908190819060ff1615611ab757600080fd5b336000908152600c602052604090205460ff161515611ad557600080fd5b6006805492508290611aea906001830161202b565b506006805483908110611af957fe5b6000918252602090912060026008909202019081018054600160a060020a031916331790559050670de0b6b3a7640000841115611b3557600080fd5b600954841015611b5057600954611b4a611c43565b01611b5b565b83611b59611c43565b015b600382015560048101805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038a160217905560068101859055611ba3818b8b612057565b5060018101889055600581018054600160a060020a031916600160a060020a038881169190911791829055600483015460068401546040805191825293831660208201528084018c90529251620100009091049091169184917fd11935115aa93b9f1f616d0d7702f4593572daa610390123241b3785430281c4916060908290030190a35098975050505050505050565b600354600160a060020a031681565b600f5490565b600160a060020a0382166000908152600e602052604081205460ff161515611c7057600080fd5b5080600160a060020a0383161515611c855750345b60008111611c9257600080fd5b600160a060020a03831615611d4657604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390529051600160a060020a038516916323b872dd9160648083019260209291908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50511515611d4657600080fd5b92915050565b60055460009060ff161580611d635750600b5460ff165b1515611d6e57600080fd5b6006548210611d7c57600080fd5b6006805483908110611d8a57fe5b60009182526020808320600260089093020191820154600160a060020a03168352600c905260409091205490915060ff161515611dc657600080fd5b8060030154611dd3611c43565b1015611dde57600080fd5b600481015460ff1615611df057600080fd5b6004810154610100900460ff1615611e0757600080fd5b60048101805461ff0019166101001790556005810154600160a060020a03161515611e77576004810154600682015460405162010000909204600160a060020a0316916108fc82150291906000818181858888f19350505050158015611e71573d6000803e3d6000fd5b50611f31565b60058101546004808301546006840154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a036201000090940484169481019490945260248401919091525192169163a9059cbb916044808201926020929091908290030181600087803b158015611efa57600080fd5b505af1158015611f0e573d6000803e3d6000fd5b505050506040513d6020811015611f2457600080fd5b50511515611f3157600080fd5b60048101546006820154600583015460408051928352600160a060020a0391821660208401528051620100009094049091169285927f354f3c0c8efabe1a1a07cf222842b008ef284ac185e63bdf8245be8cd2d97f5192908290030190a35050565b600054600160a060020a03163314611fe3576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff1615611ff357600080fd5b6005805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b81548183558181111561143a5760080281600802836000526020600020918201910161143a91906120d5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120985782800160ff198235161785556120c5565b828001600101855582156120c5579182015b828111156120c55782358255916020019190600101906120aa565b506120d1929150612155565b5090565b610fd191905b808211156120d15760006120ef828261216f565b50600060018201819055600282018054600160a060020a03199081169091556003830182905560048301805475ffffffffffffffffffffffffffffffffffffffffffff1916905560058301805490911690556006820181905560078201556008016120db565b610fd191905b808211156120d1576000815560010161215b565b50805460018160011615610100020316600290046000825580601f1061219557506121b3565b601f0160209004906000526020600020908101906121b39190612155565b5056006572725f6f776e65644e6f744f776e6572000000000000000000000000000000a165627a7a723058201b86f68d778b08e83715b9097455126d0f2d96df06404c983ea9860a506739520029", "sourceMap": "904:947:2:-;;;269:26:5;;;-1:-1:-1;;269:26:5;;;981:440:2;5:2:-1;;;;30:1;27;20:12;5:2;981:440:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;990:5:9;:18;;-1:-1:-1;;;;;;990:18:9;;;998:10;990:18;;;2094:17:8;:38;;-1:-1:-1;;;;;2094:38:8;;;;;;;;;2142:22;:48;;;;;;;;;;;;;;;5231:19:6;:42;;;;5283:8;:20;;;;5313:13;:30;;;;;;;;;;;;;;;;;5353:21;:46;;;;3197:17:1;;:14;:17;;;:24;;-1:-1:-1;;3197:24:1;990:18:9;3197:24:1;;;904:947:2;;;;;;" }, "deployedBytecode": { "object": "60806040526004361061020e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b2e742381146102135780630ffb1d8b1461023a578063183ff085146102625780631870c10f146102775780631b28591c146102a25780631e891c0a146102c65780631f6eb6e7146102de5780632af4c31e1461030f5780633f487b8b146103305780633f4ba83a146103455780634c4316c71461035a57806352892478146103845780635c975abb1461039c578063666a3427146103c5578063672f412c146103e657806368b8c5a114610400578063710bf32214610415578063793c0fd41461043657806379ba50971461045c5780638422927d146104715780638456cb5914610489578063846a5dde1461049e578063859bcc71146104b9578063863da000146104ce578063892db057146105235780638da5cb5b1461054457806391f5c3a8146105595780639da47a6b1461057a578063a0927a6a1461058f578063a142d60814610679578063ab8be2311461069a578063b2ca3ec4146106b2578063bb2a51d1146106c7578063bd541ad0146106e8578063bde60ac9146106f0578063d085835a1461070b578063d091b55014610720578063d836fbe814610735578063d8528af014610756578063da4793ac14610777578063ea8a66c71461078f578063f37b74ca146107a4578063f5b61230146107e0575b600080fd5b34801561021f57600080fd5b506102286107f5565b60408051918252519081900360200190f35b34801561024657600080fd5b50610260600160a060020a036004351660243515156107fb565b005b34801561026e57600080fd5b50610260610886565b610260600160a060020a0360043581169067ffffffffffffffff6024351690604435166064356108aa565b3480156102ae57600080fd5b50610260600160a060020a0360043516602435610957565b3480156102d257600080fd5b50610260600435610b13565b3480156102ea57600080fd5b506102f3610b77565b60408051600160a060020a039092168252519081900360200190f35b34801561031b57600080fd5b50610260600160a060020a0360043516610b86565b34801561033c57600080fd5b50610228610c97565b34801561035157600080fd5b50610260610c9d565b61026067ffffffffffffffff60043581169060243516600160a060020a0360443516606435610d33565b34801561039057600080fd5b50610260600435610de1565b3480156103a857600080fd5b506103b1610e59565b604080519115158252519081900360200190f35b3480156103d157600080fd5b50610260600160a060020a0360043516610e62565b3480156103f257600080fd5b506102606004351515610f59565b34801561040c57600080fd5b50610228610fcd565b34801561042157600080fd5b50610260600160a060020a0360043516610fd4565b34801561044257600080fd5b50610260600160a060020a03600435166024351515611076565b34801561046857600080fd5b50610260611126565b34801561047d57600080fd5b506102606004356111e9565b34801561049557600080fd5b506102606112d0565b3480156104aa57600080fd5b50610260600435602435611344565b3480156104c557600080fd5b506103b16113f6565b3480156104da57600080fd5b5060408051602060048035808201358381028086018501909652808552610260953695939460249493850192918291850190849080828437509497506113ff9650505050505050565b34801561052f57600080fd5b506103b1600160a060020a036004351661143f565b34801561055057600080fd5b506102f361145e565b610260600160a060020a036004351667ffffffffffffffff6024351661146d565b34801561058657600080fd5b5061022861147a565b34801561059b57600080fd5b506105a7600435611480565b6040805160208082018c9052600160a060020a03808c1693830193909352606082018a9052881515608083015287151560a083015286831660c083015291851660e0820152610100810184905261012081018390526101408082528c51908201528b51909182916101608301918e019080838360005b8381101561063557818101518382015260200161061d565b50505050905090810190601f1680156106625780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561068557600080fd5b50610260600160a060020a0360043516611581565b3480156106a657600080fd5b506102606004356118d6565b3480156106be57600080fd5b506102f36118db565b3480156106d357600080fd5b50610260600160a060020a03600435166118ea565b61026061195c565b61026067ffffffffffffffff60043581169060243516611973565b34801561071757600080fd5b50610228611980565b34801561072c57600080fd5b506102f3611986565b34801561074157600080fd5b50610260600160a060020a0360043516611995565b34801561076257600080fd5b506103b1600160a060020a0360043516611a30565b34801561078357600080fd5b50610260600435611a45565b34801561079b57600080fd5b50610228611a9a565b3480156107b057600080fd5b50610228602460048035828101929101359035600160a060020a036044358116906064351660843560a435611aa0565b3480156107ec57600080fd5b506102f3611c34565b600a5481565b60055460ff161561080b57600080fd5b600054600160a060020a0316331461085b576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600e60205260409020805460ff1916911515919091179055565b600754600160a060020a0316331461089d57600080fd5b6108a5611c43565b600d55565b60055460009060ff16156108bd57600080fd5b600160a060020a03851615156108d257600080fd5b67ffffffffffffffff841615156108e857600080fd5b6108f28383611c49565b60408051600160a060020a03808916825267ffffffffffffffff881660208301528616818301526060810183905290519192507f300ed237d4114d1c2df9984e698721646d6c45633d6c1c5430450cdecf61571d919081900360800190a15050505050565b600254600090600160a060020a031633148061097d5750600054600160a060020a031633145b15156109d3576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a0383161515610a2357600354604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015610a1d573d6000803e3d6000fd5b50610aca565b50600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163a9059cbb9160448083019260209291908290030181600087803b158015610a9357600080fd5b505af1158015610aa7573d6000803e3d6000fd5b505050506040513d6020811015610abd57600080fd5b50511515610aca57600080fd5b60408051600160a060020a03851681526020810184905281517f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae3929181900390910190a1505050565b600054600160a060020a03163314610b63576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600854811015610b7257600080fd5b600955565b600254600160a060020a031681565b60008054600160a060020a03163314610bd7576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a0382161515610c37576040805160e560020a62461bcd02815260206004820152601760248201527f6572725f6f776e6564496e76616c696441646472657373000000000000000000604482015290519081900360640190fd5b5060008054600160a060020a03838116600160a060020a031980841691909117808555600180549092169091556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600d5481565b600054600160a060020a03163314610ced576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161515610cfe57600080fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060ff1615610d4657600080fd5b67ffffffffffffffff85161515610d5c57600080fd5b67ffffffffffffffff84161515610d7257600080fd5b610d7c8383611c49565b6040805167ffffffffffffffff808916825287166020820152600160a060020a038616818301526060810183905290519192507fc77b8feedf86922981aed41179f4a071d80467c7f17c5c13837269e363ac545b919081900360800190a15050505050565b60055460009060ff161580610df85750600b5460ff165b1515610e0357600080fd5b6006548210610e1157600080fd5b6006805483908110610e1f57fe5b9060005260206000209060080201905060095481600301540361070801600d5410151515610e4c57600080fd5b610e5582611d4c565b5050565b60055460ff1681565b600054600160a060020a03163314610eb2576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b610dac600160a060020a03821614610f14576040805160e560020a62461bcd02815260206004820152601360248201527f6572725f6f776e6564496e76616c696444616300000000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a031990811682556001805490911690556040517f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb9190a150565b600054600160a060020a03163314610fa9576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161515610fba57600080fd5b600b805460ff1916911515919091179055565b6006545b90565b600054600160a060020a03163314611024576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a03838116919091179182905560405191169033907f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec490600090a350565b600054600160a060020a031633146110c6576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff1916851515908117909155825190815291517f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c8272819281900390910190a25050565b600154600090600160a060020a0316331461118b576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f6f776e65644e6f7443616e6469646174650000000000000000000000604482015290519081900360640190fd5b506000805460018054600160a060020a03808216600160a060020a03198086169190911780875592169092556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60008054600160a060020a0316331461123a576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b600654821061124857600080fd5b600680548390811061125657fe5b60009182526020909120600890910201600481015490915060ff161561127b57600080fd5b6004810154610100900460ff161561129257600080fd5b60048101805460ff1916600117905560405182907ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30190600090a25050565b600054600160a060020a03163314611320576040805160e560020a62461bcd02815260206004820152601160248201526000805160206121b7833981519152604482015290519081900360640190fd5b60055460ff161561133057600080fd5b600b805460ff19169055611342611f93565b565b600754600090600160a060020a0316331461135e57600080fd5b600654831061136c57600080fd5b670de0b6b3a764000082111561138157600080fd5b600680548490811061138f57fe5b90600052602060002090600802019050600a5482826007015401111515156113b657600080fd5b6004810154610100900460ff16156113cd57600080fd5