Polygon Sponsored slots available. Book your slot here!
Overview
POL Balance
0 POL
POL Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 9 from a total of 9 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 44372180 | 535 days ago | IN | 0 POL | 0.00397873 | ||||
Transfer Control | 43881554 | 548 days ago | IN | 0 POL | 0.00499015 | ||||
Set Address | 43881412 | 548 days ago | IN | 0 POL | 0.00796366 | ||||
Set Address Uint... | 43881360 | 548 days ago | IN | 0 POL | 0.00788677 | ||||
Set Address Uint... | 43881317 | 548 days ago | IN | 0 POL | 0.00814654 | ||||
Set Address Uint... | 43881270 | 548 days ago | IN | 0 POL | 0.00759065 | ||||
Set Address Uint... | 43881228 | 548 days ago | IN | 0 POL | 0.00753972 | ||||
Set Address Uint... | 43881142 | 548 days ago | IN | 0 POL | 0.0090479 | ||||
Set Address Uint... | 43881101 | 548 days ago | IN | 0 POL | 0.00868283 |
Loading...
Loading
Contract Name:
Configuration
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* Configuration https://github.com/gysr-io/core SPDX-License-Identifier: MIT */ pragma solidity 0.8.18; import "./interfaces/IConfiguration.sol"; import "./OwnerController.sol"; /** * @title Configuration * * @notice configuration contract to define global variables for GYSR protocol */ contract Configuration is IConfiguration, OwnerController { // data mapping(bytes32 => uint256) private _data; mapping(address => mapping(bytes32 => uint256)) _overrides; /** * @inheritdoc IConfiguration */ function setUint256( bytes32 key, uint256 value ) external override onlyController { _data[key] = value; emit ParameterUpdated(key, value); } /** * @inheritdoc IConfiguration */ function setAddress( bytes32 key, address value ) external override onlyController { _data[key] = uint256(uint160(value)); emit ParameterUpdated(key, value); } /** * @inheritdoc IConfiguration */ function setAddressUint96( bytes32 key, address value0, uint96 value1 ) external override onlyController { uint256 val = uint256(uint160(value0)); val |= uint256(value1) << 160; _data[key] = val; emit ParameterUpdated(key, value0, value1); } /** * @inheritdoc IConfiguration */ function getUint256(bytes32 key) external view override returns (uint256) { if (_overrides[msg.sender][key] > 0) return _overrides[msg.sender][key]; return _data[key]; } /** * @inheritdoc IConfiguration */ function getAddress(bytes32 key) external view override returns (address) { if (_overrides[msg.sender][key] > 0) return address(uint160(_overrides[msg.sender][key])); return address(uint160(_data[key])); } /** * @inheritdoc IConfiguration */ function getAddressUint96( bytes32 key ) external view override returns (address, uint96) { uint256 val = _overrides[msg.sender][key] > 0 ? _overrides[msg.sender][key] : _data[key]; return (address(uint160(val)), uint96(val >> 160)); } /** * @inheritdoc IConfiguration */ function overrideUint256( address caller, bytes32 key, uint256 value ) external override onlyController { _overrides[caller][key] = value; emit ParameterOverridden(caller, key, value); } /** * @inheritdoc IConfiguration */ function overrideAddress( address caller, bytes32 key, address value ) external override onlyController { uint256 val = uint256(uint160(value)); _overrides[caller][key] = val; emit ParameterOverridden(caller, key, value); } /** * @inheritdoc IConfiguration */ function overrideAddressUint96( address caller, bytes32 key, address value0, uint96 value1 ) external override onlyController { uint256 val = uint256(uint160(value0)); val |= uint256(value1) << 160; _overrides[caller][key] = val; emit ParameterOverridden(caller, key, value0, value1); } }
/* IConfiguration https://github.com/gysr-io/core SPDX-License-Identifier: MIT */ pragma solidity 0.8.18; /** * @title Configuration interface * * @notice this defines the protocol configuration interface */ interface IConfiguration { // events event ParameterUpdated(bytes32 indexed key, address value); event ParameterUpdated(bytes32 indexed key, uint256 value); event ParameterUpdated(bytes32 indexed key, address value0, uint96 value1); event ParameterOverridden( address indexed caller, bytes32 indexed key, address value ); event ParameterOverridden( address indexed caller, bytes32 indexed key, uint256 value ); event ParameterOverridden( address indexed caller, bytes32 indexed key, address value0, uint96 value1 ); /** * @notice set or update uint256 parameter * @param key keccak256 hash of parameter key * @param value uint256 parameter value */ function setUint256(bytes32 key, uint256 value) external; /** * @notice set or update address parameter * @param key keccak256 hash of parameter key * @param value address parameter value */ function setAddress(bytes32 key, address value) external; /** * @notice set or update packed address + uint96 pair * @param key keccak256 hash of parameter key * @param value0 address parameter value * @param value1 uint96 parameter value */ function setAddressUint96( bytes32 key, address value0, uint96 value1 ) external; /** * @notice get uint256 parameter * @param key keccak256 hash of parameter key * @return uint256 parameter value */ function getUint256(bytes32 key) external view returns (uint256); /** * @notice get address parameter * @param key keccak256 hash of parameter key * @return uint256 parameter value */ function getAddress(bytes32 key) external view returns (address); /** * @notice get packed address + uint96 pair * @param key keccak256 hash of parameter key * @return address parameter value * @return uint96 parameter value */ function getAddressUint96( bytes32 key ) external view returns (address, uint96); /** * @notice override uint256 parameter for specific caller * @param caller address of caller * @param key keccak256 hash of parameter key * @param value uint256 parameter value */ function overrideUint256( address caller, bytes32 key, uint256 value ) external; /** * @notice override address parameter for specific caller * @param caller address of caller * @param key keccak256 hash of parameter key * @param value address parameter value */ function overrideAddress( address caller, bytes32 key, address value ) external; /** * @notice override address parameter for specific caller * @param caller address of caller * @param key keccak256 hash of parameter key * @param value0 address parameter value * @param value1 uint96 parameter value */ function overrideAddressUint96( address caller, bytes32 key, address value0, uint96 value1 ) external; }
/* IOwnerController https://github.com/gysr-io/core SPDX-License-Identifier: MIT */ pragma solidity 0.8.18; /** * @title Owner controller interface * * @notice this defines the interface for any contracts that use the * owner controller access pattern */ interface IOwnerController { /** * @dev Returns the address of the current owner. */ function owner() external view returns (address); /** * @dev Returns the address of the current controller. */ function controller() external view returns (address); /** * @dev Transfers ownership of the contract to a new account (`newOwner`). This can * include renouncing ownership by transferring to the zero address. * Can only be called by the current owner. */ function transferOwnership(address newOwner) external; /** * @dev Transfers control of the contract to a new account (`newController`). * Can only be called by the owner. */ function transferControl(address newController) external; }
/* OwnerController https://github.com/gysr-io/core SPDX-License-Identifier: MIT */ pragma solidity 0.8.18; import "./interfaces/IOwnerController.sol"; /** * @title Owner controller * * @notice this base contract implements an owner-controller access model. * * @dev the contract is an adapted version of the OpenZeppelin Ownable contract. * It allows the owner to designate an additional account as the controller to * perform restricted operations. * * Other changes include supporting role verification with a require method * in addition to the modifier option, and removing some unneeded functionality. * * Original contract here: * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol */ contract OwnerController is IOwnerController { address private _owner; address private _controller; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); event ControlTransferred( address indexed previousController, address indexed newController ); constructor() { _owner = msg.sender; _controller = msg.sender; emit OwnershipTransferred(address(0), _owner); emit ControlTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view override returns (address) { return _owner; } /** * @dev Returns the address of the current controller. */ function controller() public view override returns (address) { return _controller; } /** * @dev Modifier that throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == msg.sender, "oc1"); _; } /** * @dev Modifier that throws if called by any account other than the controller. */ modifier onlyController() { require(_controller == msg.sender, "oc2"); _; } /** * @dev Throws if called by any account other than the owner. */ function requireOwner() internal view { require(_owner == msg.sender, "oc1"); } /** * @dev Throws if called by any account other than the controller. */ function requireController() internal view { require(_controller == msg.sender, "oc2"); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual override { requireOwner(); require(newOwner != address(0), "oc3"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } /** * @dev Transfers control of the contract to a new account (`newController`). * Can only be called by the owner. */ function transferControl(address newController) public virtual override { requireOwner(); require(newController != address(0), "oc4"); emit ControlTransferred(_controller, newController); _controller = newController; } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousController","type":"address"},{"indexed":true,"internalType":"address","name":"newController","type":"address"}],"name":"ControlTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value0","type":"address"},{"indexed":false,"internalType":"uint96","name":"value1","type":"uint96"}],"name":"ParameterOverridden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"ParameterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ParameterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"address","name":"value0","type":"address"},{"indexed":false,"internalType":"uint96","name":"value1","type":"uint96"}],"name":"ParameterUpdated","type":"event"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getAddressUint96","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getUint256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"overrideAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value0","type":"address"},{"internalType":"uint96","name":"value1","type":"uint96"}],"name":"overrideAddressUint96","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"overrideUint256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"value0","type":"address"},{"internalType":"uint96","name":"value1","type":"uint96"}],"name":"setAddressUint96","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setUint256","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"transferControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060008054336001600160a01b0319918216811783556001805490921681179091556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600080546040516001600160a01b0390911691907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f2908290a3610d99806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063bf88d9d511610066578063bf88d9d514610208578063ca446dd91461021b578063f2fde38b1461022e578063f77c47911461024157600080fd5b80638da5cb5b146101c45780639a8ddf1a146101e2578063b05dbf22146101f557600080fd5b80634f3029c2116100bd5780634f3029c214610152578063575313cd146101655780636d16fa41146101b157600080fd5b80630fb82676146100e457806321f8a721146100f957806333598b0014610136575b600080fd5b6100f76100f2366004610beb565b61025f565b005b61010c610107366004610c38565b610397565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610144610107366004610c38565b60405190815260200161012d565b6100f7610160366004610c51565b6103e8565b610178610173366004610c38565b6104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff90911660208301520161012d565b6100f76101bf366004610c73565b61051b565b60005473ffffffffffffffffffffffffffffffffffffffff1661010c565b6100f76101f0366004610c95565b61062e565b6100f7610203366004610cd1565b610721565b6100f7610216366004610d04565b61080e565b6100f7610229366004610d37565b610934565b6100f761023c366004610c73565b610a11565b60015473ffffffffffffffffffffffffffffffffffffffff1661010c565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff848116600081815260036020908152604080832088845282529182902093861660a086901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179485905582519081526bffffffffffffffffffffffff8616918101919091528692917fd240764df8b7d976efa973b131eeae859f1efa5872658e3500751f5ec25ed3cb910160405180910390a35050505050565b336000908152600360209081526040808320848452909152812054156103d55750336000908152600360209081526040808320938352929052205490565b5060009081526002602052604090205490565b60015473ffffffffffffffffffffffffffffffffffffffff163314610469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b600082815260026020526040908190208290555182907ffdae04feea64164f7a1003019a92a4460a1d01652e226a7177d695c5017aa912906104ae9084815260200190565b60405180910390a25050565b336000908152600360209081526040808320848452909152812054819081906104f15760008481526002602052604090205461050d565b3360009081526003602090815260408083208784529091529020545b9460a086901c945092505050565b610523610b23565b73ffffffffffffffffffffffffffffffffffffffff81166105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6334000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f290600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083208784528252918290209385169384905590518381528592917ff14ca68a61d3d5598260eb185f1301fbf2d42106b9d2f45d1d46451505b4093d910160405180910390a350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260036020908152604080832086845282529182902084905590518381528492917ff3b993d26f99b9ba3aa84e3015d8053d036da065d2f0e85fa2b1840c69c4a866910160405180910390a3505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008381526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff851660a085901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179182905583519081526bffffffffffffffffffffffff8516928101929092529185917f4e67c2d180a6641bedd3b56ec522e36320a1cf4bfaa8c4782686fa4a80087700910160405180910390a250505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008281526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff841690819055915191825283917f1ca5c264cc3cd84fcf0229b8f886e84e181bad05ab81dabf3422e1643959abe891016104ae565b610a19610b23565b73ffffffffffffffffffffffffffffffffffffffff8116610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6333000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6331000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bca57600080fd5b919050565b80356bffffffffffffffffffffffff81168114610bca57600080fd5b60008060008060808587031215610c0157600080fd5b610c0a85610ba6565b935060208501359250610c1f60408601610ba6565b9150610c2d60608601610bcf565b905092959194509250565b600060208284031215610c4a57600080fd5b5035919050565b60008060408385031215610c6457600080fd5b50508035926020909101359150565b600060208284031215610c8557600080fd5b610c8e82610ba6565b9392505050565b600080600060608486031215610caa57600080fd5b610cb384610ba6565b925060208401359150610cc860408501610ba6565b90509250925092565b600080600060608486031215610ce657600080fd5b610cef84610ba6565b95602085013595506040909401359392505050565b600080600060608486031215610d1957600080fd5b83359250610d2960208501610ba6565b9150610cc860408501610bcf565b60008060408385031215610d4a57600080fd5b82359150610d5a60208401610ba6565b9050925092905056fea26469706673582212206821a844396250116e3b9b66d017450d3f0f908429fc677143e43e6044f97c5f64736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063bf88d9d511610066578063bf88d9d514610208578063ca446dd91461021b578063f2fde38b1461022e578063f77c47911461024157600080fd5b80638da5cb5b146101c45780639a8ddf1a146101e2578063b05dbf22146101f557600080fd5b80634f3029c2116100bd5780634f3029c214610152578063575313cd146101655780636d16fa41146101b157600080fd5b80630fb82676146100e457806321f8a721146100f957806333598b0014610136575b600080fd5b6100f76100f2366004610beb565b61025f565b005b61010c610107366004610c38565b610397565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610144610107366004610c38565b60405190815260200161012d565b6100f7610160366004610c51565b6103e8565b610178610173366004610c38565b6104ba565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff90911660208301520161012d565b6100f76101bf366004610c73565b61051b565b60005473ffffffffffffffffffffffffffffffffffffffff1661010c565b6100f76101f0366004610c95565b61062e565b6100f7610203366004610cd1565b610721565b6100f7610216366004610d04565b61080e565b6100f7610229366004610d37565b610934565b6100f761023c366004610c73565b610a11565b60015473ffffffffffffffffffffffffffffffffffffffff1661010c565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff848116600081815260036020908152604080832088845282529182902093861660a086901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179485905582519081526bffffffffffffffffffffffff8616918101919091528692917fd240764df8b7d976efa973b131eeae859f1efa5872658e3500751f5ec25ed3cb910160405180910390a35050505050565b336000908152600360209081526040808320848452909152812054156103d55750336000908152600360209081526040808320938352929052205490565b5060009081526002602052604090205490565b60015473ffffffffffffffffffffffffffffffffffffffff163314610469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b600082815260026020526040908190208290555182907ffdae04feea64164f7a1003019a92a4460a1d01652e226a7177d695c5017aa912906104ae9084815260200190565b60405180910390a25050565b336000908152600360209081526040808320848452909152812054819081906104f15760008481526002602052604090205461050d565b3360009081526003602090815260408083208784529091529020545b9460a086901c945092505050565b610523610b23565b73ffffffffffffffffffffffffffffffffffffffff81166105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6334000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60015460405173ffffffffffffffffffffffffffffffffffffffff8084169216907fa06677f7b64342b4bcbde423684dbdb5356acfe41ad0285b6ecbe6dc4bf427f290600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083208784528252918290209385169384905590518381528592917ff14ca68a61d3d5598260eb185f1301fbf2d42106b9d2f45d1d46451505b4093d910160405180910390a350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260036020908152604080832086845282529182902084905590518381528492917ff3b993d26f99b9ba3aa84e3015d8053d036da065d2f0e85fa2b1840c69c4a866910160405180910390a3505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008381526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff851660a085901b7fffffffffffffffffffffffff00000000000000000000000000000000000000001681179182905583519081526bffffffffffffffffffffffff8516928101929092529185917f4e67c2d180a6641bedd3b56ec522e36320a1cf4bfaa8c4782686fa4a80087700910160405180910390a250505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146109b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6332000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b60008281526002602090815260409182902073ffffffffffffffffffffffffffffffffffffffff841690819055915191825283917f1ca5c264cc3cd84fcf0229b8f886e84e181bad05ab81dabf3422e1643959abe891016104ae565b610a19610b23565b73ffffffffffffffffffffffffffffffffffffffff8116610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6333000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f6f6331000000000000000000000000000000000000000000000000000000000060448201526064016102dc565b565b803573ffffffffffffffffffffffffffffffffffffffff81168114610bca57600080fd5b919050565b80356bffffffffffffffffffffffff81168114610bca57600080fd5b60008060008060808587031215610c0157600080fd5b610c0a85610ba6565b935060208501359250610c1f60408601610ba6565b9150610c2d60608601610bcf565b905092959194509250565b600060208284031215610c4a57600080fd5b5035919050565b60008060408385031215610c6457600080fd5b50508035926020909101359150565b600060208284031215610c8557600080fd5b610c8e82610ba6565b9392505050565b600080600060608486031215610caa57600080fd5b610cb384610ba6565b925060208401359150610cc860408501610ba6565b90509250925092565b600080600060608486031215610ce657600080fd5b610cef84610ba6565b95602085013595506040909401359392505050565b600080600060608486031215610d1957600080fd5b83359250610d2960208501610ba6565b9150610cc860408501610bcf565b60008060408385031215610d4a57600080fd5b82359150610d5a60208401610ba6565b9050925092905056fea26469706673582212206821a844396250116e3b9b66d017450d3f0f908429fc677143e43e6044f97c5f64736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.