Overview
GLMR Balance
GLMR Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 313 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 2938985 | 1077 days ago | IN | 0 GLMR | 0.00288819 | ||||
| Initial Skills A... | 2849532 | 1090 days ago | IN | 0 GLMR | 0.02512808 | ||||
| Initial Skills A... | 2849530 | 1090 days ago | IN | 0 GLMR | 0.02970327 | ||||
| Initial Skills A... | 2849528 | 1090 days ago | IN | 0 GLMR | 0.02511824 | ||||
| Initial Skills A... | 2849526 | 1090 days ago | IN | 0 GLMR | 0.02512439 | ||||
| Initial Skills A... | 2849524 | 1090 days ago | IN | 0 GLMR | 0.02510963 | ||||
| Initial Skills A... | 2849522 | 1090 days ago | IN | 0 GLMR | 0.025133 | ||||
| Initial Skills A... | 2849520 | 1090 days ago | IN | 0 GLMR | 0.02511578 | ||||
| Initial Skills A... | 2849419 | 1090 days ago | IN | 0 GLMR | 0.22814214 | ||||
| Initial Skills A... | 2849417 | 1090 days ago | IN | 0 GLMR | 0.22801176 | ||||
| Initial Skills A... | 2849415 | 1090 days ago | IN | 0 GLMR | 0.22812861 | ||||
| Initial Skills A... | 2849413 | 1090 days ago | IN | 0 GLMR | 0.23262385 | ||||
| Initial Skills A... | 2849411 | 1090 days ago | IN | 0 GLMR | 0.24178653 | ||||
| Initial Skills A... | 2849409 | 1090 days ago | IN | 0 GLMR | 0.23267797 | ||||
| Initial Skills A... | 2849407 | 1090 days ago | IN | 0 GLMR | 0.23273578 | ||||
| Initial Skills A... | 2849405 | 1090 days ago | IN | 0 GLMR | 0.22809417 | ||||
| Initial Skills A... | 2849403 | 1090 days ago | IN | 0 GLMR | 0.22800315 | ||||
| Initial Skills A... | 2849401 | 1090 days ago | IN | 0 GLMR | 0.23267182 | ||||
| Initial Skills A... | 2849399 | 1090 days ago | IN | 0 GLMR | 0.22811262 | ||||
| Initial Skills A... | 2849397 | 1090 days ago | IN | 0 GLMR | 0.22806711 | ||||
| Initial Skills A... | 2849395 | 1090 days ago | IN | 0 GLMR | 0.22809417 | ||||
| Initial Skills A... | 2849393 | 1090 days ago | IN | 0 GLMR | 0.22808187 | ||||
| Initial Skills A... | 2849391 | 1090 days ago | IN | 0 GLMR | 0.23270626 | ||||
| Initial Skills A... | 2849389 | 1090 days ago | IN | 0 GLMR | 0.22805604 | ||||
| Initial Skills A... | 2849387 | 1090 days ago | IN | 0 GLMR | 0.22807326 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DPSPirateFeatures
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
contract DPSPirateFeatures is Ownable {
string[] private traitsNames;
string[] private skillsNames;
mapping(uint16 => string[8]) traitsPerPirate;
mapping(uint16 => uint16[3]) skillsPerPirate;
constructor() {
traitsNames = ["Uniform", "Hat", "Peg Leg", "Feathers", "Eyes", "Earring", "Beak", "Background"];
skillsNames = ["Luck", "Navigation", "Strength"];
}
/**
* @dev initialize in batches
*/
function initialSkillsAndTraitsBatch(
uint16[] calldata _dpsIds,
string[][] calldata _traits,
uint16[][] calldata _skills
) external onlyOwner {
unchecked {
uint256 len = _dpsIds.length;
for (uint256 i = 0; i < len; ) {
initialSkillsAndTraits(_dpsIds[i], _traits[i], _skills[i]);
++i;
}
}
}
function initialSkillsAndTraits(uint16 _dpsId, string[] calldata _traits, uint16[] calldata _skills) internal {
string[8] memory traits;
traits[0] = _traits[0];
traits[1] = _traits[1];
traits[2] = _traits[2];
traits[3] = _traits[3];
traits[4] = _traits[4];
traits[5] = _traits[5];
traits[6] = _traits[6];
traits[7] = _traits[7];
uint16[3] memory skills;
skills[0] = _skills[0];
skills[1] = _skills[1];
skills[2] = _skills[2];
traitsPerPirate[_dpsId] = traits;
skillsPerPirate[_dpsId] = skills;
}
function getTraitsAndSkills(uint16 _dpsId) external view returns (string[8] memory, uint16[3] memory) {
return (traitsPerPirate[_dpsId], skillsPerPirate[_dpsId]);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
// Inspired by OraclizeAPI's implementation - MIT licence
// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
*/
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0x00";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
*/
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
/**
* @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
*/
function toHexString(address addr) internal pure returns (string memory) {
return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/cryptography/MerkleProof.sol)
pragma solidity ^0.8.0;
/**
* @dev These functions deal with verification of Merkle Tree proofs.
*
* The proofs can be generated using the JavaScript library
* https://github.com/miguelmota/merkletreejs[merkletreejs].
* Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
*
* See `test/utils/cryptography/MerkleProof.test.js` for some examples.
*
* WARNING: You should avoid using leaf values that are 64 bytes long prior to
* hashing, or use a hash function other than keccak256 for hashing leaves.
* This is because the concatenation of a sorted pair of internal nodes in
* the merkle tree could be reinterpreted as a leaf value.
*/
library MerkleProof {
/**
* @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
* defined by `root`. For this, a `proof` must be provided, containing
* sibling hashes on the branch from the leaf to the root of the tree. Each
* pair of leaves and each pair of pre-images are assumed to be sorted.
*/
function verify(
bytes32[] memory proof,
bytes32 root,
bytes32 leaf
) internal pure returns (bool) {
return processProof(proof, leaf) == root;
}
/**
* @dev Calldata version of {verify}
*
* _Available since v4.7._
*/
function verifyCalldata(
bytes32[] calldata proof,
bytes32 root,
bytes32 leaf
) internal pure returns (bool) {
return processProofCalldata(proof, leaf) == root;
}
/**
* @dev Returns the rebuilt hash obtained by traversing a Merkle tree up
* from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
* hash matches the root of the tree. When processing the proof, the pairs
* of leafs & pre-images are assumed to be sorted.
*
* _Available since v4.4._
*/
function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
bytes32 computedHash = leaf;
for (uint256 i = 0; i < proof.length; i++) {
computedHash = _hashPair(computedHash, proof[i]);
}
return computedHash;
}
/**
* @dev Calldata version of {processProof}
*
* _Available since v4.7._
*/
function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) {
bytes32 computedHash = leaf;
for (uint256 i = 0; i < proof.length; i++) {
computedHash = _hashPair(computedHash, proof[i]);
}
return computedHash;
}
/**
* @dev Returns true if the `leaves` can be proved to be a part of a Merkle tree defined by
* `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.
*
* _Available since v4.7._
*/
function multiProofVerify(
bytes32[] memory proof,
bool[] memory proofFlags,
bytes32 root,
bytes32[] memory leaves
) internal pure returns (bool) {
return processMultiProof(proof, proofFlags, leaves) == root;
}
/**
* @dev Calldata version of {multiProofVerify}
*
* _Available since v4.7._
*/
function multiProofVerifyCalldata(
bytes32[] calldata proof,
bool[] calldata proofFlags,
bytes32 root,
bytes32[] memory leaves
) internal pure returns (bool) {
return processMultiProofCalldata(proof, proofFlags, leaves) == root;
}
/**
* @dev Returns the root of a tree reconstructed from `leaves` and the sibling nodes in `proof`,
* consuming from one or the other at each step according to the instructions given by
* `proofFlags`.
*
* _Available since v4.7._
*/
function processMultiProof(
bytes32[] memory proof,
bool[] memory proofFlags,
bytes32[] memory leaves
) internal pure returns (bytes32 merkleRoot) {
// This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by
// consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the
// `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of
// the merkle tree.
uint256 leavesLen = leaves.length;
uint256 totalHashes = proofFlags.length;
// Check proof validity.
require(leavesLen + proof.length - 1 == totalHashes, "MerkleProof: invalid multiproof");
// The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using
// `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop".
bytes32[] memory hashes = new bytes32[](totalHashes);
uint256 leafPos = 0;
uint256 hashPos = 0;
uint256 proofPos = 0;
// At each step, we compute the next hash using two values:
// - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we
// get the next hash.
// - depending on the flag, either another value for the "main queue" (merging branches) or an element from the
// `proof` array.
for (uint256 i = 0; i < totalHashes; i++) {
bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];
bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];
hashes[i] = _hashPair(a, b);
}
if (totalHashes > 0) {
return hashes[totalHashes - 1];
} else if (leavesLen > 0) {
return leaves[0];
} else {
return proof[0];
}
}
/**
* @dev Calldata version of {processMultiProof}
*
* _Available since v4.7._
*/
function processMultiProofCalldata(
bytes32[] calldata proof,
bool[] calldata proofFlags,
bytes32[] memory leaves
) internal pure returns (bytes32 merkleRoot) {
// This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by
// consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the
// `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of
// the merkle tree.
uint256 leavesLen = leaves.length;
uint256 totalHashes = proofFlags.length;
// Check proof validity.
require(leavesLen + proof.length - 1 == totalHashes, "MerkleProof: invalid multiproof");
// The xxxPos values are "pointers" to the next value to consume in each array. All accesses are done using
// `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's "pop".
bytes32[] memory hashes = new bytes32[](totalHashes);
uint256 leafPos = 0;
uint256 hashPos = 0;
uint256 proofPos = 0;
// At each step, we compute the next hash using two values:
// - a value from the "main queue". If not all leaves have been consumed, we get the next leaf, otherwise we
// get the next hash.
// - depending on the flag, either another value for the "main queue" (merging branches) or an element from the
// `proof` array.
for (uint256 i = 0; i < totalHashes; i++) {
bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];
bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];
hashes[i] = _hashPair(a, b);
}
if (totalHashes > 0) {
return hashes[totalHashes - 1];
} else if (leavesLen > 0) {
return leaves[0];
} else {
return proof[0];
}
}
function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) {
return a < b ? _efficientHash(a, b) : _efficientHash(b, a);
}
function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
/// @solidity memory-safe-assembly
assembly {
mstore(0x00, a)
mstore(0x20, b)
value := keccak256(0x00, 0x40)
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}{
"metadata": {
"bytecodeHash": "none",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint16","name":"_dpsId","type":"uint16"}],"name":"getTraitsAndSkills","outputs":[{"internalType":"string[8]","name":"","type":"string[8]"},{"internalType":"uint16[3]","name":"","type":"uint16[3]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"_dpsIds","type":"uint16[]"},{"internalType":"string[][]","name":"_traits","type":"string[][]"},{"internalType":"uint16[][]","name":"_skills","type":"uint16[][]"}],"name":"initialSkillsAndTraitsBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506200001d33620001ee565b60405180610100016040528060405180604001604052806007815260200166556e69666f726d60c81b81525081526020016040518060400160405280600381526020016212185d60ea1b815250815260200160405180604001604052806007815260200166506567204c656760c81b815250815260200160405180604001604052806008815260200167466561746865727360c01b8152508152602001604051806040016040528060048152602001634579657360e01b81525081526020016040518060400160405280600781526020016645617272696e6760c81b8152508152602001604051806040016040528060048152602001634265616b60e01b81525081526020016040518060400160405280600a815260200169109858dad9dc9bdd5b9960b21b81525081525060019060086200015b9291906200023e565b506040518060600160405280604051806040016040528060048152602001634c75636b60e01b81525081526020016040518060400160405280600a8152602001692730bb34b3b0ba34b7b760b11b8152508152602001604051806040016040528060088152602001670a6e8e4cadccee8d60c31b8152508152506002906003620001e79291906200029b565b50620004d1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000289579160200282015b8281111562000289578251829062000278908262000405565b50916020019190600101906200025f565b5062000297929150620002e6565b5090565b82805482825590600052602060002090810192821562000289579160200282015b82811115620002895782518290620002d5908262000405565b5091602001919060010190620002bc565b8082111562000297576000620002fd828262000307565b50600101620002e6565b508054620003159062000376565b6000825580601f1062000326575050565b601f01602090049060005260206000209081019062000346919062000349565b50565b5b808211156200029757600081556001016200034a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200038b57607f821691505b602082108103620003ac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200040057600081815260208120601f850160051c81016020861015620003db5750805b601f850160051c820191505b81811015620003fc57828155600101620003e7565b5050505b505050565b81516001600160401b0381111562000421576200042162000360565b620004398162000432845462000376565b84620003b2565b602080601f831160018114620004715760008415620004585750858301515b600019600386901b1c1916600185901b178555620003fc565b600085815260208120601f198616915b82811015620004a25788860151825594840194600190910190840162000481565b5085821015620004c15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610dac80620004e16000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063340a71c81461005c578063715018a6146100865780638da5cb5b146100905780639bb7cd93146100ab578063f2fde38b146100be575b600080fd5b61006f61006a3660046109a5565b6100d1565b60405161007d9291906109fd565b60405180910390f35b61008e61021a565b005b6000546040516001600160a01b03909116815260200161007d565b61008e6100b9366004610ad6565b61022e565b61008e6100cc366004610b70565b6102cb565b6100d9610818565b6100e1610840565b61ffff8316600090815260036020908152604080832060049092528083208151610100810190925291928390600890835b828210156101b557838201805461012890610b99565b80601f016020809104026020016040519081016040528092919081815260200182805461015490610b99565b80156101a15780601f10610176576101008083540402835291602001916101a1565b820191906000526020600020905b81548152906001019060200180831161018457829003601f168201915b505050505081526020019060010190610112565b505060408051606081019182905293955084925060039150826000855b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116101d25790505050505050905091509150915091565b610222610349565b61022c60006103a3565b565b610236610349565b8460005b818110156102c1576102b988888381811061025757610257610bd3565b905060200201602081019061026c91906109a5565b87878481811061027e5761027e610bd3565b90506020028101906102909190610be9565b8787868181106102a2576102a2610bd3565b90506020028101906102b49190610be9565b6103f3565b60010161023a565b5050505050505050565b6102d3610349565b6001600160a01b03811661033d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610346816103a3565b50565b6000546001600160a01b0316331461022c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103fb610818565b8484600081811061040e5761040e610bd3565b90506020028101906104209190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250859350915061045c9050565b60200201528484600181811061047457610474610bd3565b90506020028101906104869190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600191506104c59050565b6020020152848460028181106104dd576104dd610bd3565b90506020028101906104ef9190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508492506002915061052e9050565b60200201528484600381811061054657610546610bd3565b90506020028101906105589190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600391506105979050565b6020020152848460048181106105af576105af610bd3565b90506020028101906105c19190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600491506106009050565b60200201528484600581811061061857610618610bd3565b905060200281019061062a9190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600591506106699050565b60200201528484600681811061068157610681610bd3565b90506020028101906106939190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600691506106d29050565b6020020152848460078181106106ea576106ea610bd3565b90506020028101906106fc9190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508492506007915061073b9050565b6020020152610748610840565b8383600081811061075b5761075b610bd3565b905060200201602081019061077091906109a5565b61ffff1681528383600181811061078957610789610bd3565b905060200201602081019061079e91906109a5565b61ffff166020820152838360028181106107ba576107ba610bd3565b90506020020160208101906107cf91906109a5565b61ffff90811660408084019190915290881660009081526003602052206107f89083600861085e565b5061ffff871660009081526004602052604090206102c1908260036108a7565b6040518061010001604052806008905b60608152602001906001900390816108285790505090565b60405180606001604052806003906020820280368337509192915050565b8260088101928215610897579160200282015b8281111561089757825182906108879082610cdf565b5091602001919060010190610871565b506108a3929150610939565b5090565b60018301918390821561092d5791602002820160005b838211156108fd57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026108bd565b801561092b5782816101000a81549061ffff02191690556002016020816001010492830192600103026108fd565b505b506108a3929150610956565b808211156108a357600061094d828261096b565b50600101610939565b5b808211156108a35760008155600101610957565b50805461097790610b99565b6000825580601f10610987575050565b601f0160209004906000526020600020908101906103469190610956565b6000602082840312156109b757600080fd5b813561ffff811681146109c957600080fd5b9392505050565b8060005b60038110156109f757815161ffff168452602093840193909101906001016109d4565b50505050565b608080825260009061018083019083018583805b6008811015610a7557868503607f1901845282518051808752835b81811015610a4857602081840181015189830182015201610a2c565b508681016020908101859052601f909101601f191690960186019594850194939093019250600101610a11565b50505050809150506109c960208301846109d0565b60008083601f840112610a9c57600080fd5b50813567ffffffffffffffff811115610ab457600080fd5b6020830191508360208260051b8501011115610acf57600080fd5b9250929050565b60008060008060008060608789031215610aef57600080fd5b863567ffffffffffffffff80821115610b0757600080fd5b610b138a838b01610a8a565b90985096506020890135915080821115610b2c57600080fd5b610b388a838b01610a8a565b90965094506040890135915080821115610b5157600080fd5b50610b5e89828a01610a8a565b979a9699509497509295939492505050565b600060208284031215610b8257600080fd5b81356001600160a01b03811681146109c957600080fd5b600181811c90821680610bad57607f821691505b602082108103610bcd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c0057600080fd5b83018035915067ffffffffffffffff821115610c1b57600080fd5b6020019150600581901b3603821315610acf57600080fd5b6000808335601e19843603018112610c4a57600080fd5b83018035915067ffffffffffffffff821115610c6557600080fd5b602001915036819003821315610acf57600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610cda57600081815260208120601f850160051c81016020861015610cb75750805b601f850160051c820191505b81811015610cd657828155600101610cc3565b5050505b505050565b815167ffffffffffffffff811115610cf957610cf9610c7a565b610d0d81610d078454610b99565b84610c90565b602080601f831160018114610d425760008415610d2a5750858301515b600019600386901b1c1916600185901b178555610cd6565b600085815260208120601f198616915b82811015610d7157888601518255948401946001909101908401610d52565b5085821015610d8f5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000811000a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063340a71c81461005c578063715018a6146100865780638da5cb5b146100905780639bb7cd93146100ab578063f2fde38b146100be575b600080fd5b61006f61006a3660046109a5565b6100d1565b60405161007d9291906109fd565b60405180910390f35b61008e61021a565b005b6000546040516001600160a01b03909116815260200161007d565b61008e6100b9366004610ad6565b61022e565b61008e6100cc366004610b70565b6102cb565b6100d9610818565b6100e1610840565b61ffff8316600090815260036020908152604080832060049092528083208151610100810190925291928390600890835b828210156101b557838201805461012890610b99565b80601f016020809104026020016040519081016040528092919081815260200182805461015490610b99565b80156101a15780601f10610176576101008083540402835291602001916101a1565b820191906000526020600020905b81548152906001019060200180831161018457829003601f168201915b505050505081526020019060010190610112565b505060408051606081019182905293955084925060039150826000855b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116101d25790505050505050905091509150915091565b610222610349565b61022c60006103a3565b565b610236610349565b8460005b818110156102c1576102b988888381811061025757610257610bd3565b905060200201602081019061026c91906109a5565b87878481811061027e5761027e610bd3565b90506020028101906102909190610be9565b8787868181106102a2576102a2610bd3565b90506020028101906102b49190610be9565b6103f3565b60010161023a565b5050505050505050565b6102d3610349565b6001600160a01b03811661033d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610346816103a3565b50565b6000546001600160a01b0316331461022c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103fb610818565b8484600081811061040e5761040e610bd3565b90506020028101906104209190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250859350915061045c9050565b60200201528484600181811061047457610474610bd3565b90506020028101906104869190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600191506104c59050565b6020020152848460028181106104dd576104dd610bd3565b90506020028101906104ef9190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508492506002915061052e9050565b60200201528484600381811061054657610546610bd3565b90506020028101906105589190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600391506105979050565b6020020152848460048181106105af576105af610bd3565b90506020028101906105c19190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600491506106009050565b60200201528484600581811061061857610618610bd3565b905060200281019061062a9190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600591506106699050565b60200201528484600681811061068157610681610bd3565b90506020028101906106939190610c33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250849250600691506106d29050565b6020020152848460078181106106ea576106ea610bd3565b90506020028101906106fc9190610c33565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508492506007915061073b9050565b6020020152610748610840565b8383600081811061075b5761075b610bd3565b905060200201602081019061077091906109a5565b61ffff1681528383600181811061078957610789610bd3565b905060200201602081019061079e91906109a5565b61ffff166020820152838360028181106107ba576107ba610bd3565b90506020020160208101906107cf91906109a5565b61ffff90811660408084019190915290881660009081526003602052206107f89083600861085e565b5061ffff871660009081526004602052604090206102c1908260036108a7565b6040518061010001604052806008905b60608152602001906001900390816108285790505090565b60405180606001604052806003906020820280368337509192915050565b8260088101928215610897579160200282015b8281111561089757825182906108879082610cdf565b5091602001919060010190610871565b506108a3929150610939565b5090565b60018301918390821561092d5791602002820160005b838211156108fd57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026108bd565b801561092b5782816101000a81549061ffff02191690556002016020816001010492830192600103026108fd565b505b506108a3929150610956565b808211156108a357600061094d828261096b565b50600101610939565b5b808211156108a35760008155600101610957565b50805461097790610b99565b6000825580601f10610987575050565b601f0160209004906000526020600020908101906103469190610956565b6000602082840312156109b757600080fd5b813561ffff811681146109c957600080fd5b9392505050565b8060005b60038110156109f757815161ffff168452602093840193909101906001016109d4565b50505050565b608080825260009061018083019083018583805b6008811015610a7557868503607f1901845282518051808752835b81811015610a4857602081840181015189830182015201610a2c565b508681016020908101859052601f909101601f191690960186019594850194939093019250600101610a11565b50505050809150506109c960208301846109d0565b60008083601f840112610a9c57600080fd5b50813567ffffffffffffffff811115610ab457600080fd5b6020830191508360208260051b8501011115610acf57600080fd5b9250929050565b60008060008060008060608789031215610aef57600080fd5b863567ffffffffffffffff80821115610b0757600080fd5b610b138a838b01610a8a565b90985096506020890135915080821115610b2c57600080fd5b610b388a838b01610a8a565b90965094506040890135915080821115610b5157600080fd5b50610b5e89828a01610a8a565b979a9699509497509295939492505050565b600060208284031215610b8257600080fd5b81356001600160a01b03811681146109c957600080fd5b600181811c90821680610bad57607f821691505b602082108103610bcd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c0057600080fd5b83018035915067ffffffffffffffff821115610c1b57600080fd5b6020019150600581901b3603821315610acf57600080fd5b6000808335601e19843603018112610c4a57600080fd5b83018035915067ffffffffffffffff821115610c6557600080fd5b602001915036819003821315610acf57600080fd5b634e487b7160e01b600052604160045260246000fd5b601f821115610cda57600081815260208120601f850160051c81016020861015610cb75750805b601f850160051c820191505b81811015610cd657828155600101610cc3565b5050505b505050565b815167ffffffffffffffff811115610cf957610cf9610c7a565b610d0d81610d078454610b99565b84610c90565b602080601f831160018114610d425760008415610d2a5750858301515b600019600386901b1c1916600185901b178555610cd6565b600085815260208120601f198616915b82811015610d7157888601518255948401946001909101908401610d52565b5085821015610d8f5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000811000a
Loading...
Loading
Loading...
Loading
OVERVIEW
On-chain Features.Loading...
Loading
Net Worth in USD
$7,875.12
Net Worth in GLMR
Token Allocations
RUM
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ARBNOVA | 100.00% | $0.065626 | 120,000 | $7,875.12 |
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.