@nervosnetwork/ckb-sdk-utils
Version:
Utils module of @nervosnetwork/ckb-sdk-core
20 lines • 1.06 kB
JavaScript
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
;