@neoswap/solana-collection-swap v0.9.5
About The Project
Install NPM package
npm install @neoswap/solana-collection-swap
Types
Represents the data type in the program
type SwapData = {
maker: string, // maker public key
nftMintMaker: string, // nft mint of the maker
bids: Bid[], // array of bids to initiate with ( max 15 )
taker?: string, // taker public key
nftMintTaker?: string, // nft mint of the taker
acceptedBid?: Bid, // accepted bid
refererMaker?: string, // unused
refererTaker?: string, // unused
endTime: number, // date when the swap gets obsolete
royaltiesPaidMaker: boolean, // royalties paid for maker NFT
royaltiesPaidTaker: boolean, // royalties paid for taker NFT
claimed: boolean, // is swap claimed
status: "active" | "expired" | "accepted",
paymentMint: string, // mint of the payment token
};
type Bid = {
collection: string,
amount: number,
makerNeoswapFee: number,
takerNeoswapFee: number,
takerRoyalties: number,
makerRoyalties: number,
};
type BundleTransaction = {
tx: Transaction | VersionedTransaction, // transaction object
stx: Transaction | VersionedTransaction, // signed transaction object
details: MakeSArg | TakeSArg | ClaimSArg | UpdateSArgs | RmBidArgs | SetNewTime, // arguments passed to the package to construct the transactions
blockheight?: number, // signature blockheight
description: string, // description of the transaction
priority: number, // order of the transactions 0 means should be sent first
status: "pending" | "broadcast" | "success" | "failed" | "Timeout",
hash?: string,
failedReason?: string,
retries?: number,
};
Every function in CREATE_INSTRUCTIONS also expects these parameters
type EnvOpts = {
clusterOrUrl?: Cluster | string, // cluster or url to construct connection ( default is mainnet )
program?: Program<CollectionSwap>, // if you want to pass your own program
programId?: string, // if you want to use a different program id
idl?: Idl | true, // if you want to use your own idl, true willl fetch the onchain IDL
prioritizationFee?: number, // if a prioritization fee is to be added to the transaction
};
Example Usage
Imports
You can also find imports in a destructured way accessible in the package
import { UTILS, CREATE_INSTRUCTIONS as CI, TYPES } from "@neoswap/solana-collection-swap";
Create Swap BundleTransaction
let initData = await CI.createMakeSwapInstructions({
maker: string;
nftMintMaker: string;
paymentMint: string;
bids: Bid[];
endDate: number;
});
Add bid to Swap
let addBT = await CI.createAddBidBt({
bids: Bid[];
swapDataAccount: string;
maker: string;
});
Remove bid to Swap
let rmBT = await CI.createRmBidBt({
rmBids: Bid[];
swapDataAccount: string;
maker: string;
});
Set new time for Swap
let setNewTimeBT = await CI.createSetNewTime({
swapDataAccount: string;
newTime: number;
maker: string;
});
Take and claim Swap
let takeData = await CI.createTakeAndCloseSwapInstructions({
swapDataAccount: string;
taker: string;
signer?: string; // if you want to finalize the swap on behalf of the taker
nftMintTaker: string;
bid: Bid;
verifyTaker?: boolean; // if you want to make sure the taker is the one who is taking the swap
unwrap?:boolean // if wrappedSol is to be unwrapped
});
Cancel swap and refund maker
let cancelBT = await CI.createCancelSwapInstructions({
signer,
swapDataAccount,
});
How to process the bundle transaction
let BT : BundleTransaction[];
// BT will be updated with most recent information
BT = await UTILS.sendBundledTransactionsV2({
bundleTransactions: BT,
signer?, // should be a keypair if not provided, function expects the transaction stx to be already signed
clusterOrUrl?, // provide or RPC or connection
connection?,
commitment?,
prioritizationFee?,
retryDelay?,
skipSimulation?,
skipConfirmation?,
})
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
1 year ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
11 months ago
11 months ago
1 year ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago