UNPKG

@blockbolt/boltpay-wallet

Version:
65 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransactionService = void 0; const transactions_1 = require("@mysten/sui/transactions"); const constant_1 = require("../utils/constant"); class TransactionService { constructor(client) { this.client = client; } async send(params) { var _a; const tx = new transactions_1.Transaction(); const coin = this.getCoin(params.amount, params.coinType); let treasury; switch (params.coinType) { case constant_1.CONSTANTS.SUI_COIN_TYPE: treasury = constant_1.CONSTANTS.SUI_TREASURY; break; case constant_1.CONSTANTS.USDC_COIN_TYPE: treasury = constant_1.CONSTANTS.USDC_TREASURY; break; case constant_1.CONSTANTS.WUSDC_COIN_TYPE: treasury = constant_1.CONSTANTS.WUSDC_TREASURY; break; case constant_1.CONSTANTS.USDT_COIN_TYPE: treasury = constant_1.CONSTANTS.USDT_TREASURY; break; default: treasury = params.treasury; } tx.moveCall({ target: `${constant_1.CONSTANTS.PACKAGE_ID}::${constant_1.CONSTANTS.MODULE_NAME}::${constant_1.CONSTANTS.FUNCTION_NAME}`, typeArguments: [params.coinType], arguments: [ tx.object(coin), tx.object(treasury), tx.object(constant_1.CONSTANTS.FEE_SETTING), tx.pure.string(params.nameProduct), tx.pure.address(params.receiverAddr), tx.pure.u64(params.amount), tx.pure.u64(params.randomId), ], }); const result = await this.client.signAndExecuteTransaction({ signer: params.keyPair, transaction: tx, options: { showEffects: true }, }); return { digest: result.digest, effects: result.effects, error: (_a = result.effects) === null || _a === void 0 ? void 0 : _a.status.error, }; } getCoin(amount, coinType) { if (coinType === constant_1.CONSTANTS.SUI_COIN_TYPE) { return (0, transactions_1.coinWithBalance)({ balance: amount, useGasCoin: true }); } else { return (0, transactions_1.coinWithBalance)({ balance: amount, type: coinType }); } } } exports.TransactionService = TransactionService; //# sourceMappingURL=TransactionService.js.map