@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
70 lines • 5.3 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.sendEgldOffchainTransaction = void 0;
const bignumber_js_1 = __importDefault(require("bignumber.js"));
const tatum_1 = require("../connector/tatum");
const model_1 = require("../model");
const transaction_1 = require("../transaction");
const wallet_1 = require("../wallet");
const common_1 = require("./common");
const kms_1 = require("./kms");
/**
* Send EGLD transaction from Tatum Ledger account to the blockchain. This method broadcasts signed transaction to the blockchain.
* This operation is irreversible.
* @param testnet mainnet or testnet version
* @param body content of the transaction to broadcast
* @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
* @returns transaction id of the transaction in the blockchain or id of the withdrawal, if it was not cancelled automatically
*/
const sendEgldOffchainTransaction = async (testnet, body, provider) => {
if (body.signatureId) {
return kms_1.offchainTransferEgldKMS(body);
}
await tatum_1.validateBody(body, model_1.EgldTransferOffchain);
const { mnemonic, index, fromPrivateKey, gasLimit, gasPrice } = body, withdrawal = __rest(body, ["mnemonic", "index", "fromPrivateKey", "gasLimit", "gasPrice"]);
const { value, receiver } = withdrawal;
const fromPriv = mnemonic && index !== undefined ? await wallet_1.generatePrivateKeyFromMnemonic(model_1.Currency.EGLD, testnet, mnemonic, index) : fromPrivateKey;
const fee = {
gasLimit: `${gasLimit || '50000'}`,
gasPrice: `${gasPrice || '1000000000'}`,
};
const txData = await transaction_1.prepareEgldSignedTransaction({
amount: value,
fromPrivateKey: fromPriv,
fee,
to: receiver
}, provider);
// @ts-ignore
withdrawal.fee = new bignumber_js_1.default(fee.gasLimit).multipliedBy(fee.gasPrice).toString();
const { id } = await common_1.offchainStoreWithdrawal(withdrawal);
try {
return Object.assign(Object.assign({}, await common_1.offchainBroadcast({ txData, withdrawalId: id, currency: model_1.Currency.EGLD })), { id });
}
catch (e) {
console.error(e);
try {
await common_1.offchainCancelWithdrawal(id);
}
catch (e1) {
console.log(e);
return { id };
}
throw e;
}
};
exports.sendEgldOffchainTransaction = sendEgldOffchainTransaction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vZmZjaGFpbi9lZ2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLDhDQUFnRDtBQUNoRCxvQ0FBd0Q7QUFDeEQsZ0RBQTREO0FBQzVELHNDQUF5RDtBQUN6RCxxQ0FBOEY7QUFDOUYsK0JBQStDO0FBRS9DOzs7Ozs7O0dBT0c7QUFDSSxNQUFNLDJCQUEyQixHQUFHLEtBQUssRUFBRSxPQUFnQixFQUFFLElBQTBCLEVBQUUsUUFBaUIsRUFBRSxFQUFFO0lBQ2pILElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNsQixPQUFPLDZCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFBO0tBQ3ZDO0lBQ0QsTUFBTSxvQkFBWSxDQUFDLElBQUksRUFBRSw0QkFBb0IsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sRUFDRixRQUFRLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxLQUNuRCxJQUFJLEVBRG9ELFVBQVUsVUFDbEUsSUFBSSxFQUZGLCtEQUVMLENBQU8sQ0FBQTtJQUNSLE1BQU0sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLEdBQUcsVUFBVSxDQUFBO0lBRXBDLE1BQU0sUUFBUSxHQUFHLFFBQVEsSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLHVDQUE4QixDQUFDLGdCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQXdCLENBQUE7SUFFM0osTUFBTSxHQUFHLEdBQUc7UUFDUixRQUFRLEVBQUUsR0FBRyxRQUFRLElBQUksT0FBTyxFQUFFO1FBQ2xDLFFBQVEsRUFBRSxHQUFHLFFBQVEsSUFBSSxZQUFZLEVBQUU7S0FDMUMsQ0FBQTtJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sMENBQTRCLENBQUM7UUFDOUMsTUFBTSxFQUFFLEtBQUs7UUFDYixjQUFjLEVBQUUsUUFBUTtRQUN4QixHQUFHO1FBQ0gsRUFBRSxFQUFFLFFBQVE7S0FDZixFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ1osYUFBYTtJQUNiLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2xGLE1BQU0sRUFBQyxFQUFFLEVBQUMsR0FBRyxNQUFNLGdDQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3RELElBQUk7UUFDQSx1Q0FBVyxNQUFNLDBCQUFpQixDQUFDLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLGdCQUFRLENBQUMsSUFBSSxFQUFDLENBQUMsS0FBRSxFQUFFLElBQUM7S0FDL0Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEIsSUFBSTtZQUNBLE1BQU0saUNBQXdCLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDckM7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDZCxPQUFPLEVBQUMsRUFBRSxFQUFDLENBQUE7U0FDZDtRQUNELE1BQU0sQ0FBQyxDQUFBO0tBQ1Y7QUFDTCxDQUFDLENBQUE7QUFyQ1ksUUFBQSwyQkFBMkIsK0JBcUN2QyJ9