Source Code
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
sdTokenOperatorFraxtal
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/**
*Submitted for verification at fraxscan.com on 2024-05-24
*/
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.19;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
interface ISdToken {
function balanceOf(address account) external view returns (uint256);
function burn(address _to, uint256 _amount) external;
function mint(address _to, uint256 _amount) external;
function operator() external view returns (address);
function setOperator(address _operator) external;
}
interface IOptimismMintableERC20 is IERC165 {
function remoteToken() external view returns (address);
function bridge() external returns (address);
function mint(address _to, uint256 _amount) external;
function burn(address _from, uint256 _amount) external;
}
/// @title sdTokenOperator
/// @author StakeDAO
/// @notice A middleware contract used to allow multi addresses to mint/burn sdToken, it needs to be the sdToken's operator
contract sdTokenOperatorFraxtal is IOptimismMintableERC20 {
/// @notice Address of the remote token in ethereum
address public immutable remoteToken;
/// @notice Address of the bridge in fraxtal
address public immutable bridge;
/// @notice Address of the governance
address public governance;
/// @notice Address of the future governance
address public futureGovernance;
/// @notice sdToken
ISdToken public immutable sdToken;
/// @notice address -> enabled or not
mapping(address => bool) public operators;
////////////////////////////////////////////////////////////////
/// --- EVENTS & ERRORS
///////////////////////////////////////////////////////////////
/// @notice Throwed when an operator has already allowed
error AlreadyAllowed();
/// @notice Throwed when a low level call fails
error CallFailed();
/// @notice Throwed when an operator has not allowed
error NotAllowed();
/// @notice Throwed at Auth
error Auth();
/// @notice Emitted when the governance changes
event GovernanceChanged(address governance);
/// @notice Emitted when an operator is allowed
event OperatorAllowed(address operator);
/// @notice Emitted when an operator is disallowed
event OperatorDisallowed(address operator);
modifier onlyFutureGovernance() {
if (msg.sender != futureGovernance) revert Auth();
_;
}
modifier onlyGovernance() {
if (msg.sender != governance) revert Auth();
_;
}
modifier onlyOperator() {
if (!operators[msg.sender]) revert Auth();
_;
}
//////////////////////////////////////////////////////
/// --- CONSTRUCTOR
//////////////////////////////////////////////////////
/// @notice Constructor
/// @param _sdToken Address of the sdToken
/// @param _governance Address of the governance
/// @param _remoteToken Address of the remote sdToken
/// @param _bridge Address of the frax bridge
/// @param _delegationRegistry Address of the fraxtal delegation registry
/// @param _initialDelegate Address of the delegate that receives network reward
constructor(
address _sdToken,
address _governance,
address _remoteToken,
address _bridge,
address _delegationRegistry,
address _initialDelegate
) {
sdToken = ISdToken(_sdToken);
governance = _governance;
remoteToken = _remoteToken;
bridge = _bridge;
// Custom code for Fraxtal
// set _initialDelegate as delegate
(bool success,) =
_delegationRegistry.call(abi.encodeWithSignature("setDelegationForSelf(address)", _initialDelegate));
if (!success) revert CallFailed();
// disable self managing delegation
(success,) = _delegationRegistry.call(abi.encodeWithSignature("disableSelfManagingDelegations()"));
if (!success) revert CallFailed();
}
/// @notice mint new sdToken, callable only by the operator
/// @param _to recipient to mint for
/// @param _amount amount to mint
function mint(address _to, uint256 _amount) external onlyOperator {
sdToken.mint(_to, _amount);
}
/// @notice burn sdToken, callable only by the operator
/// @param _from sdToken holder
/// @param _amount amount to burn
function burn(address _from, uint256 _amount) external onlyOperator {
sdToken.burn(_from, _amount);
}
/// @notice Allow a new operator that can mint and burn sdToken
/// @param _operator new operator address
function allowOperator(address _operator) external onlyGovernance {
if (operators[_operator]) revert AlreadyAllowed();
operators[_operator] = true;
emit OperatorAllowed(_operator);
}
/// @notice Allow a new operator that can mint and burn sdToken
/// @param _operator new operator address
function disallowOperator(address _operator) external onlyGovernance {
if (!operators[_operator]) revert NotAllowed();
operators[_operator] = false;
emit OperatorDisallowed(_operator);
}
/// @notice Set a new sdToken's operator, after this action the contract can't mint/burn
/// @param _operator new operator address
function setSdTokenOperator(address _operator) external onlyGovernance {
sdToken.setOperator(_operator);
}
/// @notice Transfer the governance to a new address.
/// @param _governance Address of the new governance.
function transferGovernance(address _governance) external onlyGovernance {
futureGovernance = _governance;
}
/// @notice Accept the governance transfer.
function acceptGovernance() external onlyFutureGovernance {
governance = msg.sender;
futureGovernance = address(0);
emit GovernanceChanged(msg.sender);
}
/// @notice ERC165 interface check function.
/// @param _interfaceId Interface ID to check.
/// @return Whether or not the interface is supported by this contract.
function supportsInterface(bytes4 _interfaceId) external pure virtual returns (bool) {
bytes4 iface1 = type(IERC165).interfaceId;
// Interface corresponding to the updated OptimismMintableERC20 (this contract).
bytes4 iface2 = type(IOptimismMintableERC20).interfaceId;
return _interfaceId == iface1 || _interfaceId == iface2;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_sdToken","type":"address"},{"internalType":"address","name":"_governance","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_bridge","type":"address"},{"internalType":"address","name":"_delegationRegistry","type":"address"},{"internalType":"address","name":"_initialDelegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyAllowed","type":"error"},{"inputs":[],"name":"Auth","type":"error"},{"inputs":[],"name":"CallFailed","type":"error"},{"inputs":[],"name":"NotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"governance","type":"address"}],"name":"GovernanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorAllowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorDisallowed","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"allowOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"disallowOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"futureGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sdToken","outputs":[{"internalType":"contract ISdToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setSdTokenOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"transferGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60e060405234801561001057600080fd5b50604051610a51380380610a5183398101604081905261002f916101d5565b6001600160a01b0386811660c052600080546001600160a01b03191687831617815585821660805284821660a0526040518383166024820152909184169060440160408051601f198184030181529181526020820180516001600160e01b03166302b8a21d60e01b179052516100a59190610249565b6000604051808303816000865af19150503d80600081146100e2576040519150601f19603f3d011682016040523d82523d6000602084013e6100e7565b606091505b505090508061010957604051633204506f60e01b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166325ce9a3760e01b17905290516001600160a01b0385169161014791610249565b6000604051808303816000865af19150503d8060008114610184576040519150601f19603f3d011682016040523d82523d6000602084013e610189565b606091505b505080915050806101ad57604051633204506f60e01b815260040160405180910390fd5b50505050505050610278565b80516001600160a01b03811681146101d057600080fd5b919050565b60008060008060008060c087890312156101ee57600080fd5b6101f7876101b9565b9550610205602088016101b9565b9450610213604088016101b9565b9350610221606088016101b9565b925061022f608088016101b9565b915061023d60a088016101b9565b90509295509295509295565b6000825160005b8181101561026a5760208186018101518583015201610250565b506000920191825250919050565b60805160a05160c0516107956102bc600039600081816101ad0152818161043c015281816104e7015261059c015260006102470152600061022001526107956000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063776c23fb1161008c578063b845c21711610066578063b845c217146101f5578063d38bfff414610208578063d6c0b2c41461021b578063e78cea921461024257600080fd5b8063776c23fb146101a85780638070c503146101cf5780639dc29fac146101e257600080fd5b8063238efcbc116100c8578063238efcbc1461014f57806340c10f19146101575780635aa6e6751461016a578063635aec401461019557600080fd5b806301ffc9a7146100ef57806313e7c9d8146101175780631ba9a4581461013a575b600080fd5b6101026100fd3660046106cd565b610269565b60405190151581526020015b60405180910390f35b61010261012536600461071a565b60026020526000908152604090205460ff1681565b61014d61014836600461071a565b6102a7565b005b61014d610367565b61014d610165366004610735565b6103e6565b60005461017d906001600160a01b031681565b6040516001600160a01b03909116815260200161010e565b61014d6101a336600461071a565b61049d565b61017d7f000000000000000000000000000000000000000000000000000000000000000081565b60015461017d906001600160a01b031681565b61014d6101f0366004610735565b610546565b61014d61020336600461071a565b6105cb565b61014d61021636600461071a565b610680565b61017d7f000000000000000000000000000000000000000000000000000000000000000081565b61017d7f000000000000000000000000000000000000000000000000000000000000000081565b60006301ffc9a760e01b63ec4fc8e360e01b6001600160e01b0319841682148061029f57506001600160e01b0319848116908216145b949350505050565b6000546001600160a01b031633146102d25760405163055c501b60e51b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561030c57604051636a4648d760e01b815260040160405180910390fd5b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fdde65206cdee4ea27ef1b170724ba50b41ad09a3bf2dda12935fc40c4dbf6e7591015b60405180910390a150565b6001546001600160a01b031633146103925760405163055c501b60e51b815260040160405180910390fd5b60008054336001600160a01b031991821681179092556001805490911690556040519081527fa6a85f15b976d399f39ad43e515e75910bac714bc55eeff6131fb90780d6f7469060200160405180910390a1565b3360009081526002602052604090205460ff166104165760405163055c501b60e51b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906044015b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146104c85760405163055c501b60e51b815260040160405180910390fd5b60405163b3ab15fb60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063b3ab15fb90602401600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff166105765760405163055c501b60e51b815260040160405180910390fd5b604051632770a7eb60e21b81526001600160a01b038381166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690639dc29fac90604401610467565b6000546001600160a01b031633146105f65760405163055c501b60e51b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff1661062f57604051631eb49d6d60e11b815260040160405180910390fd5b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f8560daa191dd8e6fba276b053006b3990c46c94b842f85490f52c49b15cfe5cb910161035c565b6000546001600160a01b031633146106ab5760405163055c501b60e51b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156106df57600080fd5b81356001600160e01b0319811681146106f757600080fd5b9392505050565b80356001600160a01b038116811461071557600080fd5b919050565b60006020828403121561072c57600080fd5b6106f7826106fe565b6000806040838503121561074857600080fd5b610751836106fe565b94602093909301359350505056fea2646970667358221220cf20b6573fcc09f651f4222fa89474d2dc225860f43b66ee1f92809e8a2648f364736f6c634300081300330000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62000000000000000000000000402f878bdd1f5c66fdaf0fababcf74741b68ac360000000000000000000000004200000000000000000000000000000000000010000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063776c23fb1161008c578063b845c21711610066578063b845c217146101f5578063d38bfff414610208578063d6c0b2c41461021b578063e78cea921461024257600080fd5b8063776c23fb146101a85780638070c503146101cf5780639dc29fac146101e257600080fd5b8063238efcbc116100c8578063238efcbc1461014f57806340c10f19146101575780635aa6e6751461016a578063635aec401461019557600080fd5b806301ffc9a7146100ef57806313e7c9d8146101175780631ba9a4581461013a575b600080fd5b6101026100fd3660046106cd565b610269565b60405190151581526020015b60405180910390f35b61010261012536600461071a565b60026020526000908152604090205460ff1681565b61014d61014836600461071a565b6102a7565b005b61014d610367565b61014d610165366004610735565b6103e6565b60005461017d906001600160a01b031681565b6040516001600160a01b03909116815260200161010e565b61014d6101a336600461071a565b61049d565b61017d7f0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca581481565b60015461017d906001600160a01b031681565b61014d6101f0366004610735565b610546565b61014d61020336600461071a565b6105cb565b61014d61021636600461071a565b610680565b61017d7f000000000000000000000000402f878bdd1f5c66fdaf0fababcf74741b68ac3681565b61017d7f000000000000000000000000420000000000000000000000000000000000001081565b60006301ffc9a760e01b63ec4fc8e360e01b6001600160e01b0319841682148061029f57506001600160e01b0319848116908216145b949350505050565b6000546001600160a01b031633146102d25760405163055c501b60e51b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561030c57604051636a4648d760e01b815260040160405180910390fd5b6001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fdde65206cdee4ea27ef1b170724ba50b41ad09a3bf2dda12935fc40c4dbf6e7591015b60405180910390a150565b6001546001600160a01b031633146103925760405163055c501b60e51b815260040160405180910390fd5b60008054336001600160a01b031991821681179092556001805490911690556040519081527fa6a85f15b976d399f39ad43e515e75910bac714bc55eeff6131fb90780d6f7469060200160405180910390a1565b3360009081526002602052604090205460ff166104165760405163055c501b60e51b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca581416906340c10f19906044015b600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146104c85760405163055c501b60e51b815260040160405180910390fd5b60405163b3ab15fb60e01b81526001600160a01b0382811660048301527f0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814169063b3ab15fb90602401600060405180830381600087803b15801561052b57600080fd5b505af115801561053f573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff166105765760405163055c501b60e51b815260040160405180910390fd5b604051632770a7eb60e21b81526001600160a01b038381166004830152602482018390527f0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca58141690639dc29fac90604401610467565b6000546001600160a01b031633146105f65760405163055c501b60e51b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff1661062f57604051631eb49d6d60e11b815260040160405180910390fd5b6001600160a01b038116600081815260026020908152604091829020805460ff1916905590519182527f8560daa191dd8e6fba276b053006b3990c46c94b842f85490f52c49b15cfe5cb910161035c565b6000546001600160a01b031633146106ab5760405163055c501b60e51b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156106df57600080fd5b81356001600160e01b0319811681146106f757600080fd5b9392505050565b80356001600160a01b038116811461071557600080fd5b919050565b60006020828403121561072c57600080fd5b6106f7826106fe565b6000806040838503121561074857600080fd5b610751836106fe565b94602093909301359350505056fea2646970667358221220cf20b6573fcc09f651f4222fa89474d2dc225860f43b66ee1f92809e8a2648f364736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62000000000000000000000000402f878bdd1f5c66fdaf0fababcf74741b68ac360000000000000000000000004200000000000000000000000000000000000010000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765
-----Decoded View---------------
Arg [0] : _sdToken (address): 0x1AEe2382e05Dc68BDfC472F1E46d570feCca5814
Arg [1] : _governance (address): 0x000755Fbe4A24d7478bfcFC1E561AfCE82d1ff62
Arg [2] : _remoteToken (address): 0x402F878BDd1f5C66FdAF0fabaBcF74741B68ac36
Arg [3] : _bridge (address): 0x4200000000000000000000000000000000000010
Arg [4] : _delegationRegistry (address): 0xF5cA906f05cafa944c27c6881bed3DFd3a785b6A
Arg [5] : _initialDelegate (address): 0xB0552b6860CE5C0202976Db056b5e3Cc4f9CC765
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814
Arg [1] : 000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62
Arg [2] : 000000000000000000000000402f878bdd1f5c66fdaf0fababcf74741b68ac36
Arg [3] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [4] : 000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a
Arg [5] : 000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765
Deployed Bytecode Sourcemap
1625:5609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6863:368;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;6863:368:0;;;;;;;;2159:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5357:216;;;;;;:::i;:::-;;:::i;:::-;;6491:185;;;:::i;4862:111::-;;;;;;:::i;:::-;;:::i;1925:25::-;;;;;-1:-1:-1;;;;;1925:25:0;;;;;;-1:-1:-1;;;;;1289:32:1;;;1271:51;;1259:2;1244:18;1925:25:0;1125:203:1;6066:120:0;;;;;;:::i;:::-;;:::i;2074:33::-;;;;;2009:31;;;;;-1:-1:-1;;;;;2009:31:0;;;5118:115;;;;;;:::i;:::-;;:::i;5697:220::-;;;;;;:::i;:::-;;:::i;6312:122::-;;;;;;:::i;:::-;;:::i;1747:36::-;;;;;1842:31;;;;;6863:368;6942:4;-1:-1:-1;;;;;;;;;;;;7175:22:0;;;;;:48;;-1:-1:-1;;;;;;;7201:22:0;;;;;;;7175:48;7168:55;6863:368;-1:-1:-1;;;;6863:368:0:o;5357:216::-;3179:10;;-1:-1:-1;;;;;3179:10:0;3165;:24;3161:43;;3198:6;;-1:-1:-1;;;3198:6:0;;;;;;;;;;;3161:43;-1:-1:-1;;;;;5438:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;::::1;;5434:49;;;5467:16;;-1:-1:-1::0;;;5467:16:0::1;;;;;;;;;;;5434:49;-1:-1:-1::0;;;;;5494:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;:27;;-1:-1:-1;;5494:27:0::1;5517:4;5494:27;::::0;;5539:26;;1271:51:1;;;5539:26:0::1;::::0;1244:18:1;5539:26:0::1;;;;;;;;5357:216:::0;:::o;6491:185::-;3065:16;;-1:-1:-1;;;;;3065:16:0;3051:10;:30;3047:49;;3090:6;;-1:-1:-1;;;3090:6:0;;;;;;;;;;;3047:49;6560:10:::1;:23:::0;;6573:10:::1;-1:-1:-1::0;;;;;;6560:23:0;;::::1;::::0;::::1;::::0;;;-1:-1:-1;6594:29:0;;;;::::1;::::0;;6639::::1;::::0;1271:51:1;;;6639:29:0::1;::::0;1259:2:1;1244:18;6639:29:0::1;;;;;;;6491:185::o:0;4862:111::-;3282:10;3272:21;;;;:9;:21;;;;;;;;3267:41;;3302:6;;-1:-1:-1;;;3302:6:0;;;;;;;;;;;3267:41;4939:26:::1;::::0;-1:-1:-1;;;4939:26:0;;-1:-1:-1;;;;;1748:32:1;;;4939:26:0::1;::::0;::::1;1730:51:1::0;1797:18;;;1790:34;;;4939:7:0::1;:12;::::0;::::1;::::0;1703:18:1;;4939:26:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4862:111:::0;;:::o;6066:120::-;3179:10;;-1:-1:-1;;;;;3179:10:0;3165;:24;3161:43;;3198:6;;-1:-1:-1;;;3198:6:0;;;;;;;;;;;3161:43;6148:30:::1;::::0;-1:-1:-1;;;6148:30:0;;-1:-1:-1;;;;;1289:32:1;;;6148:30:0::1;::::0;::::1;1271:51:1::0;6148:7:0::1;:19;::::0;::::1;::::0;1244:18:1;;6148:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6066:120:::0;:::o;5118:115::-;3282:10;3272:21;;;;:9;:21;;;;;;;;3267:41;;3302:6;;-1:-1:-1;;;3302:6:0;;;;;;;;;;;3267:41;5197:28:::1;::::0;-1:-1:-1;;;5197:28:0;;-1:-1:-1;;;;;1748:32:1;;;5197:28:0::1;::::0;::::1;1730:51:1::0;1797:18;;;1790:34;;;5197:7:0::1;:12;::::0;::::1;::::0;1703:18:1;;5197:28:0::1;1556:274:1::0;5697:220:0;3179:10;;-1:-1:-1;;;;;3179:10:0;3165;:24;3161:43;;3198:6;;-1:-1:-1;;;3198:6:0;;;;;;;;;;;3161:43;-1:-1:-1;;;;;5782:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;::::1;;5777:46;;5811:12;;-1:-1:-1::0;;;5811:12:0::1;;;;;;;;;;;5777:46;-1:-1:-1::0;;;;;5834:20:0;::::1;5857:5;5834:20:::0;;;:9:::1;:20;::::0;;;;;;;;:28;;-1:-1:-1;;5834:28:0::1;::::0;;5880:29;;1271:51:1;;;5880:29:0::1;::::0;1244:18:1;5880:29:0::1;1125:203:1::0;6312:122:0;3179:10;;-1:-1:-1;;;;;3179:10:0;3165;:24;3161:43;;3198:6;;-1:-1:-1;;;3198:6:0;;;;;;;;;;;3161:43;6396:16:::1;:30:::0;;-1:-1:-1;;;;;;6396:30:0::1;-1:-1:-1::0;;;;;6396:30:0;;;::::1;::::0;;;::::1;::::0;;6312:122::o;14:286:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:173::-;565:20;;-1:-1:-1;;;;;614:31:1;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:186::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;866:254::-;934:6;942;995:2;983:9;974:7;970:23;966:32;963:52;;;1011:1;1008;1001:12;963:52;1034:29;1053:9;1034:29;:::i;:::-;1024:39;1110:2;1095:18;;;;1082:32;;-1:-1:-1;;;866:254:1:o
Swarm Source
ipfs://cf20b6573fcc09f651f4222fa89474d2dc225860f43b66ee1f92809e8a2648f3
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.