btc-wallet 0.3.27 → 0.3.28
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +26 -0
- package/dist/index.js +21 -15
- package/dist/index.js.map +2 -2
- package/esm/index.js +21 -15
- package/esm/index.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
@@ -99,6 +99,32 @@ const balance = await getBtcBalance(address: string);
|
|
99
99
|
// Returns balance in satoshis
|
100
100
|
```
|
101
101
|
|
102
|
+
### `estimateDepositAmount`
|
103
|
+
|
104
|
+
Estimate the amount of BTC tokens that will be received on NEAR after depositing native BTC through Satoshi bridge. This takes into account bridge fees and minimum deposit requirements.
|
105
|
+
|
106
|
+
```typescript
|
107
|
+
import { estimateDepositAmount } from 'btc-wallet';
|
108
|
+
|
109
|
+
// Estimate receivable amount
|
110
|
+
const receiveAmount = await estimateDepositAmount(
|
111
|
+
amount: string, // amount in smallest units (satoshis)
|
112
|
+
options?: {
|
113
|
+
env?: 'mainnet' | 'testnet' | 'private_mainnet' | 'dev' // optional: defaults to NEAR network environment
|
114
|
+
}
|
115
|
+
);
|
116
|
+
|
117
|
+
// Example
|
118
|
+
const amount = '100000000'; // 1 BTC in satoshis
|
119
|
+
const estimatedReceive = await estimateDepositAmount(amount);
|
120
|
+
console.log('Estimated receive amount:', estimatedReceive);
|
121
|
+
```
|
122
|
+
|
123
|
+
The estimated amount will be less than the input amount due to:
|
124
|
+
- Bridge fees
|
125
|
+
- Minimum deposit requirements
|
126
|
+
- Protocol fees
|
127
|
+
|
102
128
|
## Requirements
|
103
129
|
|
104
130
|
- React 17.0.0 or higher
|
package/dist/index.js
CHANGED
@@ -3230,6 +3230,9 @@ Dialog.style = `
|
|
3230
3230
|
// src/core/btcUtils.ts
|
3231
3231
|
var MINIMUM_DEPOSIT_AMOUNT = 5e3;
|
3232
3232
|
var MINIMUM_DEPOSIT_AMOUNT_BASE = 1e3;
|
3233
|
+
var NEAR_STORAGE_DEPOSIT_AMOUNT = "1250000000000000000000";
|
3234
|
+
var NBTC_STORAGE_DEPOSIT_AMOUNT = 3e3;
|
3235
|
+
var GAS_LIMIT = "50000000000000";
|
3233
3236
|
function getBtcProvider() {
|
3234
3237
|
if (typeof window === "undefined" || !window.btcContext) {
|
3235
3238
|
throw new Error("BTC Provider is not initialized.");
|
@@ -3439,47 +3442,50 @@ function executeBTCDepositAndAction(_0) {
|
|
3439
3442
|
});
|
3440
3443
|
const accountInfo = yield getAccountInfo(csna, config.accountContractId);
|
3441
3444
|
const newActions = [];
|
3442
|
-
const gasLimit = new import_big.default(50).mul(__pow(10, 12)).toFixed(0);
|
3443
3445
|
const repayAction = yield checkGasTokenArrears(accountInfo == null ? void 0 : accountInfo.debt_info, env, false);
|
3444
3446
|
if (repayAction) {
|
3445
3447
|
newActions.push(__spreadProps(__spreadValues({}, repayAction), {
|
3446
|
-
gas:
|
3448
|
+
gas: GAS_LIMIT
|
3447
3449
|
}));
|
3448
3450
|
}
|
3449
3451
|
if (action || !action && new import_big.default((accountInfo == null ? void 0 : accountInfo.gas_token[config.token]) || 0).lt(MINIMUM_DEPOSIT_AMOUNT_BASE)) {
|
3450
3452
|
newActions.push(
|
3451
3453
|
action ? __spreadProps(__spreadValues({}, action), {
|
3452
3454
|
amount: (repayAction == null ? void 0 : repayAction.amount) && !fixedAmount ? new import_big.default(receiveAmount).minus(repayAction.amount).toString() : receiveAmount.toString(),
|
3453
|
-
gas:
|
3455
|
+
gas: GAS_LIMIT
|
3454
3456
|
}) : {
|
3455
3457
|
receiver_id: config.accountContractId,
|
3456
3458
|
amount: MINIMUM_DEPOSIT_AMOUNT_BASE.toString(),
|
3457
3459
|
msg: JSON.stringify("Deposit"),
|
3458
|
-
gas:
|
3460
|
+
gas: GAS_LIMIT
|
3459
3461
|
}
|
3460
3462
|
);
|
3461
3463
|
}
|
3462
|
-
const depositMsg = {
|
3463
|
-
recipient_id: csna,
|
3464
|
-
post_actions: newActions.length > 0 ? newActions : void 0
|
3465
|
-
};
|
3466
3464
|
const storageDepositMsg = {};
|
3467
|
-
if (!(accountInfo == null ? void 0 : accountInfo.nonce)) {
|
3468
|
-
storageDepositMsg.btc_public_key = btcPublicKey;
|
3469
|
-
}
|
3470
3465
|
const registerRes = yield nearCall((action == null ? void 0 : action.receiver_id) || config.token, "storage_balance_of", {
|
3471
3466
|
account_id: csna
|
3472
3467
|
});
|
3473
3468
|
if (!(registerRes == null ? void 0 : registerRes.available)) {
|
3474
3469
|
storageDepositMsg.storage_deposit_msg = {
|
3475
3470
|
contract_id: (action == null ? void 0 : action.receiver_id) || config.token,
|
3476
|
-
deposit:
|
3471
|
+
deposit: NEAR_STORAGE_DEPOSIT_AMOUNT,
|
3477
3472
|
registration_only: true
|
3478
3473
|
};
|
3479
3474
|
}
|
3480
|
-
if (
|
3481
|
-
|
3475
|
+
if (!(accountInfo == null ? void 0 : accountInfo.nonce)) {
|
3476
|
+
storageDepositMsg.btc_public_key = btcPublicKey;
|
3477
|
+
newActions.push({
|
3478
|
+
receiver_id: config.accountContractId,
|
3479
|
+
amount: NBTC_STORAGE_DEPOSIT_AMOUNT.toString(),
|
3480
|
+
msg: JSON.stringify("RelayerFee"),
|
3481
|
+
gas: GAS_LIMIT
|
3482
|
+
});
|
3482
3483
|
}
|
3484
|
+
const depositMsg = {
|
3485
|
+
recipient_id: csna,
|
3486
|
+
post_actions: newActions.length > 0 ? newActions : void 0,
|
3487
|
+
extra_msg: Object.keys(storageDepositMsg).length > 0 ? JSON.stringify(storageDepositMsg) : void 0
|
3488
|
+
};
|
3483
3489
|
console.log("get_user_deposit_address params:", { deposit_msg: depositMsg });
|
3484
3490
|
const userDepositAddress = yield nearCall(
|
3485
3491
|
config.bridgeContractId,
|
@@ -3994,7 +4000,7 @@ function setupBTCWallet({
|
|
3994
4000
|
|
3995
4001
|
// src/index.ts
|
3996
4002
|
var getVersion = () => {
|
3997
|
-
return "0.3.
|
4003
|
+
return "0.3.28";
|
3998
4004
|
};
|
3999
4005
|
if (typeof window !== "undefined") {
|
4000
4006
|
window.__BTC_WALLET_VERSION = getVersion();
|