UNPKG

@nervosnetwork/ckb-sdk-utils

Version:

Utils module of @nervosnetwork/ckb-sdk-core

20 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateTransactionFee = void 0; const tslib_1 = require("tslib"); const jsbi_1 = (0, tslib_1.__importDefault)(require("jsbi")); const validators_js_1 = require("./validators.js"); const calculateTransactionFee = (transactionSize, feeRate) => { (0, validators_js_1.assertToBeHexStringOrBigint)(transactionSize); (0, validators_js_1.assertToBeHexStringOrBigint)(feeRate); const ratio = jsbi_1.default.BigInt(1000); const base = jsbi_1.default.multiply(jsbi_1.default.BigInt(`${transactionSize}`), jsbi_1.default.BigInt(`${feeRate}`)); const fee = jsbi_1.default.divide(base, ratio); if (jsbi_1.default.lessThan(jsbi_1.default.multiply(fee, ratio), base)) { return `0x${jsbi_1.default.add(fee, jsbi_1.default.BigInt(1)).toString(16)}`; } return `0x${fee.toString(16)}`; }; exports.calculateTransactionFee = calculateTransactionFee; exports.default = exports.calculateTransactionFee; //# sourceMappingURL=calculateTransactionFee.js.map