Overview
MNT Balance
More Info
ContractCreator
Multichain Info
Latest 25 from a total of 150 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Amount
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Self Kiss | 32784265 | 22 days ago | IN | 0 MNT | 0.0025515 | ||||
| Self Kiss | 32776096 | 23 days ago | IN | 0 MNT | 0.00251143 | ||||
| Self Kiss | 32776088 | 23 days ago | IN | 0 MNT | 0.00609244 | ||||
| Self Kiss | 32775975 | 23 days ago | IN | 0 MNT | 0.00609244 | ||||
| Self Kiss | 32775957 | 23 days ago | IN | 0 MNT | 0.00609151 | ||||
| Self Kiss | 32775919 | 23 days ago | IN | 0 MNT | 0.00251143 | ||||
| Self Kiss | 32775906 | 23 days ago | IN | 0 MNT | 0.00609244 | ||||
| Self Kiss | 25431676 | 193 days ago | IN | 0 MNT | 0.00725876 | ||||
| Self Kiss | 25431659 | 193 days ago | IN | 0 MNT | 0.00729507 | ||||
| Self Kiss | 25431641 | 193 days ago | IN | 0 MNT | 0.00729505 | ||||
| Self Kiss | 25431624 | 193 days ago | IN | 0 MNT | 0.00729516 | ||||
| Self Kiss | 25431607 | 193 days ago | IN | 0 MNT | 0.00725874 | ||||
| Self Kiss | 25431591 | 193 days ago | IN | 0 MNT | 0.00725863 | ||||
| Self Kiss | 25431574 | 193 days ago | IN | 0 MNT | 0.00726844 | ||||
| Self Kiss | 25431558 | 193 days ago | IN | 0 MNT | 0.00725667 | ||||
| Self Kiss | 25431542 | 193 days ago | IN | 0 MNT | 0.00729294 | ||||
| Self Kiss | 25431526 | 193 days ago | IN | 0 MNT | 0.00730122 | ||||
| Self Kiss | 25431509 | 193 days ago | IN | 0 MNT | 0.00726489 | ||||
| Self Kiss | 25431492 | 193 days ago | IN | 0 MNT | 0.00726489 | ||||
| Self Kiss | 25431475 | 193 days ago | IN | 0 MNT | 0.00726488 | ||||
| Self Kiss | 25431458 | 193 days ago | IN | 0 MNT | 0.00726492 | ||||
| Self Kiss | 25431440 | 193 days ago | IN | 0 MNT | 0.00730132 | ||||
| Self Kiss | 25431422 | 193 days ago | IN | 0 MNT | 0.00730973 | ||||
| Self Kiss | 25431404 | 193 days ago | IN | 0 MNT | 0.00730973 | ||||
| Self Kiss | 25431385 | 193 days ago | IN | 0 MNT | 0.00730973 |
View more zero value Internal Transactions in Advanced View mode
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
import {IAuth} from "chronicle-std/auth/IAuth.sol";
import {Auth} from "chronicle-std/auth/Auth.sol";
import {IToll} from "chronicle-std/toll/IToll.sol";
import {ISelfKisser} from "./ISelfKisser.sol";
contract SelfKisser is ISelfKisser, Auth {
/// @dev Whether SelfKisser is dead.
uint internal _dead;
modifier live() {
if (_dead == 1) {
revert Dead();
}
_;
}
constructor(address initialAuthed) Auth(initialAuthed) {}
// -- User Functionality --
/// @inheritdoc ISelfKisser
function selfKiss(address oracle) external {
selfKiss(oracle, msg.sender);
}
/// @inheritdoc ISelfKisser
function selfKiss(address oracle, address who) public live {
IToll(oracle).kiss(who);
emit SelfKissed(msg.sender, oracle, who);
}
// -- View Functionality --
/// @inheritdoc ISelfKisser
function dead() external view returns (bool) {
return _dead == 1;
}
// -- Auth'ed Functionality --
/// @inheritdoc ISelfKisser
function kill() external auth {
if (_dead == 1) return;
_dead = 1;
emit Killed(msg.sender);
}
}
/**
* @dev Contract overwrite to deploy contract instances with specific naming.
*
* For more info, see docs/Deployment.md.
*/
contract SelfKisser_2 is SelfKisser {
constructor(address initialAuthed) SelfKisser(initialAuthed) {}
}// 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);
}// 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 IToll {
/// @notice Thrown by protected function if caller not tolled.
/// @param caller The caller's address.
error NotTolled(address caller);
/// @notice Emitted when toll granted to address.
/// @param caller The caller's address.
/// @param who The address toll got granted to.
event TollGranted(address indexed caller, address indexed who);
/// @notice Emitted when toll renounced from address.
/// @param caller The caller's address.
/// @param who The address toll got renounced from.
event TollRenounced(address indexed caller, address indexed who);
/// @notice Grants address `who` toll.
/// @dev Only callable by auth'ed address.
/// @param who The address to grant toll.
function kiss(address who) external;
/// @notice Renounces address `who`'s toll.
/// @dev Only callable by auth'ed address.
/// @param who The address to renounce toll.
function diss(address who) external;
/// @notice Returns whether address `who` is tolled.
/// @param who The address to check.
/// @return True if `who` is tolled, false otherwise.
function tolled(address who) external view returns (bool);
/// @notice Returns full list of addresses tolled.
/// @dev May contain duplicates.
/// @return List of addresses tolled.
function tolled() external view returns (address[] memory);
/// @notice Returns whether address `who` is tolled.
/// @custom:deprecated Use `tolled(address)(bool)` instead.
/// @param who The address to check.
/// @return 1 if `who` is tolled, 0 otherwise.
function bud(address who) external view returns (uint);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
interface ISelfKisser {
/// @notice Thrown if SelfKisser dead.
error Dead();
/// @notice Emitted when SelfKisser killed.
/// @param caller The caller's address.
event Killed(address indexed caller);
/// @notice Emitted when new address kissed on an oracle.
/// @param caller The caller's address.
/// @param oracle The oracle on which address `who` got kissed on.
/// @param who The address that got kissed on oracle `oracle`.
event SelfKissed(
address indexed caller, address indexed oracle, address indexed who
);
// -- User Functionality --
/// @notice Kisses caller on oracle `oracle`.
///
/// @dev Reverts if oracle `oracle` not supported.
/// @dev Reverts if SelfKisser dead.
///
/// @param oracle The oracle to kiss the caller on.
function selfKiss(address oracle) external;
/// @notice Kisses address `who` on oracle `oracle`.
///
/// @dev Reverts if oracle `oracle` not supported.
/// @dev Reverts if SelfKisser dead.
///
/// @param oracle The oracle to kiss address `who` on.
/// @param who The address to kiss on oracle `oracle`.
function selfKiss(address oracle, address who) external;
// -- View Functionality --
/// @notice Returns whether SelfKisser is dead.
/// @return True if SelfKisser dead, false otherwise.
function dead() external view returns (bool);
// -- Auth'ed Functionality --
/// @notice Kills the contract.
/// @dev Only callable by auth'ed address.
function kill() external;
}{
"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/",
"lib/chronicle-std:src/=lib/chronicle-std/src/",
"lib/chronicle-std:ds-test/=lib/chronicle-std/lib/forge-std/lib/ds-test/src/",
"lib/chronicle-std:forge-std/=lib/chronicle-std/lib/forge-std/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 ABI
API[{"inputs":[{"internalType":"address","name":"initialAuthed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Dead","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"}],"name":"Killed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"oracle","type":"address"},{"indexed":true,"internalType":"address","name":"who","type":"address"}],"name":"SelfKissed","type":"event"},{"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":"dead","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"},{"internalType":"address","name":"who","type":"address"}],"name":"selfKiss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"name":"selfKiss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60803461011757601f6109ce38819003918201601f19168301916001600160401b0383118484101761011c5780849260209460405283398101031261011757516001600160a01b03811690819003610117576000908082528160205260016040832055600154680100000000000000008110156101035760018101806001558110156100ef57600183527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191682179055604051917fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f8184a361089b90816101338239f35b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c9081630fce34151461057957508063224242ca146103a557806336cf7c871461038357806341c0e1b514610348578063622920e71461024257806365fae35e1461020e5780639c52a7f1146101c6578063bf353dbb146101835763c529a6791461008757600080fd5b3461014a57602060031936011261014a576100a06105bd565b60016002541461015c5773ffffffffffffffffffffffffffffffffffffffff84911692833b15610158578251907ff29c29c40000000000000000000000000000000000000000000000000000000082523390820152818160248183885af1801561014e57610136575b505051903390337f3b6e7e6ff858d016edf22112c8596ecf8f0a55591a3b84c35b993e0de85a0c848585a4f35b61013f90610773565b61014a578238610109565b8280fd5b83513d84823e3d90fd5b5080fd5b50517f82c4767b000000000000000000000000000000000000000000000000000000008152fd5b838234610158576020600319360112610158578060209273ffffffffffffffffffffffffffffffffffffffff6101b76105bd565b16815280845220549051908152f35b838234610158576020600319360112610158576101e16105bd565b3383528260205281832054156101fd576101fa90610717565b51f35b634a0bfec18352336020526024601cfd5b838234610158576020600319360112610158576102296105bd565b3383528260205281832054156101fd576101fa9061064b565b503461014a578060031936011261014a5761025b6105bd565b906024359173ffffffffffffffffffffffffffffffffffffffff908184168094036103445760016002541461031c571692833b1561031857828251917ff29c29c4000000000000000000000000000000000000000000000000000000008352820152848160248183885af1801561030e576102fb575b505191337f3b6e7e6ff858d016edf22112c8596ecf8f0a55591a3b84c35b993e0de85a0c848585a4f35b61030790949194610773565b92386102d1565b82513d87823e3d90fd5b8480fd5b8483517f82c4767b000000000000000000000000000000000000000000000000000000008152fd5b8580fd5b838234610158578160031936011261015857338252816020528082205415610372576101fa61082a565b634a0bfec18252336020526024601cfd5b8382346101585781600319360112610158576020906001600254149051908152f35b50903461014a578260031936011261014a57600192601f8454916103c8836107b6565b928551937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09384910116840184811067ffffffffffffffff82111761054d579261041a879592899587528084526107b6565b956020918284019701368837839081865b61047d575b505082528451948186019282875251809352850195925b8281106104545785870386f35b835173ffffffffffffffffffffffffffffffffffffffff16875295810195928101928401610447565b95809896859694955181101561054157610496816105e5565b73ffffffffffffffffffffffffffffffffffffffff809254600392831b1c168752868852838b882054146104dc575b50506104d0906107ce565b9096989594939561042b565b909192506104e9836105e5565b9054911b1c166104f8846107ce565b9387518110156105155760051b870186015288906104d08b6104c5565b6024866032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b50959794939294610430565b6024836041887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9250503461014a57602060031936011261014a5760019060209373ffffffffffffffffffffffffffffffffffffffff6105b06105bd565b1681528085522054148152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036105e057565b600080fd5b60015481101561061c5760016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff809116906000908282528160205260016040832054146107125760016040832055600154680100000000000000008110156106e5576106a68160018693016001556105e5565b909283549160031b90811b9283911b169119161790557fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f3391604051a3565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505050565b73ffffffffffffffffffffffffffffffffffffffff1660008181528060205260408120541561076f578060408120557f58466e5837b54e559819c9ba8a5d7c77c97c985d1aabf4bdc5f41069fa5d65a03391604051a3565b5050565b67ffffffffffffffff811161078757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116107875760051b60200190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107fb5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600160025414610863576001600255337f4b0bc4f25f8d0b92d2e12b686ba96cd75e4e69325e6cf7b1f3119d14eaf2cbdf6000604051a2565b56fea264697066735822122033a2b0f1140404878cf87e46354bfc9c2cee6c2f9c45ad789546d1c98c5f9f0e64736f6c6343000810003300000000000000000000000074258a92611e029b748f79c50024dd851339db15
Deployed Bytecode
0x608060408181526004908136101561001657600080fd5b600092833560e01c9081630fce34151461057957508063224242ca146103a557806336cf7c871461038357806341c0e1b514610348578063622920e71461024257806365fae35e1461020e5780639c52a7f1146101c6578063bf353dbb146101835763c529a6791461008757600080fd5b3461014a57602060031936011261014a576100a06105bd565b60016002541461015c5773ffffffffffffffffffffffffffffffffffffffff84911692833b15610158578251907ff29c29c40000000000000000000000000000000000000000000000000000000082523390820152818160248183885af1801561014e57610136575b505051903390337f3b6e7e6ff858d016edf22112c8596ecf8f0a55591a3b84c35b993e0de85a0c848585a4f35b61013f90610773565b61014a578238610109565b8280fd5b83513d84823e3d90fd5b5080fd5b50517f82c4767b000000000000000000000000000000000000000000000000000000008152fd5b838234610158576020600319360112610158578060209273ffffffffffffffffffffffffffffffffffffffff6101b76105bd565b16815280845220549051908152f35b838234610158576020600319360112610158576101e16105bd565b3383528260205281832054156101fd576101fa90610717565b51f35b634a0bfec18352336020526024601cfd5b838234610158576020600319360112610158576102296105bd565b3383528260205281832054156101fd576101fa9061064b565b503461014a578060031936011261014a5761025b6105bd565b906024359173ffffffffffffffffffffffffffffffffffffffff908184168094036103445760016002541461031c571692833b1561031857828251917ff29c29c4000000000000000000000000000000000000000000000000000000008352820152848160248183885af1801561030e576102fb575b505191337f3b6e7e6ff858d016edf22112c8596ecf8f0a55591a3b84c35b993e0de85a0c848585a4f35b61030790949194610773565b92386102d1565b82513d87823e3d90fd5b8480fd5b8483517f82c4767b000000000000000000000000000000000000000000000000000000008152fd5b8580fd5b838234610158578160031936011261015857338252816020528082205415610372576101fa61082a565b634a0bfec18252336020526024601cfd5b8382346101585781600319360112610158576020906001600254149051908152f35b50903461014a578260031936011261014a57600192601f8454916103c8836107b6565b928551937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09384910116840184811067ffffffffffffffff82111761054d579261041a879592899587528084526107b6565b956020918284019701368837839081865b61047d575b505082528451948186019282875251809352850195925b8281106104545785870386f35b835173ffffffffffffffffffffffffffffffffffffffff16875295810195928101928401610447565b95809896859694955181101561054157610496816105e5565b73ffffffffffffffffffffffffffffffffffffffff809254600392831b1c168752868852838b882054146104dc575b50506104d0906107ce565b9096989594939561042b565b909192506104e9836105e5565b9054911b1c166104f8846107ce565b9387518110156105155760051b870186015288906104d08b6104c5565b6024866032867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b50959794939294610430565b6024836041887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b9250503461014a57602060031936011261014a5760019060209373ffffffffffffffffffffffffffffffffffffffff6105b06105bd565b1681528085522054148152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036105e057565b600080fd5b60015481101561061c5760016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff809116906000908282528160205260016040832054146107125760016040832055600154680100000000000000008110156106e5576106a68160018693016001556105e5565b909283549160031b90811b9283911b169119161790557fe31c10b0adbedd0c6e5d024286c6eeead7761e65a67608dcf0b67604c0da7e2f3391604051a3565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505050565b73ffffffffffffffffffffffffffffffffffffffff1660008181528060205260408120541561076f578060408120557f58466e5837b54e559819c9ba8a5d7c77c97c985d1aabf4bdc5f41069fa5d65a03391604051a3565b5050565b67ffffffffffffffff811161078757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116107875760051b60200190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107fb5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600160025414610863576001600255337f4b0bc4f25f8d0b92d2e12b686ba96cd75e4e69325e6cf7b1f3119d14eaf2cbdf6000604051a2565b56fea264697066735822122033a2b0f1140404878cf87e46354bfc9c2cee6c2f9c45ad789546d1c98c5f9f0e64736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000074258a92611e029b748f79c50024dd851339db15
-----Decoded View---------------
Arg [0] : initialAuthed (address): 0x74258A92611e029b748F79c50024DD851339dB15
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000074258a92611e029b748f79c50024dd851339db15
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.