UNPKG

@deserialize/auction-sdk

Version:

An SDK for Auction on SVMs

1,688 lines 60 kB
export type Auction = { "version": "0.1.0"; "name": "auction"; "instructions": [ { "name": "initialize"; "accounts": [ { "name": "applicationState"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "feeAccount"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "initializeAccount"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "userdata"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "updateApplicationState"; "accounts": [ { "name": "applicationState"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; } ]; "args": [ { "name": "feeAccount"; "type": "publicKey"; } ]; }, { "name": "createAuctionManager"; "accounts": [ { "name": "applicationState"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": []; }, { "name": "createListing"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "owner"; "isMut": true; "isSigner": true; }, { "name": "userdata"; "isMut": true; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "nftEscrow"; "isMut": true; "isSigner": false; }, { "name": "proceedsWallet"; "isMut": true; "isSigner": false; }, { "name": "nftOwner"; "isMut": true; "isSigner": false; }, { "name": "feeAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; }, { "name": "rent"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "timeExtension"; "type": "u64"; }, { "name": "startingPrice"; "type": "u128"; }, { "name": "startTime"; "type": "u64"; }, { "name": "endTime"; "type": { "option": "u64"; }; }, { "name": "minimumBidThreshold"; "type": "u128"; } ]; }, { "name": "bidOnListing"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "bidReceipt"; "isMut": true; "isSigner": false; }, { "name": "userdata"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "bidderAccount"; "isMut": true; "isSigner": false; }, { "name": "bidderNftAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenEscrow"; "isMut": true; "isSigner": false; }, { "name": "nftEscrow"; "isMut": true; "isSigner": false; }, { "name": "proceedsWallet"; "isMut": true; "isSigner": false; }, { "name": "feeAccount"; "isMut": true; "isSigner": false; }, { "name": "feeTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nftTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "amount"; "type": "u128"; }, { "name": "submittedAt"; "type": "u64"; } ]; }, { "name": "cancelListing"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "userdata"; "isMut": false; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nftEscrow"; "isMut": true; "isSigner": false; }, { "name": "originalNftHolder"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "feeAccount"; "isMut": true; "isSigner": false; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "cancelledAt"; "type": "u64"; } ]; }, { "name": "increaseBid"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "bidReceipt"; "isMut": true; "isSigner": false; }, { "name": "userdata"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "bidderAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenEscrow"; "isMut": true; "isSigner": false; }, { "name": "feeAccount"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "newAmount"; "type": "u128"; }, { "name": "updatedAt"; "type": "u64"; } ]; }, { "name": "cancelBid"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "userdata"; "isMut": false; "isSigner": false; }, { "name": "bidReceipt"; "isMut": true; "isSigner": false; }, { "name": "cancellerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenEscrow"; "isMut": true; "isSigner": false; }, { "name": "feeAccount"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "bidReceipts"; "type": { "vec": { "defined": "ReceiptInfo"; }; }; }, { "name": "submittedAt"; "type": "u64"; } ]; }, { "name": "refundBid"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "userdata"; "isMut": false; "isSigner": false; }, { "name": "userRefundAccount"; "isMut": true; "isSigner": false; }, { "name": "refundBidReceipt"; "isMut": true; "isSigner": false; }, { "name": "tokenEscrow"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "refundedAt"; "type": "u64"; } ]; }, { "name": "executeSale"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "userdata"; "isMut": false; "isSigner": false; }, { "name": "winnerNftAccount"; "isMut": true; "isSigner": false; }, { "name": "bidReceipt"; "isMut": true; "isSigner": false; }, { "name": "tokenEscrow"; "isMut": true; "isSigner": false; }, { "name": "nftEscrow"; "isMut": true; "isSigner": false; }, { "name": "proceedsWallet"; "isMut": true; "isSigner": false; }, { "name": "feeTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nftTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "submittedAt"; "type": "u64"; } ]; }, { "name": "createBidRequest"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "userdata"; "isMut": true; "isSigner": false; }, { "name": "bidRequest"; "isMut": true; "isSigner": false; }, { "name": "nftOwner"; "isMut": false; "isSigner": false; }, { "name": "feeAccount"; "isMut": false; "isSigner": false; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "userTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "amount"; "type": "u128"; }, { "name": "createdAt"; "type": "u64"; } ]; }, { "name": "acceptBidRequest"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "bidRequest"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "sellerNftTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "buyerNftTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "sellerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "feeTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nftTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "acceptedAt"; "type": "u64"; } ]; }, { "name": "rejectBidRequest"; "accounts": [ { "name": "bidRequest"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "requesterTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "rejectedAt"; "type": "u64"; } ]; }, { "name": "cancelBidRequest"; "accounts": [ { "name": "bidRequest"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "cancellerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "cancelledAt"; "type": "u64"; } ]; }, { "name": "increaseBidRequest"; "accounts": [ { "name": "bidRequest"; "isMut": false; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "ownerTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "newAmount"; "type": "u128"; }, { "name": "submittedAt"; "type": "u64"; } ]; }, { "name": "makeBidRequestPublic"; "accounts": [ { "name": "applicationState"; "isMut": false; "isSigner": false; }, { "name": "creatorUserdata"; "isMut": true; "isSigner": false; }, { "name": "bidderUserdata"; "isMut": true; "isSigner": false; }, { "name": "user"; "isMut": true; "isSigner": true; }, { "name": "bidder"; "isMut": false; "isSigner": false; }, { "name": "listing"; "isMut": true; "isSigner": false; }, { "name": "auctionManager"; "isMut": true; "isSigner": false; }, { "name": "bidReceipt"; "isMut": true; "isSigner": false; }, { "name": "bidRequest"; "isMut": false; "isSigner": false; }, { "name": "bidRequestTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "escrowTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "escrowNftAccount"; "isMut": true; "isSigner": false; }, { "name": "creatorNftAccount"; "isMut": true; "isSigner": false; }, { "name": "creatorTokenAccount"; "isMut": true; "isSigner": false; }, { "name": "feeAccount"; "isMut": false; "isSigner": false; }, { "name": "nft"; "isMut": false; "isSigner": false; }, { "name": "tokenMint"; "isMut": false; "isSigner": false; }, { "name": "nftTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "tokenProgram"; "isMut": false; "isSigner": false; }, { "name": "associatedTokenProgram"; "isMut": false; "isSigner": false; }, { "name": "systemProgram"; "isMut": false; "isSigner": false; } ]; "args": [ { "name": "createdAt"; "type": "u64"; }, { "name": "endTime"; "type": { "option": "u64"; }; }, { "name": "timeExtension"; "type": "u64"; } ]; } ]; "accounts": [ { "name": "applicationState"; "docs": [ "* The different states we need to keep track of are the \n * \n * 1. General Application State\n * 2. Auction Manager State\n * 3. Listing State\n * 4. BidReceipt State\n *" ]; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "listingAuthority"; "type": "publicKey"; }, { "name": "feeAccount"; "type": "publicKey"; } ]; }; }, { "name": "auctionManager"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "nft"; "type": "publicKey"; }, { "name": "listingAuthority"; "type": "publicKey"; }, { "name": "updateAuthority"; "type": "publicKey"; } ]; }; }, { "name": "userData"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "listings"; "type": { "vec": "publicKey"; }; }, { "name": "bids"; "type": { "vec": "publicKey"; }; }, { "name": "bidRequests"; "type": { "vec": "publicKey"; }; } ]; }; }, { "name": "listing"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "auctionManager"; "type": "publicKey"; }, { "name": "nft"; "type": "publicKey"; }, { "name": "tokenMint"; "type": "publicKey"; }, { "name": "startingPrice"; "type": "u128"; }, { "name": "startTime"; "type": "u64"; }, { "name": "endTime"; "type": { "option": "u64"; }; }, { "name": "highestBidReceipt"; "type": { "option": "publicKey"; }; }, { "name": "bidReceipts"; "type": { "vec": "publicKey"; }; }, { "name": "highestBidAmount"; "type": { "option": "u128"; }; }, { "name": "nftEscrow"; "type": "publicKey"; }, { "name": "auctionProceedsWallet"; "type": "publicKey"; }, { "name": "authority"; "type": "publicKey"; }, { "name": "rewardPercentage"; "type": "u8"; }, { "name": "timeExtension"; "type": "u64"; }, { "name": "state"; "type": { "defined": "ListingState"; }; }, { "name": "cancelledAt"; "type": { "option": "u64"; }; } ]; }; }, { "name": "bidReceipt"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "listing"; "type": "publicKey"; }, { "name": "bidder"; "type": "publicKey"; }, { "name": "amount"; "type": "u128"; }, { "name": "createdAt"; "type": "u64"; }, { "name": "updatedAt"; "type": { "option": "u64"; }; }, { "name": "state"; "type": { "defined": "BidReceiptState"; }; }, { "name": "cancelledAt"; "type": { "option": "u64"; }; }, { "name": "refundedAt"; "type": { "option": "u64"; }; } ]; }; }, { "name": "bidRequest"; "type": { "kind": "struct"; "fields": [ { "name": "key"; "type": "publicKey"; }, { "name": "nft"; "type": "publicKey"; }, { "name": "authority"; "type": "publicKey"; }, { "name": "amount"; "type": "u128"; }, { "name": "createdAt"; "type": "u64"; }, { "name": "updatedAt"; "type": { "option": "u64"; }; }, { "name": "status"; "type": { "defined": "BidRequestStatus"; }; }, { "name": "owner"; "type": "publicKey"; } ]; }; } ]; "types": [ { "name": "ReceiptInfo"; "type": { "kind": "struct"; "fields": [ { "name": "amount"; "type": "u128"; }, { "name": "key"; "type": "publicKey"; } ]; }; }, { "name": "ListingState"; "type": { "kind": "enum"; "variants": [ { "name": "Active"; }, { "name": "Sold"; }, { "name": "Cancelled"; } ]; }; }, { "name": "BidReceiptState"; "type": { "kind": "enum"; "variants": [ { "name": "Executed"; }, { "name": "Cancelled"; }, { "name": "Active"; }, { "name": "Refunded"; } ]; }; }, { "name": "BidRequestStatus"; "type": { "kind": "enum"; "variants": [ { "name": "Accepted"; }, { "name": "Rejected"; }, { "name": "Pending"; }, { "name": "Cancelled"; }, { "name": "Public"; } ]; }; } ]; "events": [ { "name": "AuctionManagerCreated"; "fields": [ { "name": "auctionManager"; "type": "publicKey"; "index": false; }, { "name": "nft"; "type": "publicKey"; "index": false; } ]; }, { "name": "AuctionListingCreated"; "fields": [ { "name": "auctionManager"; "type": "publicKey"; "index": false; }, { "name": "nft"; "type": "publicKey"; "index": false; }, { "name": "listing"; "type": "publicKey"; "index": false; }, { "name": "tokenMint"; "type": "publicKey"; "index": false; }, { "name": "endTime"; "type": { "option": "u64"; }; "index": false; } ]; }, { "name": "BidOnListingCreated"; "fields": [ { "name": "listing"; "type": "publicKey"; "index": false; }, { "name": "bidder"; "type": "publicKey"; "index": false; }, { "name": "amount"; "type": "u128"; "index": false; }, { "name": "receipt"; "type": "publicKey"; "index": false; }, { "name": "createdAt"; "type": "u64"; "index": false; } ]; }, { "name": "ListingSold"; "fields": [ { "name": "listing"; "type": "publicKey"; "index": false; }, { "name": "buyer"; "type": "publicKey"; "index": false; }, { "name": "amount"; "type": "u128"; "index": false; }, { "name": "createdAt"; "type": "u64"; "index": false; } ]; }, { "name": "ListingCancelled"; "fields": [ { "name": "by"; "type": "publicKey"; "index": false; }, { "name": "nft"; "type": "publicKey"; "index": false; }, { "name": "listing"; "type": "publicKey"; "index": false; }, { "name": "cancelledAt"; "type": "u64"; "index": false; } ]; }, { "name": "BidCancelled"; "fields": [ { "name": "bidReceipt"; "type": "publicKey"; "index": false; }, { "name": "receiver"; "type": "publicKey"; "index": false; }, { "name": "amount"; "type": "u128"; "index": false; }, { "name": "refundedAt"; "type": "u64"; "index": false; } ]; }, { "name": "BidIncreased"; "fields": [ { "name": "bidReceipt"; "type": "publicKey"; "index": false; }, { "name":