UNPKG

@josojo/realitytoken-contracts

Version:
750 lines (749 loc) 356 kB
{ "contractName": "Distribution", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "balances", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "minTimeout", "outputs": [ { "name": "", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "realityCheck", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "contentHash", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "templateId", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "realityCheckQuestion", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "minBond", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "forkonomicToken", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "openingTs", "outputs": [ { "name": "", "type": "uint32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "fSystem", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "hashid", "type": "bytes32" }, { "indexed": false, "name": "user", "type": "address" } ], "name": "Withdraw", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "a", "type": "address" } ], "name": "LogAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "b", "type": "bytes32" } ], "name": "LogBytes", "type": "event" }, { "constant": false, "inputs": [ { "name": "_forkonomicToken", "type": "address" }, { "name": "_realityCheck", "type": "address" }, { "name": "_fSystem", "type": "address" } ], "name": "setRealityVariables", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "user", "type": "address[]" }, { "name": "fundAmount_", "type": "uint256[]" } ], "name": "injectReward", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "finalize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "arbitrator", "type": "address" } ], "name": "askRealitio", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "hashid_", "type": "bytes32" } ], "name": "withdrawReward", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "branch", "type": "bytes32" }, { "name": "questionId", "type": "bytes32" }, { "name": "arbitrator", "type": "address" } ], "name": "delayedDistributionLeftOverTokens", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052600060055534801561001557600080fd5b5060018054600160a060020a031916331790556111c4806100376000396000f3006080604052600436106100d75763ffffffff60e060020a60003504166302886a4b81146100dc57806310ae10471461016c57806327e235e314610193578063474b5809146101c65780634bb278f3146101de5780634c302423146101f35780634cf71be4146102075780635099088014610235578063646c2e33146102665780637aa77f291461027b5780637dbec82b14610290578063831518b71461031a5780638da5cb5b1461032f578063942032e314610344578063c704965714610359578063d440796e1461036e578063fbae19f914610383575b600080fd5b3480156100e857600080fd5b506040805160206004803580820135838102808601850190965280855261016a95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103b09650505050505050565b005b34801561017857600080fd5b5061016a600435602435600160a060020a03604435166104ee565b34801561019f57600080fd5b506101b4600160a060020a03600435166109f3565b60408051918252519081900360200190f35b3480156101d257600080fd5b5061016a600435610a05565b3480156101ea57600080fd5b5061016a610afd565b6101b4600160a060020a0360043516610b96565b34801561021357600080fd5b5061021c610ee0565b6040805163ffffffff9092168252519081900360200190f35b34801561024157600080fd5b5061024a610eec565b60408051600160a060020a039092168252519081900360200190f35b34801561027257600080fd5b506101b4610efb565b34801561028757600080fd5b506101b4610f01565b34801561029c57600080fd5b506102a5610f07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b506101b4610f95565b34801561033b57600080fd5b5061024a610f9b565b34801561035057600080fd5b5061024a610faa565b34801561036557600080fd5b5061021c610fb9565b34801561037a57600080fd5b5061024a610fcd565b34801561038f57600080fd5b5061016a600160a060020a0360043581169060243581169060443516610fdc565b600154600090600160a060020a03163314610415576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b60015474010000000000000000000000000000000000000000900460ff1615610488576040805160e560020a62461bcd02815260206004820152601960248201527f736574757020697320616c72656164792066696e697368656400000000000000604482015290519081900360640190fd5b5060005b82518110156104e95781818151811015156104a357fe5b9060200190602002015160008085848151811015156104be57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205560010161048c565b505050565b60048054604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a03858116948201949094526024810187905290516000939092169163494691469160448082019260209290919082900301818787803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b505115156105e4576040805160e560020a62461bcd02815260206004820152601b60248201527f61726269747261746f72206e6f742077686974652d6c69737465640000000000604482015290519081900360640190fd5b600354600954600754600654604080517f12a203c3000000000000000000000000000000000000000000000000000000008152600481018990526024810194909452600160a060020a03878116604486015263ffffffff90931660648501526084840191909152519216916312a203c39160a4808201926020929091908290030181600087803b15801561067757600080fd5b505af115801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b505160048054600354604080517facae8f4e00000000000000000000000000000000000000000000000000000000815293840188905251939450600160a060020a0391821693632667404b93929091169163acae8f4e9160248083019260209291908290030181600087803b15801561071957600080fd5b505af115801561072d573d6000803e3d6000fd5b505050506040513d602081101561074357600080fd5b50516040805163ffffffff84811660e060020a0282529092166004830152602482018890525160448083019260209291908290030181600087803b15801561078a57600080fd5b505af115801561079e573d6000803e3d6000fd5b505050506040513d60208110156107b457600080fd5b5051151561080c576040805160e560020a62461bcd02815260206004820181905260248201527f206272616e6368206e6f7420696e2072696768742074696d652077696e646f77604482015290519081900360640190fd5b600254604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481018790529051600160a060020a03909216916357cfeeee9184918491634d30b6be9160448083019260209291908290030181600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d60208110156108ac57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a0390931660048401526024830191909152604482018890525160648083019260209291908290030181600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b505050506040513d602081101561092c57600080fd5b505115156109aa576040805160e560020a62461bcd02815260206004820152602560248201527f207472616e73666572206f662066756e647320776173206e6f7420737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051858152600160a060020a038316602082015281517f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df929181900390910190a150505050565b60006020819052908152604090205481565b600254336000818152602081815260408083205481517f57cfeeee000000000000000000000000000000000000000000000000000000008152600481019590955260248501526044840186905251600160a060020a03909416936357cfeeee93606480820194918390030190829087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b505050506040513d6020811015610aac57600080fd5b5050336000818152602081815260408083209290925581518481529081019290925280517f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df9281900390910190a150565b600154600160a060020a03163314610b5f576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600780546103e867ffffffff00000000199091166401000000004262093a800163ffffffff16021763ffffffff1916179055604080517f576869636820636f6e74726163742073686f756c642062652061626c6520746f6020808301919091527f2077697468647261772066756e64732066726f6d20000000000000000000000082840152306c010000000000000000000000000260558301527f3f0000000000000000000000000000000000000000000000000000000000000060698301528251808303604a018152606a9092019092528051600092610c7c926008929101906110fd565b50600554600760049054906101000a900463ffffffff166008604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805460018160011615610100020316600290048015610d115780601f10610cef576101008083540402835291820191610d11565b820191906000526020600020905b815481529060010190602001808311610cfd575b505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610d565780518252601f199092019160209182019101610d37565b51815160001960209490940361010090810a8501918216911992909216179091526040519490920184900384206009556003546005546007547f762c38fd00000000000000000000000000000000000000000000000000000000875260048701828152600160a060020a038c811660448a015263ffffffff80841660648b018190526401000000009094041660848a01819052600060a48b0181905260c060248c019081526008805460026001821615909c02909a019099169990990460c48c01819052929096169b5063762c38fd9a5093989597508c96929593949391929160e4019088908015610e895780601f10610e5e57610100808354040283529160200191610e89565b820191906000526020600020905b815481529060010190602001808311610e6c57829003601f168201915b5050975050505050505050602060405180830381600087803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b505050506040513d6020811015610ed857600080fd5b505192915050565b60075463ffffffff1681565b600354600160a060020a031681565b60095481565b60055481565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b505050505081565b60065481565b600154600160a060020a031681565b600254600160a060020a031681565b600754640100000000900463ffffffff1681565b600454600160a060020a031681565b600154600160a060020a0316331461103e576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b60015474010000000000000000000000000000000000000000900460ff16156110b1576040805160e560020a62461bcd02815260206004820152601960248201527f736574757020697320616c72656164792066696e697368656400000000000000604482015290519081900360640190fd5b60028054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549285169282169290921790915560038054929093169116179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061113e57805160ff191683800117855561116b565b8280016001018555821561116b579182015b8281111561116b578251825591602001919060010190611150565b5061117792915061117b565b5090565b61119591905b808211156111775760008155600101611181565b905600a165627a7a723058207bda0a818d0dd5dd362e69043626fc8cf35a3754790693c0f4906e19551d05f00029", "deployedBytecode": "0x6080604052600436106100d75763ffffffff60e060020a60003504166302886a4b81146100dc57806310ae10471461016c57806327e235e314610193578063474b5809146101c65780634bb278f3146101de5780634c302423146101f35780634cf71be4146102075780635099088014610235578063646c2e33146102665780637aa77f291461027b5780637dbec82b14610290578063831518b71461031a5780638da5cb5b1461032f578063942032e314610344578063c704965714610359578063d440796e1461036e578063fbae19f914610383575b600080fd5b3480156100e857600080fd5b506040805160206004803580820135838102808601850190965280855261016a95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103b09650505050505050565b005b34801561017857600080fd5b5061016a600435602435600160a060020a03604435166104ee565b34801561019f57600080fd5b506101b4600160a060020a03600435166109f3565b60408051918252519081900360200190f35b3480156101d257600080fd5b5061016a600435610a05565b3480156101ea57600080fd5b5061016a610afd565b6101b4600160a060020a0360043516610b96565b34801561021357600080fd5b5061021c610ee0565b6040805163ffffffff9092168252519081900360200190f35b34801561024157600080fd5b5061024a610eec565b60408051600160a060020a039092168252519081900360200190f35b34801561027257600080fd5b506101b4610efb565b34801561028757600080fd5b506101b4610f01565b34801561029c57600080fd5b506102a5610f07565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102df5781810151838201526020016102c7565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b506101b4610f95565b34801561033b57600080fd5b5061024a610f9b565b34801561035057600080fd5b5061024a610faa565b34801561036557600080fd5b5061021c610fb9565b34801561037a57600080fd5b5061024a610fcd565b34801561038f57600080fd5b5061016a600160a060020a0360043581169060243581169060443516610fdc565b600154600090600160a060020a03163314610415576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b60015474010000000000000000000000000000000000000000900460ff1615610488576040805160e560020a62461bcd02815260206004820152601960248201527f736574757020697320616c72656164792066696e697368656400000000000000604482015290519081900360640190fd5b5060005b82518110156104e95781818151811015156104a357fe5b9060200190602002015160008085848151811015156104be57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205560010161048c565b505050565b60048054604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a03858116948201949094526024810187905290516000939092169163494691469160448082019260209290919082900301818787803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b505050506040513d602081101561058c57600080fd5b505115156105e4576040805160e560020a62461bcd02815260206004820152601b60248201527f61726269747261746f72206e6f742077686974652d6c69737465640000000000604482015290519081900360640190fd5b600354600954600754600654604080517f12a203c3000000000000000000000000000000000000000000000000000000008152600481018990526024810194909452600160a060020a03878116604486015263ffffffff90931660648501526084840191909152519216916312a203c39160a4808201926020929091908290030181600087803b15801561067757600080fd5b505af115801561068b573d6000803e3d6000fd5b505050506040513d60208110156106a157600080fd5b505160048054600354604080517facae8f4e00000000000000000000000000000000000000000000000000000000815293840188905251939450600160a060020a0391821693632667404b93929091169163acae8f4e9160248083019260209291908290030181600087803b15801561071957600080fd5b505af115801561072d573d6000803e3d6000fd5b505050506040513d602081101561074357600080fd5b50516040805163ffffffff84811660e060020a0282529092166004830152602482018890525160448083019260209291908290030181600087803b15801561078a57600080fd5b505af115801561079e573d6000803e3d6000fd5b505050506040513d60208110156107b457600080fd5b5051151561080c576040805160e560020a62461bcd02815260206004820181905260248201527f206272616e6368206e6f7420696e2072696768742074696d652077696e646f77604482015290519081900360640190fd5b600254604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481018790529051600160a060020a03909216916357cfeeee9184918491634d30b6be9160448083019260209291908290030181600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050506040513d60208110156108ac57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a0390931660048401526024830191909152604482018890525160648083019260209291908290030181600087803b15801561090257600080fd5b505af1158015610916573d6000803e3d6000fd5b505050506040513d602081101561092c57600080fd5b505115156109aa576040805160e560020a62461bcd02815260206004820152602560248201527f207472616e73666572206f662066756e647320776173206e6f7420737563636560448201527f737366756c000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051858152600160a060020a038316602082015281517f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df929181900390910190a150505050565b60006020819052908152604090205481565b600254336000818152602081815260408083205481517f57cfeeee000000000000000000000000000000000000000000000000000000008152600481019590955260248501526044840186905251600160a060020a03909416936357cfeeee93606480820194918390030190829087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b505050506040513d6020811015610aac57600080fd5b5050336000818152602081815260408083209290925581518481529081019290925280517f0448f4c3f7e202963aee589c062ccd162bcad2d1e20f233e7092cf77dacc61df9281900390910190a150565b600154600160a060020a03163314610b5f576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600780546103e867ffffffff00000000199091166401000000004262093a800163ffffffff16021763ffffffff1916179055604080517f576869636820636f6e74726163742073686f756c642062652061626c6520746f6020808301919091527f2077697468647261772066756e64732066726f6d20000000000000000000000082840152306c010000000000000000000000000260558301527f3f0000000000000000000000000000000000000000000000000000000000000060698301528251808303604a018152606a9092019092528051600092610c7c926008929101906110fd565b50600554600760049054906101000a900463ffffffff166008604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805460018160011615610100020316600290048015610d115780601f10610cef576101008083540402835291820191610d11565b820191906000526020600020905b815481529060010190602001808311610cfd575b505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610d565780518252601f199092019160209182019101610d37565b51815160001960209490940361010090810a8501918216911992909216179091526040519490920184900384206009556003546005546007547f762c38fd00000000000000000000000000000000000000000000000000000000875260048701828152600160a060020a038c811660448a015263ffffffff80841660648b018190526401000000009094041660848a01819052600060a48b0181905260c060248c019081526008805460026001821615909c02909a019099169990990460c48c01819052929096169b5063762c38fd9a5093989597508c96929593949391929160e4019088908015610e895780601f10610e5e57610100808354040283529160200191610e89565b820191906000526020600020905b815481529060010190602001808311610e6c57829003601f168201915b5050975050505050505050602060405180830381600087803b158015610eae57600080fd5b505af1158015610ec2573d6000803e3d6000fd5b505050506040513d6020811015610ed857600080fd5b505192915050565b60075463ffffffff1681565b600354600160a060020a031681565b60095481565b60055481565b6008805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b505050505081565b60065481565b600154600160a060020a031681565b600254600160a060020a031681565b600754640100000000900463ffffffff1681565b600454600160a060020a031681565b600154600160a060020a0316331461103e576040805160e560020a62461bcd02815260206004820152601060248201527f73656e646572206e6f74206f776e657200000000000000000000000000000000604482015290519081900360640190fd5b60015474010000000000000000000000000000000000000000900460ff16156110b1576040805160e560020a62461bcd02815260206004820152601960248201527f736574757020697320616c72656164792066696e697368656400000000000000604482015290519081900360640190fd5b60028054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549285169282169290921790915560038054929093169116179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061113e57805160ff191683800117855561116b565b8280016001018555821561116b579182015b8281111561116b578251825591602001919060010190611150565b5061117792915061117b565b5090565b61119591905b808211156111775760008155600101611181565b905600a165627a7a723058207bda0a818d0dd5dd362e69043626fc8cf35a3754790693c0f4906e19551d05f00029", "sourceMap": "130:3579:16:-;;;727:1;701:27;;946:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;981:5:16;:18;;-1:-1:-1;;;;;;981:18:16;989:10;981:18;;;130:3579;;;;;;", "deployedSourceMap": "130:3579:16:-;;;;;;;;;-1:-1:-1;;;130:3579:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1504:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1504:208:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1504:208:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1504:208:16;;;;-1:-1:-1;1504:208:16;-1:-1:-1;1504:208:16;;-1:-1:-1;1504:208:16;;;;;;;;;-1:-1:-1;1504:208:16;;-1:-1:-1;1504:208:16;;-1:-1:-1;;;;;;;1504:208:16;;;2713:994;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2713:994:16;;;;;-1:-1:-1;;;;;2713:994:16;;;;;159:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;159:43:16;-1:-1:-1;;;;;159:43:16;;;;;;;;;;;;;;;;;;;;;2411:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2411:210:16;;;;;1769:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1769:83:16;;;;1858:483;;-1:-1:-1;;;;;1858:483:16;;;;;762:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;762:24:16;;;;;;;;;;;;;;;;;;;;;;;300:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:28:16;;;;;;;;-1:-1:-1;;;;;300:28:16;;;;;;;;;;;;;;861:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:26:16;;;;701:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:27:16;;;;821:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;821:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;734:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;734:22:16;;;;208:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;208:20:16;;;;256:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:38:16;;;;792:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;792:23:16;;;;334:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;334:31:16;;;;1085:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1085:282:16;-1:-1:-1;;;;;1085:282:16;;;;;;;;;;;;;;;1504:208;542:5;;1627:6;;-1:-1:-1;;;;;542:5:16;528:10;:19;519:49;;;;;-1:-1:-1;;;;;519:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:10;;;;;;;636:11;628:49;;;;;-1:-1:-1;;;;;628:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1634:1:16;1622:83;1641:4;:11;1637:1;:15;1622:83;;;1691:11;1703:1;1691:14;;;;;;;;;;;;;;;;;;1671:8;:17;1680:4;1685:1;1680:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1671:17:16;;;;;;;;;;;-1:-1:-1;1671:17:16;:34;1654:3;;1622:83;;;1504:208;;;:::o;2713:994::-;2889:7;;;:51;;;;;;-1:-1:-1;;;;;2889:51:16;;;;;;;;;;;;;;;;;;3068:21;;2889:7;;;;:31;;:51;;;;;;;;;;;;;;;3068:21;2889:7;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;2889:51:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2889:51:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2889:51:16;2881:91;;;;;;;-1:-1:-1;;;;;2881:91:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;3100:12;;3149:11;;3174:10;;3186:7;;3100:94;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3100:94:16;;;;;;;3174:10;;;;3100:94;;;;;;;;;;;;:12;;;:36;;:94;;;;;;;;;;;;;;;:12;;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;3100:94:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3100:94:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3100:94:16;3328:7;;;3359:12;;:38;;;;;;;;;;;;;3100:94;;-1:-1:-1;;;;;;3328:7:16;;;;:30;;3359:12;;;;;:26;;:38;;;;;3100:94;;3359:38;;;;;;;-1:-1:-1;3359:12:16;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;3359:38:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3359:38:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3359:38:16;3328:78;;;;;;;-1:-1:-1;;;3328:78:16;;;;;;;;;;;;;;;;;;;;;;3359:38;;3328:78;;;;;;;-1:-1:-1;3328:78:16;;;;5:2:-1;;;;30:1;27;20:12;5:2;3328:78:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3328:78:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3328:78:16;3320:123;;;;;;;-1:-1:-1;;;;;3320:123:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3523:15;;3563:39;;;;;;3589:4;3563:39;;;;;;;;;;;;-1:-1:-1;;;;;3523:15:16;;;;:24;;3548:13;;3523:15;;3563:25;;:39;;;;;;;;;;;;;;3523:15;;3563:39;;;5:2:-1;;;;30:1;27;20:12;5:2;3563:39:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3563:39:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3563:39:16;3523:88;;;-1:-1:-1;;;3523:88:16;;;;;;-1:-1:-1;;;;;3523:88:16;;;;;;;;;;;;;;;;;;;;;;;;;;3563:39;;3523:88;;;;;;;-1:-1:-1;3523:88:16;;;;5:2:-1;;;;30:1;27;20:12;5:2;3523:88:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3523:88:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3523:88:16;3515:138;;;;;;;-1:-1:-1;;;;;3515:138:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:31;;;;;;-1:-1:-1;;;;;3669:31:16;;;;;;;;;;;;;;;;;;;2713:994;;;;:::o;159:43::-;;;;;;;;;;;;;;:::o;2411:210::-;2469:15;;2494:10;2469:15;2506:20;;;;;;;;;;;;2469:67;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2469:15:16;;;;:24;;:67;;;;;;;;;;;;;:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;2469:67:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2469:67:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;2555:10:16;2569:1;2546:20;;;2469:67;2546:20;;;;;;;:24;;;;2585:29;;;;;;;;;;;;;;;;;;;;;;;;2411:210;:::o;1769:83::-;542:5;;-1:-1:-1;;;;;542:5:16;528:10;:19;519:49;;;;;-1:-1:-1;;;;;519:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;1841:4;1828:17;;-1:-1:-1;;1828:17:16;;;;;1769:83::o;1858:483::-;1942:9;:30;;1995:4;-1:-1:-1;;1942:30:16;;;;1961:3;1965:6;1961:10;1942:30;;;;-1:-1:-1;;1982:17:16;;;;2039:84;;;;;;;;;;;;;;;;;2113:4;2039:84;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;2039:84:16;;;;;;;2009:115;;-1:-1:-1;;2009:115:16;;:20;;:115;;;;:::i;:::-;;2175:10;;2187:9;;;;;;;;;;;2198:20;2158:61;;;;;;;;;;;;;;;-1:-1:-1;;;2158:61:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2158:61:16;;;2148:72;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;365:33;;;2148:72:16;;;;;;;;;;;2134:11;:86;2238:12;;2263:10;;2309;;2238:96;;;2321:9;2238:96;;;;;-1:-1:-1;;;;;2238:96:16;;;;;;;2309:10;;;;2238:96;;;;;;2321:9;;;;;2238:96;;;;;;-1:-1:-1;2238:96:16;;;;;;;;;;;;;2275:20;2238:96;;;274:1:-1;2238:96:16;;;;;;;;;;;;;;;;;;;;;;:12;;;;;-1:-1:-1;2238:24:16;;-1:-1:-1;2263:10:16;;2275:20;;-1:-1:-1;2297:10:16;;2309;;2321:9;;-1:-1:-1;2238:96:16;;;;;;2275:20;;2238:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2238:96:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2238:96:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2238:96:16;;1858:483;-1:-1:-1;;1858:483:16:o;762:24::-;;;;;;:::o;300:28::-;;;-1:-1:-1;;;;;300:28:16;;:::o;861:26::-;;;;:::o;701:27::-;;;;:::o;821:34::-;;;;;;;;;;;;;;;-1:-1:-1;;821:34:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;734:22::-;;;;:::o;208:20::-;;;-1:-1:-1;;;;;208:20:16;;:::o;256:38::-;;;-1:-1:-1;;;;;256:38:16;;:::o;792:23::-;;;;;;;;;:::o;334:31::-;;;-1:-1:-1;;;;;334:31:16;;:::o;1085:282::-;542:5;;-1:-1:-1;;;;;542:5:16;528:10;:19;519:49;;;;;-1:-1:-1;;;;;519:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:10;;;;;;;636:11;628:49;;;;;-1:-1:-1;;;;;628:49:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;1260:15;:34;;-1:-1:-1;;;;;1260:34:16;;;-1:-1:-1;;1260:34:16;;;;;;;1304:7;:18;;;;;;;;;;;;;;;1332:12;:28;;;;;;;;;;;1085:282::o;130:3579::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;130:3579:16;;;-1:-1:-1;130:3579:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.22;\n\nimport \"./ForkonomicToken.sol\";\nimport \"@realitio/realitio-contracts/truffle/contracts/Realitio.sol\";\n\n\ncontract Distribution {\n\n mapping(address => uint256) public balances;\n address public owner;\n bool isFinished;\n\n ForkonomicToken public forkonomicToken;\n Realitio public realityCheck;\n ForkonomicSystem public fSystem;\n \n event Withdraw(bytes32 hashid, address user);\n event LogAddress(address a);\n event LogBytes(bytes32 b);\n\n modifier isOwner() {\n require (msg.sender == owner, \"sender not owner\");\n _;\n }\n\n modifier notYetFinished() {\n require(!isFinished, \"setup is already finished\");\n _;\n }\n\n uint256 public templateId=0;\n uint256 public minBond;\n uint32 public minTimeout;\n uint32 public openingTs;\n string public realityCheckQuestion;\n bytes32 public contentHash;\n\n //Constructor sets the owner of the Distribution\n constructor() public { \n owner = msg.sender;\n }\n\n // variables, which we were not able to hand over to the constructor\n function setRealityVariables(ForkonomicToken _forkonomicToken, Realitio _realityCheck, ForkonomicSystem _fSystem)\n public \n isOwner()\n notYetFinished()\n {\n forkonomicToken = _forkonomicToken;\n fSystem = _fSystem;\n realityCheck = _realityCheck;\n }\n\n //@param users list of users that should be rewarded\n //@param fundAmount list of amounts the users should be funded with\n function injectReward(address[] user, uint[] fundAmount_)\n public\n isOwner()\n notYetFinished()\n {\n for (uint i=0; i < user.length; i++)\n balances[user[i]] = fundAmount_[i];\n }\n\n // to be called once all rewards are injected\n function finalize()\n public\n isOwner()\n {\n isFinished = true;\n }\n\n function askRealitio(address arbitrator) public payable returns (bytes32) {\n openingTs = uint32(now+7 days);\n minTimeout = 1000;\n realityCheckQuestion = string(abi.encodePacked(\"Which contract should be able to withdraw funds from \", this, \"?\"));\n contentHash = keccak256(abi.encodePacked(templateId, openingTs, realityCheckQuestion)); \n return realityCheck.askQuestion(templateId, realityCheckQuestion, arbitrator, minTimeout, openingTs, 0);\n }\n\n // param hashid_ hashid_ should be the hash of the branch \n function withdrawReward(bytes32 hashid_) public {\n forkonomicToken.transfer(msg.sender, balances[msg.sender], hashid_);\n balances[msg.sender] = 0;\n emit Withdraw(hashid_, msg.sender);\n }\n \n // param branch branch should be the hash of the branch for receiving the money\n function delayedDistributionLeftOverTokens(bytes32 branch, bytes32 questionId, address arbitrator)\n public {\n // ensure that arbitrator is white-listed\n require(fSystem.isArbitratorWhitelisted(arbitrator, branch), \"arbitrator not white-listed\");\n // ensure that fundsReceiver is the right party and that the question_ID fits\n address fundsReceiver = address(realityCheck.getFinalAnswerIfMatches(questionId, contentHash, arbitrator, minTimeout, minBond));\n // ensures that balances are not withdrawn form a branch older than the end of the questionanswer period. \n require(fSystem.isBranchCreatedAfterTS(realityCheck.getFinalizeTS(questionId), branch), \" branch not in right time window\");\n // send acutal funds to another distribution contract\n require(forkonomicToken.transfer(fundsReceiver, forkonomicToken.balanceOf(this, branch), branch), \" transfer of funds was not successful\");\n\n emit Withdraw(branch, fundsReceiver);\n }\n}", "sourcePath": "@josojo/forkonomics-contracts/contracts/Distribution.sol", "ast": { "absolutePath": "@josojo/forkonomics-contracts/contracts/Distribution.sol", "exportedSymbols": { "Distribution": [ 4906 ] }, "id": 4907, "nodeType": "SourceUnit", "nodes": [ { "id": 4613, "literals": [ "solidity", "^", "0.4", ".22" ], "nodeType": "PragmaDirective", "src": "0:24:16" }, { "absolutePath": "@josojo/forkonomics-contracts/contracts/ForkonomicToken.sol", "file": "./ForkonomicToken.sol", "id": 4614, "nodeType": "ImportDirective", "scope": 4907, "sourceUnit": 6884, "src": "26:31:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol", "file": "@realitio/realitio-contracts/truffle/contracts/Realitio.sol", "id": 4615, "nodeType": "ImportDirective", "scope": 4907, "sourceUnit": 8947, "src": "58:69:16", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4906, "linearizedBaseContracts": [ 4906 ], "name": "Distribution", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 4619, "name": "balances", "nodeType": "VariableDeclaration", "scope": 4906, "src": "159:43:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 4618, "keyType": { "id": 4616, "name": "address", "nodeType": "ElementaryTypeName", "src": "167:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "159:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 4617, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "178:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 4621, "name": "owner", "nodeType": "VariableDeclaration", "scope": 4906, "src": "208:20:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4620, "name": "address", "nodeType": "ElementaryTypeName", "src": "208:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 4623, "name": "isFinished", "nodeType": "VariableDeclaration", "scope": 4906, "src": "234:15:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4622, "name": "bool", "nodeType": "ElementaryTypeName", "src": "234:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4625, "name": "forkonomicToken", "nodeType": "VariableDeclaration", "scope": 4906, "src": "256:38:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ForkonomicToken_$6883", "typeString": "contract ForkonomicToken" }, "typeName": { "contractScope": null, "id": 4624, "name": "ForkonomicToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 6883, "src": "256:15:16", "typeDescriptions": { "typeIdentifier": "t_contract$_ForkonomicToken_$6883", "typeString": "contract ForkonomicToken" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 4627, "name": "realityCheck", "nodeType": "VariableDeclaration", "scope": 4906, "src": "300:28:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Realitio_$8946", "typeString": "contract Realitio" }, "typeName": { "contractScope": null, "id": 4626, "name": "Realitio", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 8946, "src": "300:8:16", "typeDescriptions": { "typeIdentifier": "t_contract$_Realitio_$8946", "typeString": "contract Realitio" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 4629, "name": "fSystem", "nodeType": "VariableDeclaration", "scope": 4906, "src": "334:31:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_ForkonomicSystem_$5927", "typeString": "contract ForkonomicSystem" }, "typeName": { "contractScope": null, "id": 4628, "name": "ForkonomicSystem", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5927, "src": "334:16:16", "typeDescriptions": { "typeIdentifier": "t_contract$_ForkonomicSystem_$5927", "typeString": "contract ForkonomicSystem" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": null, "id": 4635, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { "id": 4634, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4631, "indexed": false, "name": "hashid", "nodeType": "VariableDeclaration", "scope": 4635, "src": "390:14:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4630, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "390:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4633, "indexed": false, "name": "user", "nodeType": "VariableDeclaration", "scope": 4635, "src": "406:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4632, "name": "address", "nodeType": "ElementaryTypeName", "src": "406:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "389:30:16" }, "src": "375:45:16" }, { "anonymous": false, "documentation": null, "id": 4639, "name": "LogAddress", "nodeType": "EventDefinition", "parameters": { "id": 4638, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4637, "indexed": false, "name": "a", "nodeType": "VariableDeclaration", "scope": 4639, "src": "442:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4636, "name": "address", "nodeType": "ElementaryTypeName", "src": "442:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "441:11:16" }, "src": "425:28:16" }, { "anonymous": false, "documentation": null, "id": 4643, "name": "LogBytes", "nodeType": "EventDefinition", "parameters": { "id": 4642, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4641, "indexed": false, "name": "b", "nodeType": "VariableDeclaration", "scope": 4643, "src": "473:9:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4640, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "473:7:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "472:11:16" }, "src": "458:26:16" }, { "body": { "id": 4654, "nodeType": "Block", "src": "509:77:16", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 4649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 4646, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9180, "src": "528:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 4647, "isConstant": false, "isLValue": false,