UNPKG

@magiceden/magiceden-sdk

Version:

A TypeScript SDK for interacting with Magic Eden's API across multiple chains.

155 lines (154 loc) 5.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EvmApiMappers = void 0; const evm_1 = require("../../constants/evm"); /** * Ethereum NFT Service Mappers * Provides mapping functions from service parameters to API requests */ exports.EvmApiMappers = { v3: { /** * Maps generic list parameters to Ethereum-specific API request */ listRequest: (maker, params) => { return { maker, chain: params.chain, params: params.params.map((param) => ({ token: param.token, weiPrice: param.price, orderbook: evm_1.DEFAULT_ORDERBOOK, orderKind: evm_1.DEFAULT_ORDER_KIND, ...(param.expiry ? { expirationTime: param.expiry.toString() } : {}), })), }; }, /** * Maps generic cancel listing parameters to Ethereum-specific API request */ cancelListingRequest: (maker, params) => { return { chain: params.chain, orderIds: params.orderIds, options: { maker, orderKind: evm_1.DEFAULT_ORDER_KIND, }, }; }, /** * Maps generic make item offer parameters to Ethereum-specific API request */ makeItemOfferRequest: (maker, params) => { return { maker, chain: params.chain, params: params.params.map((param) => ({ token: param.token, weiPrice: param.price, orderbook: evm_1.DEFAULT_ORDERBOOK, orderKind: evm_1.DEFAULT_ORDER_KIND, ...(param.expiry ? { expirationTime: param.expiry.toString() } : {}), ...(param.quantity ? { quantity: param.quantity } : {}), ...(param.automatedRoyalties !== undefined ? { automatedRoyalties: param.automatedRoyalties } : {}), ...(param.royaltyBps ? { royaltyBps: param.royaltyBps } : {}), ...(param.currency ? { currency: param.currency } : {}), })), }; }, /** * Maps generic cancel item offer parameters to Ethereum-specific API request */ cancelItemOfferRequest: (maker, params) => { return { chain: params.chain, orderIds: params.orderIds, options: { maker, orderKind: evm_1.DEFAULT_ORDER_KIND, }, }; }, /** * Maps generic take item offer parameters to Ethereum-specific API request */ takeItemOfferRequest: (taker, params) => { return { taker, chain: params.chain, items: params.items.map((item) => ({ token: item.token, ...(item.quantity ? { quantity: item.quantity } : {}), ...(item.orderId ? { orderId: item.orderId } : {}), })), }; }, /** * Maps generic buy parameters to Ethereum-specific API request */ buyRequest: (taker, params) => { return { taker, chain: params.chain, items: params.items.map((item) => ({ ...(item.token ? { token: item.token } : {}), ...(item.collection ? { collection: item.collection } : {}), ...(item.quantity ? { quantity: item.quantity } : {}), ...(item.orderId ? { orderId: item.orderId } : {}), })), options: { ...(params?.currency ? { currency: params.currency } : {}), ...(params?.currencyChainId ? { currencyChainId: params.currencyChainId } : {}), }, }; }, /** * Maps generic transfer parameters to Ethereum-specific API request */ transferRequest: (from, params) => { return { from, chain: params.chain, to: params.to, items: params.items.map((item) => ({ token: item.token, ...(item.quantity ? { quantity: item.quantity } : {}), })), }; }, }, v4: { /** * Maps EVM publish launchpad parameters to V4 publish launchpad request */ publishLaunchpadRequest: (params) => ({ ...params, }), /** * Maps EVM create launchpad parameters to V4 create launchpad request */ createLaunchpadRequest: (params) => ({ // All variables have the same name ...params, }), /** * Maps EVM update launchpad parameters to V4 update launchpad request */ updateLaunchpadRequest: (params) => ({ ...params, }), /** * Maps EVM mint parameters to V4 mint request */ mintRequest: (wallet, params) => ({ ...params, wallet: { chain: params.chain, address: wallet, }, }), }, };