@bagsfm/bags-sdk
Version:
TypeScript SDK for Bags
60 lines • 2.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PartnerService = void 0;
const web3_js_1 = require("@solana/web3.js");
const base_1 = require("./base");
const partner_config_1 = require("../utils/fee-share-v2/partner-config");
const bs58_1 = __importDefault(require("bs58"));
class PartnerService extends base_1.BaseService {
constructor(apiKey, connection, commitment = 'processed') {
super(apiKey, connection, commitment);
}
async getPartnerConfig(wallet) {
const partnerConfig = (0, partner_config_1.deriveBagsFeeShareV2PartnerConfigPda)(wallet);
const partnerConfigData = await (0, partner_config_1.fetchBagsFeeShareV2PartnerConfig)(partnerConfig, this.connection, this.commitment, this.bagsFeeShareV2Coder);
if (!partnerConfigData) {
throw new Error('Partner config not found');
}
return partnerConfigData;
}
async getPartnerConfigCreationTransaction(partner) {
const response = await this.bagsApiClient.post('/fee-share/partner-config/creation-tx', {
partnerWallet: partner.toBase58(),
});
const decodedTransaction = bs58_1.default.decode(response.transaction.transaction);
const transaction = web3_js_1.VersionedTransaction.deserialize(decodedTransaction);
return {
transaction,
blockhash: response.transaction.blockhash,
};
}
async getPartnerConfigClaimStats(partner) {
const response = await this.bagsApiClient.get('/fee-share/partner-config/stats', {
params: {
partner: partner.toBase58(),
},
});
return {
claimedFees: response.claimedFees,
unclaimedFees: response.unclaimedFees,
};
}
async getPartnerConfigClaimTransactions(partner) {
const response = await this.bagsApiClient.post('/fee-share/partner-config/claim-tx', {
partnerWallet: partner.toBase58(),
});
const deserializedTransactionsWithBlockhash = response.transactions.map((tx) => {
const decodedTransaction = bs58_1.default.decode(tx.transaction);
return {
transaction: web3_js_1.VersionedTransaction.deserialize(decodedTransaction),
blockhash: tx.blockhash,
};
});
return deserializedTransactionsWithBlockhash;
}
}
exports.PartnerService = PartnerService;
//# sourceMappingURL=partner.js.map