ordinalsbot
Version:
Node.js library for OrdinalsBot API
111 lines • 4.71 kB
JavaScript
;
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