@daostack/arc-experimental
Version:
A platform for building DAOs
485 lines (484 loc) • 49.7 kB
JSON
{
"contractName": "SchemeFactory",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "_intVoteInterface",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "_schemeName",
"type": "string"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_schemeData",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint64[3]",
"name": "_packageVersion",
"type": "uint64[3]"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "_permissions",
"type": "bytes4"
},
{
"indexed": false,
"internalType": "address",
"name": "_schemeToReplace",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "_descriptionHash",
"type": "string"
}
],
"name": "NewSchemeProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
}
],
"name": "ProposalDeleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_avatar",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "_proposalId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "int256",
"name": "_param",
"type": "int256"
}
],
"name": "ProposalExecuted",
"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": [],
"name": "daoFactory",
"outputs": [
{
"internalType": "contract DAOFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"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"
},
{
"internalType": "contract DAOFactory",
"name": "_daoFactory",
"type": "address"
}
],
"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": "string",
"name": "schemeName",
"type": "string"
},
{
"internalType": "bytes",
"name": "schemeData",
"type": "bytes"
},
{
"internalType": "address",
"name": "schemeToReplace",
"type": "address"
},
{
"internalType": "bytes4",
"name": "permissions",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "proposalsBlockNumber",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64[3]",
"name": "_packageVersion",
"type": "uint64[3]"
},
{
"internalType": "string",
"name": "_schemeName",
"type": "string"
},
{
"internalType": "bytes",
"name": "_schemeData",
"type": "bytes"
},
{
"internalType": "bytes4",
"name": "_permissions",
"type": "bytes4"
},
{
"internalType": "address",
"name": "_schemeToReplace",
"type": "address"
},
{
"internalType": "string",
"name": "_descriptionHash",
"type": "string"
}
],
"name": "proposeScheme",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"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": "0x608060405234801561001057600080fd5b5061262b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a5cb92c11610097578063b551c37311610066578063b551c37314610566578063bea75f2814610583578063d29b5d2f146105bf578063f81f8bf6146105f1576100f5565b80637a5cb92c146104975780639588378e146104b4578063985e313f146104e05780639d4c162d1461052f576100f5565b80634ea2c7ec116100d35780634ea2c7ec146102425780635aef7de61461025c57806369270334146102645780636b8eb4031461046b576100f5565b806332ed5b12146100fa5780633edf7ca11461021657806348f7f2a31461023a575b600080fd5b6101176004803603602081101561011057600080fd5b5035610623565b604051808060200180602001856001600160a01b03168152602001846001600160e01b0319168152602001838103835287818151815260200191508051906020019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61021e61077d565b604080516001600160a01b039092168252519081900360200190f35b61021e61078c565b61024a61079b565b60408051918252519081900360200190f35b61021e6107a1565b61024a600480360361010081101561027b57600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600092019190915250919493926020810192503590506401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460018302840111640100000000831117156102fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160e01b0319853516956001600160a01b03602087013516959194509250606081019150604001356401000000008111156103f657600080fd5b82018360208201111561040857600080fd5b8035906020019184600183028401116401000000008311171561042a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107b0945050505050565b61024a6004803603604081101561048157600080fd5b506001600160a01b038135169060200135610f35565b61024a600480360360208110156104ad57600080fd5b503561100f565b61024a600480360360408110156104ca57600080fd5b506001600160a01b038135169060200135611021565b61052d60048036036102008110156104f757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e0013516611152565b005b6105526004803603604081101561054557600080fd5b50803590602001356111b0565b604080519115158252519081900360200190f35b61024a6004803603602081101561057c57600080fd5b5035611927565b6105526004803603608081101561059957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611bbe565b610552600480360360608110156105d557600080fd5b508035906001600160a01b036020820135169060400135611d22565b6105526004803603606081101561060757600080fd5b508035906001600160a01b036020820135169060400135611e7d565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156106ba5780601f1061068f576101008083540402835291602001916106ba565b820191906000526020600020905b81548152906001019060200180831161069d57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107585780601f1061072d57610100808354040283529160200191610758565b820191906000526020600020905b81548152906001019060200180831161073b57829003601f168201915b505050600390930154919250506001600160a01b03811690600160a01b900460e01b84565b6034546001600160a01b031681565b6038546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d602081101561081f57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b15801561086957600080fd5b505afa15801561087d573d6000803e3d6000fd5b505050506040513d602081101561089357600080fd5b50516108e1576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b855115610a3557603854604051632346e68b60e01b81526000916001600160a01b031690632346e68b908a908a90600401808360608083838b5b8381101561093357818101518382015260200161091b565b5050505090500180602001828103825283818151815260200191508051906020019080838360005b8381101561097357818101518382015260200161095b565b50505050905090810190601f1680156109a05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156109be57600080fd5b505afa1580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b50516001600160a01b03161415610a305760405162461bcd60e51b81526004018080602001828103825260258152602001806125286025913960400191505060405180910390fd5b610ba6565b6001600160a01b03831615610b6f5760335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a8957600080fd5b505afa158015610a9d573d6000803e3d6000fd5b505050506040513d6020811015610ab357600080fd5b505160408051632074193160e21b81526001600160a01b0387811660048301529151929350908316916381d064c491602480820192602092909190829003018186803b158015610b0257600080fd5b505afa158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b5051610b695760405162461bcd60e51b815260040180806020018281038252603781526020018061254d6037913960400191505060405180910390fd5b50610ba6565b60405162461bcd60e51b81526004018080602001828103825260448152602001806125846044913960600191505060405180910390fd5b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d6020811015610c3b57600080fd5b50519050610c4761232f565b6040518060a001604052808981526020018881526020018a8152602001866001600160a01b03168152602001876001600160e01b0319168152509050603460009054906101000a90046001600160a01b03166001600160a01b031682603360009054906101000a90046001600160a01b03166001600160a01b03167fb390521055def5ff9aeb5a6ab0b72337c61966ac7070f15dc31fd2df4adf9bf38b8b8e8c8c8c60405180806020018060200187600360200280838360005b83811015610d19578181015183820152602001610d01565b50505050905001866001600160e01b0319168152602001856001600160a01b031681526020018060200184810384528a818151815260200191508051906020019080838360005b83811015610d78578181015183820152602001610d60565b50505050905090810190601f168015610da55780820380516001836020036101000a031916815260200191505b5084810383528951815289516020918201918b019080838360005b83811015610dd8578181015183820152602001610dc0565b50505050905090810190601f168015610e055780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015610e38578181015183820152602001610e20565b50505050905090810190601f168015610e655780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a46000828152603760209081526040909120825180518493610e9e928492910190612364565b506020828101518051610eb79260018501920190612364565b506040820151610ecd90600283019060036123e2565b5060608201516003909101805460809093015160e01c600160a01b0263ffffffff60a01b196001600160a01b039093166001600160a01b0319909416939093179190911691909117905550600081815260366020526040902043905590509695505050505050565b60345460009082906001600160a01b03163314610f8e576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b158015610fdb57600080fd5b505afa158015610fef573d6000803e3d6000fd5b505050506040513d602081101561100557600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b0316331461107a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b158015610fdb57600080fd5b61118986868487600b806020026040519081016040528092919082600b60200280828437600092019190915250899150611fa39050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314611209576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b61121161232f565b6000858152603760209081526040918290208251815460026001821615610100026000190190911604601f8101849004909302810160c090810190945260a081018381529093919284928491908401828280156112af5780601f10611284576101008083540402835291602001916112af565b820191906000526020600020905b81548152906001019060200180831161129257829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113515780601f1061132657610100808354040283529160200191611351565b820191906000526020600020905b81548152906001019060200180831161133457829003601f168201915b5050509183525050604080516060810191829052602090920191906002840190600390826000855b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161137957505050928452505050600391909101546001600160a01b038116602080840191909152600160a01b90910460e01b6001600160e01b031916604092830152600088815260379091529081209192506114138282612486565b611421600183016000612486565b61142f6002830160006124cd565b5060030180546001600160c01b031916905560335460405186916001600160a01b0316907f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe90600090a360335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b5051905060018514156118d8578151511561176e57603854604080840151845160335460208701519351634b6c2f7760e11b81526000956001600160a01b03908116956396d85eee95949390911691600401808560608083838d5b8381101561155b578181015183820152602001611543565b5050505090500180602001846001600160a01b0316815260200180602001838103835286818151815260200191508051906020019080838360005b838110156115ae578181015183820152602001611596565b50505050905090810190601f1680156115db5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561160e5781810151838201526020016115f6565b50505050905090810190601f16801561163b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561165e57600080fd5b505af1158015611672573d6000803e3d6000fd5b505050506040513d602081101561168857600080fd5b5051608084015160408051635d1da8cb60e01b81526001600160a01b0380851660048301526001600160e01b03199093166024820152905192935090841691635d1da8cb916044808201926020929091908290030181600087803b1580156116ef57600080fd5b505af1158015611703573d6000803e3d6000fd5b505050506040513d602081101561171957600080fd5b505161176c576040805162461bcd60e51b815260206004820152601c60248201527f6661696c6420746f207265676973746572206e657720736368656d6500000000604482015290519081900360640190fd5b505b60608201516001600160a01b0316158015906118035750806001600160a01b03166381d064c483606001516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156117d657600080fd5b505afa1580156117ea573d6000803e3d6000fd5b505050506040513d602081101561180057600080fd5b50515b156118d857806001600160a01b031663653915e583606001516040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b505050506040513d602081101561188557600080fd5b50516118d8576040805162461bcd60e51b815260206004820152601e60248201527f6661696c6420746f20756e7265676973746572206f6c6420736368656d650000604482015290519081900360640190fd5b60335460408051878152905188926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a350600195945050505050565b60345460009082906001600160a01b03163314611980576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ce57600080fd5b505afa1580156119e2573d6000803e3d6000fd5b505050506040513d60208110156119f857600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015611a4257600080fd5b505afa158015611a56573d6000803e3d6000fd5b505050506040513d6020811015611a6c57600080fd5b5051611aba576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015611b8b57600080fd5b505afa158015611b9f573d6000803e3d6000fd5b505050506040513d6020811015611bb557600080fd5b50519392505050565b60345460009082906001600160a01b03163314611c17576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6557600080fd5b505afa158015611c79573d6000803e3d6000fd5b505050506040513d6020811015611c8f57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015611cec57600080fd5b505af1158015611d00573d6000803e3d6000fd5b505050506040513d6020811015611d1657600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611d7b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611dc957600080fd5b505afa158015611ddd573d6000803e3d6000fd5b505050506040513d6020811015611df357600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b158015611e4857600080fd5b505af1158015611e5c573d6000803e3d6000fd5b505050506040513d6020811015611e7257600080fd5b505195945050505050565b60345460009082906001600160a01b03163314611ed6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2457600080fd5b505afa158015611f38573d6000803e3d6000fd5b505050506040513d6020811015611f4e57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b158015611e4857600080fd5b6001600160a01b038416611ffe576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61200785612210565b603480546001600160a01b0319166001600160a01b03861617905582612203576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b83811015612071578181015183820152602001612059565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b1580156120a357600080fd5b505afa1580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561211f57600080fd5b505afa158015612133573d6000803e3d6000fd5b505050506040513d6101a081101561214a57600080fd5b50519050806121fc57604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b8381101561219b578181015183820152602001612183565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b1580156121cf57600080fd5b505af11580156121e3573d6000803e3d6000fd5b505050506040513d60208110156121f957600080fd5b50505b5050612209565b60358390555b5050505050565b600054610100900460ff16806122295750612229612329565b80612237575060005460ff16155b6122725760405162461bcd60e51b815260040180806020018281038252602e8152602001806125c8602e913960400191505060405180910390fd5b600054610100900460ff1615801561229d576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166122f8576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015612325576000805461ff00191690555b5050565b303b1590565b6040518060a0016040528060608152602001606081526020016123506124d4565b815260006020820181905260409091015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123a557805160ff19168380011785556123d2565b828001600101855582156123d2579182015b828111156123d25782518255916020019190600101906123b7565b506123de9291506124f2565b5090565b60018301918390821561247a5791602002820160005b8382111561244457835183826101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555092602001926008016020816007010492830192600103026123f8565b80156124785782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302612444565b505b506123de929150612507565b50805460018160011615610100020316600290046000825580601f106124ac57506124ca565b601f0160209004906000526020600020908101906124ca91906124f2565b50565b5060009055565b60405180606001604052806003906020820280368337509192915050565b5b808211156123de57600081556001016124f3565b5b808211156123de57805467ffffffffffffffff1916815560010161250856fe736368656d65206e616d6520646f6573206e6f7420657869737420696e2041726348697665736368656d6520746f207265706c616365206973206e6f74207265676973746572656420696e20746865206f7267616e697a6174696f6e70726f706f73616c206d7573742068617665206120736368656d65206e616d6520746f2072656973746572206f72206164647265737320746f20756e7265676973746572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212200b8ab90af5b2f97c563437b8c88c232d33069623f6dec2c5274c330b0f1eaaee64736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a5cb92c11610097578063b551c37311610066578063b551c37314610566578063bea75f2814610583578063d29b5d2f146105bf578063f81f8bf6146105f1576100f5565b80637a5cb92c146104975780639588378e146104b4578063985e313f146104e05780639d4c162d1461052f576100f5565b80634ea2c7ec116100d35780634ea2c7ec146102425780635aef7de61461025c57806369270334146102645780636b8eb4031461046b576100f5565b806332ed5b12146100fa5780633edf7ca11461021657806348f7f2a31461023a575b600080fd5b6101176004803603602081101561011057600080fd5b5035610623565b604051808060200180602001856001600160a01b03168152602001846001600160e01b0319168152602001838103835287818151815260200191508051906020019080838360005b8381101561017757818101518382015260200161015f565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b838110156101d75781810151838201526020016101bf565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61021e61077d565b604080516001600160a01b039092168252519081900360200190f35b61021e61078c565b61024a61079b565b60408051918252519081900360200190f35b61021e6107a1565b61024a600480360361010081101561027b57600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600092019190915250919493926020810192503590506401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460018302840111640100000000831117156102fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160e01b0319853516956001600160a01b03602087013516959194509250606081019150604001356401000000008111156103f657600080fd5b82018360208201111561040857600080fd5b8035906020019184600183028401116401000000008311171561042a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107b0945050505050565b61024a6004803603604081101561048157600080fd5b506001600160a01b038135169060200135610f35565b61024a600480360360208110156104ad57600080fd5b503561100f565b61024a600480360360408110156104ca57600080fd5b506001600160a01b038135169060200135611021565b61052d60048036036102008110156104f757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e0013516611152565b005b6105526004803603604081101561054557600080fd5b50803590602001356111b0565b604080519115158252519081900360200190f35b61024a6004803603602081101561057c57600080fd5b5035611927565b6105526004803603608081101561059957600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611bbe565b610552600480360360608110156105d557600080fd5b508035906001600160a01b036020820135169060400135611d22565b6105526004803603606081101561060757600080fd5b508035906001600160a01b036020820135169060400135611e7d565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156106ba5780601f1061068f576101008083540402835291602001916106ba565b820191906000526020600020905b81548152906001019060200180831161069d57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107585780601f1061072d57610100808354040283529160200191610758565b820191906000526020600020905b81548152906001019060200180831161073b57829003601f168201915b505050600390930154919250506001600160a01b03811690600160a01b900460e01b84565b6034546001600160a01b031681565b6038546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d602081101561081f57600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b15801561086957600080fd5b505afa15801561087d573d6000803e3d6000fd5b505050506040513d602081101561089357600080fd5b50516108e1576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b855115610a3557603854604051632346e68b60e01b81526000916001600160a01b031690632346e68b908a908a90600401808360608083838b5b8381101561093357818101518382015260200161091b565b5050505090500180602001828103825283818151815260200191508051906020019080838360005b8381101561097357818101518382015260200161095b565b50505050905090810190601f1680156109a05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156109be57600080fd5b505afa1580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b50516001600160a01b03161415610a305760405162461bcd60e51b81526004018080602001828103825260258152602001806125286025913960400191505060405180910390fd5b610ba6565b6001600160a01b03831615610b6f5760335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a8957600080fd5b505afa158015610a9d573d6000803e3d6000fd5b505050506040513d6020811015610ab357600080fd5b505160408051632074193160e21b81526001600160a01b0387811660048301529151929350908316916381d064c491602480820192602092909190829003018186803b158015610b0257600080fd5b505afa158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b5051610b695760405162461bcd60e51b815260040180806020018281038252603781526020018061254d6037913960400191505060405180910390fd5b50610ba6565b60405162461bcd60e51b81526004018080602001828103825260448152602001806125846044913960600191505060405180910390fd5b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050506040513d6020811015610c3b57600080fd5b50519050610c4761232f565b6040518060a001604052808981526020018881526020018a8152602001866001600160a01b03168152602001876001600160e01b0319168152509050603460009054906101000a90046001600160a01b03166001600160a01b031682603360009054906101000a90046001600160a01b03166001600160a01b03167fb390521055def5ff9aeb5a6ab0b72337c61966ac7070f15dc31fd2df4adf9bf38b8b8e8c8c8c60405180806020018060200187600360200280838360005b83811015610d19578181015183820152602001610d01565b50505050905001866001600160e01b0319168152602001856001600160a01b031681526020018060200184810384528a818151815260200191508051906020019080838360005b83811015610d78578181015183820152602001610d60565b50505050905090810190601f168015610da55780820380516001836020036101000a031916815260200191505b5084810383528951815289516020918201918b019080838360005b83811015610dd8578181015183820152602001610dc0565b50505050905090810190601f168015610e055780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015610e38578181015183820152602001610e20565b50505050905090810190601f168015610e655780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a46000828152603760209081526040909120825180518493610e9e928492910190612364565b506020828101518051610eb79260018501920190612364565b506040820151610ecd90600283019060036123e2565b5060608201516003909101805460809093015160e01c600160a01b0263ffffffff60a01b196001600160a01b039093166001600160a01b0319909416939093179190911691909117905550600081815260366020526040902043905590509695505050505050565b60345460009082906001600160a01b03163314610f8e576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b158015610fdb57600080fd5b505afa158015610fef573d6000803e3d6000fd5b505050506040513d602081101561100557600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b0316331461107a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d60208110156110f257600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b158015610fdb57600080fd5b61118986868487600b806020026040519081016040528092919082600b60200280828437600092019190915250899150611fa39050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314611209576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b61121161232f565b6000858152603760209081526040918290208251815460026001821615610100026000190190911604601f8101849004909302810160c090810190945260a081018381529093919284928491908401828280156112af5780601f10611284576101008083540402835291602001916112af565b820191906000526020600020905b81548152906001019060200180831161129257829003601f168201915b50505050508152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113515780601f1061132657610100808354040283529160200191611351565b820191906000526020600020905b81548152906001019060200180831161133457829003601f168201915b5050509183525050604080516060810191829052602090920191906002840190600390826000855b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161137957505050928452505050600391909101546001600160a01b038116602080840191909152600160a01b90910460e01b6001600160e01b031916604092830152600088815260379091529081209192506114138282612486565b611421600183016000612486565b61142f6002830160006124cd565b5060030180546001600160c01b031916905560335460405186916001600160a01b0316907f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe90600090a360335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b5051905060018514156118d8578151511561176e57603854604080840151845160335460208701519351634b6c2f7760e11b81526000956001600160a01b03908116956396d85eee95949390911691600401808560608083838d5b8381101561155b578181015183820152602001611543565b5050505090500180602001846001600160a01b0316815260200180602001838103835286818151815260200191508051906020019080838360005b838110156115ae578181015183820152602001611596565b50505050905090810190601f1680156115db5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561160e5781810151838201526020016115f6565b50505050905090810190601f16801561163b5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561165e57600080fd5b505af1158015611672573d6000803e3d6000fd5b505050506040513d602081101561168857600080fd5b5051608084015160408051635d1da8cb60e01b81526001600160a01b0380851660048301526001600160e01b03199093166024820152905192935090841691635d1da8cb916044808201926020929091908290030181600087803b1580156116ef57600080fd5b505af1158015611703573d6000803e3d6000fd5b505050506040513d602081101561171957600080fd5b505161176c576040805162461bcd60e51b815260206004820152601c60248201527f6661696c6420746f207265676973746572206e657720736368656d6500000000604482015290519081900360640190fd5b505b60608201516001600160a01b0316158015906118035750806001600160a01b03166381d064c483606001516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156117d657600080fd5b505afa1580156117ea573d6000803e3d6000fd5b505050506040513d602081101561180057600080fd5b50515b156118d857806001600160a01b031663653915e583606001516040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b505050506040513d602081101561188557600080fd5b50516118d8576040805162461bcd60e51b815260206004820152601e60248201527f6661696c6420746f20756e7265676973746572206f6c6420736368656d650000604482015290519081900360640190fd5b60335460408051878152905188926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a350600195945050505050565b60345460009082906001600160a01b03163314611980576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ce57600080fd5b505afa1580156119e2573d6000803e3d6000fd5b505050506040513d60208110156119f857600080fd5b505160408051632074193160e21b815230600482015290516001600160a01b03909216916381d064c491602480820192602092909190829003018186803b158015611a4257600080fd5b505afa158015611a56573d6000803e3d6000fd5b505050506040513d6020811015611a6c57600080fd5b5051611aba576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0857600080fd5b505afa158015611b1c573d6000803e3d6000fd5b505050506040513d6020811015611b3257600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015611b8b57600080fd5b505afa158015611b9f573d6000803e3d6000fd5b505050506040513d6020811015611bb557600080fd5b50519392505050565b60345460009082906001600160a01b03163314611c17576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c6557600080fd5b505afa158015611c79573d6000803e3d6000fd5b505050506040513d6020811015611c8f57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015611cec57600080fd5b505af1158015611d00573d6000803e3d6000fd5b505050506040513d6020811015611d1657600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611d7b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611dc957600080fd5b505afa158015611ddd573d6000803e3d6000fd5b505050506040513d6020811015611df357600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b158015611e4857600080fd5b505af1158015611e5c573d6000803e3d6000fd5b505050506040513d6020811015611e7257600080fd5b505195945050505050565b60345460009082906001600160a01b03163314611ed6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2457600080fd5b505afa158015611f38573d6000803e3d6000fd5b505050506040513d6020811015611f4e57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b158015611e4857600080fd5b6001600160a01b038416611ffe576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61200785612210565b603480546001600160a01b0319166001600160a01b03861617905582612203576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b83811015612071578181015183820152602001612059565b50505050905001826001600160a01b031681526020019250505060206040518083038186803b1580156120a357600080fd5b505afa1580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561211f57600080fd5b505afa158015612133573d6000803e3d6000fd5b505050506040513d6101a081101561214a57600080fd5b50519050806121fc57604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b8381101561219b578181015183820152602001612183565b50505050905001826001600160a01b0316815260200192505050602060405180830381600087803b1580156121cf57600080fd5b505af11580156121e3573d6000803e3d6000fd5b505050506040513d60208110156121f957600080fd5b50505b5050612209565b60358390555b5050505050565b600054610100900460ff16806122295750612229612329565b80612237575060005460ff16155b6122725760405162461bcd60e51b815260040180806020018281038252602e8152602001806125c8602e913960400191505060405180910390fd5b600054610100900460ff1615801561229d576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166122f8576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b0384161790558015612325576000805461ff00191690555b5050565b303b1590565b6040518060a0016040528060608152602001606081526020016123506124d4565b815260006020820181905260409091015290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123a557805160ff19168380011785556123d2565b828001600101855582156123d2579182015b828111156123d25782518255916020019190600101906123b7565b506123de9291506124f2565b5090565b60018301918390821561247a5791602002820160005b8382111561244457835183826101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555092602001926008016020816007010492830192600103026123f8565b80156124785782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302612444565b505b506123de929150612507565b50805460018160011615610100020316600290046000825580601f106124ac57506124ca565b601f0160209004906000526020600020908101906124ca91906124f2565b50565b5060009055565b60405180606001604052806003906020820280368337509192915050565b5b808211156123de57600081556001016124f3565b5b808211156123de57805467ffffffffffffffff1916815560010161250856fe736368656d65206e616d6520646f6573206e6f7420657869737420696e2041726348697665736368656d6520746f207265706c616365206973206e6f74207265676973746572656420696e20746865206f7267616e697a6174696f6e70726f706f73616c206d7573742068617665206120736368656d65206e616d6520746f2072656973746572206f72206164647265737320746f20756e7265676973746572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212200b8ab90af5b2f97c563437b8c88c232d33069623f6dec2c5274c330b0f1eaaee64736f6c634300060c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}