Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 21 from a total of 21 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add | 21571664 | 29 days ago | IN | 0 ETH | 0.00129489 | ||||
Remove | 21366510 | 57 days ago | IN | 0 ETH | 0.00163495 | ||||
Add | 21366471 | 57 days ago | IN | 0 ETH | 0.03601197 | ||||
Add | 21321274 | 64 days ago | IN | 0 ETH | 0.00197799 | ||||
Add | 21213759 | 79 days ago | IN | 0 ETH | 0.00137455 | ||||
Add | 20963721 | 114 days ago | IN | 0 ETH | 0.00392156 | ||||
Add | 20369332 | 197 days ago | IN | 0 ETH | 0.00226079 | ||||
Add | 19974669 | 252 days ago | IN | 0 ETH | 0.00127064 | ||||
Add | 19581526 | 307 days ago | IN | 0 ETH | 0.00237504 | ||||
Add | 19169808 | 365 days ago | IN | 0 ETH | 0.01526589 | ||||
Add | 19065161 | 379 days ago | IN | 0 ETH | 0.00170557 | ||||
Remove | 19065146 | 379 days ago | IN | 0 ETH | 0.00077534 | ||||
Add | 18827526 | 413 days ago | IN | 0 ETH | 0.07813771 | ||||
Add | 18428533 | 468 days ago | IN | 0 ETH | 0.00669893 | ||||
Add | 18428531 | 468 days ago | IN | 0 ETH | 0.00620114 | ||||
Add | 18428530 | 468 days ago | IN | 0 ETH | 0.00625993 | ||||
Add | 18428529 | 468 days ago | IN | 0 ETH | 0.00624807 | ||||
Add | 18428520 | 468 days ago | IN | 0 ETH | 0.00718668 | ||||
Add | 18291993 | 488 days ago | IN | 0 ETH | 0.00157998 | ||||
Add | 18270815 | 491 days ago | IN | 0 ETH | 0.02543707 | ||||
Rely | 17983192 | 531 days ago | IN | 0 ETH | 0.0014242 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17983185 | 531 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TorAddressRegister_Feeds_1
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 10000 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.16; import {Auth} from "chronicle-std/auth/Auth.sol"; import {ITorAddressRegister} from "./ITorAddressRegister.sol"; /** * @title TorAddressRegister * * @notice The `TorAddressRegister` contract provides a register for tor * addresses. * * @dev The contract uses the `chronicle-std/Auth` module for access control. * While the register is publicly readable, state mutating functions are * only callable by auth'ed addresses. * * Note that the register does not guarantee stable ordering, may contain * duplicates, and does not sanity-check newly added tor addresses. */ contract TorAddressRegister is ITorAddressRegister, Auth { /// @dev May contain duplicates. /// @dev Stable ordering not guaranteed. /// @dev May contain the empty string or other invalid tor addresses. string[] private _register; constructor(address initialAuthed) Auth(initialAuthed) {} /// @inheritdoc ITorAddressRegister function get(uint index) external view returns (string memory) { if (index >= _register.length) { revert IndexOutOfBounds(index, _register.length); } return _register[index]; } /// @inheritdoc ITorAddressRegister function tryGet(uint index) external view returns (bool, string memory) { if (index >= _register.length) { return (false, ""); } else { return (true, _register[index]); } } /// @inheritdoc ITorAddressRegister function list() external view returns (string[] memory) { return _register; } /// @inheritdoc ITorAddressRegister function count() external view returns (uint) { return _register.length; } /// @inheritdoc ITorAddressRegister function add(string calldata torAddress) external auth { _register.push(torAddress); emit TorAddressAdded(msg.sender, torAddress); } /// @inheritdoc ITorAddressRegister function add(string[] calldata torAddresses) external auth { for (uint i; i < torAddresses.length; i++) { _register.push(torAddresses[i]); emit TorAddressAdded(msg.sender, torAddresses[i]); } } /// @inheritdoc ITorAddressRegister /// @dev Note to not provide a "bulk remove" function as the ordering of tor /// addresses inside the register may change during removal. function remove(uint index) external auth { if (index >= _register.length) { revert IndexOutOfBounds(index, _register.length); } emit TorAddressRemoved(msg.sender, _register[index]); _register[index] = _register[_register.length - 1]; _register.pop(); } } /** * @dev Contract overwrite to deploy contract instances with specific naming. * * For more info, see docs/Deployment.md. */ contract TorAddressRegister_Feeds_1 is TorAddressRegister { constructor(address initialAuthed) TorAddressRegister(initialAuthed) {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.16; import {IAuth} from "./IAuth.sol"; /** * @title Auth Module * * @dev The `Auth` contract module provides a basic access control mechanism, * where a set of addresses are granted access to protected functions. * These addresses are said to be _auth'ed_. * * Initially, the address given as constructor argument is the only address * auth'ed. Through the `rely(address)` and `deny(address)` functions, * auth'ed callers are able to grant/renounce auth to/from addresses. * * This module is used through inheritance. It will make available the * modifier `auth`, which can be applied to functions to restrict their * use to only auth'ed callers. */ abstract contract Auth is IAuth { /// @dev Mapping storing whether address is auth'ed. /// @custom:invariant Image of mapping is {0, 1}. /// ∀x ∊ Address: _wards[x] ∊ {0, 1} /// @custom:invariant Only address given as constructor argument is authenticated after deployment. /// deploy(initialAuthed) → (∀x ∊ Address: _wards[x] == 1 → x == initialAuthed) /// @custom:invariant Only functions `rely` and `deny` may mutate the mapping's state. /// ∀x ∊ Address: preTx(_wards[x]) != postTx(_wards[x]) /// → (msg.sig == "rely" ∨ msg.sig == "deny") /// @custom:invariant Mapping's state may only be mutated by authenticated caller. /// ∀x ∊ Address: preTx(_wards[x]) != postTx(_wards[x]) → _wards[msg.sender] = 1 mapping(address => uint) private _wards; /// @dev List of addresses possibly being auth'ed. /// @dev May contain duplicates. /// @dev May contain addresses not being auth'ed anymore. /// @custom:invariant Every address being auth'ed once is element of the list. /// ∀x ∊ Address: authed(x) -> x ∊ _wardsTouched address[] private _wardsTouched; /// @dev Ensures caller is auth'ed. modifier auth() { assembly ("memory-safe") { // Compute slot of _wards[msg.sender]. mstore(0x00, caller()) mstore(0x20, _wards.slot) let slot := keccak256(0x00, 0x40) // Revert if caller not auth'ed. let isAuthed := sload(slot) if iszero(isAuthed) { // Store selector of `NotAuthorized(address)`. mstore(0x00, 0x4a0bfec1) // Store msg.sender. mstore(0x20, caller()) // Revert with (offset, size). revert(0x1c, 0x24) } } _; } constructor(address initialAuthed) { _wards[initialAuthed] = 1; _wardsTouched.push(initialAuthed); // Note to use address(0) as caller to indicate address was auth'ed // during deployment. emit AuthGranted(address(0), initialAuthed); } /// @inheritdoc IAuth function rely(address who) external auth { if (_wards[who] == 1) return; _wards[who] = 1; _wardsTouched.push(who); emit AuthGranted(msg.sender, who); } /// @inheritdoc IAuth function deny(address who) external auth { if (_wards[who] == 0) return; _wards[who] = 0; emit AuthRenounced(msg.sender, who); } /// @inheritdoc IAuth function authed(address who) public view returns (bool) { return _wards[who] == 1; } /// @inheritdoc IAuth /// @custom:invariant Only contains auth'ed addresses. /// ∀x ∊ authed(): _wards[x] == 1 /// @custom:invariant Contains all auth'ed addresses. /// ∀x ∊ Address: _wards[x] == 1 → x ∊ authed() function authed() public view returns (address[] memory) { // Initiate array with upper limit length. address[] memory wardsList = new address[](_wardsTouched.length); // Iterate through all possible auth'ed addresses. uint ctr; for (uint i; i < wardsList.length; i++) { // Add address only if still auth'ed. if (_wards[_wardsTouched[i]] == 1) { wardsList[ctr++] = _wardsTouched[i]; } } // Set length of array to number of auth'ed addresses actually included. assembly ("memory-safe") { mstore(wardsList, ctr) } return wardsList; } /// @inheritdoc IAuth function wards(address who) public view returns (uint) { return _wards[who]; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.16; interface ITorAddressRegister { /// @notice Thrown if provided index out of bounds. /// @param index The provided index. /// @param maxIndex The maximum valid index. error IndexOutOfBounds(uint index, uint maxIndex); /// @notice Emitted when new tor address added. /// @param caller The caller's address. /// @param torAddress The tor addresses added. event TorAddressAdded(address indexed caller, string torAddress); /// @notice Emitted when tor address removed. /// @param caller The caller's address. /// @param torAddress The tor addresses removed.. event TorAddressRemoved(address indexed caller, string torAddress); /// @notice Returns the tor address at index `index`. /// @dev Reverts if index out of bounds. /// @param index The index of the tor address to return. /// @return The tor address stored at given index. function get(uint index) external view returns (string memory); /// @notice Returns the tor address at index `index`. /// @param index The index of the tor address to return. /// @return True if tor address at index `index` exists, false otherwise. /// @return The tor address stored at index `index` if index exists, empty /// string otherwise. function tryGet(uint index) external view returns (bool, string memory); /// @notice Returns the full list of tor addresses stored. /// @dev May contain duplicates. /// @dev Stable ordering not guaranteed. /// @dev May contain the empty string or other invalid tor addresses. /// @return The list of tor addresses stored. function list() external view returns (string[] memory); /// @notice Returns the number of tor addresses stored. /// @return The number of tor addresses stored. function count() external view returns (uint); /// @notice Adds a new tor address. /// @dev Only callable by auth'ed addresses. /// @param torAddress The tor address to add. function add(string calldata torAddress) external; /// @notice Adds a list of new tor addresses. /// @dev Only callable by auth'ed addresses. /// @param torAddresses The tor addresses to add. function add(string[] calldata torAddresses) external; /// @notice Removes the tor address at index `index`. /// @dev Only callable by auth'ed addresses. /// @dev Reverts if index `index` out of bounds. /// @param index The index of the the tor address to remove. function remove(uint index) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.16; interface IAuth { /// @notice Thrown by protected function if caller not auth'ed. /// @param caller The caller's address. error NotAuthorized(address caller); /// @notice Emitted when auth granted to address. /// @param caller The caller's address. /// @param who The address auth got granted to. event AuthGranted(address indexed caller, address indexed who); /// @notice Emitted when auth renounced from address. /// @param caller The caller's address. /// @param who The address auth got renounced from. event AuthRenounced(address indexed caller, address indexed who); /// @notice Grants address `who` auth. /// @dev Only callable by auth'ed address. /// @param who The address to grant auth. function rely(address who) external; /// @notice Renounces address `who`'s auth. /// @dev Only callable by auth'ed address. /// @param who The address to renounce auth. function deny(address who) external; /// @notice Returns whether address `who` is auth'ed. /// @param who The address to check. /// @return True if `who` is auth'ed, false otherwise. function authed(address who) external view returns (bool); /// @notice Returns full list of addresses granted auth. /// @dev May contain duplicates. /// @return List of addresses granted auth. function authed() external view returns (address[] memory); /// @notice Returns whether address `who` is auth'ed. /// @custom:deprecated Use `authed(address)(bool)` instead. /// @param who The address to check. /// @return 1 if `who` is auth'ed, 0 otherwise. function wards(address who) external view returns (uint); }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "chronicle-std/=lib/chronicle-std/src/", "@script/chronicle-std/=lib/chronicle-std/script/", "greenhouse/=lib/greenhouse/src/" ], "optimizer": { "enabled": true, "runs": 10000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "viaIR": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"initialAuthed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"maxIndex","type":"uint256"}],"name":"IndexOutOfBounds","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"NotAuthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"who","type":"address"}],"name":"AuthGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"who","type":"address"}],"name":"AuthRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"string","name":"torAddress","type":"string"}],"name":"TorAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"string","name":"torAddress","type":"string"}],"name":"TorAddressRemoved","type":"event"},{"inputs":[{"internalType":"string","name":"torAddress","type":"string"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"torAddresses","type":"string[]"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"authed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authed","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"get","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"list","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"remove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tryGet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60803461011757601f61112a38819003918201601f19168301916001600160401b0383118484101761011c5780849260209460405283398101031261011757516001600160a01b03811690819003610117576000908082528160205260016040832055600154680100000000000000008110156101035760018101806001558110156100ef57600183527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191682179055604051917fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f8184a3610ff790816101338239f35b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306661abd146108bc575080630f560cd7146107ae5780630fce341514610767578063224242ca146105f95780634cc82215146103eb57806365fae35e146103a2578063871394d9146103675780639507d39a146102d35780639c52a7f114610276578063b0c8f9dc146101d8578063bf353dbb146101945763dd175691146100a757600080fd5b346101905760206003193601126101905780359067ffffffffffffffff9081831161018c573660238401121561018c57820135908111610188576024820191602436918360051b0101116101885733845283602052828420541561017757835b8181106101145750505051f35b8061012c610126610172938587610e89565b90610d43565b61016a7f29fd02601a0c701300a3446ea25f1abf1f3fa39f54035f4a273d1caed361aa3c61015b838688610e89565b88513394909283929083610e61565b0390a2610b4b565b610107565b634a0bfec18452336020526024601cfd5b8380fd5b8480fd5b8280fd5b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff8116809103610190578282916020945280845220549051908152f35b50346101905760206003193601126101905780359067ffffffffffffffff9081831161018c573660238401121561018c5782013590811161018857602482019160248236920101116101885733845283602052828420541561017757610270816102637f29fd02601a0c701300a3446ea25f1abf1f3fa39f54035f4a273d1caed361aa3c9385610d43565b8451918291339583610e61565b0390a251f35b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff81168103610190573383528260205281832054156102c2576102bf90610a85565b51f35b634a0bfec18352336020526024601cfd5b5082346103645760206003193601126103645750803590600254808310156103315761032d6103148561031b61030887610982565b50825193848092610bdc565b0383610ae1565b519182916020835260208301906108dc565b0390f35b6044928451927f63a056dd0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b80fd5b508234610364576020600319360112610364575061038861032d9135610c91565b8392919251938493151584528060208501528301906108dc565b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff81168103610190573383528260205281832054156102c2576102bf906109b9565b5034610190576020908160031936011261018857803533855284835283852054156105e95760025490818110156105b55761042581610982565b507ffc5bf361eea5cd210779f74d4b755fdb25513015d6c8019ce12307c33d98de5386518681528061045b339489830190610bdc565b0390a2600019918281019081116105895761047861047f91610982565b5091610982565b61055e579061048d91610eee565b60025480156105325701916104a183610982565b92909261050757509084916104b68254610b89565b90816104c7575b5050505060025551f35b81601f8593116001146104e257505050555b823880806104bd565b8383528183206104fd91601f0160051c810190600101610ce5565b81209155556104d9565b85806024927f4e487b7100000000000000000000000000000000000000000000000000000000825252fd5b6024866031857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248780867f4e487b7100000000000000000000000000000000000000000000000000000000825252fd5b6024876011867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b604493508451927f63a056dd0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b634a0bfec185523383526024601cfd5b509134610364578060031936011261036457600190815461063161061c82610b33565b9161062986519384610ae1565b808352610b33565b94602090601f198284019701368837839081865b610697575b505082528451948186019282875251809352850195925b82811061066e5785870386f35b835173ffffffffffffffffffffffffffffffffffffffff16875295810195928101928401610661565b95809896859694955181101561075b576106b08161091c565b73ffffffffffffffffffffffffffffffffffffffff809254600392831b1c168752868852838b882054146106f6575b50506106ea90610b4b565b90969895949395610645565b909192506107038361091c565b9054911b1c1661071284610b4b565b93875181101561072f5760051b870186015288906106ea386106df565b6024866032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5095979493929461064a565b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff8116809103610190578183600192602095528085522054149051908152f35b8284346103645780600319360112610364576002546107cc81610b33565b916107d984519384610ae1565b8183526002815260209283810192827f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace855b83831061088a57505050508451938085019181865251809252858501958260051b8601019392955b8287106108405785850386f35b90919293828061087a837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a6001960301865288516108dc565b9601920196019592919092610833565b60018881928b9a97989a516108aa816108a38189610bdc565b0382610ae1565b8152019201920191909694939661080b565b8490346108d857816003193601126108d8576020906002548152f35b5080fd5b919082519283825260005b848110610908575050601f19601f8460006020809697860101520116010190565b6020818301810151848301820152016108e7565b6001548110156109535760016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6002548110156109535760026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0190600090565b73ffffffffffffffffffffffffffffffffffffffff80911690600090828252816020526001604083205414610a80576001604083205560015468010000000000000000811015610a5357610a1481600186930160015561091c565b909283549160031b90811b9283911b169119161790557fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f3391604051a3565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505050565b73ffffffffffffffffffffffffffffffffffffffff16600081815280602052604081205415610add578060408120557f58466e5837b54e559819c9ba8a5d7c77c97c985d1aabf4bdc5f41069fa5d65a03391604051a3565b5050565b90601f601f19910116810190811067ffffffffffffffff821117610b0457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111610b045760051b60200190565b6000198114610b5a5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90600182811c92168015610bd2575b6020831014610ba357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610b98565b9060009291805491610bed83610b89565b918282526001938481169081600014610c4f5750600114610c0f575b50505050565b90919394506000526020928360002092846000945b838610610c3b575050505001019038808080610c09565b805485870183015294019385908201610c24565b91505060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009193501683830152151560051b01019038808080610c09565b6002548110610cc257506000906040516020810181811067ffffffffffffffff821117610b04576040526000815290565b610ccb90610982565b50906108a3610ce260019360405192838092610bdc565b90565b818110610cf0575050565b60008155600101610ce5565b9190601f8111610d0b57505050565b610d37926000526020600020906020601f840160051c83019310610d39575b601f0160051c0190610ce5565b565b9091508190610d2a565b9060025468010000000000000000811015610b0457610d69600191828101600255610982565b939093610e325767ffffffffffffffff8311610b0457610d9383610d8d8654610b89565b86610cfc565b600090601f8411600114610dcd57600091849182610dc0575b505060001991921b9260031b1c1916179055565b0135915060001938610dac565b601f198493941691858152836020938483209483905b88838310610e185750505010610dfe575b505050811b019055565b60001960f88560031b161c19910135169055388080610df4565b868601358855909601959384019387935090810190610de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b90601f83604094601f1993602086528160208701528686013760008582860101520116010190565b91908110156109535760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610ee957019081359167ffffffffffffffff8311610ee9576020018236038113610ee9579190565b600080fd5b90808214610add57610f008154610b89565b9067ffffffffffffffff8211610b04578190610f2082610d8d8654610b89565b600090601f8311600114610f5657600092610f4b575b50506000198260011b9260031b1c1916179055565b015490503880610f36565b91601f1916918152602091828220908583528383209383905b828210610fa8575050908460019594939210610f8f57505050811b019055565b015460001960f88460031b161c19169055388080610df4565b8495819295850154815560018091019601940190610f6f56fea264697066735822122048cdca05c931ec37e3e23bb801b51aef238b86f776a15993fb8eb417451fc5b564736f6c63430008100033000000000000000000000000c50dfedb7e93ef7a3daccad7987d0960c4e2cd4b
Deployed Bytecode
0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306661abd146108bc575080630f560cd7146107ae5780630fce341514610767578063224242ca146105f95780634cc82215146103eb57806365fae35e146103a2578063871394d9146103675780639507d39a146102d35780639c52a7f114610276578063b0c8f9dc146101d8578063bf353dbb146101945763dd175691146100a757600080fd5b346101905760206003193601126101905780359067ffffffffffffffff9081831161018c573660238401121561018c57820135908111610188576024820191602436918360051b0101116101885733845283602052828420541561017757835b8181106101145750505051f35b8061012c610126610172938587610e89565b90610d43565b61016a7f29fd02601a0c701300a3446ea25f1abf1f3fa39f54035f4a273d1caed361aa3c61015b838688610e89565b88513394909283929083610e61565b0390a2610b4b565b610107565b634a0bfec18452336020526024601cfd5b8380fd5b8480fd5b8280fd5b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff8116809103610190578282916020945280845220549051908152f35b50346101905760206003193601126101905780359067ffffffffffffffff9081831161018c573660238401121561018c5782013590811161018857602482019160248236920101116101885733845283602052828420541561017757610270816102637f29fd02601a0c701300a3446ea25f1abf1f3fa39f54035f4a273d1caed361aa3c9385610d43565b8451918291339583610e61565b0390a251f35b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff81168103610190573383528260205281832054156102c2576102bf90610a85565b51f35b634a0bfec18352336020526024601cfd5b5082346103645760206003193601126103645750803590600254808310156103315761032d6103148561031b61030887610982565b50825193848092610bdc565b0383610ae1565b519182916020835260208301906108dc565b0390f35b6044928451927f63a056dd0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b80fd5b508234610364576020600319360112610364575061038861032d9135610c91565b8392919251938493151584528060208501528301906108dc565b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff81168103610190573383528260205281832054156102c2576102bf906109b9565b5034610190576020908160031936011261018857803533855284835283852054156105e95760025490818110156105b55761042581610982565b507ffc5bf361eea5cd210779f74d4b755fdb25513015d6c8019ce12307c33d98de5386518681528061045b339489830190610bdc565b0390a2600019918281019081116105895761047861047f91610982565b5091610982565b61055e579061048d91610eee565b60025480156105325701916104a183610982565b92909261050757509084916104b68254610b89565b90816104c7575b5050505060025551f35b81601f8593116001146104e257505050555b823880806104bd565b8383528183206104fd91601f0160051c810190600101610ce5565b81209155556104d9565b85806024927f4e487b7100000000000000000000000000000000000000000000000000000000825252fd5b6024866031857f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60248780867f4e487b7100000000000000000000000000000000000000000000000000000000825252fd5b6024876011867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b604493508451927f63a056dd0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b634a0bfec185523383526024601cfd5b509134610364578060031936011261036457600190815461063161061c82610b33565b9161062986519384610ae1565b808352610b33565b94602090601f198284019701368837839081865b610697575b505082528451948186019282875251809352850195925b82811061066e5785870386f35b835173ffffffffffffffffffffffffffffffffffffffff16875295810195928101928401610661565b95809896859694955181101561075b576106b08161091c565b73ffffffffffffffffffffffffffffffffffffffff809254600392831b1c168752868852838b882054146106f6575b50506106ea90610b4b565b90969895949395610645565b909192506107038361091c565b9054911b1c1661071284610b4b565b93875181101561072f5760051b870186015288906106ea386106df565b6024866032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5095979493929461064a565b5034610190576020600319360112610190573573ffffffffffffffffffffffffffffffffffffffff8116809103610190578183600192602095528085522054149051908152f35b8284346103645780600319360112610364576002546107cc81610b33565b916107d984519384610ae1565b8183526002815260209283810192827f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace855b83831061088a57505050508451938085019181865251809252858501958260051b8601019392955b8287106108405785850386f35b90919293828061087a837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a6001960301865288516108dc565b9601920196019592919092610833565b60018881928b9a97989a516108aa816108a38189610bdc565b0382610ae1565b8152019201920191909694939661080b565b8490346108d857816003193601126108d8576020906002548152f35b5080fd5b919082519283825260005b848110610908575050601f19601f8460006020809697860101520116010190565b6020818301810151848301820152016108e7565b6001548110156109535760016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6002548110156109535760026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0190600090565b73ffffffffffffffffffffffffffffffffffffffff80911690600090828252816020526001604083205414610a80576001604083205560015468010000000000000000811015610a5357610a1481600186930160015561091c565b909283549160031b90811b9283911b169119161790557fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f3391604051a3565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505050565b73ffffffffffffffffffffffffffffffffffffffff16600081815280602052604081205415610add578060408120557f58466e5837b54e559819c9ba8a5d7c77c97c985d1aabf4bdc5f41069fa5d65a03391604051a3565b5050565b90601f601f19910116810190811067ffffffffffffffff821117610b0457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111610b045760051b60200190565b6000198114610b5a5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90600182811c92168015610bd2575b6020831014610ba357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610b98565b9060009291805491610bed83610b89565b918282526001938481169081600014610c4f5750600114610c0f575b50505050565b90919394506000526020928360002092846000945b838610610c3b575050505001019038808080610c09565b805485870183015294019385908201610c24565b91505060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009193501683830152151560051b01019038808080610c09565b6002548110610cc257506000906040516020810181811067ffffffffffffffff821117610b04576040526000815290565b610ccb90610982565b50906108a3610ce260019360405192838092610bdc565b90565b818110610cf0575050565b60008155600101610ce5565b9190601f8111610d0b57505050565b610d37926000526020600020906020601f840160051c83019310610d39575b601f0160051c0190610ce5565b565b9091508190610d2a565b9060025468010000000000000000811015610b0457610d69600191828101600255610982565b939093610e325767ffffffffffffffff8311610b0457610d9383610d8d8654610b89565b86610cfc565b600090601f8411600114610dcd57600091849182610dc0575b505060001991921b9260031b1c1916179055565b0135915060001938610dac565b601f198493941691858152836020938483209483905b88838310610e185750505010610dfe575b505050811b019055565b60001960f88560031b161c19910135169055388080610df4565b868601358855909601959384019387935090810190610de3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b90601f83604094601f1993602086528160208701528686013760008582860101520116010190565b91908110156109535760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610ee957019081359167ffffffffffffffff8311610ee9576020018236038113610ee9579190565b600080fd5b90808214610add57610f008154610b89565b9067ffffffffffffffff8211610b04578190610f2082610d8d8654610b89565b600090601f8311600114610f5657600092610f4b575b50506000198260011b9260031b1c1916179055565b015490503880610f36565b91601f1916918152602091828220908583528383209383905b828210610fa8575050908460019594939210610f8f57505050811b019055565b015460001960f88460031b161c19169055388080610df4565b8495819295850154815560018091019601940190610f6f56fea264697066735822122048cdca05c931ec37e3e23bb801b51aef238b86f776a15993fb8eb417451fc5b564736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c50dfedb7e93ef7a3daccad7987d0960c4e2cd4b
-----Decoded View---------------
Arg [0] : initialAuthed (address): 0xc50dFeDb7E93eF7A3DacCAd7987D0960c4e2CD4b
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c50dfedb7e93ef7a3daccad7987d0960c4e2cd4b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.