@triadxyz/triad-protocol
Version:
<div align="center"> <h1>Triad Protocol</h1> </div>
157 lines (156 loc) • 7 kB
JavaScript
"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;