btc-wallet 0.5.3-beta → 0.5.4-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +49 -8
- package/dist/index.js.map +2 -2
- package/esm/index.js +49 -8
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -4325,17 +4325,58 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
4325
4325
|
}
|
4326
4326
|
function calculateGasStrategy(gasTokenBalance, transactions2) {
|
4327
4327
|
return __async(this, null, function* () {
|
4328
|
+
var _a;
|
4328
4329
|
const accountId = state.getAccount();
|
4330
|
+
const nearAccount = yield provider.query({
|
4331
|
+
request_type: "view_account",
|
4332
|
+
account_id: accountId,
|
4333
|
+
finality: "final"
|
4334
|
+
});
|
4335
|
+
const availableBalance = parseFloat(nearAccount.amount) / __pow(10, 24);
|
4336
|
+
console.log("available near balance:", availableBalance);
|
4337
|
+
console.log("available gas token balance:", gasTokenBalance);
|
4329
4338
|
const convertTx = yield Promise.all(
|
4330
4339
|
transactions2.map((transaction, index) => convertTransactionToTxHex(transaction, index))
|
4331
4340
|
);
|
4332
|
-
|
4333
|
-
|
4334
|
-
|
4335
|
-
|
4336
|
-
|
4337
|
-
|
4338
|
-
|
4341
|
+
if (availableBalance > 0.5) {
|
4342
|
+
console.log("near balance is enough, get the protocol fee of each transaction");
|
4343
|
+
const gasTokens = yield nearCall2(
|
4344
|
+
currentConfig.accountContractId,
|
4345
|
+
"list_gas_token",
|
4346
|
+
{ token_ids: [currentConfig.token] }
|
4347
|
+
);
|
4348
|
+
console.log("list_gas_token gas tokens:", gasTokens);
|
4349
|
+
const perTxFee = Math.max(
|
4350
|
+
Number(((_a = gasTokens[currentConfig.token]) == null ? void 0 : _a.per_tx_protocol_fee) || 0),
|
4351
|
+
100
|
4352
|
+
);
|
4353
|
+
console.log("perTxFee:", perTxFee);
|
4354
|
+
const protocolFee = new import_big2.default(perTxFee || "0").mul(convertTx.length).toFixed(0);
|
4355
|
+
console.log("protocolFee:", protocolFee);
|
4356
|
+
if (new import_big2.default(gasTokenBalance).gte(protocolFee)) {
|
4357
|
+
console.log("use near pay gas and enough gas token balance");
|
4358
|
+
return { useNearPayGas: true, gasLimit: protocolFee };
|
4359
|
+
} else {
|
4360
|
+
console.log("use near pay gas and not enough gas token balance");
|
4361
|
+
const transferTx = yield createGasTokenTransfer(accountId, protocolFee);
|
4362
|
+
return recalculateGasWithTransfer(transferTx, convertTx, true, perTxFee.toString());
|
4363
|
+
}
|
4364
|
+
} else {
|
4365
|
+
console.log("near balance is not enough, predict the gas token amount required");
|
4366
|
+
const adjustedGas = yield getPredictedGasAmount(
|
4367
|
+
currentConfig.accountContractId,
|
4368
|
+
currentConfig.token,
|
4369
|
+
convertTx.map((t) => t.txHex)
|
4370
|
+
);
|
4371
|
+
if (new import_big2.default(gasTokenBalance).gte(adjustedGas)) {
|
4372
|
+
console.log("use gas token and gas token balance is enough");
|
4373
|
+
return { useNearPayGas: false, gasLimit: adjustedGas };
|
4374
|
+
} else {
|
4375
|
+
console.log("use gas token and gas token balance is not enough, need to transfer");
|
4376
|
+
const transferTx = yield createGasTokenTransfer(accountId, adjustedGas);
|
4377
|
+
return recalculateGasWithTransfer(transferTx, convertTx, false);
|
4378
|
+
}
|
4379
|
+
}
|
4339
4380
|
});
|
4340
4381
|
}
|
4341
4382
|
function convertTransactionToTxHex(transaction, index = 0) {
|
@@ -4440,7 +4481,7 @@ function setupBTCWallet({
|
|
4440
4481
|
|
4441
4482
|
// src/index.ts
|
4442
4483
|
var getVersion = () => {
|
4443
|
-
return "0.5.
|
4484
|
+
return "0.5.4-beta";
|
4444
4485
|
};
|
4445
4486
|
if (typeof window !== "undefined") {
|
4446
4487
|
window.__BTC_WALLET_VERSION = getVersion();
|