Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 1,746 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Rewards | 18408933 | 866 days ago | IN | 0 ETH | 0.00102385 | ||||
| Claim Rewards | 18407551 | 866 days ago | IN | 0 ETH | 0.00092714 | ||||
| Claim Rewards | 18209413 | 894 days ago | IN | 0 ETH | 0.00048833 | ||||
| Claim Rewards | 18176477 | 898 days ago | IN | 0 ETH | 0.00061184 | ||||
| Claim Rewards | 18080296 | 912 days ago | IN | 0 ETH | 0.00122441 | ||||
| Claim Rewards | 17981162 | 926 days ago | IN | 0 ETH | 0.00091472 | ||||
| Claim Rewards | 17807983 | 950 days ago | IN | 0 ETH | 0.00242929 | ||||
| Claim Rewards | 17592945 | 980 days ago | IN | 0 ETH | 0.00303352 | ||||
| Claim Rewards | 17396832 | 1007 days ago | IN | 0 ETH | 0.00158281 | ||||
| Claim Rewards | 17368665 | 1011 days ago | IN | 0 ETH | 0.00155939 | ||||
| Claim Rewards | 17326368 | 1017 days ago | IN | 0 ETH | 0.00271391 | ||||
| Claim Rewards | 17324574 | 1018 days ago | IN | 0 ETH | 0.00293646 | ||||
| Claim Rewards | 17241104 | 1029 days ago | IN | 0 ETH | 0.00425687 | ||||
| Claim Rewards | 17149891 | 1042 days ago | IN | 0 ETH | 0.00235916 | ||||
| Claim Rewards | 17145831 | 1043 days ago | IN | 0 ETH | 0.00293623 | ||||
| Claim Rewards | 17020421 | 1061 days ago | IN | 0 ETH | 0.00190045 | ||||
| Claim Rewards | 16936001 | 1073 days ago | IN | 0 ETH | 0.00173318 | ||||
| Claim Rewards | 16880928 | 1080 days ago | IN | 0 ETH | 0.00166178 | ||||
| Claim Rewards | 16872643 | 1081 days ago | IN | 0 ETH | 0.0009354 | ||||
| Claim Rewards | 16730284 | 1102 days ago | IN | 0 ETH | 0.00117828 | ||||
| Claim Rewards | 16633404 | 1115 days ago | IN | 0 ETH | 0.00206573 | ||||
| Claim Rewards | 16609061 | 1119 days ago | IN | 0 ETH | 0.00107757 | ||||
| Claim Rewards | 16608588 | 1119 days ago | IN | 0 ETH | 0.00105925 | ||||
| Claim Rewards | 16585277 | 1122 days ago | IN | 0 ETH | 0.00361005 | ||||
| Claim Rewards | 16554064 | 1126 days ago | IN | 0 ETH | 0.00344494 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DinoFamEggStakingV2
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-05-20
*/
// File: @openzeppelin/contracts/utils/introspection/IERC165.sol
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @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);
}
// File: @openzeppelin/contracts/token/ERC721/IERC721.sol
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol)
pragma solidity ^0.8.0;
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/**
* @dev Returns the number of tokens in ``owner``'s account.
*/
function balanceOf(address owner) external view returns (uint256 balance);
/**
* @dev Returns the owner of the `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function ownerOf(uint256 tokenId) external view returns (address owner);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
/**
* @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
* are aware of the ERC721 protocol to prevent tokens from being forever locked.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Transfers `tokenId` token from `from` to `to`.
*
* WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Gives permission to `to` to transfer `tokenId` token to another account.
* The approval is cleared when the token is transferred.
*
* Only a single account can be approved at a time, so approving the zero address clears previous approvals.
*
* Requirements:
*
* - The caller must own the token or be an approved operator.
* - `tokenId` must exist.
*
* Emits an {Approval} event.
*/
function approve(address to, uint256 tokenId) external;
/**
* @dev Approve or remove `operator` as an operator for the caller.
* Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
*
* Requirements:
*
* - The `operator` cannot be the caller.
*
* Emits an {ApprovalForAll} event.
*/
function setApprovalForAll(address operator, bool _approved) external;
/**
* @dev Returns the account approved for `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function getApproved(uint256 tokenId) external view returns (address operator);
/**
* @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
*
* See {setApprovalForAll}
*/
function isApprovedForAll(address owner, address operator) external view returns (bool);
}
// File: @openzeppelin/contracts/utils/math/SafeMath.sol
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the subtraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
// File: @openzeppelin/contracts/utils/Address.sol
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
// File: @openzeppelin/contracts/utils/Context.sol
// 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;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @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 Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
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);
}
}
// File: contracts/eggstaking.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
/**
* @title BBD Staking Platform
* @author Decentralized Devs - Angelo
*/
interface IEgg {
function mintFromExtentionContract(address _to, uint256 _amount) external;
}
contract DinoFamEggStakingV2 is Ownable{
using SafeMath for uint256;
bool public paused = false;
IERC721 BBD;
IERC721 CD;
IEgg egg;
uint256 public BADBAYDINO_REWARD = 1 ether;
uint256 public CAVEDINO_REWARD = 2 ether;
uint256 public BOTHSTAKED_REWARD = 10 ether;
uint256 public SPECIALID_REWARD = 10 ether;
uint256 constant public specialTokenRange = 974;
mapping(address => uint256) public lastClaimTime;
mapping(uint256 => address) public bbdTokenIdOwners;
mapping(uint256 => address) public cdTokenIdOwners;
//user address => []
mapping(address => mapping(uint256 => uint256)) public bbdOwnerTokenIds;
mapping(address => mapping(uint256 => uint256)) public cdOwnerTokenIds;
mapping(address => uint256) public numberBBDStaked;
mapping(address => uint256) public numberCDStaked;
mapping(address => uint256) public numberCDSpecialStaked;
mapping(address => uint256) public _balances;
mapping(address => bool) public staff;
modifier onlyAllowedContracts {
require(staff[msg.sender] || msg.sender == owner());
_;
}
modifier updateReward(address account) {
uint256 reward = getRewards(account);
lastClaimTime[account] = block.timestamp;
_balances[account] += reward;
_;
}
constructor(address _badBabyDinosNFtAddress, address _caveDinosAddress, address _tokenAddress){
BBD = IERC721(_badBabyDinosNFtAddress);
CD = IERC721(_caveDinosAddress);
egg = IEgg(_tokenAddress);
}
function getTotalNumberStaked(address user) internal view returns (uint256){
uint256 a = numberBBDStaked[user];
uint256 b = numberCDStaked[user];
uint256 c = numberCDSpecialStaked[user];
if(a != 0 && b !=0 && c != 0){
return a + b+ b;
}else{
return 0;
}
}
function setTokenAddress(address _val) public onlyOwner{
egg = IEgg(_val);
}
function setNftAddress(bool _isBBD, address _val) public onlyOwner{
if(_isBBD){
BBD = IERC721(_val);
}else{
CD = IERC721(_val);
}
}
function setRewards(bool isBBD, uint256 _amount) public onlyOwner{
if(isBBD){
BADBAYDINO_REWARD = _amount;
}else {
CAVEDINO_REWARD = _amount;
}
}
function _mint(address user, uint256 amount) internal {
egg.mintFromExtentionContract(user,amount);
}
function claimRewards() updateReward(msg.sender) external {
uint256 reward = _balances[msg.sender];
_balances[msg.sender] = 0;
_mint(msg.sender, reward);
}
function stakeBBD(uint256[] calldata tokenIds) updateReward(msg.sender) external {
unchecked {
uint256 len = tokenIds.length;
uint256 badbabydinoCount = numberBBDStaked[msg.sender];
for (uint256 i = 0; i < len; i++) {
uint256 tokenId = tokenIds[i];
bbdTokenIdOwners[tokenId] = msg.sender;
bbdOwnerTokenIds[msg.sender][badbabydinoCount] = tokenId;
badbabydinoCount++;
BBD.transferFrom(msg.sender,address(this),tokenId);
}
numberBBDStaked[msg.sender] = badbabydinoCount;
}
}
function stakeCaveDino(uint256[] calldata tokenIds ) updateReward(msg.sender) external {
unchecked {
uint256 len = tokenIds.length;
uint256 caveDinoCount = numberCDStaked[msg.sender];
uint256 caveDinoSpecialCount = numberCDSpecialStaked[msg.sender];
for (uint256 i = 0; i < len; i++) {
uint256 tokenId = tokenIds[i];
cdTokenIdOwners[tokenId] = msg.sender;
cdOwnerTokenIds[msg.sender][(caveDinoSpecialCount+caveDinoCount)] = tokenId;
//check if special id or not
if(tokenId >= 0 && tokenId <= specialTokenRange){
caveDinoSpecialCount++;
}else{
caveDinoCount++;
}
CD.transferFrom(msg.sender,address(this),tokenId);
}
//update counters
if(caveDinoCount > 0) { numberCDStaked[msg.sender] = caveDinoCount;}
if(caveDinoSpecialCount > 0) {numberCDSpecialStaked[msg.sender] = caveDinoSpecialCount;}
}
}
function unstakeBBD(uint256[] calldata tokenIds) updateReward(msg.sender) external {
uint256 len = tokenIds.length;
uint256 badbabydinoCount = numberBBDStaked[msg.sender];
for (uint256 i = 0; i < len; i++) {
uint256 tokenId = tokenIds[i];
delete bbdTokenIdOwners[tokenId];
removeFromUserStakedTokens(true,msg.sender, tokenId);
unchecked {
badbabydinoCount--;
}
BBD.transferFrom(
address(this),
msg.sender,
tokenId
);
}
numberBBDStaked[msg.sender] = badbabydinoCount;
}
function unstakeCaveDino(uint256[] calldata tokenIds) updateReward(msg.sender) external {
uint256 len = tokenIds.length;
uint256 caveDinoCount = numberCDStaked[msg.sender];
uint256 caveDinoSpecialCount = numberCDSpecialStaked[msg.sender];
for (uint256 i = 0; i < len; i++) {
uint256 tokenId = tokenIds[i];
delete cdTokenIdOwners[tokenId];
removeFromUserStakedTokens(false,msg.sender, tokenId);
CD.transferFrom(
address(this),
msg.sender,
tokenId
);
if( tokenId <= specialTokenRange){
unchecked {
caveDinoSpecialCount--;
}
}else{
unchecked {
caveDinoCount--;
}
}
}
if(caveDinoCount > 0) { numberCDStaked[msg.sender] = caveDinoCount;}
if(caveDinoSpecialCount > 0) {numberCDSpecialStaked[msg.sender] = caveDinoSpecialCount;}
}
function removeFromUserStakedTokens(bool isBBD, address user, uint256 tokenId) internal {
if(isBBD){
uint256 bbdCount = numberBBDStaked[user];
for (uint256 j = 0; j < bbdCount; ++j) {
if (bbdOwnerTokenIds[user][j] == tokenId) {
uint256 lastIndex = bbdCount - 1;
bbdOwnerTokenIds[user][j] = bbdOwnerTokenIds[user][
lastIndex
];
delete bbdOwnerTokenIds[user][lastIndex];
break;
}
}
}else{
uint256 count = numberCDSpecialStaked[user] + numberCDStaked[user];
for (uint256 j = 0; j < count; ++j) {
if (cdOwnerTokenIds[user][j] == tokenId) {
uint256 lastIndex = count - 1;
cdOwnerTokenIds[user][j] = cdOwnerTokenIds[user][
lastIndex
];
delete cdOwnerTokenIds[user][lastIndex];
break;
}
}
}
}
function getUserstakedIdsBBD(address _user) public view returns (uint256[] memory){
uint256 len =numberBBDStaked[_user];
uint256[] memory temp = new uint[](len);
for (uint256 i = 0; i < len; ++i) {
temp[i] = bbdOwnerTokenIds[_user][i];
}
return temp;
}
function getUserstakedIdsCD(address _user) public view returns (uint256[] memory){
uint256 len = numberCDStaked[_user] + numberCDSpecialStaked[_user];
uint256[] memory temp = new uint[](len);
for (uint256 i = 0; i < len; ++i) {
temp[i] = cdOwnerTokenIds[_user][i];
}
return temp;
}
function setSpecialIdReward(uint256 _val) public onlyOwner{
SPECIALID_REWARD = _val;
}
function setBothStakedReward(uint256 _val) public onlyOwner{
BOTHSTAKED_REWARD = _val;
}
function getRewardValue(address user)
public
view
returns (
uint256
)
{
uint256 babyBabyDinoCount = numberBBDStaked[user];
uint256 specialIdCount = numberCDSpecialStaked[user];
uint256 caveDinoCount = numberCDStaked[user] + specialIdCount;
//logic
if (babyBabyDinoCount >= caveDinoCount) {
uint256 bal = babyBabyDinoCount - caveDinoCount;
if ((bal) == 0) {
return calculateCombincationRewards(0, 0, babyBabyDinoCount, specialIdCount);
} else {
return calculateCombincationRewards(bal, 0, caveDinoCount, specialIdCount);
}
} else {
uint256 bal = caveDinoCount - babyBabyDinoCount;
if ((bal) == 0) {
return calculateCombincationRewards(0, 0, caveDinoCount, specialIdCount);
}
else if(bal == caveDinoCount){
return calculateCombincationRewards(0, caveDinoCount, 0, specialIdCount);
}
else {
return calculateCombincationRewards(0, bal, babyBabyDinoCount, specialIdCount);
}
}
}
function getRewards(address account) internal view returns(uint256) {
uint256 _cReward = getRewardValue(account);
uint256 _lastClaimed = lastClaimTime[account];
return _cReward.mul(block.timestamp.sub(_lastClaimed)).div(86400);
}
function viewPendingRewards(address account) public view returns(uint256){
uint256 creward = getRewards(account);
return creward + _balances[account];
}
function calculateCombincationRewards(uint256 badbabycount, uint256 cavedinocount, uint256 pairs, uint256 specials) internal view returns (uint256){
unchecked{
if(specials > 0 ){
if(specials >= cavedinocount){
if(pairs == 0){
return (badbabycount * BADBAYDINO_REWARD) + (pairs * BOTHSTAKED_REWARD) + (cavedinocount * SPECIALID_REWARD);
}else{
return (badbabycount * BADBAYDINO_REWARD) + (pairs * BOTHSTAKED_REWARD) + (specials * SPECIALID_REWARD);
}
}else{
uint a = cavedinocount - specials;
return (badbabycount * BADBAYDINO_REWARD) + (a * CAVEDINO_REWARD) + (pairs * BOTHSTAKED_REWARD) + (specials * SPECIALID_REWARD);
}
}else{
return (badbabycount * BADBAYDINO_REWARD) + (cavedinocount * CAVEDINO_REWARD) + (pairs * BOTHSTAKED_REWARD);
}
}
}
function overideTranser(address _user, uint256 _id, bool isBBDContract) public onlyOwner{
if(isBBDContract){
BBD.transferFrom(
address(this),
_user,
_id
);
}else{
CD.transferFrom(
address(this),
_user,
_id
);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_badBabyDinosNFtAddress","type":"address"},{"internalType":"address","name":"_caveDinosAddress","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"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":[],"name":"BADBAYDINO_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOTHSTAKED_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CAVEDINO_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SPECIALID_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"bbdOwnerTokenIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bbdTokenIdOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"cdOwnerTokenIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cdTokenIdOwners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRewardValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserstakedIdsBBD","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserstakedIdsCD","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numberBBDStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numberCDSpecialStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numberCDStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"bool","name":"isBBDContract","type":"bool"}],"name":"overideTranser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setBothStakedReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isBBD","type":"bool"},{"internalType":"address","name":"_val","type":"address"}],"name":"setNftAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isBBD","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSpecialIdReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"specialTokenRange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"staff","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stakeBBD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stakeCaveDino","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstakeBBD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstakeCaveDino","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"viewPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040526000805460ff60a01b19169055670de0b6b3a7640000600455671bc16d674ec80000600555678ac7230489e8000060068190556007553480156200004757600080fd5b506040516200186a3803806200186a8339810160408190526200006a9162000125565b6200007533620000b8565b600180546001600160a01b039485166001600160a01b0319918216179091556002805493851693821693909317909255600380549190931691161790556200016f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200012057600080fd5b919050565b6000806000606084860312156200013b57600080fd5b620001468462000108565b9250620001566020850162000108565b9150620001666040850162000108565b90509250925092565b6116eb806200017f6000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c8063715018a61161011a578063b77cf9c6116100ad578063e28c3e4f1161007c578063e28c3e4f146104dd578063e5c7f3cc146104fd578063ed769c8514610506578063f16fedfb14610519578063f2fde38b1461052c57600080fd5b8063b77cf9c61461048e578063c891d47a146104ae578063cd77ceda146104c1578063e004746d146104ca57600080fd5b8063a8b7ef0d116100e9578063a8b7ef0d14610434578063ace1537e1461043d578063aed065b714610468578063b23c93191461047b57600080fd5b8063715018a6146103df57806374d9f14e146103e75780638da5cb5b146104105780638f53df341461042157600080fd5b8063329eb76c1161019d5780634f83158a1161016c5780634f83158a146103665780635706b5a6146103995780635c975abb146103a25780636afd5ccf146103b65780636ebcf607146103bf57600080fd5b8063329eb76c14610318578063372500ab1461032b57806339e1a5bc146103335780634c887c621461035357600080fd5b806326a4e8d2116101d957806326a4e8d21461029e57806329a0cd58146102b15780632b5d83e2146102c45780633299fcc71461030557600080fd5b806312d435401461020b57806315ccc8ed146102495780631cfad7461461026957806325f690251461027e575b600080fd5b610236610219366004611408565b600b60209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6102366102573660046113ed565b600f6020526000908152604090205481565b61027c6102773660046114e3565b61053f565b005b61029161028c3660046113ed565b6105ba565b604051610240919061156f565b61027c6102ac3660046113ed565b610681565b61027c6102bf366004611516565b6106cd565b6102ed6102d2366004611532565b6009602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610240565b6102366103133660046113ed565b610709565b61027c61032636600461146e565b610742565b61027c6108ce565b6102366103413660046113ed565b600e6020526000908152604090205481565b61027c610361366004611532565b61093d565b6103896103743660046113ed565b60116020526000908152604090205460ff1681565b6040519015158152602001610240565b61023660075481565b60005461038990600160a01b900460ff1681565b61023660055481565b6102366103cd3660046113ed565b60106020526000908152604090205481565b61027c61096c565b6102ed6103f5366004611532565b600a602052600090815260409020546001600160a01b031681565b6000546001600160a01b03166102ed565b61027c61042f36600461146e565b6109a2565b61023660065481565b61023661044b366004611408565b600c60209081526000928352604080842090915290825290205481565b6102916104763660046113ed565b610aeb565b61027c61048936600461146e565b610bc3565b61023661049c3660046113ed565b60086020526000908152604090205481565b61027c6104bc366004611432565b610d1c565b61023660045481565b6102366104d83660046113ed565b610de2565b6102366104eb3660046113ed565b600d6020526000908152604090205481565b6102366103ce81565b61027c610514366004611532565b610ea2565b61027c61052736600461146e565b610ed1565b61027c61053a3660046113ed565b611003565b6000546001600160a01b031633146105725760405162461bcd60e51b8152600401610569906115b3565b60405180910390fd5b811561059957600180546001600160a01b0383166001600160a01b03199091161790555050565b600280546001600160a01b0383166001600160a01b03199091161790555050565b6001600160a01b0381166000908152600d60205260408120546060918167ffffffffffffffff8111156105ef576105ef61169f565b604051908082528060200260200182016040528015610618578160200160208202803683370190505b50905060005b82811015610679576001600160a01b0385166000908152600b60209081526040808320848452909152902054825183908390811061065e5761065e611689565b602090810291909101015261067281611658565b905061061e565b509392505050565b6000546001600160a01b031633146106ab5760405162461bcd60e51b8152600401610569906115b3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106f75760405162461bcd60e51b8152600401610569906115b3565b81156107035760045550565b60055550565b6000806107158361109e565b6001600160a01b03841660009081526010602052604090205490915061073b90826115e8565b9392505050565b33600061074e8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906107889084906115e8565b9091555050336000908152600e6020908152604080832054600f90925282205485925b838110156108925760008888838181106107c7576107c7611689565b602090810292909201356000818152600a9093526040832080546001600160a01b031916905592506107fc91905033836110ef565b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906108309030903390869060040161154b565b600060405180830381600087803b15801561084a57600080fd5b505af115801561085e573d6000803e3d6000fd5b505050506103ce8111610877576000199092019161087f565b600019909301925b508061088a81611658565b9150506107ab565b5081156108ac57336000908152600e602052604090208290555b80156108c557336000908152600f602052604090208190555b50505050505050565b3360006108da8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906109149084906115e8565b90915550503360008181526010602052604081208054919055906109389082611260565b505050565b6000546001600160a01b031633146109675760405162461bcd60e51b8152600401610569906115b3565b600755565b6000546001600160a01b031633146109965760405162461bcd60e51b8152600401610569906115b3565b6109a060006112ca565b565b3360006109ae8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906109e89084906115e8565b9091555050336000908152600d602052604081205484915b82811015610ad3576000878783818110610a1c57610a1c611689565b6020908102929092013560008181526009909352604090922080546001600160a01b0319169055509050610a52600133836110ef565b6001546040516323b872dd60e01b8152600019909401936001600160a01b03909116906323b872dd90610a8d9030903390869060040161154b565b600060405180830381600087803b158015610aa757600080fd5b505af1158015610abb573d6000803e3d6000fd5b50505050508080610acb90611658565b915050610a00565b50336000908152600d60205260409020555050505050565b6001600160a01b0381166000908152600f6020908152604080832054600e90925282205460609291610b1c916115e8565b905060008167ffffffffffffffff811115610b3957610b3961169f565b604051908082528060200260200182016040528015610b62578160200160208202803683370190505b50905060005b82811015610679576001600160a01b0385166000908152600c602090815260408083208484529091529020548251839083908110610ba857610ba8611689565b6020908102919091010152610bbc81611658565b9050610b68565b336000610bcf8261109e565b6001600160a01b03831660009081526008602090815260408083204290556010909152812080549293508392909190610c099084906115e8565b9091555050336000908152600e6020908152604080832054600f90925282205485925b83811015610892576000888883818110610c4857610c48611689565b602090810292909201356000818152600a8452604080822080546001600160a01b031916339081179091558252600c8552808220888a018352909452929092208290555090506103ce8111610ca257600190920191610ca9565b6001909301925b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610cdd9033903090869060040161154b565b600060405180830381600087803b158015610cf757600080fd5b505af1158015610d0b573d6000803e3d6000fd5b505060019093019250610c2c915050565b6000546001600160a01b03163314610d465760405162461bcd60e51b8152600401610569906115b3565b8015610dae576001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610d809030908790879060040161154b565b600060405180830381600087803b158015610d9a57600080fd5b505af11580156108c5573d6000803e3d6000fd5b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610d809030908790879060040161154b565b6001600160a01b0381166000908152600d6020908152604080832054600f835281842054600e909352908320549091908390610e1f9083906115e8565b9050808310610e5f576000610e348285611641565b905080610e5257610e48600080868661131a565b9695505050505050565b610e48816000848661131a565b6000610e6b8483611641565b905080610e7f57610e48600080848661131a565b81811415610e9557610e4860008360008661131a565b610e48600082868661131a565b6000546001600160a01b03163314610ecc5760405162461bcd60e51b8152600401610569906115b3565b600655565b336000610edd8261109e565b6001600160a01b03831660009081526008602090815260408083204290556010909152812080549293508392909190610f179084906115e8565b9091555050336000908152600d602052604081205484915b82811015610ad3576000878783818110610f4b57610f4b611689565b60209081029290920135600081815260098452604080822080546001600160a01b03191633908117909155808352600b8652818320898452909552908190208290556001805491516323b872dd60e01b81529701969194506001600160a01b0316926323b872dd9250610fc4913090869060040161154b565b600060405180830381600087803b158015610fde57600080fd5b505af1158015610ff2573d6000803e3d6000fd5b505060019093019250610f2f915050565b6000546001600160a01b0316331461102d5760405162461bcd60e51b8152600401610569906115b3565b6001600160a01b0381166110925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610569565b61109b816112ca565b50565b6000806110aa83610de2565b6001600160a01b0384166000908152600860205260409020549091506110e7620151806110e16110da428561139d565b85906113a9565b906113b5565b949350505050565b82156111a2576001600160a01b0382166000908152600d6020526040812054905b8181101561119b576001600160a01b0384166000908152600b6020908152604080832084845290915290205483141561118b576000611150600184611641565b6001600160a01b0386166000908152600b6020908152604080832084845290915280822080548684529183209190915591815290555061119b565b61119481611658565b9050611110565b5050505050565b6001600160a01b0382166000908152600e6020908152604080832054600f9092528220546111d091906115e8565b905060005b8181101561119b576001600160a01b0384166000908152600c60209081526040808320848452909152902054831415611250576000611215600184611641565b6001600160a01b0386166000908152600c6020908152604080832084845290915280822080548684529183209190915591815290555061119b565b61125981611658565b90506111d5565b600354604051631d42e9bf60e21b81526001600160a01b038481166004830152602482018490529091169063750ba6fc90604401600060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081156113825783821061135e578261134657600754840260065484026004548702010190506110e7565b600754820260065484026004548702010190506110e7565b506007546006546005546004548702848703919091020190840201908202016110e7565b60065483026005548502600454870201019050949350505050565b600061073b8284611641565b600061073b8284611622565b600061073b8284611600565b80356001600160a01b03811681146113d857600080fd5b919050565b803580151581146113d857600080fd5b6000602082840312156113ff57600080fd5b61073b826113c1565b6000806040838503121561141b57600080fd5b611424836113c1565b946020939093013593505050565b60008060006060848603121561144757600080fd5b611450846113c1565b925060208401359150611465604085016113dd565b90509250925092565b6000806020838503121561148157600080fd5b823567ffffffffffffffff8082111561149957600080fd5b818501915085601f8301126114ad57600080fd5b8135818111156114bc57600080fd5b8660208260051b85010111156114d157600080fd5b60209290920196919550909350505050565b600080604083850312156114f657600080fd5b6114ff836113dd565b915061150d602084016113c1565b90509250929050565b6000806040838503121561152957600080fd5b611424836113dd565b60006020828403121561154457600080fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b818110156115a75783518352928401929184019160010161158b565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156115fb576115fb611673565b500190565b60008261161d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561163c5761163c611673565b500290565b60008282101561165357611653611673565b500390565b600060001982141561166c5761166c611673565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212208e1a4980a8caad8baf4e6416c54aba4952a88c223d1861fc219c97bd7a3d381264736f6c63430008070033000000000000000000000000df93e81f3231afaea101861ea3f6ca109fb075aa000000000000000000000000f7bda46b4e3c4b9f84514254f45d1d2cc5aade8a000000000000000000000000a88e9c3d1651b8ecca931bdc2268582c3a0221ca
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102065760003560e01c8063715018a61161011a578063b77cf9c6116100ad578063e28c3e4f1161007c578063e28c3e4f146104dd578063e5c7f3cc146104fd578063ed769c8514610506578063f16fedfb14610519578063f2fde38b1461052c57600080fd5b8063b77cf9c61461048e578063c891d47a146104ae578063cd77ceda146104c1578063e004746d146104ca57600080fd5b8063a8b7ef0d116100e9578063a8b7ef0d14610434578063ace1537e1461043d578063aed065b714610468578063b23c93191461047b57600080fd5b8063715018a6146103df57806374d9f14e146103e75780638da5cb5b146104105780638f53df341461042157600080fd5b8063329eb76c1161019d5780634f83158a1161016c5780634f83158a146103665780635706b5a6146103995780635c975abb146103a25780636afd5ccf146103b65780636ebcf607146103bf57600080fd5b8063329eb76c14610318578063372500ab1461032b57806339e1a5bc146103335780634c887c621461035357600080fd5b806326a4e8d2116101d957806326a4e8d21461029e57806329a0cd58146102b15780632b5d83e2146102c45780633299fcc71461030557600080fd5b806312d435401461020b57806315ccc8ed146102495780631cfad7461461026957806325f690251461027e575b600080fd5b610236610219366004611408565b600b60209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b6102366102573660046113ed565b600f6020526000908152604090205481565b61027c6102773660046114e3565b61053f565b005b61029161028c3660046113ed565b6105ba565b604051610240919061156f565b61027c6102ac3660046113ed565b610681565b61027c6102bf366004611516565b6106cd565b6102ed6102d2366004611532565b6009602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610240565b6102366103133660046113ed565b610709565b61027c61032636600461146e565b610742565b61027c6108ce565b6102366103413660046113ed565b600e6020526000908152604090205481565b61027c610361366004611532565b61093d565b6103896103743660046113ed565b60116020526000908152604090205460ff1681565b6040519015158152602001610240565b61023660075481565b60005461038990600160a01b900460ff1681565b61023660055481565b6102366103cd3660046113ed565b60106020526000908152604090205481565b61027c61096c565b6102ed6103f5366004611532565b600a602052600090815260409020546001600160a01b031681565b6000546001600160a01b03166102ed565b61027c61042f36600461146e565b6109a2565b61023660065481565b61023661044b366004611408565b600c60209081526000928352604080842090915290825290205481565b6102916104763660046113ed565b610aeb565b61027c61048936600461146e565b610bc3565b61023661049c3660046113ed565b60086020526000908152604090205481565b61027c6104bc366004611432565b610d1c565b61023660045481565b6102366104d83660046113ed565b610de2565b6102366104eb3660046113ed565b600d6020526000908152604090205481565b6102366103ce81565b61027c610514366004611532565b610ea2565b61027c61052736600461146e565b610ed1565b61027c61053a3660046113ed565b611003565b6000546001600160a01b031633146105725760405162461bcd60e51b8152600401610569906115b3565b60405180910390fd5b811561059957600180546001600160a01b0383166001600160a01b03199091161790555050565b600280546001600160a01b0383166001600160a01b03199091161790555050565b6001600160a01b0381166000908152600d60205260408120546060918167ffffffffffffffff8111156105ef576105ef61169f565b604051908082528060200260200182016040528015610618578160200160208202803683370190505b50905060005b82811015610679576001600160a01b0385166000908152600b60209081526040808320848452909152902054825183908390811061065e5761065e611689565b602090810291909101015261067281611658565b905061061e565b509392505050565b6000546001600160a01b031633146106ab5760405162461bcd60e51b8152600401610569906115b3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106f75760405162461bcd60e51b8152600401610569906115b3565b81156107035760045550565b60055550565b6000806107158361109e565b6001600160a01b03841660009081526010602052604090205490915061073b90826115e8565b9392505050565b33600061074e8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906107889084906115e8565b9091555050336000908152600e6020908152604080832054600f90925282205485925b838110156108925760008888838181106107c7576107c7611689565b602090810292909201356000818152600a9093526040832080546001600160a01b031916905592506107fc91905033836110ef565b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906108309030903390869060040161154b565b600060405180830381600087803b15801561084a57600080fd5b505af115801561085e573d6000803e3d6000fd5b505050506103ce8111610877576000199092019161087f565b600019909301925b508061088a81611658565b9150506107ab565b5081156108ac57336000908152600e602052604090208290555b80156108c557336000908152600f602052604090208190555b50505050505050565b3360006108da8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906109149084906115e8565b90915550503360008181526010602052604081208054919055906109389082611260565b505050565b6000546001600160a01b031633146109675760405162461bcd60e51b8152600401610569906115b3565b600755565b6000546001600160a01b031633146109965760405162461bcd60e51b8152600401610569906115b3565b6109a060006112ca565b565b3360006109ae8261109e565b6001600160a01b038316600090815260086020908152604080832042905560109091528120805492935083929091906109e89084906115e8565b9091555050336000908152600d602052604081205484915b82811015610ad3576000878783818110610a1c57610a1c611689565b6020908102929092013560008181526009909352604090922080546001600160a01b0319169055509050610a52600133836110ef565b6001546040516323b872dd60e01b8152600019909401936001600160a01b03909116906323b872dd90610a8d9030903390869060040161154b565b600060405180830381600087803b158015610aa757600080fd5b505af1158015610abb573d6000803e3d6000fd5b50505050508080610acb90611658565b915050610a00565b50336000908152600d60205260409020555050505050565b6001600160a01b0381166000908152600f6020908152604080832054600e90925282205460609291610b1c916115e8565b905060008167ffffffffffffffff811115610b3957610b3961169f565b604051908082528060200260200182016040528015610b62578160200160208202803683370190505b50905060005b82811015610679576001600160a01b0385166000908152600c602090815260408083208484529091529020548251839083908110610ba857610ba8611689565b6020908102919091010152610bbc81611658565b9050610b68565b336000610bcf8261109e565b6001600160a01b03831660009081526008602090815260408083204290556010909152812080549293508392909190610c099084906115e8565b9091555050336000908152600e6020908152604080832054600f90925282205485925b83811015610892576000888883818110610c4857610c48611689565b602090810292909201356000818152600a8452604080822080546001600160a01b031916339081179091558252600c8552808220888a018352909452929092208290555090506103ce8111610ca257600190920191610ca9565b6001909301925b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610cdd9033903090869060040161154b565b600060405180830381600087803b158015610cf757600080fd5b505af1158015610d0b573d6000803e3d6000fd5b505060019093019250610c2c915050565b6000546001600160a01b03163314610d465760405162461bcd60e51b8152600401610569906115b3565b8015610dae576001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610d809030908790879060040161154b565b600060405180830381600087803b158015610d9a57600080fd5b505af11580156108c5573d6000803e3d6000fd5b6002546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610d809030908790879060040161154b565b6001600160a01b0381166000908152600d6020908152604080832054600f835281842054600e909352908320549091908390610e1f9083906115e8565b9050808310610e5f576000610e348285611641565b905080610e5257610e48600080868661131a565b9695505050505050565b610e48816000848661131a565b6000610e6b8483611641565b905080610e7f57610e48600080848661131a565b81811415610e9557610e4860008360008661131a565b610e48600082868661131a565b6000546001600160a01b03163314610ecc5760405162461bcd60e51b8152600401610569906115b3565b600655565b336000610edd8261109e565b6001600160a01b03831660009081526008602090815260408083204290556010909152812080549293508392909190610f179084906115e8565b9091555050336000908152600d602052604081205484915b82811015610ad3576000878783818110610f4b57610f4b611689565b60209081029290920135600081815260098452604080822080546001600160a01b03191633908117909155808352600b8652818320898452909552908190208290556001805491516323b872dd60e01b81529701969194506001600160a01b0316926323b872dd9250610fc4913090869060040161154b565b600060405180830381600087803b158015610fde57600080fd5b505af1158015610ff2573d6000803e3d6000fd5b505060019093019250610f2f915050565b6000546001600160a01b0316331461102d5760405162461bcd60e51b8152600401610569906115b3565b6001600160a01b0381166110925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610569565b61109b816112ca565b50565b6000806110aa83610de2565b6001600160a01b0384166000908152600860205260409020549091506110e7620151806110e16110da428561139d565b85906113a9565b906113b5565b949350505050565b82156111a2576001600160a01b0382166000908152600d6020526040812054905b8181101561119b576001600160a01b0384166000908152600b6020908152604080832084845290915290205483141561118b576000611150600184611641565b6001600160a01b0386166000908152600b6020908152604080832084845290915280822080548684529183209190915591815290555061119b565b61119481611658565b9050611110565b5050505050565b6001600160a01b0382166000908152600e6020908152604080832054600f9092528220546111d091906115e8565b905060005b8181101561119b576001600160a01b0384166000908152600c60209081526040808320848452909152902054831415611250576000611215600184611641565b6001600160a01b0386166000908152600c6020908152604080832084845290915280822080548684529183209190915591815290555061119b565b61125981611658565b90506111d5565b600354604051631d42e9bf60e21b81526001600160a01b038481166004830152602482018490529091169063750ba6fc90604401600060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081156113825783821061135e578261134657600754840260065484026004548702010190506110e7565b600754820260065484026004548702010190506110e7565b506007546006546005546004548702848703919091020190840201908202016110e7565b60065483026005548502600454870201019050949350505050565b600061073b8284611641565b600061073b8284611622565b600061073b8284611600565b80356001600160a01b03811681146113d857600080fd5b919050565b803580151581146113d857600080fd5b6000602082840312156113ff57600080fd5b61073b826113c1565b6000806040838503121561141b57600080fd5b611424836113c1565b946020939093013593505050565b60008060006060848603121561144757600080fd5b611450846113c1565b925060208401359150611465604085016113dd565b90509250925092565b6000806020838503121561148157600080fd5b823567ffffffffffffffff8082111561149957600080fd5b818501915085601f8301126114ad57600080fd5b8135818111156114bc57600080fd5b8660208260051b85010111156114d157600080fd5b60209290920196919550909350505050565b600080604083850312156114f657600080fd5b6114ff836113dd565b915061150d602084016113c1565b90509250929050565b6000806040838503121561152957600080fd5b611424836113dd565b60006020828403121561154457600080fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b818110156115a75783518352928401929184019160010161158b565b50909695505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156115fb576115fb611673565b500190565b60008261161d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561163c5761163c611673565b500290565b60008282101561165357611653611673565b500390565b600060001982141561166c5761166c611673565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212208e1a4980a8caad8baf4e6416c54aba4952a88c223d1861fc219c97bd7a3d381264736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000df93e81f3231afaea101861ea3f6ca109fb075aa000000000000000000000000f7bda46b4e3c4b9f84514254f45d1d2cc5aade8a000000000000000000000000a88e9c3d1651b8ecca931bdc2268582c3a0221ca
-----Decoded View---------------
Arg [0] : _badBabyDinosNFtAddress (address): 0xDf93E81F3231AfAEA101861ea3F6Ca109fB075Aa
Arg [1] : _caveDinosAddress (address): 0xf7BDA46B4E3c4b9f84514254f45D1D2Cc5aaDe8a
Arg [2] : _tokenAddress (address): 0xa88e9c3d1651B8ECCA931BDc2268582C3a0221cA
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000df93e81f3231afaea101861ea3f6ca109fb075aa
Arg [1] : 000000000000000000000000f7bda46b4e3c4b9f84514254f45d1d2cc5aade8a
Arg [2] : 000000000000000000000000a88e9c3d1651b8ecca931bdc2268582c3a0221ca
Deployed Bytecode Sourcemap
25058:12230:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25673:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5061:25:1;;;5049:2;5034:18;25673:71:0;;;;;;;;25943:56;;;;;;:::i;:::-;;;;;;;;;;;;;;27158:194;;;;;;:::i;:::-;;:::i;:::-;;32999:316;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;27051:90::-;;;;;;:::i;:::-;;:::i;27368:210::-;;;;;;:::i;:::-;;:::i;25532:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;25532:51:0;;;;;;-1:-1:-1;;;;;2615:32:1;;;2597:51;;2585:2;2570:18;25532:51:0;2451:203:1;35578:183:0;;;;;;:::i;:::-;;:::i;30552:1248::-;;;;;;:::i;:::-;;:::i;27710:187::-;;;:::i;25887:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;33687:100;;;;;;:::i;:::-;;:::i;26059:37::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4120:14:1;;4113:22;4095:41;;4083:2;4068:18;26059:37:0;3955:187:1;25366:42:0;;;;;;25138:26;;;;;-1:-1:-1;;;25138:26:0;;;;;;25269:40;;;;;;26008:44;;;;;;:::i;:::-;;;;;;;;;;;;;;23944:103;;;:::i;25590:50::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;25590:50:0;;;23293:87;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;23293:87;;29715:827;;;;;;:::i;:::-;;:::i;25316:43::-;;;;;;25751:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;33323:345;;;;;;:::i;:::-;;:::i;28578:1127::-;;;;;;:::i;:::-;;:::i;25477:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;36912:373;;;;;;:::i;:::-;;:::i;25220:42::-;;;;;;33905:1383;;;;;;:::i;:::-;;:::i;25830:50::-;;;;;;:::i;:::-;;;;;;;;;;;;;;25415:47;;25459:3;25415:47;;33795:102;;;;;;:::i;:::-;;:::i;27909:658::-;;;;;;:::i;:::-;;:::i;24202:201::-;;;;;;:::i;:::-;;:::i;27158:194::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;;;;;;;;;27237:6:::1;27234:111;;;27258:3;:19:::0;;-1:-1:-1;;;;;27258:19:0;::::1;-1:-1:-1::0;;;;;;27258:19:0;;::::1;;::::0;;27158:194;;:::o;27234:111::-:1;27316:2;:18:::0;;-1:-1:-1;;;;;27316:18:0;::::1;-1:-1:-1::0;;;;;;27316:18:0;;::::1;;::::0;;27158:194;;:::o;32999:316::-;-1:-1:-1;;;;;33105:22:0;;33092:11;33105:22;;;:15;:22;;;;;;33064:16;;33105:22;33162:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33162:15:0;;33138:39;;33193:9;33188:98;33212:3;33208:1;:7;33188:98;;;-1:-1:-1;;;;;33248:23:0;;;;;;:16;:23;;;;;;;;:26;;;;;;;;;33238:7;;:4;;33272:1;;33238:7;;;;;;:::i;:::-;;;;;;;;;;:36;33217:3;;;:::i;:::-;;;33188:98;;;-1:-1:-1;33303:4:0;32999:316;-1:-1:-1;;;32999:316:0:o;27051:90::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;27117:3:::1;:16:::0;;-1:-1:-1;;;;;;27117:16:0::1;-1:-1:-1::0;;;;;27117:16:0;;;::::1;::::0;;;::::1;::::0;;27051:90::o;27368:210::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;27447:5:::1;27444:127;;;27472:17;:27:::0;-1:-1:-1;27158:194:0:o;27444:127::-:1;27531:15;:25:::0;-1:-1:-1;27368:210:0:o;35578:183::-;35643:7;35666:15;35684:19;35695:7;35684:10;:19::i;:::-;-1:-1:-1;;;;;35735:18:0;;;;;;:9;:18;;;;;;35666:37;;-1:-1:-1;35725:28:0;;35666:37;35725:28;:::i;:::-;35718:35;35578:183;-1:-1:-1;;;35578:183:0:o;30552:1248::-;30619:10;26289:14;26306:19;26317:7;26306:10;:19::i;:::-;-1:-1:-1;;;;;26336:22:0;;;;;;:13;:22;;;;;;;;26361:15;26336:40;;26387:9;:18;;;;;:28;;26289:36;;-1:-1:-1;26289:36:0;;26387:18;;26336:22;26387:28;;26289:36;;26387:28;:::i;:::-;;;;-1:-1:-1;;30738:10:0::1;30655:11;30723:26:::0;;;:14:::1;:26;::::0;;;;;;;;30795:21:::1;:33:::0;;;;;;30669:8;;30845:764:::1;30869:3;30865:1;:7;30845:764;;;30897:15;30915:8;;30924:1;30915:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;30970:24;::::0;;;:15:::1;:24:::0;;;;;;30963:31;;-1:-1:-1;;;;;;30963:31:0::1;::::0;;30915:11;-1:-1:-1;31017:53:0::1;::::0;30970:24;-1:-1:-1;31050:10:0::1;30915:11:::0;31017:26:::1;:53::i;:::-;31093:2;::::0;:165:::1;::::0;-1:-1:-1;;;31093:165:0;;-1:-1:-1;;;;;31093:2:0;;::::1;::::0;:15:::1;::::0;:165:::1;::::0;31147:4:::1;::::0;31183:10:::1;::::0;31224:7;;31093:165:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25459:3;31285:7;:28;31281:311;;-1:-1:-1::0;;31381:22:0;;;;31281:311:::1;;;-1:-1:-1::0;;31526:15:0;;;;31281:311:::1;-1:-1:-1::0;30874:3:0;::::1;::::0;::::1;:::i;:::-;;;;30845:764;;;-1:-1:-1::0;31626:17:0;;31623:68:::1;;31662:10;31647:26;::::0;;;:14:::1;:26;::::0;;;;:42;;;31623:68:::1;31708:24:::0;;31705:88:::1;;31757:10;31735:33;::::0;;;:21:::1;:33;::::0;;;;:56;;;31705:88:::1;30640:1160;;;26278:157:::0;30552:1248;;;:::o;27710:187::-;27747:10;26289:14;26306:19;26317:7;26306:10;:19::i;:::-;-1:-1:-1;;;;;26336:22:0;;;;;;:13;:22;;;;;;;;26361:15;26336:40;;26387:9;:18;;;;;:28;;26289:36;;-1:-1:-1;26289:36:0;;26387:18;;26336:22;26387:28;;26289:36;;26387:28;:::i;:::-;;;;-1:-1:-1;;27806:10:0::1;27779:14;27796:21:::0;;;:9:::1;:21;::::0;;;;;;27828:25;;;27796:21;27864:25:::1;::::0;27796:21;27864:5:::1;:25::i;:::-;27768:129;26278:157:::0;27710:187;:::o;33687:100::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;33756:16:::1;:23:::0;33687:100::o;23944:103::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;24009:30:::1;24036:1;24009:18;:30::i;:::-;23944:103::o:0;29715:827::-;29777:10;26289:14;26306:19;26317:7;26306:10;:19::i;:::-;-1:-1:-1;;;;;26336:22:0;;;;;;:13;:22;;;;;;;;26361:15;26336:40;;26387:9;:18;;;;;:28;;26289:36;;-1:-1:-1;26289:36:0;;26387:18;;26336:22;26387:28;;26289:36;;26387:28;:::i;:::-;;;;-1:-1:-1;;29900:10:0::1;29813:11;29884:27:::0;;;:15:::1;:27;::::0;;;;;29827:8;;29941:531:::1;29965:3;29961:1;:7;29941:531;;;29993:15;30011:8;;30020:1;30011:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;30047:25;::::0;;;:16:::1;:25:::0;;;;;;;30040:32;;-1:-1:-1;;;;;;30040:32:0::1;::::0;;-1:-1:-1;30011:11:0;-1:-1:-1;30095:52:0::1;30040:32:::0;30127:10:::1;30011:11:::0;30095:26:::1;:52::i;:::-;30207:18;30271:3:::0;:182:::1;::::0;-1:-1:-1;;;30271:182:0;;-1:-1:-1;;30207:18:0;;;;-1:-1:-1;;;;;30271:3:0;;::::1;::::0;:16:::1;::::0;:182:::1;::::0;30330:4:::1;::::0;30370:10:::1;::::0;30415:7;;30271:182:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29975:497;29970:3;;;;;:::i;:::-;;;;29941:531;;;-1:-1:-1::0;30503:10:0::1;30487:27;::::0;;;:15:::1;:27;::::0;;;;:46;-1:-1:-1;;;;;29715:827:0:o;33323:345::-;-1:-1:-1;;;;;33453:28:0;;33415:11;33453:28;;;:21;:28;;;;;;;;;33429:14;:21;;;;;;33387:16;;33415:11;33429:52;;;:::i;:::-;33415:66;;33492:21;33527:3;33516:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33516:15:0;;33492:39;;33547:9;33542:97;33566:3;33562:1;:7;33542:97;;;-1:-1:-1;;;;;33602:22:0;;;;;;:15;:22;;;;;;;;:25;;;;;;;;;33592:7;;:4;;33625:1;;33592:7;;;;;;:::i;:::-;;;;;;;;;;:35;33571:3;;;:::i;:::-;;;33542:97;;28578:1127;28644:10;26289:14;26306:19;26317:7;26306:10;:19::i;:::-;-1:-1:-1;;;;;26336:22:0;;;;;;:13;:22;;;;;;;;26361:15;26336:40;;26387:9;:18;;;;;:28;;26289:36;;-1:-1:-1;26289:36:0;;26387:18;;26336:22;26387:28;;26289:36;;26387:28;:::i;:::-;;;;-1:-1:-1;;28784:10:0::1;28701:11;28769:26:::0;;;:14:::1;:26;::::0;;;;;;;;28841:21:::1;:33:::0;;;;;;28715:8;;28889:584:::1;28913:3;28909:1;:7;28889:584;;;28942:15;28960:8;;28969:1;28960:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;28990:24;::::0;;;:15:::1;:24:::0;;;;;;:37;;-1:-1:-1;;;;;;28990:37:0::1;29017:10;28990:37:::0;;::::1;::::0;;;29046:27;;:15:::1;:27:::0;;;;;29075:34;;::::1;29046:65:::0;;;;;;;;;:75;;;-1:-1:-1;28960:11:0;-1:-1:-1;25459:3:0::1;29215:7;:28;29195:195;;29272:22;::::0;;::::1;::::0;29195:195:::1;;;29351:15;::::0;;::::1;::::0;29195:195:::1;29408:2;::::0;:49:::1;::::0;-1:-1:-1;;;29408:49:0;;-1:-1:-1;;;;;29408:2:0;;::::1;::::0;:15:::1;::::0;:49:::1;::::0;29424:10:::1;::::0;29443:4:::1;::::0;29449:7;;29408:49:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;28918:3:0::1;::::0;;::::1;::::0;-1:-1:-1;28889:584:0::1;::::0;-1:-1:-1;;28889:584:0::1;36912:373:::0;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;37015:13:::1;37012:266;;;37045:3;::::0;:93:::1;::::0;-1:-1:-1;;;37045:93:0;;-1:-1:-1;;;;;37045:3:0;;::::1;::::0;:16:::1;::::0;:93:::1;::::0;37084:4:::1;::::0;37104:5;;37124:3;;37045:93:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;37012:266;37173:2;::::0;:92:::1;::::0;-1:-1:-1;;;37173:92:0;;-1:-1:-1;;;;;37173:2:0;;::::1;::::0;:15:::1;::::0;:92:::1;::::0;37211:4:::1;::::0;37231:5;;37251:3;;37173:92:::1;;;:::i;33905:1383::-:0;-1:-1:-1;;;;;34077:21:0;;34005:7;34077:21;;;:15;:21;;;;;;;;;34134;:27;;;;;;34196:14;:20;;;;;;;34077:21;;34134:27;34005:7;;34196:37;;34134:27;;34196:37;:::i;:::-;34172:61;;34301:13;34280:17;:34;34276:1004;;34335:11;34349:33;34369:13;34349:17;:33;:::i;:::-;34335:47;-1:-1:-1;34405:10:0;34401:281;;34468:69;34497:1;34500;34503:17;34522:14;34468:28;:69::i;:::-;34461:76;33905:1383;-1:-1:-1;;;;;;33905:1383:0:o;34401:281::-;34595:67;34624:3;34629:1;34632:13;34647:14;34595:28;:67::i;34276:1004::-;34740:11;34754:33;34770:17;34754:13;:33;:::i;:::-;34740:47;-1:-1:-1;34810:10:0;34806:459;;34852:65;34881:1;34884;34887:13;34902:14;34852:28;:65::i;34806:459::-;34971:13;34964:3;:20;34961:304;;;35034:65;35063:1;35066:13;35081:1;35084:14;35034:28;:65::i;34961:304::-;35174:71;35203:1;35206:3;35211:17;35230:14;35174:28;:71::i;33795:102::-;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;33865:17:::1;:24:::0;33795:102::o;27909:658::-;27969:10;26289:14;26306:19;26317:7;26306:10;:19::i;:::-;-1:-1:-1;;;;;26336:22:0;;;;;;:13;:22;;;;;;;;26361:15;26336:40;;26387:9;:18;;;;;:28;;26289:36;;-1:-1:-1;26289:36:0;;26387:18;;26336:22;26387:28;;26289:36;;26387:28;:::i;:::-;;;;-1:-1:-1;;28113:10:0::1;28026:11;28097:27:::0;;;:15:::1;:27;::::0;;;;;28040:8;;28153:336:::1;28177:3;28173:1;:7;28153:336;;;28206:15;28224:8;;28233:1;28224:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;28254:25;::::0;;;:16:::1;:25:::0;;;;;;:38;;-1:-1:-1;;;;;;28254:38:0::1;28282:10;28254:38:::0;;::::1;::::0;;;28311:28;;;:16:::1;:28:::0;;;;;:46;;;;;;;;;;:56;;;28254:38;28423:3;;:50;;-1:-1:-1;;;28423:50:0;;28386:18;::::1;::::0;28224:11;;-1:-1:-1;;;;;;28423:3:0::1;::::0;:16:::1;::::0;-1:-1:-1;28423:50:0::1;::::0;28459:4:::1;::::0;28224:11;;28423:50:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;28182:3:0::1;::::0;;::::1;::::0;-1:-1:-1;28153:336:0::1;::::0;-1:-1:-1;;28153:336:0::1;24202:201:::0;23339:7;23366:6;-1:-1:-1;;;;;23366:6:0;22097:10;23513:23;23505:68;;;;-1:-1:-1;;;23505:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24291:22:0;::::1;24283:73;;;::::0;-1:-1:-1;;;24283:73:0;;4349:2:1;24283:73:0::1;::::0;::::1;4331:21:1::0;4388:2;4368:18;;;4361:30;4427:34;4407:18;;;4400:62;-1:-1:-1;;;4478:18:1;;;4471:36;4524:19;;24283:73:0::1;4147:402:1::0;24283:73:0::1;24367:28;24386:8;24367:18;:28::i;:::-;24202:201:::0;:::o;35297:273::-;35356:7;35380:16;35399:23;35414:7;35399:14;:23::i;:::-;-1:-1:-1;;;;;35460:22:0;;35437:20;35460:22;;;:13;:22;;;;;;35380:42;;-1:-1:-1;35504:58:0;35556:5;35504:47;35517:33;:15;35460:22;35517:19;:33::i;:::-;35504:8;;:12;:47::i;:::-;:51;;:58::i;:::-;35497:65;35297:273;-1:-1:-1;;;;35297:273:0:o;31809:1163::-;31915:5;31912:1043;;;-1:-1:-1;;;;;31959:21:0;;31940:16;31959:21;;;:15;:21;;;;;;;31999:413;32023:8;32019:1;:12;31999:413;;;-1:-1:-1;;;;;32061:22:0;;;;;;:16;:22;;;;;;;;:25;;;;;;;;;:36;;32057:340;;;32122:17;32142:12;32153:1;32142:8;:12;:::i;:::-;-1:-1:-1;;;;;32205:22:0;;;;;;:16;:22;;;;;;;;:81;;;;;;;;;;;32177:25;;;;;;:109;;;;32316:33;;;32309:40;;-1:-1:-1;32372:5:0;;32057:340;32033:3;;;:::i;:::-;;;31999:413;;;;31921:506;27768:129:::1;26278:157:::0;27710:187;:::o;31912:1043::-;-1:-1:-1;;;;;32496:20:0;;32450:13;32496:20;;;:14;:20;;;;;;;;;32466:21;:27;;;;;;:50;;32496:20;32466:50;:::i;:::-;32450:66;;32540:9;32535:403;32559:5;32555:1;:9;32535:403;;;-1:-1:-1;;;;;32594:21:0;;;;;;:15;:21;;;;;;;;:24;;;;;;;;;:35;;32590:333;;;32654:17;32674:9;32682:1;32674:5;:9;:::i;:::-;-1:-1:-1;;;;;32733:21:0;;;;;;:15;:21;;;;;;;;:80;;;;;;;;;;;32706:24;;;;;;:107;;;;32843:32;;;32836:39;;-1:-1:-1;32898:5:0;;32590:333;32566:3;;;:::i;:::-;;;32535:403;;27586:115;27651:3;;:42;;-1:-1:-1;;;27651:42:0;;-1:-1:-1;;;;;3231:32:1;;;27651:42:0;;;3213:51:1;3280:18;;;3273:34;;;27651:3:0;;;;:29;;3186:18:1;;27651:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27586:115;;:::o;24563:191::-;24637:16;24656:6;;-1:-1:-1;;;;;24673:17:0;;;-1:-1:-1;;;;;;24673:17:0;;;;;;24706:40;;24656:6;;;;;;;24706:40;;24637:16;24706:40;24626:128;24563:191;:::o;35770:1124::-;35909:7;35964:12;;35961:903;;36015:13;36003:8;:25;36000:674;;36059:10;36056:351;;36194:16;;36178:13;:32;36156:17;;36148:5;:25;36126:17;;36111:12;:32;36110:64;:101;36103:108;;;;36056:351;36362:16;;36351:8;:27;36329:17;;36321:5;:25;36299:17;;36284:12;:32;36283:64;:96;36276:103;;;;36000:674;-1:-1:-1;36633:16:0;;36600:17;;36571:15;;36545:17;;36530:32;;36470:24;;;36567:19;;;;36529:58;36592:25;;;36529:89;36622:27;;;36529:121;36522:128;;35961:903;36822:17;;36814:5;:25;36793:15;;36777:13;:31;36755:17;;36740:12;:32;36739:70;:101;36732:108;;35770:1124;;;;;;:::o;9051:98::-;9109:7;9136:5;9140:1;9136;:5;:::i;9408:98::-;9466:7;9493:5;9497:1;9493;:5;:::i;9807:98::-;9865:7;9892:5;9896:1;9892;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:160::-;257:20;;313:13;;306:21;296:32;;286:60;;342:1;339;332:12;357:186;416:6;469:2;457:9;448:7;444:23;440:32;437:52;;;485:1;482;475:12;437:52;508:29;527:9;508:29;:::i;548:254::-;616:6;624;677:2;665:9;656:7;652:23;648:32;645:52;;;693:1;690;683:12;645:52;716:29;735:9;716:29;:::i;:::-;706:39;792:2;777:18;;;;764:32;;-1:-1:-1;;;548:254:1:o;807:322::-;881:6;889;897;950:2;938:9;929:7;925:23;921:32;918:52;;;966:1;963;956:12;918:52;989:29;1008:9;989:29;:::i;:::-;979:39;;1065:2;1054:9;1050:18;1037:32;1027:42;;1088:35;1119:2;1108:9;1104:18;1088:35;:::i;:::-;1078:45;;807:322;;;;;:::o;1134:615::-;1220:6;1228;1281:2;1269:9;1260:7;1256:23;1252:32;1249:52;;;1297:1;1294;1287:12;1249:52;1337:9;1324:23;1366:18;1407:2;1399:6;1396:14;1393:34;;;1423:1;1420;1413:12;1393:34;1461:6;1450:9;1446:22;1436:32;;1506:7;1499:4;1495:2;1491:13;1487:27;1477:55;;1528:1;1525;1518:12;1477:55;1568:2;1555:16;1594:2;1586:6;1583:14;1580:34;;;1610:1;1607;1600:12;1580:34;1663:7;1658:2;1648:6;1645:1;1641:14;1637:2;1633:23;1629:32;1626:45;1623:65;;;1684:1;1681;1674:12;1623:65;1715:2;1707:11;;;;;1737:6;;-1:-1:-1;1134:615:1;;-1:-1:-1;;;;1134:615:1:o;1754:254::-;1819:6;1827;1880:2;1868:9;1859:7;1855:23;1851:32;1848:52;;;1896:1;1893;1886:12;1848:52;1919:26;1935:9;1919:26;:::i;:::-;1909:36;;1964:38;1998:2;1987:9;1983:18;1964:38;:::i;:::-;1954:48;;1754:254;;;;;:::o;2013:248::-;2078:6;2086;2139:2;2127:9;2118:7;2114:23;2110:32;2107:52;;;2155:1;2152;2145:12;2107:52;2178:26;2194:9;2178:26;:::i;2266:180::-;2325:6;2378:2;2366:9;2357:7;2353:23;2349:32;2346:52;;;2394:1;2391;2384:12;2346:52;-1:-1:-1;2417:23:1;;2266:180;-1:-1:-1;2266:180:1:o;2659:375::-;-1:-1:-1;;;;;2917:15:1;;;2899:34;;2969:15;;;;2964:2;2949:18;;2942:43;3016:2;3001:18;;2994:34;;;;2849:2;2834:18;;2659:375::o;3318:632::-;3489:2;3541:21;;;3611:13;;3514:18;;;3633:22;;;3460:4;;3489:2;3712:15;;;;3686:2;3671:18;;;3460:4;3755:169;3769:6;3766:1;3763:13;3755:169;;;3830:13;;3818:26;;3899:15;;;;3864:12;;;;3791:1;3784:9;3755:169;;;-1:-1:-1;3941:3:1;;3318:632;-1:-1:-1;;;;;;3318:632:1:o;4554:356::-;4756:2;4738:21;;;4775:18;;;4768:30;4834:34;4829:2;4814:18;;4807:62;4901:2;4886:18;;4554:356::o;5097:128::-;5137:3;5168:1;5164:6;5161:1;5158:13;5155:39;;;5174:18;;:::i;:::-;-1:-1:-1;5210:9:1;;5097:128::o;5230:217::-;5270:1;5296;5286:132;;5340:10;5335:3;5331:20;5328:1;5321:31;5375:4;5372:1;5365:15;5403:4;5400:1;5393:15;5286:132;-1:-1:-1;5432:9:1;;5230:217::o;5452:168::-;5492:7;5558:1;5554;5550:6;5546:14;5543:1;5540:21;5535:1;5528:9;5521:17;5517:45;5514:71;;;5565:18;;:::i;:::-;-1:-1:-1;5605:9:1;;5452:168::o;5625:125::-;5665:4;5693:1;5690;5687:8;5684:34;;;5698:18;;:::i;:::-;-1:-1:-1;5735:9:1;;5625:125::o;5755:135::-;5794:3;-1:-1:-1;;5815:17:1;;5812:43;;;5835:18;;:::i;:::-;-1:-1:-1;5882:1:1;5871:13;;5755:135::o;5895:127::-;5956:10;5951:3;5947:20;5944:1;5937:31;5987:4;5984:1;5977:15;6011:4;6008:1;6001:15;6027:127;6088:10;6083:3;6079:20;6076:1;6069:31;6119:4;6116:1;6109:15;6143:4;6140:1;6133:15;6159:127;6220:10;6215:3;6211:20;6208:1;6201:31;6251:4;6248:1;6241:15;6275:4;6272:1;6265:15
Swarm Source
ipfs://8e1a4980a8caad8baf4e6416c54aba4952a88c223d1861fc219c97bd7a3d3812
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.