UNPKG

@triadxyz/triad-protocol

Version:

<div align="center"> <h1>Triad Protocol</h1> </div>

157 lines (156 loc) 7 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("./utils/constants"); const sendVersionedTransaction_1 = __importDefault(require("./utils/sendVersionedTransaction")); const pda_1 = require("./utils/pda"); const pda_2 = require("./utils/pda"); class Poseidon { constructor(program, rpcOptions) { this.program = program; this.rpcOptions = rpcOptions; } /** * Transfer Poseidon * @param args.poseidonAsset - Poseidon Asset * @param args.ticketAsset - Ticket Asset * @param args.ticketNumber - Ticket Number */ transferPoseidon(poseidons) { return __awaiter(this, void 0, void 0, function* () { const ixs = []; for (const poseidon of poseidons) { ixs.push(yield this.program.methods .transferPoseidon() .accounts({ signer: this.program.provider.publicKey, nft: (0, pda_1.getNftPDA)(this.program.programId, poseidon.ticketNumber), poseidonAsset: poseidon.poseidonAsset, ticketAsset: poseidon.ticketAsset, poseidonCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL), ticketCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.TICKET_COLLECTION_SYMBOL), coreTicketCollection: constants_1.TICKET_CORE_COLLECTION, corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION }) .instruction()); } return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } /** * Withdraw Poseidon * @param poseidonAsset - Poseidon Asset - CORE PublicKey * @param nft - NFT Poseidon Number */ withdrawPoseidon(poseidonAsset, nft) { return __awaiter(this, void 0, void 0, function* () { const ixs = [ yield this.program.methods .withdrawPoseidon() .accounts({ signer: this.program.provider.publicKey, nft: (0, pda_1.getPoseidonPDA)(this.program.programId, nft), poseidonAsset, poseidonCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL), corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION }) .instruction() ]; return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } /** * Collect Royalty * @param collectionSymbol - Collection Symbol */ collectRoyalty(collectionSymbol) { return __awaiter(this, void 0, void 0, function* () { const ixs = [ yield this.program.methods .collectRoyalty() .accounts({ signer: this.program.provider.publicKey, collection: (0, pda_1.getCollectionPDA)(this.program.programId, collectionSymbol) }) .instruction() ]; return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } /** * Add Trader Poseidon * @param user - User Public Key * @param poseidonAsset - Poseidon Asset */ addTraderPoseidon(user, poseidonAsset) { return __awaiter(this, void 0, void 0, function* () { const ixs = [ yield this.program.methods .addTraderPoseidon() .accounts({ poseidonAsset, userTrade: (0, pda_2.getUserTradePDA)(this.program.programId, user), corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION, poseidonCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL) }) .instruction() ]; return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } /** * Remove Trader Poseidon * @param user - User Public Key * @param poseidonAsset - Poseidon Asset */ removeTraderPoseidon(user, poseidonAsset) { return __awaiter(this, void 0, void 0, function* () { const ixs = [ yield this.program.methods .removeTraderPoseidon() .accounts({ userTrade: (0, pda_2.getUserTradePDA)(this.program.programId, user), poseidonAsset, corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION, poseidonCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL) }) .instruction() ]; return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } /** * Update Metadata * @param poseidons.uri - URI * @param poseidons.asset - Asset */ updateMetadata(poseidons) { return __awaiter(this, void 0, void 0, function* () { const ixs = []; for (const poseidon of poseidons) { ixs.push(yield this.program.methods .updateMetadata(poseidon.uri) .accounts({ signer: this.program.provider.publicKey, corePoseidonCollection: constants_1.POSEIDON_CORE_COLLECTION, poseidonCollection: (0, pda_1.getCollectionPDA)(this.program.programId, constants_1.POSEIDON_COLLECTION_SYMBOL), poseidonAsset: poseidon.asset }) .instruction()); } return (0, sendVersionedTransaction_1.default)(this.program, ixs, this.rpcOptions); }); } } exports.default = Poseidon;