@giveth/bridge-contract
Version:
Giveth bridge contract classes
957 lines • 76.2 kB
JSON
{
"contractName": "GivethBridge",
"source": "./contracts/GivethBridge.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": "",
"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": 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": "60806040526005805460ff1916905534801561001a57600080fd5b5060405160c08061229b8339810160409081528151602080840151928401516060850151608086015160a09096015160008054600160a060020a03199081163317825560028054600160a060020a03988916908316179055600380549888169882169890981790975560089390935560099190915560078054949096169390941692909217909355600a919091558052600e90527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c805460ff191660011790556121b2806100e96000396000f3006080604052600436106101f85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b2e742381146101fd5780630ffb1d8b14610224578063183ff0851461024c5780631870c10f146102615780631b28591c1461028c5780631e891c0a146102b05780631f6eb6e7146102c85780632af4c31e146102f95780633f487b8b1461031a5780633f4ba83a1461032f5780634c4316c714610344578063528924781461036e5780635c975abb14610386578063666a3427146103af578063672f412c146103d057806368b8c5a1146103ea578063710bf322146103ff578063793c0fd41461042057806379ba5097146104465780638422927d1461045b5780638456cb5914610473578063846a5dde14610488578063859bcc71146104a3578063863da000146104b8578063892db0571461050d5780638da5cb5b1461052e57806391f5c3a814610543578063a0927a6a14610564578063a142d6081461064e578063b2ca3ec41461066f578063bb2a51d114610684578063bd541ad0146106a5578063bde60ac9146106ad578063d085835a146106c8578063d091b550146106dd578063d836fbe8146106f2578063d8528af014610713578063da4793ac14610734578063ea8a66c71461074c578063f37b74ca14610761578063f5b612301461079d575b600080fd5b34801561020957600080fd5b506102126107b2565b60408051918252519081900360200190f35b34801561023057600080fd5b5061024a600160a060020a036004351660243515156107b8565b005b34801561025857600080fd5b5061024a610843565b61024a600160a060020a0360043581169067ffffffffffffffff602435169060443516606435610867565b34801561029857600080fd5b5061024a600160a060020a0360043516602435610914565b3480156102bc57600080fd5b5061024a600435610ad0565b3480156102d457600080fd5b506102dd610b34565b60408051600160a060020a039092168252519081900360200190f35b34801561030557600080fd5b5061024a600160a060020a0360043516610b43565b34801561032657600080fd5b50610212610c54565b34801561033b57600080fd5b5061024a610c5a565b61024a67ffffffffffffffff60043581169060243516600160a060020a0360443516606435610cf0565b34801561037a57600080fd5b5061024a600435610d9e565b34801561039257600080fd5b5061039b610e16565b604080519115158252519081900360200190f35b3480156103bb57600080fd5b5061024a600160a060020a0360043516610e1f565b3480156103dc57600080fd5b5061024a6004351515610f16565b3480156103f657600080fd5b50610212610f8a565b34801561040b57600080fd5b5061024a600160a060020a0360043516610f91565b34801561042c57600080fd5b5061024a600160a060020a03600435166024351515611033565b34801561045257600080fd5b5061024a6110e3565b34801561046757600080fd5b5061024a6004356111a6565b34801561047f57600080fd5b5061024a61128d565b34801561049457600080fd5b5061024a600435602435611301565b3480156104af57600080fd5b5061039b6113b3565b3480156104c457600080fd5b506040805160206004803580820135838102808601850190965280855261024a953695939460249493850192918291850190849080828437509497506113bc9650505050505050565b34801561051957600080fd5b5061039b600160a060020a03600435166113fc565b34801561053a57600080fd5b506102dd61141b565b61024a600160a060020a036004351667ffffffffffffffff6024351661142a565b34801561057057600080fd5b5061057c600435611437565b6040805160208082018c9052600160a060020a03808c1693830193909352606082018a9052881515608083015287151560a083015286831660c083015291851660e0820152610100810184905261012081018390526101408082528c51908201528b51909182916101608301918e019080838360005b8381101561060a5781810151838201526020016105f2565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561065a57600080fd5b5061024a600160a060020a0360043516611538565b34801561067b57600080fd5b506102dd61188d565b34801561069057600080fd5b5061024a600160a060020a036004351661189c565b61024a61190e565b61024a67ffffffffffffffff60043581169060243516611925565b3480156106d457600080fd5b50610212611932565b3480156106e957600080fd5b506102dd611938565b3480156106fe57600080fd5b5061024a600160a060020a0360043516611947565b34801561071f57600080fd5b5061039b600160a060020a03600435166119e2565b34801561074057600080fd5b5061024a6004356119f7565b34801561075857600080fd5b50610212611a4c565b34801561076d57600080fd5b50610212602460048035828101929101359035600160a060020a036044358116906064351660843560a435611a52565b3480156107a957600080fd5b506102dd611be6565b600a5481565b60055460ff16156107c857600080fd5b600054600160a060020a03163314610818576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600e60205260409020805460ff1916911515919091179055565b600754600160a060020a0316331461085a57600080fd5b610862611bf5565b600d55565b60055460009060ff161561087a57600080fd5b600160a060020a038516151561088f57600080fd5b67ffffffffffffffff841615156108a557600080fd5b6108af8383611bf9565b60408051600160a060020a03808916825267ffffffffffffffff881660208301528616818301526060810183905290519192507f300ed237d4114d1c2df9984e698721646d6c45633d6c1c5430450cdecf61571d919081900360800190a15050505050565b600254600090600160a060020a031633148061093a5750600054600160a060020a031633145b1515610990576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a03831615156109e057600354604051600160a060020a039091169083156108fc029084906000818181858888f193505050501580156109da573d6000803e3d6000fd5b50610a87565b50600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163a9059cbb9160448083019260209291908290030181600087803b158015610a5057600080fd5b505af1158015610a64573d6000803e3d6000fd5b505050506040513d6020811015610a7a57600080fd5b50511515610a8757600080fd5b60408051600160a060020a03851681526020810184905281517f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae3929181900390910190a1505050565b600054600160a060020a03163314610b20576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600854811015610b2f57600080fd5b600955565b600254600160a060020a031681565b60008054600160a060020a03163314610b94576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a0382161515610bf4576040805160e560020a62461bcd02815260206004820152601760248201527f6572725f6f776e6564496e76616c696441646472657373000000000000000000604482015290519081900360640190fd5b5060008054600160a060020a03838116600160a060020a031980841691909117808555600180549092169091556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600d5481565b600054600160a060020a03163314610caa576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff161515610cbb57600080fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060ff1615610d0357600080fd5b67ffffffffffffffff85161515610d1957600080fd5b67ffffffffffffffff84161515610d2f57600080fd5b610d398383611bf9565b6040805167ffffffffffffffff808916825287166020820152600160a060020a038616818301526060810183905290519192507fc77b8feedf86922981aed41179f4a071d80467c7f17c5c13837269e363ac545b919081900360800190a15050505050565b60055460009060ff161580610db55750600b5460ff165b1515610dc057600080fd5b6006548210610dce57600080fd5b6006805483908110610ddc57fe5b9060005260206000209060080201905060095481600301540361070801600d5410151515610e0957600080fd5b610e1282611cfc565b5050565b60055460ff1681565b600054600160a060020a03163314610e6f576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b610dac600160a060020a03821614610ed1576040805160e560020a62461bcd02815260206004820152601360248201527f6572725f6f776e6564496e76616c696444616300000000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a031990811682556001805490911690556040517f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb9190a150565b600054600160a060020a03163314610f66576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff161515610f7757600080fd5b600b805460ff1916911515919091179055565b6006545b90565b600054600160a060020a03163314610fe1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a03838116919091179182905560405191169033907f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec490600090a350565b600054600160a060020a03163314611083576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff1916851515908117909155825190815291517f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c8272819281900390910190a25050565b600154600090600160a060020a03163314611148576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f6f776e65644e6f7443616e6469646174650000000000000000000000604482015290519081900360640190fd5b506000805460018054600160a060020a03808216600160a060020a03198086169190911780875592169092556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60008054600160a060020a031633146111f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600654821061120557600080fd5b600680548390811061121357fe5b60009182526020909120600890910201600481015490915060ff161561123857600080fd5b6004810154610100900460ff161561124f57600080fd5b60048101805460ff1916600117905560405182907ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30190600090a25050565b600054600160a060020a031633146112dd576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff16156112ed57600080fd5b600b805460ff191690556112ff611f43565b565b600754600090600160a060020a0316331461131b57600080fd5b600654831061132957600080fd5b670de0b6b3a764000082111561133e57600080fd5b600680548490811061134c57fe5b90600052602060002090600802019050600a54828260070154011115151561137357600080fd5b6004810154610100900460ff161561138a57600080fd5b600481015460ff161561139c57600080fd5b600781018054830190556003018054909101905550565b600b5460ff1681565b6000805b82518210156113f75782828151811015156113d757fe5b9060200190602002015190506113ec81610d9e565b6001909101906113c0565b505050565b600160a060020a031660009081526004602052604090205460ff161590565b600054600160a060020a031681565b610e128282600080610867565b600680548290811061144557fe5b60009182526020918290206008919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156114de5780601f106114b3576101008083540402835291602001916114de565b820191906000526020600020905b8154815290600101906020018083116114c157829003601f168201915b5050505060018301546002840154600385015460048601546005870154600688015460079098015496979496600160a060020a039485169650929460ff80841695610100850490911694620100009094048116939216918a565b6002546000908190600160a060020a03163314806115605750600054600160a060020a031633145b15156115b6576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526004602052604090205460ff1615611627576040805160e560020a62461bcd02815260206004820152601d60248201527f6572725f657363617061626c65426c61636b6c6973746564546f6b656e000000604482015290519081900360640190fd5b600160a060020a03831615156116bf5760035460405130319350600160a060020a03909116906108fc8415029084906000818181858888f19350505050158015611675573d6000803e3d6000fd5b5060408051600160a060020a03851681526020810184905281517fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f2929181900390910190a16113f7565b50604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600160a060020a038316916370a08231916024808201926020929091908290030181600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b505050506040513d602081101561174e57600080fd5b5051600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810184905290519294509083169163a9059cbb916044808201926020929091908290030181600087803b1580156117c257600080fd5b505af11580156117d6573d6000803e3d6000fd5b505050506040513d60208110156117ec57600080fd5b50511515611844576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f657363617061626c655472616e736665720000000000000000000000604482015290519081900360640190fd5b60408051600160a060020a03851681526020810184905281517fa50dde912fa22ea0d215a0236093ac45b4d55d6ef0c604c319f900029c5d10f2929181900390910190a1505050565b600754600160a060020a031681565b600054600160a060020a031633146118ec576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b600354600160a060020a031633146112ff57600080fd5b610e128282600080610cf0565b60095481565b600154600160a060020a031681565b600254600160a060020a031633148061196a5750600054600160a060020a031633145b15156119c0576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b600c6020526000908152604090205460ff1681565b600054600160a060020a03163314611a47576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600a55565b60085481565b6005546000908190819060ff1615611a6957600080fd5b336000908152600c602052604090205460ff161515611a8757600080fd5b6006805492508290611a9c9060018301611fdb565b506006805483908110611aab57fe5b6000918252602090912060026008909202019081018054600160a060020a031916331790559050670de0b6b3a7640000841115611ae757600080fd5b600954841015611b0257600954611afc611bf5565b01611b0d565b83611b0b611bf5565b015b600382015560048101805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038a160217905560068101859055611b55818b8b612007565b5060018101889055600581018054600160a060020a031916600160a060020a038881169190911791829055600483015460068401546040805191825293831660208201528084018c90529251620100009091049091169184917fd11935115aa93b9f1f616d0d7702f4593572daa610390123241b3785430281c4916060908290030190a35098975050505050505050565b600354600160a060020a031681565b4290565b600160a060020a0382166000908152600e602052604081205460ff161515611c2057600080fd5b5080600160a060020a0383161515611c355750345b60008111611c4257600080fd5b600160a060020a03831615611cf657604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390529051600160a060020a038516916323b872dd9160648083019260209291908290030181600087803b158015611cbf57600080fd5b505af1158015611cd3573d6000803e3d6000fd5b505050506040513d6020811015611ce957600080fd5b50511515611cf657600080fd5b92915050565b60055460009060ff161580611d135750600b5460ff165b1515611d1e57600080fd5b6006548210611d2c57600080fd5b6006805483908110611d3a57fe5b60009182526020808320600260089093020191820154600160a060020a03168352600c905260409091205490915060ff161515611d7657600080fd5b8060030154611d83611bf5565b1015611d8e57600080fd5b600481015460ff1615611da057600080fd5b6004810154610100900460ff1615611db757600080fd5b60048101805461ff0019166101001790556005810154600160a060020a03161515611e27576004810154600682015460405162010000909204600160a060020a0316916108fc82150291906000818181858888f19350505050158015611e21573d6000803e3d6000fd5b50611ee1565b60058101546004808301546006840154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a036201000090940484169481019490945260248401919091525192169163a9059cbb916044808201926020929091908290030181600087803b158015611eaa57600080fd5b505af1158015611ebe573d6000803e3d6000fd5b505050506040513d6020811015611ed457600080fd5b50511515611ee157600080fd5b60048101546006820154600583015460408051928352600160a060020a0391821660208401528051620100009094049091169285927f354f3c0c8efabe1a1a07cf222842b008ef284ac185e63bdf8245be8cd2d97f5192908290030190a35050565b600054600160a060020a03163314611f93576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff1615611fa357600080fd5b6005805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b8154818355818111156113f7576008028160080283600052602060002091820191016113f79190612085565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106120485782800160ff19823516178555612075565b82800160010185558215612075579182015b8281111561207557823582559160200191906001019061205a565b50612081929150612105565b5090565b610f8e91905b8082111561208157600061209f828261211f565b50600060018201819055600282018054600160a060020a03199081169091556003830182905560048301805475ffffffffffffffffffffffffffffffffffffffffffff19169055600583018054909116905560068201819055600782015560080161208b565b610f8e91905b80821115612081576000815560010161210b565b50805460018160011615610100020316600290046000825580601f106121455750612163565b601f0160209004906000526020600020908101906121639190612105565b5056006572725f6f776e65644e6f744f776e6572000000000000000000000000000000a165627a7a72305820fdbd0f2eb5cc3935052a2690a451f60df00be79cad974020a55e85e9249d55800029",
"sourceMap": "1251:7780:1:-;;;269:26:5;;;-1:-1:-1;;269:26:5;;;2755:497:1;5:2:-1;;;;30:1;27;20:12;5:2;2755:497:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;1251:7780;;;;;;"
},
"deployedBytecode": {
"object": "6080604052600436106101f85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b2e742381146101fd5780630ffb1d8b14610224578063183ff0851461024c5780631870c10f146102615780631b28591c1461028c5780631e891c0a146102b05780631f6eb6e7146102c85780632af4c31e146102f95780633f487b8b1461031a5780633f4ba83a1461032f5780634c4316c714610344578063528924781461036e5780635c975abb14610386578063666a3427146103af578063672f412c146103d057806368b8c5a1146103ea578063710bf322146103ff578063793c0fd41461042057806379ba5097146104465780638422927d1461045b5780638456cb5914610473578063846a5dde14610488578063859bcc71146104a3578063863da000146104b8578063892db0571461050d5780638da5cb5b1461052e57806391f5c3a814610543578063a0927a6a14610564578063a142d6081461064e578063b2ca3ec41461066f578063bb2a51d114610684578063bd541ad0146106a5578063bde60ac9146106ad578063d085835a146106c8578063d091b550146106dd578063d836fbe8146106f2578063d8528af014610713578063da4793ac14610734578063ea8a66c71461074c578063f37b74ca14610761578063f5b612301461079d575b600080fd5b34801561020957600080fd5b506102126107b2565b60408051918252519081900360200190f35b34801561023057600080fd5b5061024a600160a060020a036004351660243515156107b8565b005b34801561025857600080fd5b5061024a610843565b61024a600160a060020a0360043581169067ffffffffffffffff602435169060443516606435610867565b34801561029857600080fd5b5061024a600160a060020a0360043516602435610914565b3480156102bc57600080fd5b5061024a600435610ad0565b3480156102d457600080fd5b506102dd610b34565b60408051600160a060020a039092168252519081900360200190f35b34801561030557600080fd5b5061024a600160a060020a0360043516610b43565b34801561032657600080fd5b50610212610c54565b34801561033b57600080fd5b5061024a610c5a565b61024a67ffffffffffffffff60043581169060243516600160a060020a0360443516606435610cf0565b34801561037a57600080fd5b5061024a600435610d9e565b34801561039257600080fd5b5061039b610e16565b604080519115158252519081900360200190f35b3480156103bb57600080fd5b5061024a600160a060020a0360043516610e1f565b3480156103dc57600080fd5b5061024a6004351515610f16565b3480156103f657600080fd5b50610212610f8a565b34801561040b57600080fd5b5061024a600160a060020a0360043516610f91565b34801561042c57600080fd5b5061024a600160a060020a03600435166024351515611033565b34801561045257600080fd5b5061024a6110e3565b34801561046757600080fd5b5061024a6004356111a6565b34801561047f57600080fd5b5061024a61128d565b34801561049457600080fd5b5061024a600435602435611301565b3480156104af57600080fd5b5061039b6113b3565b3480156104c457600080fd5b506040805160206004803580820135838102808601850190965280855261024a953695939460249493850192918291850190849080828437509497506113bc9650505050505050565b34801561051957600080fd5b5061039b600160a060020a03600435166113fc565b34801561053a57600080fd5b506102dd61141b565b61024a600160a060020a036004351667ffffffffffffffff6024351661142a565b34801561057057600080fd5b5061057c600435611437565b6040805160208082018c9052600160a060020a03808c1693830193909352606082018a9052881515608083015287151560a083015286831660c083015291851660e0820152610100810184905261012081018390526101408082528c51908201528b51909182916101608301918e019080838360005b8381101561060a5781810151838201526020016105f2565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390f35b34801561065a57600080fd5b5061024a600160a060020a0360043516611538565b34801561067b57600080fd5b506102dd61188d565b34801561069057600080fd5b5061024a600160a060020a036004351661189c565b61024a61190e565b61024a67ffffffffffffffff60043581169060243516611925565b3480156106d457600080fd5b50610212611932565b3480156106e957600080fd5b506102dd611938565b3480156106fe57600080fd5b5061024a600160a060020a0360043516611947565b34801561071f57600080fd5b5061039b600160a060020a03600435166119e2565b34801561074057600080fd5b5061024a6004356119f7565b34801561075857600080fd5b50610212611a4c565b34801561076d57600080fd5b50610212602460048035828101929101359035600160a060020a036044358116906064351660843560a435611a52565b3480156107a957600080fd5b506102dd611be6565b600a5481565b60055460ff16156107c857600080fd5b600054600160a060020a03163314610818576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600e60205260409020805460ff1916911515919091179055565b600754600160a060020a0316331461085a57600080fd5b610862611bf5565b600d55565b60055460009060ff161561087a57600080fd5b600160a060020a038516151561088f57600080fd5b67ffffffffffffffff841615156108a557600080fd5b6108af8383611bf9565b60408051600160a060020a03808916825267ffffffffffffffff881660208301528616818301526060810183905290519192507f300ed237d4114d1c2df9984e698721646d6c45633d6c1c5430450cdecf61571d919081900360800190a15050505050565b600254600090600160a060020a031633148061093a5750600054600160a060020a031633145b1515610990576040805160e560020a62461bcd02815260206004820152601a60248201527f6572725f657363617061626c65496e76616c696443616c6c6572000000000000604482015290519081900360640190fd5b600160a060020a03831615156109e057600354604051600160a060020a039091169083156108fc029084906000818181858888f193505050501580156109da573d6000803e3d6000fd5b50610a87565b50600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163a9059cbb9160448083019260209291908290030181600087803b158015610a5057600080fd5b505af1158015610a64573d6000803e3d6000fd5b505050506040513d6020811015610a7a57600080fd5b50511515610a8757600080fd5b60408051600160a060020a03851681526020810184905281517f4ccddcd1a4e33721aee316370fb3e014294985be0755a68c88009b31e1dc4ae3929181900390910190a1505050565b600054600160a060020a03163314610b20576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600854811015610b2f57600080fd5b600955565b600254600160a060020a031681565b60008054600160a060020a03163314610b94576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a0382161515610bf4576040805160e560020a62461bcd02815260206004820152601760248201527f6572725f6f776e6564496e76616c696441646472657373000000000000000000604482015290519081900360640190fd5b5060008054600160a060020a03838116600160a060020a031980841691909117808555600180549092169091556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600d5481565b600054600160a060020a03163314610caa576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff161515610cbb57600080fd5b6005805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60055460009060ff1615610d0357600080fd5b67ffffffffffffffff85161515610d1957600080fd5b67ffffffffffffffff84161515610d2f57600080fd5b610d398383611bf9565b6040805167ffffffffffffffff808916825287166020820152600160a060020a038616818301526060810183905290519192507fc77b8feedf86922981aed41179f4a071d80467c7f17c5c13837269e363ac545b919081900360800190a15050505050565b60055460009060ff161580610db55750600b5460ff165b1515610dc057600080fd5b6006548210610dce57600080fd5b6006805483908110610ddc57fe5b9060005260206000209060080201905060095481600301540361070801600d5410151515610e0957600080fd5b610e1282611cfc565b5050565b60055460ff1681565b600054600160a060020a03163314610e6f576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b610dac600160a060020a03821614610ed1576040805160e560020a62461bcd02815260206004820152601360248201527f6572725f6f776e6564496e76616c696444616300000000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a031990811682556001805490911690556040517f94e8b32e01b9eedfddd778ffbd051a7718cdc14781702884561162dca6f74dbb9190a150565b600054600160a060020a03163314610f66576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff161515610f7757600080fd5b600b805460ff1916911515919091179055565b6006545b90565b600054600160a060020a03163314610fe1576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a03838116919091179182905560405191169033907f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec490600090a350565b600054600160a060020a03163314611083576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff1916851515908117909155825190815291517f801f568efbc3346a6ae3d0c3eb335a30d64e0d3cf08f1c39626d62cd5c8272819281900390910190a25050565b600154600090600160a060020a03163314611148576040805160e560020a62461bcd02815260206004820152601560248201527f6572725f6f776e65644e6f7443616e6469646174650000000000000000000000604482015290519081900360640190fd5b506000805460018054600160a060020a03808216600160a060020a03198086169190911780875592169092556040519282169391169183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b60008054600160a060020a031633146111f7576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b600654821061120557600080fd5b600680548390811061121357fe5b60009182526020909120600890910201600481015490915060ff161561123857600080fd5b6004810154610100900460ff161561124f57600080fd5b60048101805460ff1916600117905560405182907ffdf197ed54809861dafe0b4d391843652730ac67274c1e9e46db7687dccaa30190600090a25050565b600054600160a060020a031633146112dd576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612167833981519152604482015290519081900360640190fd5b60055460ff16156112ed57600080fd5b600b805460ff191690556112ff611f43565b565b600754600090600160a060020a0316331461131b57600080fd5b600654831061132957600080fd5b670de0b6b3a764000082111561133e57600080fd5b600680548490811061134c57fe5b90600052602060002090600802019050600a54828260070154011115151561137357600080fd5b6004810154610100900460ff161561138a57600080fd5b600481015460ff161561139c57600080fd5b600781018054830190556003018054909101905550565b600b5460ff1681565b6000805b82518210156113f75782828151811015156113d757fe5b9060200190602002015190506113ec81610d9e565b6001909101906113c0565b505050565b600160a060020a031660009081526004602052604090205460ff161590565b600054600160a060020a031681565b610e128282600080610867565b600680548290811061144557fe5b60009182526020918290206008919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156114de5780601f106114b3576101008083540402835291602001916114de565b820191906000526020600020905b8154815290600101906020018083116114c157829003601f168201915b5050505060018301546002840154600385015460048601546005870154600688015460079098015496979496600160a060020a039485169650929460ff80841695610100850490911694620100009094048116939216918a565b6002546000908190600160a060020a0316