LogoLogo
  • Welcome Degens
  • Degen-Fusion
    • Overview
    • Mechanics
    • Bounties
    • Smart Contracts
Powered by GitBook
On this page
  • DEGENFUSION Contract
  • Project02BountyV1 Contract
Export as PDF
  1. Degen-Fusion

Smart Contracts

PreviousBounties

Last updated 1 month ago

  • : 0xA95f46a4251CbC11F9FB86021cD060C7aD13fdF6

  • : 0x80d5C4E7A3B2FD6C376b2AB058e0a3d88931962e

  • : 0xe062e38d16d949FFB0bD6b62ae2f7a3c930bE1C4

  • : BfzdNbV6pgLSs7KunQrhPBP1n8BYyF3d3op5xKzf9noK

DEGENFUSION Contract

Core Game Actions

mintTier1(uint256 amountToMint)

  • Description: Mints new Tier-1 NFTs by burning ERC-20 tokens

  • Parameters:

    • amountToMint: Number of Tier-1 NFTs to mint

  • Requirements:

    • User must have sufficient ERC-20 tokens (50 tokens per Tier-1 NFT)

    • Game must be started

  • Effects:

    • Burns ERC-20 tokens from user

    • Mints Tier-1 NFTs to user

    • Updates Tier-1 supply

startMerge(uint256 _tier, uint256 pairsToMerge)

  • Description: Initiates the merging of NFTs of the same tier to attempt upgrading to the next tier

  • Parameters:

    • _tier: The tier of NFTs to merge

    • pairsToMerge: Number of NFT pairs to merge

  • Requirements:

    • Tier must be valid (between 1 and maxTier-1)

    • User must have sufficient NFTs of the specified tier

    • For tiers 2+, tier must be unlocked based on time

    • User must have sufficient tokens for merge fees

  • Effects:

    • Burns the specified NFTs from user

    • Burns tokens for merge fees

    • Initiates a VRF request for randomness

    • Registers the merge request

dismantle(uint256 _tier, uint256 amountToDismantle)

  • Description: Dismantles NFTs of a specified tier to reclaim tokens

  • Parameters:

    • _tier: Tier of NFTs to dismantle

    • amountToDismantle: Number of NFTs to dismantle

  • Requirements:

    • Tier must be valid (between 1 and maxTier)

    • User must have sufficient NFTs of the specified tier

  • Effects:

    • Burns the specified NFTs

    • Mints tokens to the user based on the dismantle value

reclaimMerge(uint256 requestId)

  • Description: Reclaims NFTs from a pending merge that hasn't been fulfilled within the timeout period

  • Parameters:

    • requestId: ID of the merge request to reclaim

  • Requirements:

    • Merge must not be already fulfilled

    • User must be the initiator of the merge request

    • At least 15 minutes must have passed since the merge request

  • Effects:

    • Returns the original NFTs to the user

    • Removes the pending merge request

View Functions

getUnlockTime(uint256 tier)

  • Description: Returns the timestamp when a specified tier will be unlocked

  • Parameters:

    • tier: The tier to check unlock time for

  • Returns: Timestamp when the tier will be unlocked

uri(uint256 tierId)

  • Description: Returns the URI for the metadata of a specific tier

  • Parameters:

    • tierId: The tier ID to get the URI for

  • Returns: String URI pointing to the metadata JSON

Public State Variables

  • gameStartTime: Timestamp when the game started

  • gameStarted: Boolean indicating if the game has started

  • keyHash: Hash used for VRF

  • subId: Subscription ID for VRF

  • callbackGasLimit: Gas limit for VRF callbacks

  • baseURI: Base URI for NFT metadata

  • reclaimTimer: Constant for the time required before reclaiming (15 minutes)

  • tierUnlockTimer: Constant for the time between tier unlocks (24 hours)

  • tier1Cost: Constant for the cost of minting Tier-1 NFTs (50 tokens)

  • maxTier: Constant for the maximum tier (6)

  • mergeFees: Array of merge fees for each tier

  • dismantleValue: Array of token values returned when dismantling each tier

  • supply: Mapping of current supply for each tier

  • pendingMerges: Mapping of pending merge requests

  • requestTimestamps: Mapping of timestamps for merge requests

  • lastMergeRequest: Mapping of the last merge request for each user

  • mergeResults: Mapping of merge results

Project02BountyV1 Contract

User Actions

claimBounty(uint256 bountyId)

  • Description: Claims a bounty by transferring the required ERC-1155 tokens

  • Parameters:

    • bountyId: ID of the bounty to claim

  • Requirements:

    • Bounty must exist

    • Bounty must not be already claimed

    • User must have the required tokens

  • Effects:

    • Transfers the specified tokens from user to contract

    • Marks the bounty as claimed

    • Sends the reward to the user

View Functions

getBountyDetails(uint256 bountyId)

  • Description: Returns the details of a specific bounty

  • Parameters:

    • bountyId: ID of the bounty to get details for

  • Returns:

    • tokenContract: Address of the ERC-1155 token contract

    • tokenId: ID of the required token

    • quantity: Number of tokens required

    • reward: Amount of ETH as reward

    • available: Boolean indicating if the bounty is still available

getBountyCount()

  • Description: Returns the total number of bounties

  • Returns: Total number of bounties created

Public State Variables

  • admin: Address of the admin who can create and manage bounties

  • bounties: Array of all bounties

setApprovalForAll (operator: 0x80d5C4E7A3B2FD6C376b2AB058e0a3d88931962e, approved: true) must be called on

DEGENFUSION
BOUNTY
TOKEN
SOL TOKEN
DEGENFUSION contract