Overview
BERA Balance
BERA Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 78 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Subnode Reco... | 2497353 | 2 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2473394 | 2 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2343128 | 5 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2343107 | 5 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2075954 | 12 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2073367 | 12 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2053181 | 12 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024986 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024958 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024943 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024932 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024917 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024898 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024862 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024841 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024730 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024715 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024694 | 13 days ago | IN | 0 BERA | 0.00000007 | ||||
Set Subnode Reco... | 2024676 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024664 | 13 days ago | IN | 0 BERA | 0.00000006 | ||||
Set Subnode Reco... | 2024614 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024572 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024534 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024516 | 13 days ago | IN | 0 BERA | 0 | ||||
Set Subnode Reco... | 2024497 | 13 days ago | IN | 0 BERA | 0 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BeraNamesRegistry
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.4; import {BNS} from "src/registry/interfaces/BNS.sol"; /** * The BNS registry contract. */ contract BeraNamesRegistry is BNS { struct Record { address owner; address resolver; uint64 ttl; } mapping(bytes32 => Record) records; mapping(address => mapping(address => bool)) operators; /// @notice Thrown when a node is not authorised for a modification. /// @param node The node that was not authorised. /// @param sender The address that attempted the modification. error NotAuthorised(bytes32 node, address sender); // Permits modifications only by the owner of the specified node. modifier authorised(bytes32 node_) { address nodeOwner = records[node_].owner; if (nodeOwner != msg.sender && !operators[nodeOwner][msg.sender]) { revert NotAuthorised(node_, msg.sender); } _; } /** * @dev Constructs a new BNS registry. */ constructor() { records[0x0].owner = msg.sender; emit Transfer(0x0, msg.sender); } /** * @dev Sets the record for a node. * @param node_ The node to update. * @param owner_ The address of the new owner. * @param resolver_ The address of the resolver. * @param ttl_ The TTL in seconds. */ function setRecord(bytes32 node_, address owner_, address resolver_, uint64 ttl_) external virtual override { setOwner(node_, owner_); _setResolverAndTTL(node_, resolver_, ttl_); } /** * @dev Sets the record for a subnode. * @param node_ The parent node. * @param label_ The hash of the label specifying the subnode. * @param owner_ The address of the new owner. * @param resolver_ The address of the resolver. * @param ttl_ The TTL in seconds. */ function setSubnodeRecord(bytes32 node_, bytes32 label_, address owner_, address resolver_, uint64 ttl_) external virtual override { bytes32 subnode_ = setSubnodeOwner(node_, label_, owner_); _setResolverAndTTL(subnode_, resolver_, ttl_); } /** * @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node. * @param node_ The node to transfer ownership of. * @param owner_ The address of the new owner. */ function setOwner(bytes32 node_, address owner_) public virtual override authorised(node_) { _setOwner(node_, owner_); emit Transfer(node_, owner_); } /** * @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node. * @param node_ The parent node. * @param label_ The hash of the label specifying the subnode. * @param owner_ The address of the new owner. */ function setSubnodeOwner(bytes32 node_, bytes32 label_, address owner_) public virtual override authorised(node_) returns (bytes32) { bytes32 subnode = keccak256(abi.encodePacked(node_, label_)); _setOwner(subnode, owner_); emit NewOwner(node_, label_, owner_); return subnode; } /** * @dev Sets the resolver address for the specified node. * @param node_ The node to update. * @param resolver_ The address of the resolver. */ function setResolver(bytes32 node_, address resolver_) public virtual override authorised(node_) { emit NewResolver(node_, resolver_); records[node_].resolver = resolver_; } /** * @dev Sets the TTL for the specified node. * @param node_ The node to update. * @param ttl_ The TTL in seconds. */ function setTTL(bytes32 node_, uint64 ttl_) public virtual override authorised(node_) { emit NewTTL(node_, ttl_); records[node_].ttl = ttl_; } /** * @dev Enable or disable approval for a third party ("operator") to manage * all of `msg.sender`'s BNS records. Emits the ApprovalForAll event. * @param operator_ Address to add to the set of authorized operators. * @param approved_ True if the operator is approved, false to revoke approval. */ function setApprovalForAll(address operator_, bool approved_) external virtual override { operators[msg.sender][operator_] = approved_; emit ApprovalForAll(msg.sender, operator_, approved_); } /** * @dev Returns the address that owns the specified node. * @param node_ The specified node. * @return address of the owner. */ function owner(bytes32 node_) public view virtual override returns (address) { address addr_ = records[node_].owner; if (addr_ == address(this)) { return address(0x0); } return addr_; } /** * @dev Returns the address of the resolver for the specified node. * @param node_ The specified node. * @return address of the resolver. */ function resolver(bytes32 node_) public view virtual override returns (address) { return records[node_].resolver; } /** * @dev Returns the TTL of a node, and any records associated with it. * @param node_ The specified node. * @return ttl of the node. */ function ttl(bytes32 node_) public view virtual override returns (uint64) { return records[node_].ttl; } /** * @dev Returns whether a record has been imported to the registry. * @param node_ The specified node. * @return Bool if record exists */ function recordExists(bytes32 node_) public view virtual override returns (bool) { return records[node_].owner != address(0x0); } /** * @dev Query if an address is an authorized operator for another address. * @param owner_ The address that owns the records. * @param operator_ The address that acts on behalf of the owner. * @return True if `operator_` is an approved operator for `owner_`, false otherwise. */ function isApprovedForAll(address owner_, address operator_) external view virtual override returns (bool) { return operators[owner_][operator_]; } function _setOwner(bytes32 node_, address owner_) internal virtual { records[node_].owner = owner_; } function _setResolverAndTTL(bytes32 node_, address resolver_, uint64 ttl_) internal { if (resolver_ != records[node_].resolver) { records[node_].resolver = resolver_; emit NewResolver(node_, resolver_); } if (ttl_ != records[node_].ttl) { records[node_].ttl = ttl_; emit NewTTL(node_, ttl_); } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.4; interface BNS { // Logged when the owner of a node assigns a new owner to a subnode. event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); // Logged when the owner of a node transfers ownership to a new account. event Transfer(bytes32 indexed node, address owner); // Logged when the resolver for a node changes. event NewResolver(bytes32 indexed node, address resolver); // Logged when the TTL of a node changes event NewTTL(bytes32 indexed node, uint64 ttl); // Logged when an operator is added or removed. event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external; function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external; function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32); function setResolver(bytes32 node, address resolver) external; function setOwner(bytes32 node, address owner) external; function setTTL(bytes32 node, uint64 ttl) external; function setApprovalForAll(address operator, bool approved) external; function owner(bytes32 node) external view returns (address); function resolver(bytes32 node) external view returns (address); function ttl(bytes32 node) external view returns (uint64); function recordExists(bytes32 node) external view returns (bool); function isApprovedForAll(address owner, address operator) external view returns (bool); }
{ "remappings": [ "@pythnetwork/pyth-sdk-solidity/=node_modules/@pythnetwork/pyth-sdk-solidity/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "forge-std/=lib/forge-std/src/", "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "evmVersion": "cancun", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"}],"name":"NotAuthorised","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator_","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"}],"name":"recordExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator_","type":"address"},{"internalType":"bool","name":"approved_","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"uint64","name":"ttl_","type":"uint64"}],"name":"setRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"address","name":"resolver_","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"bytes32","name":"label_","type":"bytes32"},{"internalType":"address","name":"owner_","type":"address"}],"name":"setSubnodeOwner","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"bytes32","name":"label_","type":"bytes32"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"resolver_","type":"address"},{"internalType":"uint64","name":"ttl_","type":"uint64"}],"name":"setSubnodeRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"},{"internalType":"uint64","name":"ttl_","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node_","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052348015600e575f5ffd5b505f80805260208181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb580546001600160a01b031916339081179091556040519081527fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266910160405180910390a2610a0c8061008a5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80635b0fc9c31161006e5780635b0fc9c3146101a55780635ef2c7f0146101b8578063a22cb465146101cb578063cf408823146101de578063e985e9c5146101f1578063f79fe5381461023c575f5ffd5b80630178b8bf146100b557806302571be3146100fd57806306ab59231461011057806314ab90381461013157806316a25cbd146101465780631896f70a14610192575b5f5ffd5b6100e06100c3366004610812565b5f908152602081905260409020600101546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e061010b366004610812565b610266565b61012361011e366004610844565b610292565b6040519081526020016100f4565b61014461013f36600461088d565b610386565b005b610179610154366004610812565b5f90815260208190526040902060010154600160a01b900467ffffffffffffffff1690565b60405167ffffffffffffffff90911681526020016100f4565b6101446101a03660046108b7565b610477565b6101446101b33660046108b7565b61055a565b6101446101c63660046108d8565b61061b565b6101446101d936600461092b565b61063c565b6101446101ec366004610964565b6106a7565b61022c6101ff3660046109ae565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100f4565b61022c61024a366004610812565b5f908152602081905260409020546001600160a01b0316151590565b5f818152602081905260408120546001600160a01b031630810361028c57505f92915050565b92915050565b5f8381526020819052604081205484906001600160a01b03163381148015906102de57506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b1561030a576040516314c417b560e01b8152600481018390523360248201526044015b60405180910390fd5b6040805160208082018990528183018890528251808303840181526060909201909252805191012061033c81866106c2565b6040516001600160a01b0386168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b5f8281526020819052604090205482906001600160a01b03163381148015906103d257506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156103f9576040516314c417b560e01b815260048101839052336024820152604401610301565b60405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a250505f91825260208290526040909120600101805467ffffffffffffffff909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b5f8281526020819052604090205482906001600160a01b03163381148015906104c357506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156104ea576040516314c417b560e01b815260048101839052336024820152604401610301565b6040516001600160a01b038416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a250505f9182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b5f8281526020819052604090205482906001600160a01b03163381148015906105a657506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156105cd576040516314c417b560e01b815260048101839052336024820152604401610301565b6105d784846106c2565b6040516001600160a01b038416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b5f610627868686610292565b90506106348184846106ef565b505050505050565b335f8181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6106b1848461055a565b6106bc8483836106ef565b50505050565b5f9182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f838152602081905260409020600101546001600160a01b03838116911614610773575f838152602081815260409182902060010180546001600160a01b0319166001600160a01b038616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b5f8381526020819052604090206001015467ffffffffffffffff828116600160a01b909204161461080d575f8381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b5f60208284031215610822575f5ffd5b5035919050565b80356001600160a01b038116811461083f575f5ffd5b919050565b5f5f5f60608486031215610856575f5ffd5b833592506020840135915061086d60408501610829565b90509250925092565b803567ffffffffffffffff8116811461083f575f5ffd5b5f5f6040838503121561089e575f5ffd5b823591506108ae60208401610876565b90509250929050565b5f5f604083850312156108c8575f5ffd5b823591506108ae60208401610829565b5f5f5f5f5f60a086880312156108ec575f5ffd5b853594506020860135935061090360408701610829565b925061091160608701610829565b915061091f60808701610876565b90509295509295909350565b5f5f6040838503121561093c575f5ffd5b61094583610829565b915060208301358015158114610959575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610977575f5ffd5b8435935061098760208601610829565b925061099560408601610829565b91506109a360608601610876565b905092959194509250565b5f5f604083850312156109bf575f5ffd5b6109c883610829565b91506108ae6020840161082956fea2646970667358221220519d6e74a05c16353a429c4ca6bcac239d3ac45bb46662c69183fc49ff3e8e8164736f6c634300081c0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80635b0fc9c31161006e5780635b0fc9c3146101a55780635ef2c7f0146101b8578063a22cb465146101cb578063cf408823146101de578063e985e9c5146101f1578063f79fe5381461023c575f5ffd5b80630178b8bf146100b557806302571be3146100fd57806306ab59231461011057806314ab90381461013157806316a25cbd146101465780631896f70a14610192575b5f5ffd5b6100e06100c3366004610812565b5f908152602081905260409020600101546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e061010b366004610812565b610266565b61012361011e366004610844565b610292565b6040519081526020016100f4565b61014461013f36600461088d565b610386565b005b610179610154366004610812565b5f90815260208190526040902060010154600160a01b900467ffffffffffffffff1690565b60405167ffffffffffffffff90911681526020016100f4565b6101446101a03660046108b7565b610477565b6101446101b33660046108b7565b61055a565b6101446101c63660046108d8565b61061b565b6101446101d936600461092b565b61063c565b6101446101ec366004610964565b6106a7565b61022c6101ff3660046109ae565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205460ff1690565b60405190151581526020016100f4565b61022c61024a366004610812565b5f908152602081905260409020546001600160a01b0316151590565b5f818152602081905260408120546001600160a01b031630810361028c57505f92915050565b92915050565b5f8381526020819052604081205484906001600160a01b03163381148015906102de57506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b1561030a576040516314c417b560e01b8152600481018390523360248201526044015b60405180910390fd5b6040805160208082018990528183018890528251808303840181526060909201909252805191012061033c81866106c2565b6040516001600160a01b0386168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b5f8281526020819052604090205482906001600160a01b03163381148015906103d257506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156103f9576040516314c417b560e01b815260048101839052336024820152604401610301565b60405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a250505f91825260208290526040909120600101805467ffffffffffffffff909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b5f8281526020819052604090205482906001600160a01b03163381148015906104c357506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156104ea576040516314c417b560e01b815260048101839052336024820152604401610301565b6040516001600160a01b038416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a250505f9182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b5f8281526020819052604090205482906001600160a01b03163381148015906105a657506001600160a01b0381165f90815260016020908152604080832033845290915290205460ff16155b156105cd576040516314c417b560e01b815260048101839052336024820152604401610301565b6105d784846106c2565b6040516001600160a01b038416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b5f610627868686610292565b90506106348184846106ef565b505050505050565b335f8181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6106b1848461055a565b6106bc8483836106ef565b50505050565b5f9182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f838152602081905260409020600101546001600160a01b03838116911614610773575f838152602081815260409182902060010180546001600160a01b0319166001600160a01b038616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b5f8381526020819052604090206001015467ffffffffffffffff828116600160a01b909204161461080d575f8381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b5f60208284031215610822575f5ffd5b5035919050565b80356001600160a01b038116811461083f575f5ffd5b919050565b5f5f5f60608486031215610856575f5ffd5b833592506020840135915061086d60408501610829565b90509250925092565b803567ffffffffffffffff8116811461083f575f5ffd5b5f5f6040838503121561089e575f5ffd5b823591506108ae60208401610876565b90509250929050565b5f5f604083850312156108c8575f5ffd5b823591506108ae60208401610829565b5f5f5f5f5f60a086880312156108ec575f5ffd5b853594506020860135935061090360408701610829565b925061091160608701610829565b915061091f60808701610876565b90509295509295909350565b5f5f6040838503121561093c575f5ffd5b61094583610829565b915060208301358015158114610959575f5ffd5b809150509250929050565b5f5f5f5f60808587031215610977575f5ffd5b8435935061098760208601610829565b925061099560408601610829565b91506109a360608601610876565b905092959194509250565b5f5f604083850312156109bf575f5ffd5b6109c883610829565b91506108ae6020840161082956fea2646970667358221220519d6e74a05c16353a429c4ca6bcac239d3ac45bb46662c69183fc49ff3e8e8164736f6c634300081c0033
Deployed Bytecode Sourcemap
150:6602:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5045:127;;;;;;:::i;:::-;5116:7;5142:14;;;;;;;;;;:23;;;-1:-1:-1;;;;;5142:23:0;;5045:127;;;;-1:-1:-1;;;;;409:32:2;;;391:51;;379:2;364:18;5045:127:0;;;;;;;;4637:234;;;;;;:::i;:::-;;:::i;2887:359::-;;;;;;:::i;:::-;;:::i;:::-;;;1202:25:2;;;1190:2;1175:18;2887:359:0;1056:177:2;3766:162:0;;;;;;:::i;:::-;;:::i;:::-;;5341:116;;;;;;:::i;:::-;5407:6;5432:14;;;;;;;;;;:18;;;-1:-1:-1;;;5432:18:0;;;;;5341:116;;;;1891:18:2;1879:31;;;1861:50;;1849:2;1834:18;5341:116:0;1717:200:2;3423:193:0;;;;;;:::i;:::-;;:::i;2402:170::-;;;;;;:::i;:::-;;:::i;1873:288::-;;;;;;:::i;:::-;;:::i;4264:212::-;;;;;;:::i;:::-;;:::i;1361:200::-;;;;;;:::i;:::-;;:::i;6086:159::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6210:17:0;;;6187:4;6210:17;;;:9;:17;;;;;;;;:28;;;;;;;;;;;;;;;6086:159;;;;4034:14:2;;4027:22;4009:41;;3997:2;3982:18;6086:159:0;3869:187:2;5628:141:0;;;;;;:::i;:::-;5703:4;5726:14;;;;;;;;;;:20;-1:-1:-1;;;;;5726:20:0;:36;;;5628:141;4637:234;4705:7;4740:14;;;;;;;;;;:20;-1:-1:-1;;;;;4740:20:0;4791:4;4774:22;;4770:72;;-1:-1:-1;4827:3:0;;4637:234;-1:-1:-1;;4637:234:0:o;4770:72::-;4859:5;4637:234;-1:-1:-1;;4637:234:0:o;2887:359::-;3050:7;772:14;;;;;;;;;;:20;3026:5;;-1:-1:-1;;;;;772:20:0;819:10;806:23;;;;;:60;;-1:-1:-1;;;;;;834:20:0;;;;;;:9;:20;;;;;;;;855:10;834:32;;;;;;;;;;833:33;806:60;802:130;;;889:32;;-1:-1:-1;;;889:32:0;;;;;4235:25:2;;;910:10:0;4276:18:2;;;4269:60;4208:18;;889:32:0;;;;;;;;802:130;3101:31:::1;::::0;;::::1;::::0;;::::1;4497:19:2::0;;;4532:12;;;4525:28;;;3101:31:0;;;;;;;;;4569:12:2;;;;3101:31:0;;;3091:42;;;::::1;::::0;3143:26:::1;3091:42:::0;3162:6;3143:9:::1;:26::i;:::-;3184:31;::::0;-1:-1:-1;;;;;409:32:2;;391:51;;3200:6:0;;3193:5;;3184:31:::1;::::0;379:2:2;364:18;3184:31:0::1;;;;;;;3232:7:::0;2887:359;-1:-1:-1;;;;;;2887:359:0:o;3766:162::-;752:17;772:14;;;;;;;;;;:20;3845:5;;-1:-1:-1;;;;;772:20:0;819:10;806:23;;;;;:60;;-1:-1:-1;;;;;;834:20:0;;;;;;:9;:20;;;;;;;;855:10;834:32;;;;;;;;;;833:33;806:60;802:130;;;889:32;;-1:-1:-1;;;889:32:0;;;;;4235:25:2;;;910:10:0;4276:18:2;;;4269:60;4208:18;;889:32:0;4061:274:2;802:130:0;3867:19:::1;::::0;1891:18:2;1879:31;;1861:50;;3874:5:0;;3867:19:::1;::::0;1849:2:2;1834:18;3867:19:0::1;;;;;;;-1:-1:-1::0;;3896:7:0::1;:14:::0;;;::::1;::::0;;;;;;;:18:::1;;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;3896:25:0::1;-1:-1:-1::0;;;;3896:25:0;;::::1;::::0;;;::::1;::::0;;3766:162::o;3423:193::-;752:17;772:14;;;;;;;;;;:20;3513:5;;-1:-1:-1;;;;;772:20:0;819:10;806:23;;;;;:60;;-1:-1:-1;;;;;;834:20:0;;;;;;:9;:20;;;;;;;;855:10;834:32;;;;;;;;;;833:33;806:60;802:130;;;889:32;;-1:-1:-1;;;889:32:0;;;;;4235:25:2;;;910:10:0;4276:18:2;;;4269:60;4208:18;;889:32:0;4061:274:2;802:130:0;3535:29:::1;::::0;-1:-1:-1;;;;;409:32:2;;391:51;;3547:5:0;;3535:29:::1;::::0;379:2:2;364:18;3535:29:0::1;;;;;;;-1:-1:-1::0;;3574:7:0::1;:14:::0;;;::::1;::::0;;;;;;;:23:::1;;:35:::0;;-1:-1:-1;;;;;;3574:35:0::1;-1:-1:-1::0;;;;;3574:35:0;;::::1;::::0;;;::::1;::::0;;3423:193::o;2402:170::-;752:17;772:14;;;;;;;;;;:20;2486:5;;-1:-1:-1;;;;;772:20:0;819:10;806:23;;;;;:60;;-1:-1:-1;;;;;;834:20:0;;;;;;:9;:20;;;;;;;;855:10;834:32;;;;;;;;;;833:33;806:60;802:130;;;889:32;;-1:-1:-1;;;889:32:0;;;;;4235:25:2;;;910:10:0;4276:18:2;;;4269:60;4208:18;;889:32:0;4061:274:2;802:130:0;2503:24:::1;2513:5;2520:6;2503:9;:24::i;:::-;2542:23;::::0;-1:-1:-1;;;;;409:32:2;;391:51;;2551:5:0;;2542:23:::1;::::0;379:2:2;364:18;2542:23:0::1;;;;;;;742:207:::0;2402:170;;;:::o;1873:288::-;2042:16;2061:38;2077:5;2084:6;2092;2061:15;:38::i;:::-;2042:57;;2109:45;2128:8;2138:9;2149:4;2109:18;:45::i;:::-;2032:129;1873:288;;;;;:::o;4264:212::-;4372:10;4362:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4362:32:0;;;;;;;;;;;;:44;;-1:-1:-1;;4362:44:0;;;;;;;;;;4421:48;;4009:41:2;;;4362:32:0;;4372:10;4421:48;;3982:18:2;4421:48:0;;;;;;;4264:212;;:::o;1361:200::-;1479:23;1488:5;1495:6;1479:8;:23::i;:::-;1512:42;1531:5;1538:9;1549:4;1512:18;:42::i;:::-;1361:200;;;;:::o;6251:113::-;6328:7;:14;;;;;;;;;;;:29;;-1:-1:-1;;;;;;6328:29:0;-1:-1:-1;;;;;6328:29:0;;;;;;;;;6251:113::o;6370:380::-;6481:7;:14;;;;;;;;;;:23;;;-1:-1:-1;;;;;6468:36:0;;;6481:23;;6468:36;6464:150;;6520:7;:14;;;;;;;;;;;;:23;;:35;;-1:-1:-1;;;;;;6520:35:0;-1:-1:-1;;;;;6520:35:0;;;;;;;;6574:29;;391:51:2;;;6520:14:0;;6574:29;;364:18:2;6574:29:0;;;;;;;6464:150;6636:7;:14;;;;;;;;;;:18;;;;6628:26;;;-1:-1:-1;;;6636:18:0;;;;6628:26;6624:120;;6670:7;:14;;;;;;;;;;;;:18;;:25;;-1:-1:-1;;;;6670:25:0;-1:-1:-1;;;6670:25:0;;;;;;;;;;;;;6714:19;;1861:50:2;;;6670:14:0;;6714:19;;1834:18:2;6714:19:0;;;;;;;6624:120;6370:380;;;:::o;14:226:2:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:2;;14:226;-1:-1:-1;14:226:2:o;453:173::-;521:20;;-1:-1:-1;;;;;570:31:2;;560:42;;550:70;;616:1;613;606:12;550:70;453:173;;;:::o;631:420::-;708:6;716;724;777:2;765:9;756:7;752:23;748:32;745:52;;;793:1;790;783:12;745:52;838:23;;;-1:-1:-1;958:2:2;943:18;;930:32;;-1:-1:-1;1007:38:2;1041:2;1026:18;;1007:38;:::i;:::-;997:48;;631:420;;;;;:::o;1238:171::-;1305:20;;1365:18;1354:30;;1344:41;;1334:69;;1399:1;1396;1389:12;1414:298;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:52;;;1558:1;1555;1548:12;1510:52;1603:23;;;-1:-1:-1;1669:37:2;1702:2;1687:18;;1669:37;:::i;:::-;1659:47;;1414:298;;;;;:::o;1922:300::-;1990:6;1998;2051:2;2039:9;2030:7;2026:23;2022:32;2019:52;;;2067:1;2064;2057:12;2019:52;2112:23;;;-1:-1:-1;2178:38:2;2212:2;2197:18;;2178:38;:::i;2227:568::-;2321:6;2329;2337;2345;2353;2406:3;2394:9;2385:7;2381:23;2377:33;2374:53;;;2423:1;2420;2413:12;2374:53;2468:23;;;-1:-1:-1;2588:2:2;2573:18;;2560:32;;-1:-1:-1;2637:38:2;2671:2;2656:18;;2637:38;:::i;:::-;2627:48;;2694:38;2728:2;2717:9;2713:18;2694:38;:::i;:::-;2684:48;;2751:38;2784:3;2773:9;2769:19;2751:38;:::i;:::-;2741:48;;2227:568;;;;;;;;:::o;2800:347::-;2865:6;2873;2926:2;2914:9;2905:7;2901:23;2897:32;2894:52;;;2942:1;2939;2932:12;2894:52;2965:29;2984:9;2965:29;:::i;:::-;2955:39;;3044:2;3033:9;3029:18;3016:32;3091:5;3084:13;3077:21;3070:5;3067:32;3057:60;;3113:1;3110;3103:12;3057:60;3136:5;3126:15;;;2800:347;;;;;:::o;3152:447::-;3237:6;3245;3253;3261;3314:3;3302:9;3293:7;3289:23;3285:33;3282:53;;;3331:1;3328;3321:12;3282:53;3376:23;;;-1:-1:-1;3442:38:2;3476:2;3461:18;;3442:38;:::i;:::-;3432:48;;3499:38;3533:2;3522:9;3518:18;3499:38;:::i;:::-;3489:48;;3556:37;3589:2;3578:9;3574:18;3556:37;:::i;:::-;3546:47;;3152:447;;;;;;;:::o;3604:260::-;3672:6;3680;3733:2;3721:9;3712:7;3708:23;3704:32;3701:52;;;3749:1;3746;3739:12;3701:52;3772:29;3791:9;3772:29;:::i;:::-;3762:39;;3820:38;3854:2;3843:9;3839:18;3820:38;:::i
Swarm Source
ipfs://519d6e74a05c16353a429c4ca6bcac239d3ac45bb46662c69183fc49ff3e8e81
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.