Advanced Usage

For more complex projects, the Metaverse SDK offers additional features and customization options to help developers achieve their desired outcomes. Some advanced usage scenarios include:

First you need to Import the SDK into your project.

import {
  DgWorldMarketplace,
  MarketplaceOptions,
} from "dg-world-marketplace-sdk";

Then while initializing the DgWorldMarketplace Class you have all of the following parameters:

const opts: MarketplaceOptions = {
 previewEnv: 'prod' as any,
    network: 'MATIC' as any,
    engine,
    zoneId: YOUR_ZONE_ID,
      debug: true,
        lang: {
         noFundsTitle: "No Funds",
         noFundsDesc: "Sorry, you do not have enough ICE",
         noFundsButton: "No Funds",
         approveIceTitle: "Approve ICE",
          approveIceDesc:
          "Authorize the Store contract to operate ICE on your behalf",
           approveIceWait: "Please wait. The transaction is being processed",
           approveIceRejected:"You need to authorize the Store contract to be able to buy this item",
           buyFor: "Buy for:",
           authorize: "Authorize",
           reject: "Reject",
           transactionProccessing: "Please wait. The transaction is being processed",
           purchaseSucceed:"Purchased succeed! You will need to refresh the page to see the wearable in your backpack.", 
           purchaseFailed: "Purchased failed. Please try again.",
            wait: "Wait",
            buy: "Buy",
            openPaymentLink: "Open Payment Link",
            nftNotAvailable: "NFT not available",
       },
};
const dgMarketplace = new DgWorldMarketplace(opts);

Keep in mind that the Decentraland SDK only supports one canvas. Therefore, if you want to use your own canvas instead of the one generated by the Marketplace SDK, you need to pass that canvas as a parameter when instantiating the Marketplace SDK.

const opts: MarketplaceOptions = {
// other options
  canvas: yourCanvasInstance
  }

After instantiating the class, we can listen to the different events that we want.

// emited when the sdk is ready to connect to the blockchain
dgMarketplace.on('web3Ready', () => {
  log('web3Ready')
})

// emited after the sdk connect to the websocket
dgMarketplace.on('websocketsReady', () => {
  log('websocketsReady')
})

// emited after the sdk fetch the variables
dgMarketplace.on('variablesReady', () => {
  log('variablesReady')
  log(dgMarketplace.getVariables())
})

// emited last, when all the sdk is ready
dgMarketplace.on('ready', () => {
  log('ready')
})

// emited when any error happens, notice that err could be null or undefined, depending on the error
dgMarketplace.on('error', (err) => {
  log(err)
})

Last updated