@ethersphere/bee-factory
Version:
Local Ethereum Swarm development stack
468 lines • 20.3 kB
JSON
{
"contractName": "PriceOracle",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_postageStamp",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CallerNotAdmin",
"type": "error"
},
{
"inputs": [],
"name": "CallerNotPriceUpdater",
"type": "error"
},
{
"inputs": [],
"name": "PriceAlreadyAdjusted",
"type": "error"
},
{
"inputs": [],
"name": "UnexpectedZero",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "PriceUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "attemptedPrice",
"type": "uint256"
}
],
"name": "StampPriceUpdateFailed",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PRICE_UPDATER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "redundancy",
"type": "uint16"
}
],
"name": "adjustPrice",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "changeRate",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentPrice",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentPriceUpScaled",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentRound",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isPaused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastAdjustedRound",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minimumPrice",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minimumPriceUpscaled",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "postageStamp",
"outputs": [
{
"internalType": "contract IPostageStamp",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "priceBase",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "_price",
"type": "uint32"
}
],
"name": "setPrice",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unPause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x600180546201000160a21b64ffffffffff60a01b1990911617905560028054600160401b600160c01b0319811663ffffffff68010000000000000000600160401b600160801b03199093166e1000000177000000000000000000009081179390930416600160801b02171790556101c06040526210034960a09081526210027660c052621001a460e052621000d2610100526210000061012052620fff2e61014052620ffe5c61016052620ffd8a61018052620ffcb86101a052620000c990600390600962000291565b50348015620000d757600080fd5b506040516200154638038062001546833981016040819052620000fa916200034a565b62000107600033620001cd565b600180546001600160a01b0319166001600160a01b0383161790556200012c620001dd565b600280546001600160401b0319166001600160401b03929092169190911790557fd96ba01d6560c2ab35f2940dd8d70c5f5fe06236c72674237120515918198fb06080527fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a620001ae600254600160801b9004600a1c663fffffffffffff1690565b60405163ffffffff909116815260200160405180910390a1506200039f565b620001d98282620001f1565b5050565b6000620001ec6098436200037c565b905090565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001d9576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200024d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600283019183908215620003215791602002820160005b83821115620002ed57835183826101000a81548163ffffffff021916908362ffffff1602179055509260200192600401602081600301049283019260010302620002a8565b80156200031f5782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620002ed565b505b506200032f92915062000333565b5090565b5b808211156200032f576000815560010162000334565b6000602082840312156200035d57600080fd5b81516001600160a01b03811681146200037557600080fd5b9392505050565b6000826200039a57634e487b7160e01b600052601260045260246000fd5b500490565b608051611184620003c260003960008181610332015261075e01526111846000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806391d14854116100b8578063daafe0a51161007c578063daafe0a5146102cd578063dcd8ffb8146102e0578063e0632c64146102fa578063f7b188a514610325578063fb8d81011461032d578063ffb98fe31461035457600080fd5b806391d14854146102705780639d1b464a14610283578063a217fddf1461029e578063b187bd26146102a6578063d547741f146102ba57600080fd5b80637310561b1161010a5780637310561b146101f357806374e7493b1461021f5780637e8effdd146102325780637f386b6c146102495780638456cb59146102605780638a19c8bc1461026857600080fd5b806301ffc9a714610147578063248a9ca31461016f5780632f2ff15d146101a057806336568abe146101b557806355bdcd23146101c8575b600080fd5b61015a610155366004610e37565b610367565b60405190151581526020015b60405180910390f35b61019261017d366004610e61565b60009081526020819052604090206001015490565b604051908152602001610166565b6101b36101ae366004610e7a565b61039e565b005b6101b36101c3366004610e7a565b6103c8565b6002546101db906001600160401b031681565b6040516001600160401b039091168152602001610166565b60025461020a90600160601b900463ffffffff1681565b60405163ffffffff9091168152602001610166565b61020a61022d366004610e61565b61044b565b60025461020a90600160401b900463ffffffff1681565b600254600160401b9004600a1c623fffff1661020a565b6101b361047b565b6101db6104b8565b61015a61027e366004610e7a565b6104ca565b600254600160801b9004600a1c663fffffffffffff1661020a565b610192600081565b60015461015a90600160c01b900460ff1681565b6101b36102c8366004610e7a565b6104f3565b61015a6102db366004610eb6565b610518565b6002546101db90600160801b90046001600160401b031681565b60015461030d906001600160a01b031681565b6040516001600160a01b039091168152602001610166565b6101b361070a565b6101927f000000000000000000000000000000000000000000000000000000000000000081565b61015a610362366004610edc565b610741565b60006001600160e01b03198216637965db0b60e01b148061039857506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000828152602081905260409020600101546103b981610b34565b6103c38383610b41565b505050565b6001600160a01b038116331461043d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104478282610bc5565b5050565b6003816009811061045b57600080fd5b60089182820401919006600402915054906101000a900463ffffffff1681565b6104866000336104ca565b6104a35760405163036c8cf960e11b815260040160405180910390fd5b6001805460ff60c01b1916600160c01b179055565b60006104c5609843610f2c565b905090565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008281526020819052604090206001015461050e81610b34565b6103c38383610bc5565b600061052481336104ca565b6105415760405163036c8cf960e11b815260040160405180910390fd5b60025463fffffc00600a84901b1690600160401b900463ffffffff1680821015610569578091505b600280546001600160401b038416600160801b0267ffffffffffffffff60801b199091161790556001546000906001600160a01b03166105bc600254663fffffffffffff600160801b909104600a1c1690565b63ffffffff166040516024016105d491815260200190565b60408051601f198184030181529181526020820180516001600160e01b03166391b7f5ed60e01b179052516106099190610f64565b6000604051808303816000865af19150503d8060008114610646576040519150601f19603f3d011682016040523d82523d6000602084013e61064b565b606091505b50509050806106af576002547fd2821f4adadf1d64076091cc92984c0f001a300541dd58cff8e8e29d6290c33d90600160801b9004600a1c663fffffffffffff1660405163ffffffff909116815260200160405180910390a1506000949350505050565b6002547fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a90600160801b9004600a1c663fffffffffffff1660405163ffffffff909116815260200160405180910390a1506001949350505050565b6107156000336104ca565b6107325760405163036c8cf960e11b815260040160405180910390fd5b6001805460ff60c01b19169055565b600154600090600160c01b900460ff1615158103610b2c576107837f0000000000000000000000000000000000000000000000000000000000000000336104ca565b6107a057604051630989e47b60e21b815260040160405180910390fd5b8160006107ab6104b8565b6002549091506001600160401b03908116908216116107dd5760405163022972d360e21b815260040160405180910390fd5b8361ffff166000036108025760405163b5ca2d7160e01b815260040160405180910390fd5b6001546000906108269061ffff600160b01b8204811691600160a01b900416610f80565b90508061ffff168561ffff16111561083c578092505b6002546001600160401b03600160801b820481169163ffffffff600160401b8204811692600160601b83049091169160009160019161087c911688610fa2565b6108869190610fa2565b9050600060038861ffff16600981106108a1576108a1610fc2565b60088104919091015460079091166004026101000a900463ffffffff908116915083166108ce8683610fd8565b6108d89190611003565b94506001600160401b03821615610949575060035463ffffffff1660005b826001600160401b0316816001600160401b03161015610947578363ffffffff16868363ffffffff166109299190610fd8565b6109339190611003565b95508061093f81611029565b9150506108f6565b505b836001600160401b0316856001600160401b03161015610967578394505b6002805477ffffffffffffffff0000000000000000ffffffffffffffff1916600160801b6001600160401b03888116820267ffffffffffffffff191692909217918a1691909117918290556001546000926001600160a01b03909116919004600a1c663fffffffffffff1663ffffffff166040516024016109ea91815260200190565b60408051601f198184030181529181526020820180516001600160e01b03166391b7f5ed60e01b17905251610a1f9190610f64565b6000604051808303816000865af19150503d8060008114610a5c576040519150601f19603f3d011682016040523d82523d6000602084013e610a61565b606091505b5050905080610acb576002547fd2821f4adadf1d64076091cc92984c0f001a300541dd58cff8e8e29d6290c33d90600160801b9004600a1c663fffffffffffff1660405163ffffffff909116815260200160405180910390a15060009a9950505050505050505050565b6002547fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a90600160801b9004600a1c663fffffffffffff1660405163ffffffff909116815260200160405180910390a15060019a9950505050505050505050565b506000919050565b610b3e8133610c2a565b50565b610b4b82826104ca565b610447576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b813390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610bcf82826104ca565b15610447576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b610c3482826104ca565b61044757610c4181610c83565b610c4c836020610c95565b604051602001610c5d92919061104f565b60408051601f198184030181529082905262461bcd60e51b8252610434916004016110c4565b60606103986001600160a01b03831660145b60606000610ca48360026110f7565b610caf90600261110e565b6001600160401b03811115610cc657610cc6611121565b6040519080825280601f01601f191660200182016040528015610cf0576020820181803683370190505b509050600360fc1b81600081518110610d0b57610d0b610fc2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610d3a57610d3a610fc2565b60200101906001600160f81b031916908160001a9053506000610d5e8460026110f7565b610d6990600161110e565b90505b6001811115610de1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610d9d57610d9d610fc2565b1a60f81b828281518110610db357610db3610fc2565b60200101906001600160f81b031916908160001a90535060049490941c93610dda81611137565b9050610d6c565b508315610e305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610434565b9392505050565b600060208284031215610e4957600080fd5b81356001600160e01b031981168114610e3057600080fd5b600060208284031215610e7357600080fd5b5035919050565b60008060408385031215610e8d57600080fd5b8235915060208301356001600160a01b0381168114610eab57600080fd5b809150509250929050565b600060208284031215610ec857600080fd5b813563ffffffff81168114610e3057600080fd5b600060208284031215610eee57600080fd5b813561ffff81168114610e3057600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082610f3b57610f3b610f00565b500490565b60005b83811015610f5b578181015183820152602001610f43565b50506000910152565b60008251610f76818460208701610f40565b9190910192915050565b61ffff818116838216019080821115610f9b57610f9b610f16565b5092915050565b6001600160401b03828116828216039080821115610f9b57610f9b610f16565b634e487b7160e01b600052603260045260246000fd5b6001600160401b03818116838216028082169190828114610ffb57610ffb610f16565b505092915050565b60006001600160401b038084168061101d5761101d610f00565b92169190910492915050565b60006001600160401b0380831681810361104557611045610f16565b6001019392505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611087816017850160208801610f40565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516110b8816028840160208801610f40565b01602801949350505050565b60208152600082518060208401526110e3816040850160208701610f40565b601f01601f19169190910160400192915050565b808202811582820484141761039857610398610f16565b8082018082111561039857610398610f16565b634e487b7160e01b600052604160045260246000fd5b60008161114657611146610f16565b50600019019056fea264697066735822122070c00fcea716395733920f0be290ea4d829c53fd19ab7aeec6b6cda16abc342664736f6c63430008130033"
}