btc-wallet 0.3.29 → 0.3.31

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -75,11 +75,10 @@ interface ExecuteBTCDepositAndActionParams<T extends boolean = true> {
75
75
  // Example 1: dApp one-click BTC deposit
76
76
  await executeBTCDepositAndAction({
77
77
  action: {
78
- receiver_id: 'account.near',
79
- amount: '1000000', // in smallest units
80
- msg: 'Deposit'
78
+ receiver_id: 'token.near',
79
+ amount: '1000000',
80
+ msg: 'ft_transfer_call message' // ft_transfer_call message
81
81
  },
82
- feeRate: 5,
83
82
  registerDeposit: '100000000000000000000000', // default 0.000125 NEAR, you can set it according to your needs
84
83
  });
85
84
 
@@ -1,23 +1,27 @@
1
1
  import type { ENV } from '../config';
2
2
  import type { FinalExecutionOutcome } from '@near-wallet-selector/core';
3
+ export interface AccountInfo {
4
+ nonce: string;
5
+ gas_token: Record<string, string>;
6
+ debt_info?: DebtInfo;
7
+ relayer_fee?: {
8
+ amount?: string;
9
+ };
10
+ }
3
11
  export interface DebtInfo {
4
12
  gas_token_id: string;
5
13
  transfer_amount: string;
6
14
  near_gas_debt_amount: string;
7
15
  protocol_fee_debt_amount: string;
8
16
  }
9
- export declare function getAccountInfo(csna: string, accountContractId: string): Promise<{
10
- nonce: string;
11
- gas_token: Record<string, string>;
12
- debt_info?: DebtInfo;
13
- } | undefined>;
17
+ export declare function getAccountInfo(csna: string, accountContractId: string): Promise<AccountInfo>;
14
18
  export declare function checkGasTokenBalance(csna: string, gasToken: string, minAmount: string, env: ENV): Promise<void>;
15
19
  type CheckGasTokenArrearsReturnType<T extends boolean> = T extends true ? void : {
16
20
  receiver_id: string;
17
21
  amount: string;
18
22
  msg: string;
19
23
  } | undefined;
20
- export declare function checkGasTokenArrears<T extends boolean>(debtInfo: DebtInfo | undefined, env: ENV, autoDeposit?: T): Promise<CheckGasTokenArrearsReturnType<T>>;
24
+ export declare function checkGasTokenArrears<T extends boolean>(accountInfo: AccountInfo | undefined, env: ENV, autoDeposit?: T): Promise<CheckGasTokenArrearsReturnType<T>>;
21
25
  export declare function queryGasTokenArrears(env: ENV): Promise<DebtInfo | undefined>;
22
26
  export declare function getBtcGasPrice(): Promise<number>;
23
27
  export declare function getBtcBalance(): Promise<{
package/dist/index.js CHANGED
@@ -2271,7 +2271,6 @@ var ConnectProvider = ({
2271
2271
  })
2272
2272
  })
2273
2273
  );
2274
- console.log("walletEntryPlugin init");
2275
2274
  }
2276
2275
  }, [options, evmSupportChainIds, accountContract]);
2277
2276
  (0, import_react10.useEffect)(() => {
@@ -2280,7 +2279,6 @@ var ConnectProvider = ({
2280
2279
  import_wallet.walletEntryPlugin.setWalletCore({
2281
2280
  ethereum: smartAccount.provider
2282
2281
  });
2283
- console.log("walletEntryPlugin setWalletCore");
2284
2282
  }
2285
2283
  }, [smartAccount, options]);
2286
2284
  (0, import_react10.useEffect)(() => {
@@ -2288,10 +2286,8 @@ var ConnectProvider = ({
2288
2286
  if (((_a2 = options.walletOptions) == null ? void 0 : _a2.visible) !== false) {
2289
2287
  if (evmAccount) {
2290
2288
  import_wallet.walletEntryPlugin.walletEntryCreate();
2291
- console.log("walletEntryPlugin walletEntryCreate");
2292
2289
  } else {
2293
2290
  import_wallet.walletEntryPlugin.walletEntryDestroy();
2294
- console.log("walletEntryPlugin walletEntryDestroy");
2295
2291
  }
2296
2292
  }
2297
2293
  }, [evmAccount, smartAccount, options]);
@@ -3228,8 +3224,7 @@ Dialog.style = `
3228
3224
  `;
3229
3225
 
3230
3226
  // src/core/btcUtils.ts
3231
- var MINIMUM_DEPOSIT_AMOUNT = 5e3;
3232
- var MINIMUM_DEPOSIT_AMOUNT_BASE = 1e3;
3227
+ var MINIMUM_DEPOSIT_AMOUNT_BASE = 0;
3233
3228
  var NEAR_STORAGE_DEPOSIT_AMOUNT = "1250000000000000000000";
3234
3229
  var NBTC_STORAGE_DEPOSIT_AMOUNT = 3e3;
3235
3230
  var GAS_LIMIT = "50000000000000";
@@ -3265,7 +3260,9 @@ function nearCall(contractId, methodName, args) {
3265
3260
  }
3266
3261
  function getAccountInfo(csna, accountContractId) {
3267
3262
  return __async(this, null, function* () {
3268
- const accountInfo = yield nearCall(accountContractId, "get_account", { account_id: csna });
3263
+ const accountInfo = yield nearCall(accountContractId, "get_account", {
3264
+ account_id: csna
3265
+ });
3269
3266
  console.log("get_account accountInfo:", accountInfo);
3270
3267
  return accountInfo;
3271
3268
  });
@@ -3285,23 +3282,25 @@ function checkGasTokenBalance(csna, gasToken, minAmount, env) {
3285
3282
  }
3286
3283
  });
3287
3284
  }
3288
- function checkGasTokenArrears(debtInfo, env, autoDeposit) {
3285
+ function checkGasTokenArrears(accountInfo, env, autoDeposit) {
3289
3286
  return __async(this, null, function* () {
3290
- if (!debtInfo)
3287
+ var _a, _b, _c, _d;
3288
+ if (!((_a = accountInfo == null ? void 0 : accountInfo.debt_info) == null ? void 0 : _a.transfer_amount) || !((_b = accountInfo == null ? void 0 : accountInfo.relayer_fee) == null ? void 0 : _b.amount))
3291
3289
  return;
3292
3290
  const config = yield getConfig(env);
3293
- const transferAmount = debtInfo.transfer_amount;
3294
- console.log("get_account debtInfo:", debtInfo);
3291
+ const arrearsType = accountInfo.debt_info.transfer_amount ? "Deposit" : ((_c = accountInfo.relayer_fee) == null ? void 0 : _c.amount) ? "RelayerFee" : void 0;
3292
+ const transferAmount = arrearsType === "Deposit" ? accountInfo.debt_info.transfer_amount : (_d = accountInfo.relayer_fee) == null ? void 0 : _d.amount;
3293
+ console.log("get_account:", accountInfo);
3295
3294
  const action = {
3296
3295
  receiver_id: config.accountContractId,
3297
3296
  amount: transferAmount,
3298
- msg: JSON.stringify("Deposit")
3297
+ msg: JSON.stringify(arrearsType)
3299
3298
  };
3300
3299
  if (!autoDeposit)
3301
3300
  return action;
3302
3301
  const confirmed = yield Dialog.confirm({
3303
- title: "Has gas token arrears",
3304
- message: "You have gas token arrears, please deposit gas token to continue."
3302
+ title: arrearsType === "Deposit" ? "Has gas token arrears" : "Has relayer fee arrears",
3303
+ message: arrearsType === "Deposit" ? "You have gas token arrears, please deposit gas token to continue." : "You have relayer fee arrears, please deposit relayer fee to continue."
3305
3304
  });
3306
3305
  if (confirmed) {
3307
3306
  yield executeBTCDepositAndAction({ action, env });
@@ -3380,13 +3379,10 @@ function getDepositAmount(amount, option) {
3380
3379
  return __async(this, null, function* () {
3381
3380
  const config = yield getConfig((option == null ? void 0 : option.env) || "mainnet");
3382
3381
  const {
3383
- deposit_bridge_fee: { fee_min, fee_rate }
3384
- } = yield nearCall(
3385
- config.bridgeContractId,
3386
- "get_config",
3387
- {}
3388
- );
3389
- const depositAmount = (option == null ? void 0 : option.isEstimate) ? Number(amount) : Math.max(MINIMUM_DEPOSIT_AMOUNT + MINIMUM_DEPOSIT_AMOUNT_BASE, Number(amount));
3382
+ deposit_bridge_fee: { fee_min, fee_rate },
3383
+ min_deposit_amount
3384
+ } = yield nearCall(config.bridgeContractId, "get_config", {});
3385
+ const depositAmount = (option == null ? void 0 : option.isEstimate) ? Number(amount) : Math.max(Number(min_deposit_amount) + MINIMUM_DEPOSIT_AMOUNT_BASE, Number(amount));
3390
3386
  const fee = Math.max(Number(fee_min), Number(depositAmount) * fee_rate);
3391
3387
  const receiveAmount = new import_big.default(depositAmount).minus(fee).minus(MINIMUM_DEPOSIT_AMOUNT_BASE).round(0, import_big.default.roundDown).toNumber();
3392
3388
  console.log("getDepositAmount:", { depositAmount, receiveAmount, fee });
@@ -3443,16 +3439,16 @@ function executeBTCDepositAndAction(_0) {
3443
3439
  });
3444
3440
  const accountInfo = yield getAccountInfo(csna, config.accountContractId);
3445
3441
  const newActions = [];
3446
- const repayAction = yield checkGasTokenArrears(accountInfo == null ? void 0 : accountInfo.debt_info, env, false);
3447
- if (repayAction) {
3448
- newActions.push(__spreadProps(__spreadValues({}, repayAction), {
3442
+ const arrearsAction = yield checkGasTokenArrears(accountInfo, env, false);
3443
+ if (arrearsAction) {
3444
+ newActions.push(__spreadProps(__spreadValues({}, arrearsAction), {
3449
3445
  gas: GAS_LIMIT
3450
3446
  }));
3451
3447
  }
3452
3448
  if (action || !action && new import_big.default((accountInfo == null ? void 0 : accountInfo.gas_token[config.token]) || 0).lt(MINIMUM_DEPOSIT_AMOUNT_BASE)) {
3453
3449
  newActions.push(
3454
3450
  action ? __spreadProps(__spreadValues({}, action), {
3455
- amount: (repayAction == null ? void 0 : repayAction.amount) && !fixedAmount ? new import_big.default(receiveAmount).minus(repayAction.amount).toString() : receiveAmount.toString(),
3451
+ amount: (arrearsAction == null ? void 0 : arrearsAction.amount) && !fixedAmount ? new import_big.default(receiveAmount).minus(arrearsAction.amount).toString() : receiveAmount.toString(),
3456
3452
  gas: GAS_LIMIT
3457
3453
  }) : {
3458
3454
  receiver_id: config.accountContractId,
@@ -3494,7 +3490,7 @@ function executeBTCDepositAndAction(_0) {
3494
3490
  { deposit_msg: depositMsg }
3495
3491
  );
3496
3492
  const _feeRate = feeRate || (yield getBtcGasPrice());
3497
- const sendAmount = (repayAction == null ? void 0 : repayAction.amount) && fixedAmount ? new import_big.default(depositAmount).plus((repayAction == null ? void 0 : repayAction.amount) || 0).toString() : depositAmount;
3493
+ const sendAmount = (arrearsAction == null ? void 0 : arrearsAction.amount) && fixedAmount ? new import_big.default(depositAmount).plus((arrearsAction == null ? void 0 : arrearsAction.amount) || 0).toString() : depositAmount;
3498
3494
  console.log("user deposit address:", userDepositAddress);
3499
3495
  console.log("send amount:", sendAmount);
3500
3496
  console.log("fee rate:", _feeRate);
@@ -3592,6 +3588,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3592
3588
  const accountId = state.getAccount();
3593
3589
  const btcContext = window.btcContext;
3594
3590
  if (accountId && btcContext.account) {
3591
+ removeWalletButton();
3595
3592
  setupWalletButton(env, wallet, btcContext);
3596
3593
  } else {
3597
3594
  removeWalletButton();
@@ -3743,7 +3740,7 @@ var BTCWallet = (_0) => __async(void 0, [_0], function* ({
3743
3740
  const btcContext = window.btcContext;
3744
3741
  const accountId = state.getAccount();
3745
3742
  const accountInfo = yield getAccountInfo(accountId, currentConfig.accountContractId);
3746
- yield checkGasTokenArrears(accountInfo == null ? void 0 : accountInfo.debt_info, env, true);
3743
+ yield checkGasTokenArrears(accountInfo, env, true);
3747
3744
  const trans = [...params.transactions];
3748
3745
  console.log("raw trans:", trans);
3749
3746
  const gasTokenBalance = (accountInfo == null ? void 0 : accountInfo.gas_token[currentConfig.token]) || "0";
@@ -4001,7 +3998,7 @@ function setupBTCWallet({
4001
3998
 
4002
3999
  // src/index.ts
4003
4000
  var getVersion = () => {
4004
- return "0.3.29";
4001
+ return "0.3.31";
4005
4002
  };
4006
4003
  if (typeof window !== "undefined") {
4007
4004
  window.__BTC_WALLET_VERSION = getVersion();