Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SPBEAMHaltSpell
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
No with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-FileCopyrightText: © 2024 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.16;
import {DssEmergencySpell} from "../DssEmergencySpell.sol";
interface SPBEAMMomLike {
function halt(address) external;
}
interface SPBEAMLike {
function wards(address) external view returns (uint256);
function bad() external view returns (uint256);
}
/// @title SP-BEAM Halt Emergency Spell
/// @notice Will disable the SPBEAM (Stability Parameter Bounded External Access Module)
contract SPBEAMHaltSpell is DssEmergencySpell {
string public constant override description = "Emergency Spell | Halt SPBEAM";
SPBEAMMomLike public immutable spbeamMom = SPBEAMMomLike(_log.getAddress("SPBEAM_MOM"));
SPBEAMLike public immutable spbeam = SPBEAMLike(_log.getAddress("MCD_SPBEAM"));
event Halt();
/**
* @notice Disables SPBEAM
*/
function _emergencyActions() internal override {
spbeamMom.halt(address(spbeam));
emit Halt();
}
/**
* @notice Returns whether the spell is done or not.
* @dev Checks if `spbeam.bad() == 1` (disabled).
* The spell would revert if any of the following conditions holds:
* 1. SPBEAMMom is not a ward of SPBEAM
* 2. Call to SPBEAM `bad()` reverts (likely not a SPBEAM)
* In both cases, it returns `true`, meaning no further action can be taken at the moment.
*/
function done() external view returns (bool) {
try spbeam.wards(address(spbeamMom)) returns (uint256 ward) {
// Ignore SPBEAM instances that have not relied on SPBEAMMom.
if (ward == 0) {
return true;
}
} catch {
// If the call failed, it means the contract is most likely not a SPBEAM instance.
return true;
}
try spbeam.bad() returns (uint256 bad) {
return bad == 1;
} catch {
// If the call failed, it means the contract is most likely not a SPBEAM instance.
return true;
}
}
}// SPDX-FileCopyrightText: © 2024 Dai Foundation <www.daifoundation.org>
// SPDX-License-Identifier: AGPL-3.0-or-later
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
pragma solidity ^0.8.16;
interface ChainlogLike {
function getAddress(bytes32 key) external view returns (address);
}
interface DssExec {
function action() external view returns (address);
function cast() external;
function description() external view returns (string memory);
function done() external view returns (bool);
function eta() external view returns (uint256);
function expiration() external view returns (uint256);
function log() external view returns (address);
function nextCastTime() external view returns (uint256);
function officeHours() external view returns (bool);
function pause() external view returns (address);
function schedule() external;
function sig() external view returns (bytes memory);
function tag() external view returns (bytes32);
}
interface DssAction {
function actions() external;
function description() external view returns (string memory);
function execute() external;
function nextCastTime(uint256 eta) external view returns (uint256);
function officeHours() external view returns (bool);
}
interface DssEmergencySpellLike is DssExec, DssAction {
function description() external view override(DssExec, DssAction) returns (string memory);
function officeHours() external view override(DssExec, DssAction) returns (bool);
}
abstract contract DssEmergencySpell is DssEmergencySpellLike {
/// @dev The chainlog contract reference.
ChainlogLike internal constant _log = ChainlogLike(0xdA0Ab1e0017DEbCd72Be8599041a2aa3bA7e740F);
/// @dev The reference to the `pause` contract.
address public immutable pause = _log.getAddress("MCD_PAUSE");
/// @dev The chainlog address.
address public constant log = address(_log);
/// @dev In regular spells, `eta` is used to enforce the GSM delay.
/// For emergency spells, the GSM delay is not applicable.
uint256 public constant eta = 0;
/// @dev Keeping the same value as regular spells.
bytes public constant sig = abi.encodeWithSelector(DssAction.execute.selector);
/// @dev Emergency spells should not expire.
uint256 public constant expiration = type(uint256).max;
/// @dev An emergency spell does not need to be cast, as all actions happen during the schedule phase.
/// Notice that cast is usually not supposed to revert, so it is implemented as a no-op.
uint256 internal immutable _nextCastTime = type(uint256).max;
/// @dev Office Hours is always `false` for emergency spells.
bool public constant officeHours = false;
/// @dev `action` is expected to return a valid address.
/// We also implement the `DssAction` interface in this contract.
address public immutable action = address(this);
/// @dev In regular spells, `tag` is an immutable variable with the code hash of the spell action.
/// It specifically uses a separate contract for spell action because `tag` is immutable and the code hash of
/// the contract being initialized is not accessible in the constructor.
/// Since we do not have a separate contract for actions in Emergency Spells, `tag` has to be turned into a
/// getter function instead of an immutable variable.
/// @return The contract codehash.
function tag() external view returns (bytes32) {
return address(this).codehash;
}
/// @notice Triggers the emergency actions of the spell.
/// @dev Emergency spells are triggered when scheduled.
/// This function maintains the name for compatibility with regular spells, however nothing is actually being
/// scheduled. Emergency spells take effect immediately, so there is no need to call `pause.plot()`.
function schedule() external {
_emergencyActions();
}
/// @notice Implements the emergency actions to be triggered by the spell.
function _emergencyActions() internal virtual;
/// @notice Returns `_nextCastTime`.
/// @dev This function exists only to keep interface compatibility with regular spells.
function nextCastTime() external view returns (uint256 castTime) {
return _nextCastTime;
}
/// @notice No-op.
/// @dev This function exists only to keep interface compatibility with regular spells.
function cast() external {}
/// @notice No-op.
/// @dev This function exists only to keep interface compatibility with regular spells.
function execute() external {}
/// @notice No-op.
/// @dev This function exists only to keep interface compatibility with regular spells.
function actions() external {}
/// @notice Returns `nextCastTime`, regardless of the input parameter.
/// @dev This function exists only to keep interface compatibility with regular spells.
function nextCastTime(uint256) external view returns (uint256 castTime) {
return _nextCastTime;
}
}{
"remappings": [
"dss-interfaces/=lib/dss-test/lib/dss-interfaces/src/",
"dss-test/=lib/dss-test/src/",
"forge-std/=lib/dss-test/lib/forge-std/src/"
],
"optimizer": {
"enabled": false,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "london",
"viaIR": false,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[],"name":"Halt","type":"event"},{"inputs":[],"name":"action","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"done","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expiration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"log","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nextCastTime","outputs":[{"internalType":"uint256","name":"castTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextCastTime","outputs":[{"internalType":"uint256","name":"castTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"officeHours","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spbeam","outputs":[{"internalType":"contract SPBEAMLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"spbeamMom","outputs":[{"internalType":"contract SPBEAMMomLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}]Contract Creation Code
61012060405273da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b81526004016200005290620002e3565b602060405180830381865afa15801562000070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000096919062000368565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60a0908152503073ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1681525073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b81526004016200016f90620003c0565b602060405180830381865afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b3919062000368565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1681525073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b8152600401620002329062000401565b602060405180830381865afa15801562000250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000276919062000368565b73ffffffffffffffffffffffffffffffffffffffff166101009073ffffffffffffffffffffffffffffffffffffffff16815250348015620002b657600080fd5b506200041c565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620002f960008301620002bd565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003308262000303565b9050919050565b620003428162000323565b81146200034e57600080fd5b50565b600081519050620003628162000337565b92915050565b600060208284031215620003815762000380620002fe565b5b6000620003918482850162000351565b91505092915050565b7f53504245414d5f4d4f4d00000000000000000000000000000000000000000000815250565b6000602082019050620003d6600083016200039a565b919050565b7f4d43445f53504245414d00000000000000000000000000000000000000000000815250565b60006020820190506200041760008301620003db565b919050565b60805160a05160c05160e05161010051610af36200048b60003960008181610473015281816105460152818161061a01526106a90152600081816103e7015281816104af015261066d015260006103680152600081816105f201526106470152600061044b0152610af36000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80638456cb59116100a2578063bf0fbcec11610071578063bf0fbcec14610264578063f53b63a714610294578063f7992d85146102b2578063f99e36bc146102d0578063fe7d47bb146102da57610115565b80638456cb591461021457806396d373e514610232578063ae8421e11461023c578063b0604a261461025a57610115565b806351f91066116100e957806351f910661461019257806353fc3915146101b057806361461954146101ce5780636e832f07146101d85780637284e416146101f657610115565b8062a7029b1461011a5780630a7a1c4d146101385780634665096d1461015657806351973ec914610174575b600080fd5b6101226102f8565b60405161012f91906107d4565b60405180910390f35b610140610366565b60405161014d9190610837565b60405180910390f35b61015e61038a565b60405161016b919061086b565b60405180910390f35b61017c6103ae565b6040516101899190610837565b60405180910390f35b61019a6103c6565b6040516101a7919061089f565b60405180910390f35b6101b86103e5565b6040516101c59190610919565b60405180910390f35b6101d6610409565b005b6101e061040b565b6040516101ed919061094f565b60405180910390f35b6101fe610410565b60405161020b91906109bf565b60405180910390f35b61021c610449565b6040516102299190610837565b60405180910390f35b61023a61046d565b005b61024461046f565b604051610251919061094f565b60405180910390f35b6102626105e4565b005b61027e60048036038101906102799190610a12565b6105ee565b60405161028b919061086b565b60405180910390f35b61029c610618565b6040516102a99190610a60565b60405180910390f35b6102ba61063c565b6040516102c7919061086b565b60405180910390f35b6102d8610641565b005b6102e2610643565b6040516102ef919061086b565b60405180910390f35b636146195460e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b60003073ffffffffffffffffffffffffffffffffffffffff163f905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b565b600081565b6040518060400160405280601d81526020017f456d657267656e6379205370656c6c207c2048616c742053504245414d00000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf353dbb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016104ea9190610837565b602060405180830381865afa92505050801561052457506040513d601f19601f820116820180604052508101906105219190610a90565b60015b61053157600190506105e1565b600081036105435760019150506105e1565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639c3674fc6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105cc57506040513d601f19601f820116820180604052508101906105c99190610a90565b60015b6105d957600190506105e1565b600181149150505b90565b6105ec61066b565b565b60007f00000000000000000000000000000000000000000000000000000000000000009050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081565b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663364db0fc7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106e49190610837565b600060405180830381600087803b1580156106fe57600080fd5b505af1158015610712573d6000803e3d6000fd5b505050507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561077e578082015181840152602081019050610763565b60008484015250505050565b6000601f19601f8301169050919050565b60006107a682610744565b6107b0818561074f565b93506107c0818560208601610760565b6107c98161078a565b840191505092915050565b600060208201905081810360008301526107ee818461079b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610821826107f6565b9050919050565b61083181610816565b82525050565b600060208201905061084c6000830184610828565b92915050565b6000819050919050565b61086581610852565b82525050565b6000602082019050610880600083018461085c565b92915050565b6000819050919050565b61089981610886565b82525050565b60006020820190506108b46000830184610890565b92915050565b6000819050919050565b60006108df6108da6108d5846107f6565b6108ba565b6107f6565b9050919050565b60006108f1826108c4565b9050919050565b6000610903826108e6565b9050919050565b610913816108f8565b82525050565b600060208201905061092e600083018461090a565b92915050565b60008115159050919050565b61094981610934565b82525050565b60006020820190506109646000830184610940565b92915050565b600081519050919050565b600082825260208201905092915050565b60006109918261096a565b61099b8185610975565b93506109ab818560208601610760565b6109b48161078a565b840191505092915050565b600060208201905081810360008301526109d98184610986565b905092915050565b600080fd5b6109ef81610852565b81146109fa57600080fd5b50565b600081359050610a0c816109e6565b92915050565b600060208284031215610a2857610a276109e1565b5b6000610a36848285016109fd565b91505092915050565b6000610a4a826108e6565b9050919050565b610a5a81610a3f565b82525050565b6000602082019050610a756000830184610a51565b92915050565b600081519050610a8a816109e6565b92915050565b600060208284031215610aa657610aa56109e1565b5b6000610ab484828501610a7b565b9150509291505056fea2646970667358221220b35c4e3276b378c66490d38659199e353e99bc79293e6b5a43fe8976eb6fdd1f64736f6c63430008100033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101155760003560e01c80638456cb59116100a2578063bf0fbcec11610071578063bf0fbcec14610264578063f53b63a714610294578063f7992d85146102b2578063f99e36bc146102d0578063fe7d47bb146102da57610115565b80638456cb591461021457806396d373e514610232578063ae8421e11461023c578063b0604a261461025a57610115565b806351f91066116100e957806351f910661461019257806353fc3915146101b057806361461954146101ce5780636e832f07146101d85780637284e416146101f657610115565b8062a7029b1461011a5780630a7a1c4d146101385780634665096d1461015657806351973ec914610174575b600080fd5b6101226102f8565b60405161012f91906107d4565b60405180910390f35b610140610366565b60405161014d9190610837565b60405180910390f35b61015e61038a565b60405161016b919061086b565b60405180910390f35b61017c6103ae565b6040516101899190610837565b60405180910390f35b61019a6103c6565b6040516101a7919061089f565b60405180910390f35b6101b86103e5565b6040516101c59190610919565b60405180910390f35b6101d6610409565b005b6101e061040b565b6040516101ed919061094f565b60405180910390f35b6101fe610410565b60405161020b91906109bf565b60405180910390f35b61021c610449565b6040516102299190610837565b60405180910390f35b61023a61046d565b005b61024461046f565b604051610251919061094f565b60405180910390f35b6102626105e4565b005b61027e60048036038101906102799190610a12565b6105ee565b60405161028b919061086b565b60405180910390f35b61029c610618565b6040516102a99190610a60565b60405180910390f35b6102ba61063c565b6040516102c7919061086b565b60405180910390f35b6102d8610641565b005b6102e2610643565b6040516102ef919061086b565b60405180910390f35b636146195460e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b7f000000000000000000000000decf4a7e4b9caa3c3751d163866941a888618ac081565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b60003073ffffffffffffffffffffffffffffffffffffffff163f905090565b7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d081565b565b600081565b6040518060400160405280601d81526020017f456d657267656e6379205370656c6c207c2048616c742053504245414d00000081525081565b7f000000000000000000000000be286431454714f511008713973d3b053a2d38f381565b565b60007f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2273ffffffffffffffffffffffffffffffffffffffff1663bf353dbb7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d06040518263ffffffff1660e01b81526004016104ea9190610837565b602060405180830381865afa92505050801561052457506040513d601f19601f820116820180604052508101906105219190610a90565b60015b61053157600190506105e1565b600081036105435760019150506105e1565b507f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2273ffffffffffffffffffffffffffffffffffffffff16639c3674fc6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105cc57506040513d601f19601f820116820180604052508101906105c99190610a90565b60015b6105d957600190506105e1565b600181149150505b90565b6105ec61066b565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b7f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b2281565b600081565b565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b7f000000000000000000000000f0c6e6ec8b367cc483a411e595d3ba0a816d37d073ffffffffffffffffffffffffffffffffffffffff1663364db0fc7f00000000000000000000000036b072ed8afe665e3aa6daba79decbec63752b226040518263ffffffff1660e01b81526004016106e49190610837565b600060405180830381600087803b1580156106fe57600080fd5b505af1158015610712573d6000803e3d6000fd5b505050507fa8d1ea886eaf8bd3d113c770bf7af546123c70e235b0d036ff752d5e920a7b5660405160405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561077e578082015181840152602081019050610763565b60008484015250505050565b6000601f19601f8301169050919050565b60006107a682610744565b6107b0818561074f565b93506107c0818560208601610760565b6107c98161078a565b840191505092915050565b600060208201905081810360008301526107ee818461079b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610821826107f6565b9050919050565b61083181610816565b82525050565b600060208201905061084c6000830184610828565b92915050565b6000819050919050565b61086581610852565b82525050565b6000602082019050610880600083018461085c565b92915050565b6000819050919050565b61089981610886565b82525050565b60006020820190506108b46000830184610890565b92915050565b6000819050919050565b60006108df6108da6108d5846107f6565b6108ba565b6107f6565b9050919050565b60006108f1826108c4565b9050919050565b6000610903826108e6565b9050919050565b610913816108f8565b82525050565b600060208201905061092e600083018461090a565b92915050565b60008115159050919050565b61094981610934565b82525050565b60006020820190506109646000830184610940565b92915050565b600081519050919050565b600082825260208201905092915050565b60006109918261096a565b61099b8185610975565b93506109ab818560208601610760565b6109b48161078a565b840191505092915050565b600060208201905081810360008301526109d98184610986565b905092915050565b600080fd5b6109ef81610852565b81146109fa57600080fd5b50565b600081359050610a0c816109e6565b92915050565b600060208284031215610a2857610a276109e1565b5b6000610a36848285016109fd565b91505092915050565b6000610a4a826108e6565b9050919050565b610a5a81610a3f565b82525050565b6000602082019050610a756000830184610a51565b92915050565b600081519050610a8a816109e6565b92915050565b600060208284031215610aa657610aa56109e1565b5b6000610ab484828501610a7b565b9150509291505056fea2646970667358221220b35c4e3276b378c66490d38659199e353e99bc79293e6b5a43fe8976eb6fdd1f64736f6c63430008100033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.