@magiceden/magiceden-sdk
Version:
A TypeScript SDK for interacting with Magic Eden's API across multiple chains.
155 lines (154 loc) • 5.51 kB
JavaScript
;
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,
},
}),
},
};