UNPKG

@vigo.technology/payment

Version:

50 lines (49 loc) 2.14 kB
"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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Payment = void 0; const layer2_1 = require("./layer2"); class Payment { constructor(options) { this.layer2 = new layer2_1.Layer2(options || {}); } createLayer2Payment(order, options) { return __awaiter(this, void 0, void 0, function* () { // check params this.layer2.checkParams(order); // 1. Submit data to generate payment order and return payment order number. const payResult = yield this.layer2.createRecord(order); console.log("payResult:", payResult); const { pay_id: payId, receive_address: toAccount } = payResult; // 2. Transfer on layer-2. const txReceipt = yield this.layer2.transfer({ payId, toAccount, token: order.crypto, amount: order.cryptoAmount, jsrpc: options.jsrpc, ethWallet: options.ethWallet, }).catch(err => { console.error("err:", err); this.layer2.cancelRecord(payId); throw err; }); // 3. Polling Payment Status. const status = yield this.layer2.pollingPayStatus(payId); // 4. return return { payId, status, }; }); } } exports.Payment = Payment;