Source Code
Overview
ETH Balance
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 30 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Generate Robot I... | 8484087 | 35 days ago | IN | 0.01 ETH | 0.00002122 | ||||
Generate Robot I... | 8484074 | 35 days ago | IN | 0.01 ETH | 0.00002011 | ||||
Generate Robot I... | 8484064 | 35 days ago | IN | 0.01 ETH | 0.00001924 | ||||
Process Order | 8484062 | 35 days ago | IN | 0 ETH | 0.00001279 | ||||
Generate Robot I... | 8483575 | 35 days ago | IN | 0.01 ETH | 0.00000965 | ||||
Generate Robot I... | 8483564 | 35 days ago | IN | 0.01 ETH | 0.00000959 | ||||
Generate Robot I... | 8483553 | 35 days ago | IN | 0.01 ETH | 0.00000871 | ||||
Process Order | 8483550 | 35 days ago | IN | 0 ETH | 0.00000326 | ||||
Generate Robot I... | 8482875 | 35 days ago | IN | 0.01 ETH | 0.0000083 | ||||
Generate Robot I... | 8482862 | 35 days ago | IN | 0.01 ETH | 0.00000838 | ||||
Generate Robot I... | 8482848 | 35 days ago | IN | 0.01 ETH | 0.00000744 | ||||
Process Order | 8482846 | 35 days ago | IN | 0 ETH | 0.0000021 | ||||
Generate Robot I... | 8281657 | 54 days ago | IN | 0.01 ETH | 0.00000942 | ||||
Generate Robot I... | 8281642 | 54 days ago | IN | 0.01 ETH | 0.00000946 | ||||
Generate Robot I... | 8281626 | 54 days ago | IN | 0.01 ETH | 0.00000854 | ||||
Process Order | 8281623 | 54 days ago | IN | 0 ETH | 0.00000302 | ||||
Generate Robot I... | 8281537 | 54 days ago | IN | 0.01 ETH | 0.00000797 | ||||
Process Order | 8281534 | 54 days ago | IN | 0 ETH | 0.00000253 | ||||
Generate Robot I... | 8281285 | 54 days ago | IN | 0.01 ETH | 0.00000862 | ||||
Generate Robot I... | 8281269 | 54 days ago | IN | 0.01 ETH | 0.00000866 | ||||
Generate Robot I... | 8281254 | 54 days ago | IN | 0.01 ETH | 0.00000788 | ||||
Process Order | 8281250 | 54 days ago | IN | 0 ETH | 0.00000248 | ||||
Generate Robot I... | 8272322 | 55 days ago | IN | 0.01 ETH | 0.00001254 | ||||
Generate Robot I... | 8272310 | 55 days ago | IN | 0.01 ETH | 0.00001244 | ||||
Generate Robot I... | 8272296 | 55 days ago | IN | 0.01 ETH | 0.00001064 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
8484096 | 35 days ago | 0 ETH | ||||
8484096 | 35 days ago | 0 ETH | ||||
8484096 | 35 days ago | 0 ETH | ||||
8484096 | 35 days ago | 0 ETH | ||||
8484096 | 35 days ago | 0 ETH | ||||
8484089 | 35 days ago | 0 ETH | ||||
8484087 | 35 days ago | 0.0001781 ETH | ||||
8484087 | 35 days ago | 0.00982189 ETH | ||||
8484087 | 35 days ago | 0 ETH | ||||
8484084 | 35 days ago | 0 ETH | ||||
8484084 | 35 days ago | 0 ETH | ||||
8484077 | 35 days ago | 0 ETH | ||||
8484074 | 35 days ago | 0.00017505 ETH | ||||
8484074 | 35 days ago | 0.00982494 ETH | ||||
8484074 | 35 days ago | 0 ETH | ||||
8484072 | 35 days ago | 0 ETH | ||||
8484072 | 35 days ago | 0 ETH | ||||
8484067 | 35 days ago | 0 ETH | ||||
8484064 | 35 days ago | 0.00017523 ETH | ||||
8484064 | 35 days ago | 0.00982476 ETH | ||||
8484064 | 35 days ago | 0 ETH | ||||
8484062 | 35 days ago | 0 ETH | ||||
8483584 | 35 days ago | 0 ETH | ||||
8483584 | 35 days ago | 0 ETH | ||||
8483584 | 35 days ago | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Warehouse
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.27; import {IAnyrand} from "./lib/Anyrand.sol"; import {IRandomiserCallbackV3} from "./lib/RandomiserCallbackV3.sol"; import "./interfaces/Enums.sol"; import "./interfaces/IShop.sol"; import "./interfaces/IProducts.sol"; error NotARobot(); error NotAnOwner(); contract Warehouse is IRandomiserCallbackV3 { address public immutable anyrand; address _owner; enum Activity { Picking, Packing, Delivering } IShop Shop; IProducts Products; mapping (address => bool) _robotApproval; mapping (uint256 => Activity) _requestToActivity; mapping (uint256 => string) _requestToOrder; uint8[] pickingRobots = new uint8[](0); uint8[] packingRobots = new uint8[](0); uint8[] deliveryRobots = new uint8[](0); mapping (string => uint8) _activeOrderRobot; event WarehouseActivity(string orderId, Enums.OrderStatus status); event AssingRobot(string orderId, Activity activity, uint256 robotId); event RequestRobotId(string orderId, uint256 requestId); event ActivityVerifier(string orderId, Activity activity, address indexed verifier); constructor(address shop, address products) { _owner = msg.sender; Shop = IShop(shop); Products = IProducts(products); anyrand = 0x86d8C50E04DDd04cdaafaC9672cf1D00b6057AF5; for(uint8 i = 1; i <= 20; i++) { pickingRobots.push(i); packingRobots.push(i); deliveryRobots.push(i); } } function setRobot(address robot) external { require(msg.sender == _owner, 'Not an Owner'); _robotApproval[robot] = true; } function processOrder(string memory orderId) onlyOwner external { Shop.updateOrderStatus(orderId, Enums.OrderStatus.Processing); emit WarehouseActivity(orderId, Enums.OrderStatus.Processing); } function pickOrder(string memory orderId, address verifier) onlyRobot external { Shop.updateOrderStatus(orderId, Enums.OrderStatus.Picked); pickingRobots.push(_activeOrderRobot[orderId]); _activeOrderRobot[orderId] = 0; emit WarehouseActivity(orderId, Enums.OrderStatus.Picked); emit ActivityVerifier(orderId, Activity.Picking, verifier); } function packOrder(string memory orderId, address verifier) onlyRobot external { Shop.updateOrderStatus(orderId, Enums.OrderStatus.Packed); packingRobots.push(_activeOrderRobot[orderId]); _activeOrderRobot[orderId] = 0; emit WarehouseActivity(orderId, Enums.OrderStatus.Packed); emit ActivityVerifier(orderId, Activity.Packing, verifier); } function deliverOrder(string memory orderId, address verifier) onlyRobot external { Shop.updateOrderStatus(orderId, Enums.OrderStatus.Delivered); Products.mintProduct(Shop.getOrderProductId(orderId), Shop.getOrderCustomer(orderId)); deliveryRobots.push(_activeOrderRobot[orderId]); _activeOrderRobot[orderId] = 0; emit WarehouseActivity(orderId, Enums.OrderStatus.Delivered); emit ActivityVerifier(orderId, Activity.Delivering, verifier); } function generateRobotId( string memory orderId, Activity activityType, uint256 deadline, uint256 callbackGasLimit // set to 7_000_000 ) onlyOwner external payable returns(uint256) { require(deadline > block.timestamp, "Deadline is in the past"); (uint256 requestPrice, ) = IAnyrand(anyrand).getRequestPrice( callbackGasLimit ); require(msg.value >= requestPrice, "Insufficient payment"); if (msg.value > requestPrice) { (bool success, ) = msg.sender.call{value: msg.value - requestPrice}( "" ); require(success, "Refund failed"); } uint256 requestId = IAnyrand(anyrand).requestRandomness{ value: requestPrice }(deadline, callbackGasLimit); _requestToActivity[requestId] = activityType; _requestToOrder[requestId] = orderId; emit RequestRobotId(orderId, requestId); return requestId; } function receiveRandomness(uint256 requestId, uint256 randomWord) external { require(msg.sender == anyrand, "Only callable by Anyrand"); uint8 robotId = _occupyRobot(_requestToOrder[requestId], _requestToActivity[requestId], randomWord); emit AssingRobot(_requestToOrder[requestId], _requestToActivity[requestId], robotId); } function activeRobots() view external returns (uint256[] memory robots) { robots = new uint256[](3); robots[0] = pickingRobots.length; robots[1] = packingRobots.length; robots[2] = deliveryRobots.length; } function robotStatus(uint8 robotId, Activity robotType) view external returns (Enums.RobotStatus) { uint8[] memory copy = robotType == Activity.Picking ? pickingRobots : robotType == Activity.Packing ? packingRobots : deliveryRobots; for(uint8 i = 0; i < copy.length; i++) { if(copy[i] == robotId) return Enums.RobotStatus.Free; } return Enums.RobotStatus.Occupied; } function _occupyRobot(string memory orderId, Activity activity, uint256 randomNumber) internal returns (uint8) { uint256 length = deliveryRobots.length; if (activity == Activity.Picking) { length = pickingRobots.length; } else if(activity == Activity.Packing) { packingRobots.length; } uint8 index = 0; unchecked { index = uint8(randomNumber % length); } if (activity == Activity.Picking) { _activeOrderRobot[orderId] = pickingRobots[index]; pickingRobots[index] = pickingRobots[length - 1]; pickingRobots.pop(); } else if(activity == Activity.Packing) { _activeOrderRobot[orderId] = packingRobots[index]; packingRobots[index] = packingRobots[length - 1]; packingRobots.pop(); } else { _activeOrderRobot[orderId] = deliveryRobots[index]; deliveryRobots[index] = deliveryRobots[length - 1]; deliveryRobots.pop(); } return _activeOrderRobot[orderId]; } modifier onlyOwner { if(msg.sender != _owner) revert NotAnOwner(); _; } modifier onlyRobot { if(!_robotApproval[msg.sender]) revert NotARobot(); _; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.27; interface Enums { enum OrderStatus { Received, Processing, Picked, Packed, Delivered } enum Activity { Picking, Packing, Delivery } enum ProductId { Green, Purple, Blue } enum RobotStatus { Free, Occupied } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.27; import './Enums.sol'; interface IProducts { function mintProduct(Enums.ProductId productId, address receiver) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.27; import './Enums.sol'; interface IShop { struct Order { string orderId; Enums.OrderStatus status; address customer; Enums.ProductId productId; } event PlaceOrder(address indexed customer, string orderId); event UpdateStatus(string orderId, Enums.OrderStatus status); function placeOrder(string memory orderId, Enums.ProductId productId) external payable; function updateOrderStatus(string memory orderId, Enums.OrderStatus newStatus) external; function getOrderCustomer(string memory orderId) external view returns (address); function getOrderProductId(string memory orderId) external view returns (Enums.ProductId); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8; interface IAnyrand { /// @notice State of a request enum RequestState { /// @notice The request does not exist Nonexistent, /// @notice A request has been made, waiting for fulfilment Pending, /// @notice The request has been fulfilled successfully Fulfilled, /// @notice The request was fulfilled, but the callback failed Failed } /// @notice Compute the total request price /// @param callbackGasLimit The callback gas limit that will be used for /// the randomness request function getRequestPrice( uint256 callbackGasLimit ) external view returns (uint256 totalPrice, uint256 effectiveFeePerGas); /// @notice Request randomness /// @param deadline Timestamp of when the randomness should be fulfilled. A /// beacon round closest to this timestamp (rounding up to the nearest /// future round) will be used as the round from which to derive /// randomness. /// @param callbackGasLimit Gas limit for callback function requestRandomness( uint256 deadline, uint256 callbackGasLimit ) external payable returns (uint256); /// @notice Get the state of a request /// @param requestId The request identifier function getRequestState( uint256 requestId ) external view returns (RequestState); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8; interface IRandomiserCallbackV3 { /// @notice Receive random words from a randomiser. /// @dev Ensure that proper access control is enforced on this function; /// only the designated randomiser may call this function and the /// requestId should be as expected from the randomness request. /// @param requestId The identifier for the original randomness request /// @param randomWord Uniform random number in the range [0, 2**256) function receiveRandomness(uint256 requestId, uint256 randomWord) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract ABI
API[{"inputs":[{"internalType":"address","name":"shop","type":"address"},{"internalType":"address","name":"products","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotARobot","type":"error"},{"inputs":[],"name":"NotAnOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"orderId","type":"string"},{"indexed":false,"internalType":"enum Warehouse.Activity","name":"activity","type":"uint8"},{"indexed":true,"internalType":"address","name":"verifier","type":"address"}],"name":"ActivityVerifier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"orderId","type":"string"},{"indexed":false,"internalType":"enum Warehouse.Activity","name":"activity","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"robotId","type":"uint256"}],"name":"AssingRobot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"orderId","type":"string"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"RequestRobotId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"orderId","type":"string"},{"indexed":false,"internalType":"enum Enums.OrderStatus","name":"status","type":"uint8"}],"name":"WarehouseActivity","type":"event"},{"inputs":[],"name":"activeRobots","outputs":[{"internalType":"uint256[]","name":"robots","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"anyrand","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"},{"internalType":"address","name":"verifier","type":"address"}],"name":"deliverOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"},{"internalType":"enum Warehouse.Activity","name":"activityType","type":"uint8"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"callbackGasLimit","type":"uint256"}],"name":"generateRobotId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"},{"internalType":"address","name":"verifier","type":"address"}],"name":"packOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"},{"internalType":"address","name":"verifier","type":"address"}],"name":"pickOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"orderId","type":"string"}],"name":"processOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"uint256","name":"randomWord","type":"uint256"}],"name":"receiveRandomness","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"robotId","type":"uint8"},{"internalType":"enum Warehouse.Activity","name":"robotType","type":"uint8"}],"name":"robotStatus","outputs":[{"internalType":"enum Enums.RobotStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"robot","type":"address"}],"name":"setRobot","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
600060a081905260c0604081905261001a91600691906101de565b506040805160008152602081019182905251610038916007916101de565b506040805160008152602081019182905251610056916008916101de565b5034801561006357600080fd5b50604051611d90380380611d90833981016040819052610082916102b5565b60008054336001600160a01b0319918216179091556001805482166001600160a01b0385811691909117825560028054909316908416179091557386d8c50e04ddd04cdaafac9672cf1d00b6057af56080525b60148160ff16116101d65760068054600181810190925560208082047ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01805460ff808716601f95861661010090810a8281029084021990941693909317909355600780548088019091558481047fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054918716840a808602908402199092169190911790556008805496870181556000529285047ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301805495909416900a908102910219909216919091179055806101ce816102e8565b9150506100d5565b505050610315565b82805482825590600052602060002090601f016020900481019282156102745791602002820160005b8382111561024557835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302610207565b80156102725782816101000a81549060ff0219169055600101602081600001049283019260010302610245565b505b50610280929150610284565b5090565b5b808211156102805760008155600101610285565b80516001600160a01b03811681146102b057600080fd5b919050565b600080604083850312156102c857600080fd5b6102d183610299565b91506102df60208401610299565b90509250929050565b600060ff821660ff810361030c57634e487b7160e01b600052601160045260246000fd5b60010192915050565b608051611a4b61034560003960008181610150015281816104ea0152818161082a01526109a70152611a4b6000f3fe6080604052600436106100915760003560e01c806350ad03ae1161005957806350ad03ae1461013e5780636e04b1241461018a57806392b5bf9c146101ac578063acac5a22146101cc578063ddb510a8146101f957600080fd5b806309396d2114610096578063210b9f03146100b8578063263b4db6146100d85780633f7eabc9146100f85780634f857b5e14610118575b600080fd5b3480156100a257600080fd5b506100b66100b13660046113f6565b610219565b005b3480156100c457600080fd5b506100b66100d3366004611448565b6104df565b3480156100e457600080fd5b506100b66100f336600461146a565b610670565b34801561010457600080fd5b506100b661011336600461149f565b610729565b61012b6101263660046114d0565b610796565b6040519081526020015b60405180910390f35b34801561014a57600080fd5b506101727f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610135565b34801561019657600080fd5b5061019f610aa6565b604051610135919061152f565b3480156101b857600080fd5b506100b66101c73660046113f6565b610b36565b3480156101d857600080fd5b506101ec6101e7366004611572565b610cb4565b60405161013591906115bc565b34801561020557600080fd5b506100b66102143660046113f6565b610dca565b3360009081526003602052604090205460ff1661024957604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f29489061027b9085906004908101611626565b600060405180830381600087803b15801561029557600080fd5b505af11580156102a9573d6000803e3d6000fd5b50506002546001546040516364d4be4d60e01b81526001600160a01b03928316945063f1ae5db993509116906364d4be4d906102e9908790600401611658565b602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a919061166b565b60015460405163175edf0b60e31b81526001600160a01b039091169063baf6f8589061035a908890600401611658565b602060405180830381865afa158015610377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b9190611688565b6040518363ffffffff1660e01b81526004016103b89291906116b5565b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b5050505060086009836040516103fc91906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff928316810292021990921617905560099061044d9085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f68339815191529061048f908490600490611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360026040516104d3929190611703565b60405180910390a25050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461055c5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c792063616c6c61626c6520627920416e7972616e64000000000000000060448201526064015b60405180910390fd5b60008281526005602052604081208054610612919061057a90611721565b80601f01602080910402602001604051908101604052809291908181526020018280546105a690611721565b80156105f35780601f106105c8576101008083540402835291602001916105f3565b820191906000526020600020905b8154815290600101906020018083116105d657829003601f168201915b50505060008781526004602052604090205460ff169150859050610f48565b60008481526005602090815260408083206004909252918290205491519293507f925abf81c28ff3984b742558ee05bd1cf5a3de6fc3191c94ed52fb1b08117471926106639260ff1690859061175b565b60405180910390a1505050565b6000546001600160a01b0316331461069b57604051631dd523ff60e31b815260040160405180910390fd5b60018054604051630ce9e52960e31b81526001600160a01b039091169163674f2948916106cc918591600401611626565b600060405180830381600087803b1580156106e657600080fd5b505af11580156106fa573d6000803e3d6000fd5b505050506000805160206119f683398151915281600160405161071e929190611626565b60405180910390a150565b6000546001600160a01b031633146107725760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71027bbb732b960a11b6044820152606401610553565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600080546001600160a01b031633146107c257604051631dd523ff60e31b815260040160405180910390fd5b4283116108115760405162461bcd60e51b815260206004820152601760248201527f446561646c696e6520697320696e2074686520706173740000000000000000006044820152606401610553565b60405163085868e960e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310b0d1d2906024016040805180830381865afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906117fe565b509050803410156108e65760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b6044820152606401610553565b8034111561097f576000336108fb8334611838565b604051600081818185875af1925050503d8060008114610937576040519150601f19603f3d011682016040523d82523d6000602084013e61093c565b606091505b505090508061097d5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610553565b505b6040516307d4f3c160e21b815260048101859052602481018490526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631f53cf0490849060440160206040518083038185885af11580156109f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a16919061184b565b60008181526004602052604090208054919250879160ff19166001836002811115610a4357610a436115a6565b02179055506000818152600560205260409020610a6088826118b3565b507ff288a79ce07769b53ca3868b1d9de2231055404b5fd29efd111f5015be6b47bf8782604051610a92929190611972565b60405180910390a19150505b949350505050565b6040805160038082526080820190925260609160208201838036833701905050905060068054905081600081518110610ae157610ae1611994565b6020908102919091010152600754815182906001908110610b0457610b04611994565b6020908102919091010152600854815182906002908110610b2757610b27611994565b60200260200101818152505090565b3360009081526003602052604090205460ff16610b6657604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f294890610b99908590600390600401611626565b600060405180830381600087803b158015610bb357600080fd5b505af1158015610bc7573d6000803e3d6000fd5b505050506007600983604051610bdd91906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff9283168102920219909216179055600990610c2e9085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f683398151915290610c70908490600390611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360016040516104d3929190611703565b60008080836002811115610cca57610cca6115a6565b14610cf6576001836002811115610ce357610ce36115a6565b14610cef576008610cf9565b6007610cf9565b60065b805480602002602001604051908101604052809291908181526020018280548015610d6157602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d325790505b5050505050905060005b81518160ff161015610dbd578460ff16828260ff1681518110610d9057610d90611994565b602002602001015160ff1603610dab57600092505050610dc4565b80610db5816119aa565b915050610d6b565b5060019150505b92915050565b3360009081526003602052604090205460ff16610dfa57604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f294890610e2d908590600290600401611626565b600060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505050506006600983604051610e7191906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff9283168102920219909216179055600990610ec29085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f683398151915290610f04908490600290611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360006040516104d3929190611703565b60085460009081846002811115610f6157610f616115a6565b03610f6f5750600654610f86565b6001846002811115610f8357610f836115a6565b50505b6000818481610f9757610f976119c9565b0690506000856002811115610fae57610fae6115a6565b036110d95760068160ff1681548110610fc957610fc9611994565b90600052602060002090602091828204019190069054906101000a900460ff16600987604051610ff991906116da565b908152604051908190036020019020805460ff9290921660ff199092169190911790556006611029600184611838565b8154811061103957611039611994565b90600052602060002090602091828204019190069054906101000a900460ff1660068260ff168154811061106f5761106f611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060068054806110aa576110aa6119df565b60019003818190600052602060002090602091828204019190066101000a81549060ff0219169055905561130b565b60018560028111156110ed576110ed6115a6565b036111e95760078160ff168154811061110857611108611994565b90600052602060002090602091828204019190069054906101000a900460ff1660098760405161113891906116da565b908152604051908190036020019020805460ff9290921660ff199092169190911790556007611168600184611838565b8154811061117857611178611994565b90600052602060002090602091828204019190069054906101000a900460ff1660078260ff16815481106111ae576111ae611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060078054806110aa576110aa6119df565b60088160ff16815481106111ff576111ff611994565b90600052602060002090602091828204019190069054906101000a900460ff1660098760405161122f91906116da565b908152604051908190036020019020805460ff9290921660ff19909216919091179055600861125f600184611838565b8154811061126f5761126f611994565b90600052602060002090602091828204019190069054906101000a900460ff1660088260ff16815481106112a5576112a5611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060088054806112e0576112e06119df565b60019003818190600052602060002090602091828204019190066101000a81549060ff021916905590555b60098660405161131b91906116da565b9081526040519081900360200190205460ff16925050509392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261136057600080fd5b813567ffffffffffffffff81111561137a5761137a611339565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156113a9576113a9611339565b6040528181528382016020018510156113c157600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b03811681146113f357600080fd5b50565b6000806040838503121561140957600080fd5b823567ffffffffffffffff81111561142057600080fd5b61142c8582860161134f565b925050602083013561143d816113de565b809150509250929050565b6000806040838503121561145b57600080fd5b50508035926020909101359150565b60006020828403121561147c57600080fd5b813567ffffffffffffffff81111561149357600080fd5b610a9e8482850161134f565b6000602082840312156114b157600080fd5b81356114bc816113de565b9392505050565b600381106113f357600080fd5b600080600080608085870312156114e657600080fd5b843567ffffffffffffffff8111156114fd57600080fd5b6115098782880161134f565b945050602085013561151a816114c3565b93969395505050506040820135916060013590565b602080825282518282018190526000918401906040840190835b81811015611567578351835260209384019390920191600101611549565b509095945050505050565b6000806040838503121561158557600080fd5b823560ff8116811461159657600080fd5b9150602083013561143d816114c3565b634e487b7160e01b600052602160045260246000fd5b60208101600283106115d0576115d06115a6565b91905290565b60005b838110156115f15781810151838201526020016115d9565b50506000910152565b600081518084526116128160208601602086016115d6565b601f01601f19169290920160200192915050565b60408152600061163960408301856115fa565b90506005831061164b5761164b6115a6565b8260208301529392505050565b6020815260006114bc60208301846115fa565b60006020828403121561167d57600080fd5b81516114bc816114c3565b60006020828403121561169a57600080fd5b81516114bc816113de565b600381106113f3576113f36115a6565b604081016116c2846116a5565b9281526001600160a01b039190911660209091015290565b600082516116ec8184602087016115d6565b9190910192915050565b6116ff816116a5565b9052565b60408152600061171660408301856115fa565b905061164b836116a5565b600181811c9082168061173557607f821691505b60208210810361175557634e487b7160e01b600052602260045260246000fd5b50919050565b60608152600080855461176d81611721565b806060860152600182166000811461178c57600181146117a8576117dc565b60ff1983166080870152608082151560051b87010193506117dc565b88600052602060002060005b838110156117d3578154888201608001526001909101906020016117b4565b87016080019450505b505050809150506117f060208301856116f6565b60ff83166040830152610a9e565b6000806040838503121561181157600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dc457610dc4611822565b60006020828403121561185d57600080fd5b5051919050565b601f8211156118ae57806000526020600020601f840160051c8101602085101561188b5750805b601f840160051c820191505b818110156118ab5760008155600101611897565b50505b505050565b815167ffffffffffffffff8111156118cd576118cd611339565b6118e1816118db8454611721565b84611864565b6020601f82116001811461191557600083156118fd5750848201515b600019600385901b1c1916600184901b1784556118ab565b600084815260208120601f198516915b828110156119455787850151825560209485019460019092019101611925565b50848210156119635786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60408152600061198560408301856115fa565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036119c0576119c0611822565b60010192915050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe791d5895e6e1c14904e98eed7243293644a71493cc99a312921747632fef808da2646970667358221220de917f1b31ee1b68c778acfd406766f456409914c3df4c9d9ef4802852984f9364736f6c634300081b003300000000000000000000000099355ba19923ec8601f5a1cd8f9e3e93d13eb4c9000000000000000000000000420fc211db1bfb0b0e29a49e3f51e0c806f3c0e6
Deployed Bytecode
0x6080604052600436106100915760003560e01c806350ad03ae1161005957806350ad03ae1461013e5780636e04b1241461018a57806392b5bf9c146101ac578063acac5a22146101cc578063ddb510a8146101f957600080fd5b806309396d2114610096578063210b9f03146100b8578063263b4db6146100d85780633f7eabc9146100f85780634f857b5e14610118575b600080fd5b3480156100a257600080fd5b506100b66100b13660046113f6565b610219565b005b3480156100c457600080fd5b506100b66100d3366004611448565b6104df565b3480156100e457600080fd5b506100b66100f336600461146a565b610670565b34801561010457600080fd5b506100b661011336600461149f565b610729565b61012b6101263660046114d0565b610796565b6040519081526020015b60405180910390f35b34801561014a57600080fd5b506101727f00000000000000000000000086d8c50e04ddd04cdaafac9672cf1d00b6057af581565b6040516001600160a01b039091168152602001610135565b34801561019657600080fd5b5061019f610aa6565b604051610135919061152f565b3480156101b857600080fd5b506100b66101c73660046113f6565b610b36565b3480156101d857600080fd5b506101ec6101e7366004611572565b610cb4565b60405161013591906115bc565b34801561020557600080fd5b506100b66102143660046113f6565b610dca565b3360009081526003602052604090205460ff1661024957604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f29489061027b9085906004908101611626565b600060405180830381600087803b15801561029557600080fd5b505af11580156102a9573d6000803e3d6000fd5b50506002546001546040516364d4be4d60e01b81526001600160a01b03928316945063f1ae5db993509116906364d4be4d906102e9908790600401611658565b602060405180830381865afa158015610306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032a919061166b565b60015460405163175edf0b60e31b81526001600160a01b039091169063baf6f8589061035a908890600401611658565b602060405180830381865afa158015610377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039b9190611688565b6040518363ffffffff1660e01b81526004016103b89291906116b5565b600060405180830381600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b5050505060086009836040516103fc91906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff928316810292021990921617905560099061044d9085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f68339815191529061048f908490600490611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360026040516104d3929190611703565b60405180910390a25050565b336001600160a01b037f00000000000000000000000086d8c50e04ddd04cdaafac9672cf1d00b6057af5161461055c5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c792063616c6c61626c6520627920416e7972616e64000000000000000060448201526064015b60405180910390fd5b60008281526005602052604081208054610612919061057a90611721565b80601f01602080910402602001604051908101604052809291908181526020018280546105a690611721565b80156105f35780601f106105c8576101008083540402835291602001916105f3565b820191906000526020600020905b8154815290600101906020018083116105d657829003601f168201915b50505060008781526004602052604090205460ff169150859050610f48565b60008481526005602090815260408083206004909252918290205491519293507f925abf81c28ff3984b742558ee05bd1cf5a3de6fc3191c94ed52fb1b08117471926106639260ff1690859061175b565b60405180910390a1505050565b6000546001600160a01b0316331461069b57604051631dd523ff60e31b815260040160405180910390fd5b60018054604051630ce9e52960e31b81526001600160a01b039091169163674f2948916106cc918591600401611626565b600060405180830381600087803b1580156106e657600080fd5b505af11580156106fa573d6000803e3d6000fd5b505050506000805160206119f683398151915281600160405161071e929190611626565b60405180910390a150565b6000546001600160a01b031633146107725760405162461bcd60e51b815260206004820152600c60248201526b2737ba1030b71027bbb732b960a11b6044820152606401610553565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600080546001600160a01b031633146107c257604051631dd523ff60e31b815260040160405180910390fd5b4283116108115760405162461bcd60e51b815260206004820152601760248201527f446561646c696e6520697320696e2074686520706173740000000000000000006044820152606401610553565b60405163085868e960e11b8152600481018390526000907f00000000000000000000000086d8c50e04ddd04cdaafac9672cf1d00b6057af56001600160a01b0316906310b0d1d2906024016040805180830381865afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c91906117fe565b509050803410156108e65760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b6044820152606401610553565b8034111561097f576000336108fb8334611838565b604051600081818185875af1925050503d8060008114610937576040519150601f19603f3d011682016040523d82523d6000602084013e61093c565b606091505b505090508061097d5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610553565b505b6040516307d4f3c160e21b815260048101859052602481018490526000906001600160a01b037f00000000000000000000000086d8c50e04ddd04cdaafac9672cf1d00b6057af51690631f53cf0490849060440160206040518083038185885af11580156109f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a16919061184b565b60008181526004602052604090208054919250879160ff19166001836002811115610a4357610a436115a6565b02179055506000818152600560205260409020610a6088826118b3565b507ff288a79ce07769b53ca3868b1d9de2231055404b5fd29efd111f5015be6b47bf8782604051610a92929190611972565b60405180910390a19150505b949350505050565b6040805160038082526080820190925260609160208201838036833701905050905060068054905081600081518110610ae157610ae1611994565b6020908102919091010152600754815182906001908110610b0457610b04611994565b6020908102919091010152600854815182906002908110610b2757610b27611994565b60200260200101818152505090565b3360009081526003602052604090205460ff16610b6657604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f294890610b99908590600390600401611626565b600060405180830381600087803b158015610bb357600080fd5b505af1158015610bc7573d6000803e3d6000fd5b505050506007600983604051610bdd91906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff9283168102920219909216179055600990610c2e9085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f683398151915290610c70908490600390611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360016040516104d3929190611703565b60008080836002811115610cca57610cca6115a6565b14610cf6576001836002811115610ce357610ce36115a6565b14610cef576008610cf9565b6007610cf9565b60065b805480602002602001604051908101604052809291908181526020018280548015610d6157602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d325790505b5050505050905060005b81518160ff161015610dbd578460ff16828260ff1681518110610d9057610d90611994565b602002602001015160ff1603610dab57600092505050610dc4565b80610db5816119aa565b915050610d6b565b5060019150505b92915050565b3360009081526003602052604090205460ff16610dfa57604051638bd7ca4360e01b815260040160405180910390fd5b600154604051630ce9e52960e31b81526001600160a01b039091169063674f294890610e2d908590600290600401611626565b600060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505050506006600983604051610e7191906116da565b908152604051908190036020908101822054835460018101855560009485528285209281049092018054601f9093166101000a60ff9283168102920219909216179055600990610ec29085906116da565b908152604051908190036020018120805460ff9390931660ff19909316929092179091556000805160206119f683398151915290610f04908490600290611626565b60405180910390a1806001600160a01b03167fc3908fb60a5b75dc0493abca2f9c116dfaa9bc7ea9a0b76b69b1ec2c5041690b8360006040516104d3929190611703565b60085460009081846002811115610f6157610f616115a6565b03610f6f5750600654610f86565b6001846002811115610f8357610f836115a6565b50505b6000818481610f9757610f976119c9565b0690506000856002811115610fae57610fae6115a6565b036110d95760068160ff1681548110610fc957610fc9611994565b90600052602060002090602091828204019190069054906101000a900460ff16600987604051610ff991906116da565b908152604051908190036020019020805460ff9290921660ff199092169190911790556006611029600184611838565b8154811061103957611039611994565b90600052602060002090602091828204019190069054906101000a900460ff1660068260ff168154811061106f5761106f611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060068054806110aa576110aa6119df565b60019003818190600052602060002090602091828204019190066101000a81549060ff0219169055905561130b565b60018560028111156110ed576110ed6115a6565b036111e95760078160ff168154811061110857611108611994565b90600052602060002090602091828204019190069054906101000a900460ff1660098760405161113891906116da565b908152604051908190036020019020805460ff9290921660ff199092169190911790556007611168600184611838565b8154811061117857611178611994565b90600052602060002090602091828204019190069054906101000a900460ff1660078260ff16815481106111ae576111ae611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060078054806110aa576110aa6119df565b60088160ff16815481106111ff576111ff611994565b90600052602060002090602091828204019190069054906101000a900460ff1660098760405161122f91906116da565b908152604051908190036020019020805460ff9290921660ff19909216919091179055600861125f600184611838565b8154811061126f5761126f611994565b90600052602060002090602091828204019190069054906101000a900460ff1660088260ff16815481106112a5576112a5611994565b90600052602060002090602091828204019190066101000a81548160ff021916908360ff16021790555060088054806112e0576112e06119df565b60019003818190600052602060002090602091828204019190066101000a81549060ff021916905590555b60098660405161131b91906116da565b9081526040519081900360200190205460ff16925050509392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261136057600080fd5b813567ffffffffffffffff81111561137a5761137a611339565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156113a9576113a9611339565b6040528181528382016020018510156113c157600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b03811681146113f357600080fd5b50565b6000806040838503121561140957600080fd5b823567ffffffffffffffff81111561142057600080fd5b61142c8582860161134f565b925050602083013561143d816113de565b809150509250929050565b6000806040838503121561145b57600080fd5b50508035926020909101359150565b60006020828403121561147c57600080fd5b813567ffffffffffffffff81111561149357600080fd5b610a9e8482850161134f565b6000602082840312156114b157600080fd5b81356114bc816113de565b9392505050565b600381106113f357600080fd5b600080600080608085870312156114e657600080fd5b843567ffffffffffffffff8111156114fd57600080fd5b6115098782880161134f565b945050602085013561151a816114c3565b93969395505050506040820135916060013590565b602080825282518282018190526000918401906040840190835b81811015611567578351835260209384019390920191600101611549565b509095945050505050565b6000806040838503121561158557600080fd5b823560ff8116811461159657600080fd5b9150602083013561143d816114c3565b634e487b7160e01b600052602160045260246000fd5b60208101600283106115d0576115d06115a6565b91905290565b60005b838110156115f15781810151838201526020016115d9565b50506000910152565b600081518084526116128160208601602086016115d6565b601f01601f19169290920160200192915050565b60408152600061163960408301856115fa565b90506005831061164b5761164b6115a6565b8260208301529392505050565b6020815260006114bc60208301846115fa565b60006020828403121561167d57600080fd5b81516114bc816114c3565b60006020828403121561169a57600080fd5b81516114bc816113de565b600381106113f3576113f36115a6565b604081016116c2846116a5565b9281526001600160a01b039190911660209091015290565b600082516116ec8184602087016115d6565b9190910192915050565b6116ff816116a5565b9052565b60408152600061171660408301856115fa565b905061164b836116a5565b600181811c9082168061173557607f821691505b60208210810361175557634e487b7160e01b600052602260045260246000fd5b50919050565b60608152600080855461176d81611721565b806060860152600182166000811461178c57600181146117a8576117dc565b60ff1983166080870152608082151560051b87010193506117dc565b88600052602060002060005b838110156117d3578154888201608001526001909101906020016117b4565b87016080019450505b505050809150506117f060208301856116f6565b60ff83166040830152610a9e565b6000806040838503121561181157600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dc457610dc4611822565b60006020828403121561185d57600080fd5b5051919050565b601f8211156118ae57806000526020600020601f840160051c8101602085101561188b5750805b601f840160051c820191505b818110156118ab5760008155600101611897565b50505b505050565b815167ffffffffffffffff8111156118cd576118cd611339565b6118e1816118db8454611721565b84611864565b6020601f82116001811461191557600083156118fd5750848201515b600019600385901b1c1916600184901b1784556118ab565b600084815260208120601f198516915b828110156119455787850151825560209485019460019092019101611925565b50848210156119635786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60408152600061198560408301856115fa565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036119c0576119c0611822565b60010192915050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe791d5895e6e1c14904e98eed7243293644a71493cc99a312921747632fef808da2646970667358221220de917f1b31ee1b68c778acfd406766f456409914c3df4c9d9ef4802852984f9364736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000099355ba19923ec8601f5a1cd8f9e3e93d13eb4c9000000000000000000000000420fc211db1bfb0b0e29a49e3f51e0c806f3c0e6
-----Decoded View---------------
Arg [0] : shop (address): 0x99355Ba19923EC8601f5A1CD8F9E3e93d13EB4C9
Arg [1] : products (address): 0x420fC211DB1Bfb0b0E29a49E3f51E0C806F3C0e6
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000099355ba19923ec8601f5a1cd8f9e3e93d13eb4c9
Arg [1] : 000000000000000000000000420fc211db1bfb0b0e29a49e3f51e0c806f3c0e6
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.