btc-wallet 0.5.3-beta → 0.5.5-beta
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +55 -11
- package/dist/index.js.map +2 -2
- package/esm/index.js +55 -11
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/esm/index.js
CHANGED
@@ -3355,6 +3355,9 @@ function getCsnaAccountId(env) {
|
|
3355
3355
|
const config = yield getConfig(env);
|
3356
3356
|
const { getPublicKey } = getBtcProvider();
|
3357
3357
|
const btcPublicKey = yield getPublicKey();
|
3358
|
+
if (!btcPublicKey) {
|
3359
|
+
throw new Error("BTC Public Key is not available.");
|
3360
|
+
}
|
3358
3361
|
const csna = yield nearCall(
|
3359
3362
|
config.accountContractId,
|
3360
3363
|
"get_chain_signature_near_account_id",
|
@@ -3473,7 +3476,7 @@ function executeBTCDepositAndAction(_0) {
|
|
3473
3476
|
}
|
3474
3477
|
function checkSatoshiWhitelist(btcAccountId, env = "mainnet") {
|
3475
3478
|
return __async(this, null, function* () {
|
3476
|
-
if (env !== "
|
3479
|
+
if (env !== "mainnet")
|
3477
3480
|
return;
|
3478
3481
|
const hasShownNotice = localStorage.getItem("btc-wallet-private-mainnet-notice");
|
3479
3482
|
if (!hasShownNotice) {
|
@@ -3996,6 +3999,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
3996
3999
|
yield checkBtcNetwork(walletNetwork);
|
3997
4000
|
if (!state.isValid()) {
|
3998
4001
|
state.clear();
|
4002
|
+
console.log("setupBtcContextListeners clear");
|
3999
4003
|
}
|
4000
4004
|
validateWalletState();
|
4001
4005
|
const btcContext = window.btcContext;
|
@@ -4018,6 +4022,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
4018
4022
|
context.on("updatePublicKey", (btcPublicKey) => __async(this, null, function* () {
|
4019
4023
|
console.log("updatePublicKey");
|
4020
4024
|
state.clear();
|
4025
|
+
console.log("updatePublicKey clear");
|
4021
4026
|
try {
|
4022
4027
|
const { nearAddress, nearPublicKey } = yield getNearAccountByBtcPublicKey(btcPublicKey);
|
4023
4028
|
if (!nearAddress || !nearPublicKey) {
|
@@ -4029,8 +4034,6 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
4029
4034
|
yield handleConnectionUpdate();
|
4030
4035
|
} catch (error) {
|
4031
4036
|
console.error("Error updating public key:", error);
|
4032
|
-
state.clear();
|
4033
|
-
emitter.emit("accountsChanged", { accounts: [] });
|
4034
4037
|
}
|
4035
4038
|
}));
|
4036
4039
|
context.on("btcLoginError", () => __async(this, null, function* () {
|
@@ -4275,17 +4278,58 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
|
|
4275
4278
|
}
|
4276
4279
|
function calculateGasStrategy(gasTokenBalance, transactions2) {
|
4277
4280
|
return __async(this, null, function* () {
|
4281
|
+
var _a;
|
4278
4282
|
const accountId = state.getAccount();
|
4283
|
+
const nearAccount = yield provider.query({
|
4284
|
+
request_type: "view_account",
|
4285
|
+
account_id: accountId,
|
4286
|
+
finality: "final"
|
4287
|
+
});
|
4288
|
+
const availableBalance = parseFloat(nearAccount.amount) / __pow(10, 24);
|
4289
|
+
console.log("available near balance:", availableBalance);
|
4290
|
+
console.log("available gas token balance:", gasTokenBalance);
|
4279
4291
|
const convertTx = yield Promise.all(
|
4280
4292
|
transactions2.map((transaction, index) => convertTransactionToTxHex(transaction, index))
|
4281
4293
|
);
|
4282
|
-
|
4283
|
-
|
4284
|
-
|
4285
|
-
|
4286
|
-
|
4287
|
-
|
4288
|
-
|
4294
|
+
if (availableBalance > 0.5) {
|
4295
|
+
console.log("near balance is enough, get the protocol fee of each transaction");
|
4296
|
+
const gasTokens = yield nearCall2(
|
4297
|
+
currentConfig.accountContractId,
|
4298
|
+
"list_gas_token",
|
4299
|
+
{ token_ids: [currentConfig.token] }
|
4300
|
+
);
|
4301
|
+
console.log("list_gas_token gas tokens:", gasTokens);
|
4302
|
+
const perTxFee = Math.max(
|
4303
|
+
Number(((_a = gasTokens[currentConfig.token]) == null ? void 0 : _a.per_tx_protocol_fee) || 0),
|
4304
|
+
100
|
4305
|
+
);
|
4306
|
+
console.log("perTxFee:", perTxFee);
|
4307
|
+
const protocolFee = new Big2(perTxFee || "0").mul(convertTx.length).toFixed(0);
|
4308
|
+
console.log("protocolFee:", protocolFee);
|
4309
|
+
if (new Big2(gasTokenBalance).gte(protocolFee)) {
|
4310
|
+
console.log("use near pay gas and enough gas token balance");
|
4311
|
+
return { useNearPayGas: true, gasLimit: protocolFee };
|
4312
|
+
} else {
|
4313
|
+
console.log("use near pay gas and not enough gas token balance");
|
4314
|
+
const transferTx = yield createGasTokenTransfer(accountId, protocolFee);
|
4315
|
+
return recalculateGasWithTransfer(transferTx, convertTx, true, perTxFee.toString());
|
4316
|
+
}
|
4317
|
+
} else {
|
4318
|
+
console.log("near balance is not enough, predict the gas token amount required");
|
4319
|
+
const adjustedGas = yield getPredictedGasAmount(
|
4320
|
+
currentConfig.accountContractId,
|
4321
|
+
currentConfig.token,
|
4322
|
+
convertTx.map((t) => t.txHex)
|
4323
|
+
);
|
4324
|
+
if (new Big2(gasTokenBalance).gte(adjustedGas)) {
|
4325
|
+
console.log("use gas token and gas token balance is enough");
|
4326
|
+
return { useNearPayGas: false, gasLimit: adjustedGas };
|
4327
|
+
} else {
|
4328
|
+
console.log("use gas token and gas token balance is not enough, need to transfer");
|
4329
|
+
const transferTx = yield createGasTokenTransfer(accountId, adjustedGas);
|
4330
|
+
return recalculateGasWithTransfer(transferTx, convertTx, false);
|
4331
|
+
}
|
4332
|
+
}
|
4289
4333
|
});
|
4290
4334
|
}
|
4291
4335
|
function convertTransactionToTxHex(transaction, index = 0) {
|
@@ -4390,7 +4434,7 @@ function setupBTCWallet({
|
|
4390
4434
|
|
4391
4435
|
// src/index.ts
|
4392
4436
|
var getVersion = () => {
|
4393
|
-
return "0.5.
|
4437
|
+
return "0.5.5-beta";
|
4394
4438
|
};
|
4395
4439
|
if (typeof window !== "undefined") {
|
4396
4440
|
window.__BTC_WALLET_VERSION = getVersion();
|