@daostack/arc-experimental
Version:
A platform for building DAOs
514 lines (513 loc) • 43.3 kB
JSON
{
"contractName": "TokenTrade",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "int256",
"name": "_decision",
"type": "int256"
}
],
"name": "ProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "contract IERC20",
"name": "_sendToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_sendTokenAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "contract IERC20",
"name": "_receiveToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_receiveTokenAmount",
"type": "uint256"
}
],
"name": "TokenTradeProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "_descriptionHash",
"type": "string"
},
{
"indexed": true,
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "contract IERC20",
"name": "_sendToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_sendTokenAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "contract IERC20",
"name": "_receiveToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_receiveTokenAmount",
"type": "uint256"
}
],
"name": "TokenTradeProposed",
"type": "event"
},
{
"inputs": [],
"name": "avatar",
"outputs": [
{
"internalType": "contract Avatar",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "_stakingToken",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "balanceOfStakingToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "burnReputation",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "execute",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"internalType": "int256",
"name": "_decision",
"type": "int256"
}
],
"name": "executeProposal",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "getTotalReputationSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract Avatar",
"name": "_avatar",
"type": "address"
},
{
"internalType": "contract IntVoteInterface",
"name": "_votingMachine",
"type": "address"
},
{
"internalType": "uint256[11]",
"name": "_votingParams",
"type": "uint256[11]"
},
{
"internalType": "address",
"name": "_voteOnBehalf",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_voteParamsHash",
"type": "bytes32"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "mintReputation",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "sendToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "sendTokenAmount",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "receiveToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "receiveTokenAmount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "passed",
"type": "bool"
},
{
"internalType": "bool",
"name": "decided",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "proposalsBlockNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "_sendToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_sendTokenAmount",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "_receiveToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_receiveTokenAmount",
"type": "uint256"
},
{
"internalType": "string",
"name": "_descriptionHash",
"type": "string"
}
],
"name": "proposeTokenTrade",
"outputs": [
{
"internalType": "bytes32",
"name": "proposalId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "reputationOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "_stakingToken",
"type": "address"
},
{
"internalType": "address",
"name": "_beneficiary",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "stakingTokenTransfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "voteParamsHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votingMachine",
"outputs": [
{
"internalType": "contract IntVoteInterface",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50611f31806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639588378e11610097578063bea75f2811610066578063bea75f2814610384578063d29b5d2f146103c0578063e751f271146103f2578063f81f8bf61461040f576100f5565b80639588378e146102385780639d4c162d14610264578063b4055b8c1461029b578063b551c37314610367576100f5565b8063540fbeb3116100d3578063540fbeb31461019f5780635aef7de6146101e75780636b8eb403146101ef5780637a5cb92c1461021b576100f5565b806332ed5b12146100fa5780633edf7ca1146101615780634ea2c7ec14610185575b600080fd5b6101176004803603602081101561011057600080fd5b5035610441565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015292151560a083015291151560c082015290519081900360e00190f35b610169610491565b604080516001600160a01b039092168252519081900360200190f35b61018d6104a0565b60408051918252519081900360200190f35b6101e560048036036101e08110156101b657600080fd5b506001600160a01b038135811691602081013582169160408201916101a0810135909116906101c001356104a6565b005b6101696104e4565b61018d6004803603604081101561020557600080fd5b506001600160a01b0381351690602001356104f3565b61018d6004803603602081101561023157600080fd5b50356105cd565b61018d6004803603604081101561024e57600080fd5b506001600160a01b0381351690602001356105df565b6102876004803603604081101561027a57600080fd5b5080359060200135610710565b604080519115158252519081900360200190f35b61018d600480360360a08110156102b157600080fd5b6001600160a01b0382358116926020810135926040820135909216916060820135919081019060a0810160808201356401000000008111156102f257600080fd5b82018360208201111561030457600080fd5b8035906020019184600183028401116401000000008311171561032657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fb945050505050565b61018d6004803603602081101561037d57600080fd5b5035610cfd565b6102876004803603608081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610f94565b610287600480360360608110156103d657600080fd5b508035906001600160a01b0360208201351690604001356110f8565b6101e56004803603602081101561040857600080fd5b5035611253565b6102876004803603606081101561042557600080fd5b508035906001600160a01b0360208201351690604001356116cb565b6037602052600090815260409020805460018201546002830154600384015460048501546005909501546001600160a01b0394851695938516949293919092169160ff8082169161010090041687565b6034546001600160a01b031681565b60355481565b6104dd85858386600b806020026040519081016040528092919082600b602002808284376000920191909152508891506117f19050565b5050505050565b6033546001600160a01b031681565b60345460009082906001600160a01b0316331461054c576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b15801561059957600080fd5b505afa1580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610638576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b15801561059957600080fd5b60345460009083906001600160a01b03163314610769576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b826001141561078f576000848152603760205260409020600501805460ff191660011790555b600084815260376020908152604091829020600501805461ff0019166101001790556033548251868152925187936001600160a01b03909216927fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0928290030190a35060019392505050565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d602081101561086a57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b1580156108b457600080fd5b505afa1580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b505161092c576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b6001600160a01b0386161580159061094c57506001600160a01b03841615155b61099d576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e2061646472657373206d757374206e6f74206265206e756c6c0000604482015290519081900360640190fd5b6000851180156109ad5750600083115b6109e85760405162461bcd60e51b8152600401808060200182810382526023815260200180611e5b6023913960400191505060405180910390fd5b6109fd6001600160a01b038716333088611a5a565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b039182166064840152519216916388737b5e916084808201926020929091908290030181600087803b158015610a6557600080fd5b505af1158015610a79573d6000803e3d6000fd5b505050506040513d6020811015610a8f57600080fd5b810190808051906020019092919050505090506040518060e00160405280336001600160a01b03168152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001848152602001600015158152602001600015158152506037600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff021916908315150217905550905050436036600083815260200190815260200160002081905550336001600160a01b031681603360009054906101000a90046001600160a01b03166001600160a01b03167fa8b65a34d8d48dd5c751760a4c3e0a58076df37c4a930ddf02be57f059535acd858a8a8a8a6040518080602001866001600160a01b03168152602001858152602001846001600160a01b03168152602001838152602001828103825287818151815260200191508051906020019080838360005b83811015610cb6578181015183820152602001610c9e565b50505050905090810190601f168015610ce35780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a495945050505050565b60345460009082906001600160a01b03163314610d56576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610e1857600080fd5b505afa158015610e2c573d6000803e3d6000fd5b505050506040513d6020811015610e4257600080fd5b5051610e90576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d6020811015610f0857600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610f6157600080fd5b505afa158015610f75573d6000803e3d6000fd5b505050506040513d6020811015610f8b57600080fd5b50519392505050565b60345460009082906001600160a01b03163314610fed576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d602081101561106557600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b1580156110c257600080fd5b505af11580156110d6573d6000803e3d6000fd5b505050506040513d60208110156110ec57600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611151576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119f57600080fd5b505afa1580156111b3573d6000803e3d6000fd5b505050506040513d60208110156111c957600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b505195945050505050565b60008181526037602052604090206005810154610100900460ff166112bf576040805162461bcd60e51b815260206004820152601a60248201527f6d757374206265206120646563696465642070726f706f73616c000000000000604482015290519081900360640190fd5b600581015460ff161561150057603354600282015460018301546112f1926001600160a01b0391821692911690611aba565b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561133f57600080fd5b505afa158015611353573d6000803e3d6000fd5b505050506040513d602081101561136957600080fd5b5051600382015482546004808501546040805163dab0efff60e01b81526001600160a01b0395861693810193909352928416602483015260448201529051919092169163dab0efff9160648083019260209291908290030181600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506040513d60208110156113fd57600080fd5b505161143a5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ed66026913960400191505060405180910390fd5b80546033546001830154600284015460038501546004860154604080516001600160a01b039586168152602081019490945291841683830152606083015251938216938693909216917f04d310ea86a87276bab720887c4d37967fddfd69b62a952dc35a0bd8314764729181900360800190a4600082815260376020526040812080546001600160a01b03199081168255600182018054821690556002820183905560038201805490911690556004810191909155600501805461ffff191690556116c7565b611508611e1e565b603760008481526020019081526020016000206040518060e00160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581525050905060376000848152602001908152602001600020600080820160006101000a8154906001600160a01b0302191690556001820160006101000a8154906001600160a01b03021916905560028201600090556003820160006101000a8154906001600160a01b03021916905560048201600090556005820160006101000a81549060ff02191690556005820160016101000a81549060ff021916905550506116c58160000151826040015183602001516001600160a01b0316611aba9092919063ffffffff16565b505b5050565b60345460009082906001600160a01b03163314611724576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561177257600080fd5b505afa158015611786573d6000803e3d6000fd5b505050506040513d602081101561179c57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561121e57600080fd5b6001600160a01b03841661184c576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61185585611b0c565b603480546001600160a01b0319166001600160a01b03861617905582611a51576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b838110156118bf5781810151838201526020016118a7565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b1580156118f157600080fd5b505afa158015611905573d6000803e3d6000fd5b505050506040513d602081101561191b57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561196d57600080fd5b505afa158015611981573d6000803e3d6000fd5b505050506040513d6101a081101561199857600080fd5b5051905080611a4a57604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b838110156119e95781810151838201526020016119d1565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b50505b50506104dd565b50506035555050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611ab4908590611c24565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116c5908490611c24565b600054610100900460ff1680611b255750611b25611ddc565b80611b33575060005460ff16155b611b6e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e7e602e913960400191505060405180910390fd5b600054610100900460ff16158015611b99576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216611bf4576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156116c7576000805461ff00191690555050565b611c36826001600160a01b0316611de2565b611c87576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611cc55780518252601f199092019160209182019101611ca6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d27576040519150601f19603f3d011682016040523d82523d6000602084013e611d2c565b606091505b509150915081611d83576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611ab457808060200190516020811015611d9f57600080fd5b5051611ab45760405162461bcd60e51b815260040180806020018281038252602a815260200180611eac602a913960400191505060405180910390fd5b303b1590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611e1657508115155b949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe546f6b656e20616d6f756e74206d7573742062652067726561746572207468616e2030436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646661696c656420746f207472616e7366657220746f6b656e732066726f6d207468652044414fa2646970667358221220dae9cf0e53e91ea8658bf5002d391ef5e72c9f21aeed4542137fa48c0770998d64736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80639588378e11610097578063bea75f2811610066578063bea75f2814610384578063d29b5d2f146103c0578063e751f271146103f2578063f81f8bf61461040f576100f5565b80639588378e146102385780639d4c162d14610264578063b4055b8c1461029b578063b551c37314610367576100f5565b8063540fbeb3116100d3578063540fbeb31461019f5780635aef7de6146101e75780636b8eb403146101ef5780637a5cb92c1461021b576100f5565b806332ed5b12146100fa5780633edf7ca1146101615780634ea2c7ec14610185575b600080fd5b6101176004803603602081101561011057600080fd5b5035610441565b604080516001600160a01b039889168152968816602088015286810195909552929095166060850152608084015292151560a083015291151560c082015290519081900360e00190f35b610169610491565b604080516001600160a01b039092168252519081900360200190f35b61018d6104a0565b60408051918252519081900360200190f35b6101e560048036036101e08110156101b657600080fd5b506001600160a01b038135811691602081013582169160408201916101a0810135909116906101c001356104a6565b005b6101696104e4565b61018d6004803603604081101561020557600080fd5b506001600160a01b0381351690602001356104f3565b61018d6004803603602081101561023157600080fd5b50356105cd565b61018d6004803603604081101561024e57600080fd5b506001600160a01b0381351690602001356105df565b6102876004803603604081101561027a57600080fd5b5080359060200135610710565b604080519115158252519081900360200190f35b61018d600480360360a08110156102b157600080fd5b6001600160a01b0382358116926020810135926040820135909216916060820135919081019060a0810160808201356401000000008111156102f257600080fd5b82018360208201111561030457600080fd5b8035906020019184600183028401116401000000008311171561032657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107fb945050505050565b61018d6004803603602081101561037d57600080fd5b5035610cfd565b6102876004803603608081101561039a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610f94565b610287600480360360608110156103d657600080fd5b508035906001600160a01b0360208201351690604001356110f8565b6101e56004803603602081101561040857600080fd5b5035611253565b6102876004803603606081101561042557600080fd5b508035906001600160a01b0360208201351690604001356116cb565b6037602052600090815260409020805460018201546002830154600384015460048501546005909501546001600160a01b0394851695938516949293919092169160ff8082169161010090041687565b6034546001600160a01b031681565b60355481565b6104dd85858386600b806020026040519081016040528092919082600b602002808284376000920191909152508891506117f19050565b5050505050565b6033546001600160a01b031681565b60345460009082906001600160a01b0316331461054c576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b15801561059957600080fd5b505afa1580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610638576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561068657600080fd5b505afa15801561069a573d6000803e3d6000fd5b505050506040513d60208110156106b057600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b15801561059957600080fd5b60345460009083906001600160a01b03163314610769576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b826001141561078f576000848152603760205260409020600501805460ff191660011790555b600084815260376020908152604091829020600501805461ff0019166101001790556033548251868152925187936001600160a01b03909216927fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0928290030190a35060019392505050565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d602081101561086a57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b1580156108b457600080fd5b505afa1580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b505161092c576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b6001600160a01b0386161580159061094c57506001600160a01b03841615155b61099d576040805162461bcd60e51b815260206004820152601e60248201527f546f6b656e2061646472657373206d757374206e6f74206265206e756c6c0000604482015290519081900360640190fd5b6000851180156109ad5750600083115b6109e85760405162461bcd60e51b8152600401808060200182810382526023815260200180611e5b6023913960400191505060405180910390fd5b6109fd6001600160a01b038716333088611a5a565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b039182166064840152519216916388737b5e916084808201926020929091908290030181600087803b158015610a6557600080fd5b505af1158015610a79573d6000803e3d6000fd5b505050506040513d6020811015610a8f57600080fd5b810190808051906020019092919050505090506040518060e00160405280336001600160a01b03168152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001848152602001600015158152602001600015158152506037600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff021916908315150217905550905050436036600083815260200190815260200160002081905550336001600160a01b031681603360009054906101000a90046001600160a01b03166001600160a01b03167fa8b65a34d8d48dd5c751760a4c3e0a58076df37c4a930ddf02be57f059535acd858a8a8a8a6040518080602001866001600160a01b03168152602001858152602001846001600160a01b03168152602001838152602001828103825287818151815260200191508051906020019080838360005b83811015610cb6578181015183820152602001610c9e565b50505050905090810190601f168015610ce35780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a495945050505050565b60345460009082906001600160a01b03163314610d56576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015610e1857600080fd5b505afa158015610e2c573d6000803e3d6000fd5b505050506040513d6020811015610e4257600080fd5b5051610e90576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d6020811015610f0857600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610f6157600080fd5b505afa158015610f75573d6000803e3d6000fd5b505050506040513d6020811015610f8b57600080fd5b50519392505050565b60345460009082906001600160a01b03163314610fed576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d602081101561106557600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b1580156110c257600080fd5b505af11580156110d6573d6000803e3d6000fd5b505050506040513d60208110156110ec57600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611151576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119f57600080fd5b505afa1580156111b3573d6000803e3d6000fd5b505050506040513d60208110156111c957600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b505050506040513d602081101561124857600080fd5b505195945050505050565b60008181526037602052604090206005810154610100900460ff166112bf576040805162461bcd60e51b815260206004820152601a60248201527f6d757374206265206120646563696465642070726f706f73616c000000000000604482015290519081900360640190fd5b600581015460ff161561150057603354600282015460018301546112f1926001600160a01b0391821692911690611aba565b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561133f57600080fd5b505afa158015611353573d6000803e3d6000fd5b505050506040513d602081101561136957600080fd5b5051600382015482546004808501546040805163dab0efff60e01b81526001600160a01b0395861693810193909352928416602483015260448201529051919092169163dab0efff9160648083019260209291908290030181600087803b1580156113d357600080fd5b505af11580156113e7573d6000803e3d6000fd5b505050506040513d60208110156113fd57600080fd5b505161143a5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ed66026913960400191505060405180910390fd5b80546033546001830154600284015460038501546004860154604080516001600160a01b039586168152602081019490945291841683830152606083015251938216938693909216917f04d310ea86a87276bab720887c4d37967fddfd69b62a952dc35a0bd8314764729181900360800190a4600082815260376020526040812080546001600160a01b03199081168255600182018054821690556002820183905560038201805490911690556004810191909155600501805461ffff191690556116c7565b611508611e1e565b603760008481526020019081526020016000206040518060e00160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600482015481526020016005820160009054906101000a900460ff161515151581526020016005820160019054906101000a900460ff161515151581525050905060376000848152602001908152602001600020600080820160006101000a8154906001600160a01b0302191690556001820160006101000a8154906001600160a01b03021916905560028201600090556003820160006101000a8154906001600160a01b03021916905560048201600090556005820160006101000a81549060ff02191690556005820160016101000a81549060ff021916905550506116c58160000151826040015183602001516001600160a01b0316611aba9092919063ffffffff16565b505b5050565b60345460009082906001600160a01b03163314611724576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561177257600080fd5b505afa158015611786573d6000803e3d6000fd5b505050506040513d602081101561179c57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561121e57600080fd5b6001600160a01b03841661184c576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61185585611b0c565b603480546001600160a01b0319166001600160a01b03861617905582611a51576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b838110156118bf5781810151838201526020016118a7565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b1580156118f157600080fd5b505afa158015611905573d6000803e3d6000fd5b505050506040513d602081101561191b57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561196d57600080fd5b505afa158015611981573d6000803e3d6000fd5b505050506040513d6101a081101561199857600080fd5b5051905080611a4a57604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b838110156119e95781810151838201526020016119d1565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b50505b50506104dd565b50506035555050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611ab4908590611c24565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116c5908490611c24565b600054610100900460ff1680611b255750611b25611ddc565b80611b33575060005460ff16155b611b6e5760405162461bcd60e51b815260040180806020018281038252602e815260200180611e7e602e913960400191505060405180910390fd5b600054610100900460ff16158015611b99576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038216611bf4576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156116c7576000805461ff00191690555050565b611c36826001600160a01b0316611de2565b611c87576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611cc55780518252601f199092019160209182019101611ca6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d27576040519150601f19603f3d011682016040523d82523d6000602084013e611d2c565b606091505b509150915081611d83576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611ab457808060200190516020811015611d9f57600080fd5b5051611ab45760405162461bcd60e51b815260040180806020018281038252602a815260200180611eac602a913960400191505060405180910390fd5b303b1590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611e1657508115155b949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091529056fe546f6b656e20616d6f756e74206d7573742062652067726561746572207468616e2030436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565646661696c656420746f207472616e7366657220746f6b656e732066726f6d207468652044414fa2646970667358221220dae9cf0e53e91ea8658bf5002d391ef5e72c9f21aeed4542137fa48c0770998d64736f6c634300060c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}