btc-wallet 0.5.3-beta → 0.5.4-beta
Sign up to get free protection for your applications and to get access to all the features.
- 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/esm/index.js
CHANGED
@@ -4275,17 +4275,58 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
4275
4275
|
}
|
4276
4276
|
function calculateGasStrategy(gasTokenBalance, transactions2) {
|
4277
4277
|
return __async(this, null, function* () {
|
4278
|
+
var _a;
|
4278
4279
|
const accountId = state.getAccount();
|
4280
|
+
const nearAccount = yield provider.query({
|
4281
|
+
request_type: "view_account",
|
4282
|
+
account_id: accountId,
|
4283
|
+
finality: "final"
|
4284
|
+
});
|
4285
|
+
const availableBalance = parseFloat(nearAccount.amount) / __pow(10, 24);
|
4286
|
+
console.log("available near balance:", availableBalance);
|
4287
|
+
console.log("available gas token balance:", gasTokenBalance);
|
4279
4288
|
const convertTx = yield Promise.all(
|
4280
4289
|
transactions2.map((transaction, index) => convertTransactionToTxHex(transaction, index))
|
4281
4290
|
);
|
4282
|
-
|
4283
|
-
|
4284
|
-
|
4285
|
-
|
4286
|
-
|
4287
|
-
|
4288
|
-
|
4291
|
+
if (availableBalance > 0.5) {
|
4292
|
+
console.log("near balance is enough, get the protocol fee of each transaction");
|
4293
|
+
const gasTokens = yield nearCall2(
|
4294
|
+
currentConfig.accountContractId,
|
4295
|
+
"list_gas_token",
|
4296
|
+
{ token_ids: [currentConfig.token] }
|
4297
|
+
);
|
4298
|
+
console.log("list_gas_token gas tokens:", gasTokens);
|
4299
|
+
const perTxFee = Math.max(
|
4300
|
+
Number(((_a = gasTokens[currentConfig.token]) == null ? void 0 : _a.per_tx_protocol_fee) || 0),
|
4301
|
+
100
|
4302
|
+
);
|
4303
|
+
console.log("perTxFee:", perTxFee);
|
4304
|
+
const protocolFee = new Big2(perTxFee || "0").mul(convertTx.length).toFixed(0);
|
4305
|
+
console.log("protocolFee:", protocolFee);
|
4306
|
+
if (new Big2(gasTokenBalance).gte(protocolFee)) {
|
4307
|
+
console.log("use near pay gas and enough gas token balance");
|
4308
|
+
return { useNearPayGas: true, gasLimit: protocolFee };
|
4309
|
+
} else {
|
4310
|
+
console.log("use near pay gas and not enough gas token balance");
|
4311
|
+
const transferTx = yield createGasTokenTransfer(accountId, protocolFee);
|
4312
|
+
return recalculateGasWithTransfer(transferTx, convertTx, true, perTxFee.toString());
|
4313
|
+
}
|
4314
|
+
} else {
|
4315
|
+
console.log("near balance is not enough, predict the gas token amount required");
|
4316
|
+
const adjustedGas = yield getPredictedGasAmount(
|
4317
|
+
currentConfig.accountContractId,
|
4318
|
+
currentConfig.token,
|
4319
|
+
convertTx.map((t) => t.txHex)
|
4320
|
+
);
|
4321
|
+
if (new Big2(gasTokenBalance).gte(adjustedGas)) {
|
4322
|
+
console.log("use gas token and gas token balance is enough");
|
4323
|
+
return { useNearPayGas: false, gasLimit: adjustedGas };
|
4324
|
+
} else {
|
4325
|
+
console.log("use gas token and gas token balance is not enough, need to transfer");
|
4326
|
+
const transferTx = yield createGasTokenTransfer(accountId, adjustedGas);
|
4327
|
+
return recalculateGasWithTransfer(transferTx, convertTx, false);
|
4328
|
+
}
|
4329
|
+
}
|
4289
4330
|
});
|
4290
4331
|
}
|
4291
4332
|
function convertTransactionToTxHex(transaction, index = 0) {
|
@@ -4390,7 +4431,7 @@ function setupBTCWallet({
|
|
4390
4431
|
|
4391
4432
|
// src/index.ts
|
4392
4433
|
var getVersion = () => {
|
4393
|
-
return "0.5.
|
4434
|
+
return "0.5.4-beta";
|
4394
4435
|
};
|
4395
4436
|
if (typeof window !== "undefined") {
|
4396
4437
|
window.__BTC_WALLET_VERSION = getVersion();
|