UNPKG

@backt/protocol

Version:
331 lines 36.2 kB
{ "contractName": "Feeds", "abi": [ { "constant": true, "inputs": [], "name": "daemonAccount", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "marketNames", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "markets", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "bytesId", "type": "bytes32" }, { "indexed": false, "name": "strId", "type": "string" } ], "name": "LogFeedsMarketAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes32" } ], "name": "LogFeedsMarketRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes32" }, { "indexed": true, "name": "timestamp", "type": "uint256" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "LogFeedsPush", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": true, "inputs": [ { "name": "_marketId", "type": "bytes32" } ], "name": "isMarketActive", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isDaemon", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_daemon", "type": "address" } ], "name": "setDaemonAccount", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_marketId", "type": "bytes32" }, { "name": "_value", "type": "uint256" }, { "name": "_timestamp", "type": "uint256" } ], "name": "push", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_marketId", "type": "bytes32" } ], "name": "read", "outputs": [ { "name": "value", "type": "uint256" }, { "name": "timestamp", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_marketStrId", "type": "string" } ], "name": "addMarket", "outputs": [ { "name": "marketId", "type": "bytes32" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_marketId", "type": "bytes32" } ], "name": "removeMarket", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052601e600155336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130e806100586000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630baeb69a146101b4578063313ce5671461020b578063419552141461023657806342fe6695146102e05780635c5212dd1461033757806361da143914610368578063715018a6146103b45780637564912b146103cb57806380957015146104145780638da5cb5b1461044357806392f4b0b31461049a578063e649d78c146104df578063f2fde38b14610522578063f4463db514610565575b3480156100dc57600080fd5b506040805190810160405280601c81526020017f43616e27742063616c6c2066616c6c6261636b2066756e6374696f6e000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3480156101c057600080fd5b506101c96105ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021757600080fd5b506102206105d4565b6040518082815260200191505060405180910390f35b34801561024257600080fd5b5061026560048036038101908080356000191690602001909291905050506105da565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a557808201518184015260208101905061028a565b50505050905090810190601f1680156102d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ec57600080fd5b5061031960048036038101908080359060200190820180359060200191909192939192939050505061068a565b60405180826000191660001916815260200191505060405180910390f35b34801561034357600080fd5b50610366600480360381019080803560001916906020019092919050505061082d565b005b34801561037457600080fd5b506103976004803603810190808035600019169060200190929190505050610a4c565b604051808381526020018281526020019250505060405180910390f35b3480156103c057600080fd5b506103c9610b74565b005b3480156103d757600080fd5b506103fa6004803603810190808035600019169060200190929190505050610c76565b604051808215151515815260200191505060405180910390f35b34801561042057600080fd5b50610429610c96565b604051808215151515815260200191505060405180910390f35b34801561044f57600080fd5b50610458610cee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104a657600080fd5b506104dd60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050610d13565b005b3480156104eb57600080fd5b50610520600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b34801561052e57600080fd5b50610563600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611060565b005b34801561057157600080fd5b5061059460048036038101908080356000191690602001909291905050506110c7565b604051808215151515815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60036020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106825780601f1061065757610100808354040283529160200191610682565b820191906000526020600020905b81548152906001019060200180831161066557829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e757600080fd5b8282604051602001808383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b602083101515610743578051825260208201915060208101905060208303925061071e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550828260036000846000191660001916815260200190815260200160002091906107d092919061123d565b5080600019167fec0192f611133301ab5dd94a415ca4ed865668ca2f52cceee52eaa561044bafa8484604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088857600080fd5b610891816110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561095d578082015181840152602081019050610942565b50505050905090810190601f16801561098a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060026000856000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506040805190810160405280600081526020016000815250600560008560001916600019168152602001908152602001600020600082015181600001556020820151816001015590505082600019167f1de4d777747a0fae0f827374bf2373391fee95df6f6fc3e24af9c7ca46ecd37260405160405180910390a2505050565b600080610a58836110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b24578082015181840152602081019050610b09565b50505050905090810190601f168015610b515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610b69856110f9565b935093505050915091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bcf57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d1b610c96565b606060405190810160405280602481526020017f43616c6c6572206d75737420626520746865207265676973746572656420446181526020017f656d6f6e000000000000000000000000000000000000000000000000000000008152508181901515610e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610de7578082015181840152602081019050610dcc565b50505050905090810190601f168015610e145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610e2c856110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610f33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ef8578082015181840152602081019050610edd565b50505050905090810190601f168015610f255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051908101604052808781526020018681525060056000896000191660001916815260200190815260200160002060008201518160000155602082015181600101559050508487600019167f62a9ea16f13bd1758296411634390e5cfe2b3879cb368388a74714a03698cbd9886040518082815260200191505060405180910390a350505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561101c57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110bb57600080fd5b6110c481611143565b50565b600060026000836000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600080600560008460001916600019168152602001908152602001600020600001549150600560008460001916600019168152602001908152602001600020600101549050915091565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561117f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061127e57803560ff19168380011785556112ac565b828001600101855582156112ac579182015b828111156112ab578235825591602001919060010190611290565b5b5090506112b991906112bd565b5090565b6112df91905b808211156112db5760008160009055506001016112c3565b5090565b905600a165627a7a72305820954057864fc2a2ae4bdbb6fae9868fa04d22f61876e574e7463b37ac0a50c8790029", "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630baeb69a146101b4578063313ce5671461020b578063419552141461023657806342fe6695146102e05780635c5212dd1461033757806361da143914610368578063715018a6146103b45780637564912b146103cb57806380957015146104145780638da5cb5b1461044357806392f4b0b31461049a578063e649d78c146104df578063f2fde38b14610522578063f4463db514610565575b3480156100dc57600080fd5b506040805190810160405280601c81526020017f43616e27742063616c6c2066616c6c6261636b2066756e6374696f6e000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3480156101c057600080fd5b506101c96105ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021757600080fd5b506102206105d4565b6040518082815260200191505060405180910390f35b34801561024257600080fd5b5061026560048036038101908080356000191690602001909291905050506105da565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a557808201518184015260208101905061028a565b50505050905090810190601f1680156102d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ec57600080fd5b5061031960048036038101908080359060200190820180359060200191909192939192939050505061068a565b60405180826000191660001916815260200191505060405180910390f35b34801561034357600080fd5b50610366600480360381019080803560001916906020019092919050505061082d565b005b34801561037457600080fd5b506103976004803603810190808035600019169060200190929190505050610a4c565b604051808381526020018281526020019250505060405180910390f35b3480156103c057600080fd5b506103c9610b74565b005b3480156103d757600080fd5b506103fa6004803603810190808035600019169060200190929190505050610c76565b604051808215151515815260200191505060405180910390f35b34801561042057600080fd5b50610429610c96565b604051808215151515815260200191505060405180910390f35b34801561044f57600080fd5b50610458610cee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104a657600080fd5b506104dd60048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050610d13565b005b3480156104eb57600080fd5b50610520600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b34801561052e57600080fd5b50610563600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611060565b005b34801561057157600080fd5b5061059460048036038101908080356000191690602001909291905050506110c7565b604051808215151515815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60036020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106825780601f1061065757610100808354040283529160200191610682565b820191906000526020600020905b81548152906001019060200180831161066557829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e757600080fd5b8282604051602001808383808284378201915050925050506040516020818303038152906040526040518082805190602001908083835b602083101515610743578051825260208201915060208101905060208303925061071e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550828260036000846000191660001916815260200190815260200160002091906107d092919061123d565b5080600019167fec0192f611133301ab5dd94a415ca4ed865668ca2f52cceee52eaa561044bafa8484604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a292915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088857600080fd5b610891816110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561095d578082015181840152602081019050610942565b50505050905090810190601f16801561098a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060026000856000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506040805190810160405280600081526020016000815250600560008560001916600019168152602001908152602001600020600082015181600001556020820151816001015590505082600019167f1de4d777747a0fae0f827374bf2373391fee95df6f6fc3e24af9c7ca46ecd37260405160405180910390a2505050565b600080610a58836110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b24578082015181840152602081019050610b09565b50505050905090810190601f168015610b515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610b69856110f9565b935093505050915091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bcf57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d1b610c96565b606060405190810160405280602481526020017f43616c6c6572206d75737420626520746865207265676973746572656420446181526020017f656d6f6e000000000000000000000000000000000000000000000000000000008152508181901515610e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610de7578082015181840152602081019050610dcc565b50505050905090810190601f168015610e145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610e2c856110c7565b606060405190810160405280602581526020017f4d61726b6574206d7573742062652061637469766520746f207075736820612081526020017f76616c75650000000000000000000000000000000000000000000000000000008152508181901515610f33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ef8578082015181840152602081019050610edd565b50505050905090810190601f168015610f255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051908101604052808781526020018681525060056000896000191660001916815260200190815260200160002060008201518160000155602082015181600101559050508487600019167f62a9ea16f13bd1758296411634390e5cfe2b3879cb368388a74714a03698cbd9886040518082815260200191505060405180910390a350505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561101c57600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110bb57600080fd5b6110c481611143565b50565b600060026000836000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600080600560008460001916600019168152602001908152602001600020600001549150600560008460001916600019168152602001908152602001600020600101549050915091565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561117f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061127e57803560ff19168380011785556112ac565b828001600101855582156112ac579182015b828111156112ab578235825591602001919060010190611290565b5b5090506112b991906112bd565b5090565b6112df91905b808211156112db5760008160009055506001016112c3565b5090565b905600a165627a7a72305820954057864fc2a2ae4bdbb6fae9868fa04d22f61876e574e7463b37ac0a50c8790029", "sourceMap": "142:4018:1:-;;;1062:2;1039:25;;575:10:8;567:5;;:18;;;;;;;;;;;;;;;;;;142:4018:1;;;;;;", "deployedSourceMap": "142:4018:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:4018:1;4134:15;;;;;;;;;;;;;;;;;;4127:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4127:23:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1540:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1540:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1039:25:1;;;;;;;;;;;;;;;;;;;;;;;1413:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1413:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1413:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3347:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3347:321:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3715:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3715:347:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2693:233;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2693:233:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:111:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:8;;;;;;1156:39:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1156:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1575:98:1;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2236:373:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2236:373:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1679:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1679:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:103:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1274:103:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:112:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1202:112:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1540:28;;;;;;;;;;;;;:::o;1039:25::-;;;;:::o;1413:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3347:321::-;3439:16;719:5:8;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3509:12:1;;3492:30;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3492:30:1;;;3482:41;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3482:41:1;;;;;;;;;;;;;;;;3471:52;;3553:4;3533:7;:17;3541:8;3533:17;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3591:12;;3567:11;:21;3579:8;3567:21;;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;3638:8;3618:43;;;;3648:12;;3618:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3347:321;;;;:::o;3715:347::-;719:5:8;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3808:25:1;3823:9;3808:14;:25::i;:::-;3835:28;;;;;;;;;;;;;;;;;;;;;;;317:9:0;328:6;309:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;309:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3900:5:1;3879:7;:18;3887:9;3879:18;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3939:15;;;;;;;;;3949:1;3939:15;;;;3952:1;3939:15;;;3915:10;:21;3926:9;3915:21;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;3991:9;3969:32;;;;;;;;;;;;;731:1:8;;3715:347:1;:::o;2693:233::-;2847:10;2859:14;2773:25;2788:9;2773:14;:25::i;:::-;2800:28;;;;;;;;;;;;;;;;;;;;;;;317:9:0;328:6;309:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;309:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2896:23:1;2909:9;2896:12;:23::i;:::-;2889:30;;;;2693:233;;;;;:::o;1001:111:8:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1077:5;;;;;;;;;;;1058:25;;;;;;;;;;;;1105:1;1089:5;;:18;;;;;;;;;;;;;;;;;;1001:111::o;1156:39:1:-;;;;;;;;;;;;;;;;;;;;;;:::o;1575:98::-;1616:4;1653:13;;;;;;;;;;;1639:27;;:10;:27;;;1632:34;;1575:98;:::o;238:20:8:-;;;;;;;;;;;;;:::o;2236:373:1:-;2363:10;:8;:10::i;:::-;2375:26;;;;;;;;;;;;;;;;;;;;;;;317:9:0;328:6;309:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;309:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2420:25:1;2435:9;2420:14;:25::i;:::-;2447:28;;;;;;;;;;;;;;;;;;;;;;;317:9:0;328:6;309:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;309:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2515:29:1;;;;;;;;;2525:6;2515:29;;;;2533:10;2515:29;;;2491:10;:21;2502:9;2491:21;;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;;2583:10;2572:9;2559:43;;;;2595:6;2559:43;;;;;;;;;;;;;;;;;;345:1:0;;2236:373:1;;;;;:::o;1679:100::-;719:5:8;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1765:7:1;1749:13;;:23;;;;;;;;;;;;;;;;;;1679:100;:::o;1274:103:8:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1202:112:1:-;1266:4;1289:7;:18;1297:9;1289:18;;;;;;;;;;;;;;;;;;;;;;;;;;;1282:25;;1202:112;;;:::o;2932:225::-;3020:10;3032:14;3070:10;:21;3081:9;3070:21;;;;;;;;;;;;;;;;;:27;;;3062:35;;3119:10;:21;3130:9;3119:21;;;;;;;;;;;;;;;;;:31;;;3107:43;;2932:225;;;:::o;1512:171:8:-;1603:1;1582:23;;:9;:23;;;;1574:32;;;;;;;;1645:9;1617:38;;1638:5;;;;;;;;;;;1617:38;;;;;;;;;;;;1669:9;1661:5;;:17;;;;;;;;;;;;;;;;;;1512:171;:::o;142:4018:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.23;\npragma experimental \"v0.5.0\";\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./DBC.sol\";\n\n\ncontract Feeds is DBC, Ownable {\n\n event LogFeedsMarketAdded(bytes32 indexed bytesId, string strId);\n event LogFeedsMarketRemoved(bytes32 indexed marketId);\n event LogFeedsPush(bytes32 indexed marketId, uint indexed timestamp, uint value);\n\n string constant REASON_MUST_BE_FROM_DAEMON = \"Caller must be the registered Daemon\";\n string constant REASON_MUST_BE_ACTIVE_MARKET = \"Market must be active to push a value\";\n string constant REASON_FALLBACK = \"Can't call fallback function\";\n\n /**\n * As solidity doesn't support storing floats we'll store values as integers\n * adjusted by a predetermined number of decimals.\n *\n * For example if decimals is 18 then:\n * 1.23456789 is stored as 1234567890000000000.\n *\n * For now we have one fixed for all markets. Later we'll likely need to\n * support a different number for some markets.\n */\n uint public decimals = 30;\n\n\n /**\n * Active markets - market active if markets[market_id] is true\n */\n mapping(bytes32 => bool) public markets;\n\n function isMarketActive(bytes32 _marketId) public view returns (bool) {\n return markets[_marketId];\n }\n\n /**\n * Mapping from the market id to the string form. eg. \"Poloniex_BTC_ETH\"\n */\n mapping(bytes32 => string) public marketNames;\n\n\n /**\n * Daemon - account that pushes new price feed values\n */\n address public daemonAccount;\n\n function isDaemon() public view returns (bool) {\n return msg.sender == daemonAccount;\n }\n\n function setDaemonAccount(address _daemon) public onlyOwner {\n daemonAccount = _daemon;\n }\n\n\n /**\n * Feed data - by market\n */\n struct DataPoint {\n uint value; // original value * (10**decimals)\n uint timestamp; // UNIX milliseconds\n }\n mapping(bytes32 => DataPoint) latestData;\n\n\n /**\n * Push value and timestamp of read into the contract.\n * @param _value Read value * (10^decimals). See decimal description above.\n * @param _timestamp UNIX milliseconds timestamp of the read\n */\n function push(\n bytes32 _marketId,\n uint _value,\n uint _timestamp\n )\n external\n pre_cond(isDaemon(), REASON_MUST_BE_FROM_DAEMON)\n pre_cond(isMarketActive(_marketId), REASON_MUST_BE_ACTIVE_MARKET)\n {\n latestData[_marketId] = DataPoint(_value, _timestamp);\n emit LogFeedsPush(_marketId, _timestamp, _value);\n }\n\n /**\n * Read the latest value and timestamp from the contract.\n */\n function read(bytes32 _marketId)\n external\n view\n pre_cond(isMarketActive(_marketId), REASON_MUST_BE_ACTIVE_MARKET)\n returns (uint value, uint timestamp)\n {\n return readInternal(_marketId);\n }\n\n function readInternal(bytes32 _marketId)\n internal\n view\n returns (uint value, uint timestamp)\n {\n value = latestData[_marketId].value;\n timestamp = latestData[_marketId].timestamp;\n }\n\n\n /**\n * Add a new market\n * @param _marketStrId String id of market something like \"Poloniex_BTC_ETH\"\n * @return marketId bytes32 keccak256 of the _marketStrId\n */\n function addMarket(string _marketStrId)\n external\n onlyOwner\n returns (bytes32 marketId)\n {\n marketId = keccak256(abi.encodePacked(_marketStrId));\n markets[marketId] = true;\n marketNames[marketId] = _marketStrId;\n emit LogFeedsMarketAdded(marketId, _marketStrId);\n }\n\n /**\n * Removes a market.\n */\n function removeMarket(bytes32 _marketId)\n external\n onlyOwner\n pre_cond(isMarketActive(_marketId), REASON_MUST_BE_ACTIVE_MARKET)\n {\n markets[_marketId] = false;\n latestData[_marketId] = DataPoint(0, 0);\n emit LogFeedsMarketRemoved(_marketId);\n // TODO: provide a withdraw and mark balances\n }\n\n // Disable the fallback\n function () external {\n revert(REASON_FALLBACK);\n }\n\n}\n", "sourcePath": "/home/julien/0xFutures/protocol/contracts/Feeds.sol", "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.1", "updatedAt": "2018-11-27T22:04:40.329Z" }