UNPKG

ordinalsbot

Version:
111 lines 4.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenPay = void 0; const types_1 = require("../types"); const client_1 = require("./client"); const sats_connect_1 = require("sats-connect"); const marketplace_types_1 = require("../types/marketplace_types"); class TokenPay { constructor(key = "", environment = types_1.InscriptionEnvNetwork.mainnet, tokenPayApiKey, options) { if (this.tokenpayClientInstance !== undefined) { console.error("tokenpay constructor was called multiple times"); return; } if (!tokenPayApiKey || (typeof tokenPayApiKey !== 'string')) { throw new Error("tokenpay api key is not defined"); } environment = types_1.InscriptionEnvNetwork[environment] ?? types_1.InscriptionEnvNetwork.mainnet; switch (environment) { case types_1.InscriptionEnvNetwork.mainnet: this.network = sats_connect_1.BitcoinNetworkType.Mainnet; break; case types_1.InscriptionEnvNetwork.testnet: this.network = sats_connect_1.BitcoinNetworkType.Testnet; break; case types_1.InscriptionEnvNetwork.signet: this.network = sats_connect_1.BitcoinNetworkType.Signet; break; default: this.network = sats_connect_1.BitcoinNetworkType.Mainnet; break; } this.tokenpayClientInstance = new client_1.TokenPayClient(key, environment, tokenPayApiKey, options); } createRuneOrder(CreateRuneOrderRequest) { return this.tokenpayClientInstance.createRuneOrder(CreateRuneOrderRequest); } async createPaymentPSBT(createPaymentPSBTRequest) { if (!createPaymentPSBTRequest.walletProvider) { return this.tokenpayClientInstance.createPaymentPSBT(createPaymentPSBTRequest); } else if (createPaymentPSBTRequest.walletProvider === marketplace_types_1.WALLET_PROVIDER.xverse) { const paymentPSBTResponse = await this.tokenpayClientInstance.createPaymentPSBT(createPaymentPSBTRequest); const inputsToSign = [ { address: createPaymentPSBTRequest.ordinalAddress, signingIndexes: paymentPSBTResponse.runeInputs.indices, }, { address: createPaymentPSBTRequest.paymentAddress, signingIndexes: paymentPSBTResponse.paymentInputs.indices, }, ]; const payload = { network: { type: this.network, }, message: "Sign Payment PSBT Transaction", psbtBase64: paymentPSBTResponse.psbtBase64, broadcast: true, inputsToSign, }; return new Promise(async (resolve, reject) => { const response = await this.satsConnectWrapper(payload); if (response && response.success && response.psbtBase64) { resolve({ psbtBase64: response.psbtBase64, txId: response.txId }); } else { console.log("Transaction canceled"); } }); } else { throw new Error("Wallet not supported"); } } async satsConnectWrapper(payload) { return new Promise((resolve, reject) => { (0, sats_connect_1.signTransaction)({ payload, onFinish: async (response) => { resolve({ success: true, message: "Transaction successful", ...response, }); }, onCancel: () => { resolve({ success: false, message: "Transaction cancelled" }); }, }); }); } checkTransactionAsTxid(CheckTransactionAsTxidRequest) { return this.tokenpayClientInstance.checkTransactionAsTxid(CheckTransactionAsTxidRequest); } getOrder(getOrderRequest) { return this.tokenpayClientInstance.getOrder(getOrderRequest); } accountWithdraw(accountWithdrawRequest) { return this.tokenpayClientInstance.accountWithdraw(accountWithdrawRequest); } getAccountWithdraw(getAccountWithdrawRequest) { return this.tokenpayClientInstance.getAccountWithdraw(getAccountWithdrawRequest); } getAccountBalance() { return this.tokenpayClientInstance.getAccountBalance(); } } exports.TokenPay = TokenPay; //# sourceMappingURL=index.js.map