Skip to content

Inconsistent Contract Data Format Between Launchpad and Terminal NFTs #189

@diogoribeirodev

Description

@diogoribeirodev

Title: Inconsistent Contract Data Format Between Launchpad and Terminal NFTs

Description:
Hi, i'm building a custom interface that aggregates mints from different marketplaces, and allows users to set alerts and get it via discord/tg, when an nft is about to drop ( public/wl stage... ), but when querying NFT contract data via getConfig(), there's a significant discrepancy between NFTs deployed through the Launchpad versus the Terminal. This inconsistency makes it difficult for me to handle the NFT data uniformly.

Example Data:

Terminal NFT Response:

{
  "maxSupply": "10000",
  "walletLimit": "10",
  "baseURI": "https://ipfs.io/ipfs/bafybeihaqcnmor5iincht4oa2dhjyod5cazyfgyb3cwi4wiawk4udykxcy/",
  "contractURI": "https://ipfs.io/ipfs/bafkreicpsdxwxfyfe3eznvhx2ynsebtc7jz2b7xgpwknauqyc7bv2q7vie",
  "publicStage": {
    "startTime": "1742482801",
    "endTime": "1742569201",
    "price": "30000000000000000000"
  },
  "allowlistStage": {
    "startTime": "1742223600",
    "endTime": "1742482800",
    "price": "1000000000000000000",
    "merkleRoot": "0x6714df5ea5b111f0419e04fedd27aa358ddaef459ff2948a5c652f82060d6a8e"
  },
  "payoutRecipient": "0xD8eb52f57Aaf4DCbfc8e4dbb5e50eb2dF5E2655e",
  "royaltyRecipient": "0xD8eb52f57Aaf4DCbfc8e4dbb5e50eb2dF5E2655e",
  "royaltyBps": "500",
  "mintFee": "81"
}

Launchpad NFT Response:

{
  "maxSupply": "2222",
  "walletLimit": "0",
  "baseURI": "https://ipfs.io/ipfs/bafybeiadssj3m2dmiwni3n5zclgsa2rdv2aqyinrffrogfy4ptp4lzjy64/",
  "contractURI": "",
  "publicStage": {
    "startTime": "416",
    "endTime": "1360247282513602014664183126981092876957508882763",
    "price": "1360247282513602014664183126981092876957508882763"
  },
  "allowlistStage": {
    "startTime": "500",
    "endTime": "81",
    "price": "47246294146399100580990828606349283224589935124650829499682736944542084526963",
    "merkleRoot": "0x6a336d32646d69776e69336e357a636c6773613272647632617179696e726666"
  },
  "payoutRecipient": "0x6a7936342f000000000000000000000000000000",
  "royaltyRecipient": "0x0000000000000000000000000000000000000000",
  "royaltyBps": "2",
  "mintFee": "300000000000000000"
}

Issues:

  1. Launchpad NFTs return extremely large numbers for price and endTime in both public and allowlist stages, making them unusable
  2. The timestamps and prices in Launchpad NFTs appear to be invalid or corrupted
  3. The payoutRecipient address in Launchpad NFTs contains padding that's not present in Terminal NFTs

Question: Does both mint terminal and launchpad use the same type of contract? From what i see in the explorer, the bytecode of deployed contracts is different between the both. Is there a way to get the accurate/correct data? If not, is my best solution to use magiceden's api directly ( https://docs.magiceden.io/reference/getcollectionsv7 )?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions