@lombard.finance/sdk 4.3.2 → 4.4.0
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/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +6 -6
- package/dist/api-functions/generateDepositBtcAddress/generateDepositBtcAddress.d.ts.map +1 -1
- package/dist/api-functions/getDepositBtcAddress/getDepositBtcAddress.d.ts.map +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.js +29 -29
- package/dist/bridge.cjs +1 -1
- package/dist/bridge.js +7 -7
- package/dist/btc.cjs +1 -1
- package/dist/btc.js +10 -10
- package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts +7 -4
- package/dist/chains/btc/actions/deposit/BtcDeposit.d.ts.map +1 -1
- package/dist/chains/btc/actions/deposit/config/index.d.ts +16 -8
- package/dist/chains/btc/actions/deposit/config/index.d.ts.map +1 -1
- package/dist/chains/btc/actions/deposit/config/solana.d.ts +20 -0
- package/dist/chains/btc/actions/deposit/config/solana.d.ts.map +1 -0
- package/dist/chains/btc/actions/deposit/config/types.d.ts +4 -3
- package/dist/chains/btc/actions/deposit/config/types.d.ts.map +1 -1
- package/dist/chains/evm/EvmActions.d.ts +4 -4
- package/dist/chains/evm/actions/deposit/config/evm.d.ts +3 -3
- package/dist/chains/evm/actions/deposit/config/evm.d.ts.map +1 -1
- package/dist/chains/evm/actions/deposit/config/types.d.ts +1 -1
- package/dist/chains/evm/actions/deposit/config/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/deposit/factory.d.ts +1 -1
- package/dist/chains/evm/actions/deposit/types.d.ts +1 -1
- package/dist/chains/evm/actions/deposit/types.d.ts.map +1 -1
- package/dist/chains/evm/actions/redeem/EvmRedeem.d.ts.map +1 -1
- package/dist/chains/evm/actions/unstake/EvmUnstake.d.ts.map +1 -1
- package/dist/chains/solana/SolanaActions.d.ts +10 -0
- package/dist/chains/solana/SolanaActions.d.ts.map +1 -1
- package/dist/chains/solana/actions/index.d.ts +1 -0
- package/dist/chains/solana/actions/index.d.ts.map +1 -1
- package/dist/chains/solana/actions/redeem/SolanaRedeem.d.ts +37 -0
- package/dist/chains/solana/actions/redeem/SolanaRedeem.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/config/index.d.ts +8 -0
- package/dist/chains/solana/actions/redeem/config/index.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/config/solana.d.ts +22 -0
- package/dist/chains/solana/actions/redeem/config/solana.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/config/types.d.ts +35 -0
- package/dist/chains/solana/actions/redeem/config/types.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/factory.d.ts +12 -0
- package/dist/chains/solana/actions/redeem/factory.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/index.d.ts +9 -0
- package/dist/chains/solana/actions/redeem/index.d.ts.map +1 -0
- package/dist/chains/solana/actions/redeem/types.d.ts +52 -0
- package/dist/chains/solana/actions/redeem/types.d.ts.map +1 -0
- package/dist/chains/solana/utils.d.ts +15 -0
- package/dist/chains/solana/utils.d.ts.map +1 -0
- package/dist/chunks/BtcActions-BOVJrdTI.cjs +2 -0
- package/dist/chunks/BtcActions-BOVJrdTI.cjs.map +1 -0
- package/dist/chunks/{BtcActions-k-qs1uO0.js → BtcActions-_a8r3Q7c.js} +457 -414
- package/dist/chunks/BtcActions-_a8r3Q7c.js.map +1 -0
- package/dist/chunks/{EvmActions-B_dF42So.js → EvmActions-D4vFpbYk.js} +163 -173
- package/dist/chunks/EvmActions-D4vFpbYk.js.map +1 -0
- package/dist/chunks/EvmActions-VrDbgMDy.cjs +2 -0
- package/dist/chunks/EvmActions-VrDbgMDy.cjs.map +1 -0
- package/dist/chunks/ReferralsClient-Cmrjo9bN.cjs +2 -0
- package/dist/chunks/ReferralsClient-Cmrjo9bN.cjs.map +1 -0
- package/dist/chunks/{ReferralsClient-DbFWWtVi.js → ReferralsClient-DvEsA3II.js} +160 -160
- package/dist/chunks/ReferralsClient-DvEsA3II.js.map +1 -0
- package/dist/chunks/{api-config-CtcP3TVl.js → api-config-Dm6dR85f.js} +6 -6
- package/dist/chunks/{api-config-CtcP3TVl.js.map → api-config-Dm6dR85f.js.map} +1 -1
- package/dist/chunks/{approveLBTC-CZiZmdcX.cjs → approveLBTC-CUXEC3kw.cjs} +2 -2
- package/dist/chunks/{approveLBTC-CZiZmdcX.cjs.map → approveLBTC-CUXEC3kw.cjs.map} +1 -1
- package/dist/chunks/approveLBTC-Du2El1tW.js +26 -0
- package/dist/chunks/{approveLBTC-B5-ZWqct.js.map → approveLBTC-Du2El1tW.js.map} +1 -1
- package/dist/chunks/{array-Cev6kyLJ.js → array-DYttUPf5.js} +7 -7
- package/dist/chunks/{array-Cev6kyLJ.js.map → array-DYttUPf5.js.map} +1 -1
- package/dist/chunks/{blockchain-identifier-BzMQWh-C.cjs → blockchain-identifier-BTPGxLio.cjs} +2 -2
- package/dist/chunks/{blockchain-identifier-BzMQWh-C.cjs.map → blockchain-identifier-BTPGxLio.cjs.map} +1 -1
- package/dist/chunks/{blockchain-identifier-BmadkNtK.js → blockchain-identifier-CTVaEPpY.js} +24 -24
- package/dist/chunks/{blockchain-identifier-BmadkNtK.js.map → blockchain-identifier-CTVaEPpY.js.map} +1 -1
- package/dist/chunks/{bridge-CTsiodO1.js → bridge-DqGabhIY.js} +13 -13
- package/dist/chunks/{bridge-CTsiodO1.js.map → bridge-DqGabhIY.js.map} +1 -1
- package/dist/chunks/{bridge-BzRlY9pP.cjs → bridge-dWaKrMKm.cjs} +2 -2
- package/dist/chunks/{bridge-BzRlY9pP.cjs.map → bridge-dWaKrMKm.cjs.map} +1 -1
- package/dist/chunks/{config-hFKqUyg3.js → config-DghboRx0.js} +10 -10
- package/dist/chunks/{config-hFKqUyg3.js.map → config-DghboRx0.js.map} +1 -1
- package/dist/chunks/{config-l4ZaZw_g.cjs → config-DmCmanM_.cjs} +2 -2
- package/dist/chunks/{config-l4ZaZw_g.cjs.map → config-DmCmanM_.cjs.map} +1 -1
- package/dist/chunks/constants-D1FnS2Z8.js +6 -0
- package/dist/chunks/constants-D1FnS2Z8.js.map +1 -0
- package/dist/chunks/constants-ueShGH9R.cjs +2 -0
- package/dist/chunks/constants-ueShGH9R.cjs.map +1 -0
- package/dist/chunks/{defi-registry-BIRv_zkp.cjs → defi-registry-DDNavtO1.cjs} +2 -2
- package/dist/chunks/{defi-registry-BIRv_zkp.cjs.map → defi-registry-DDNavtO1.cjs.map} +1 -1
- package/dist/chunks/{defi-registry-wNFN3qyB.js → defi-registry-DxjjBQTV.js} +13 -13
- package/dist/chunks/{defi-registry-wNFN3qyB.js.map → defi-registry-DxjjBQTV.js.map} +1 -1
- package/dist/chunks/{depositStatus-DM7fRmbN.js → depositStatus-05_X7FVs.js} +42 -42
- package/dist/chunks/{depositStatus-DM7fRmbN.js.map → depositStatus-05_X7FVs.js.map} +1 -1
- package/dist/chunks/{depositStatus-C3-EgT2a.cjs → depositStatus-CUjHpXFJ.cjs} +2 -2
- package/dist/chunks/{depositStatus-C3-EgT2a.cjs.map → depositStatus-CUjHpXFJ.cjs.map} +1 -1
- package/dist/chunks/events-5c8IHjEF.cjs +2 -0
- package/dist/chunks/events-5c8IHjEF.cjs.map +1 -0
- package/dist/chunks/{events-DdV_xi-2.js → events-rgJZNpHd.js} +414 -303
- package/dist/chunks/events-rgJZNpHd.js.map +1 -0
- package/dist/chunks/evm-by-btc-address-CZvE15lx.js +39 -0
- package/dist/chunks/{evm-by-btc-address-CwLiENtM.js.map → evm-by-btc-address-CZvE15lx.js.map} +1 -1
- package/dist/chunks/fee-requirements-CCNsxAvJ.js +14 -0
- package/dist/chunks/{fee-requirements-x8-8mpJ7.js.map → fee-requirements-CCNsxAvJ.js.map} +1 -1
- package/dist/chunks/get-exchange-ratio-B-xzYND1.js +20 -0
- package/dist/chunks/{get-exchange-ratio-NtnkG1kZ.js.map → get-exchange-ratio-B-xzYND1.js.map} +1 -1
- package/dist/chunks/{get-exchange-ratio-C-7DadfD.cjs → get-exchange-ratio-BEhD4gLB.cjs} +2 -2
- package/dist/chunks/{get-exchange-ratio-C-7DadfD.cjs.map → get-exchange-ratio-BEhD4gLB.cjs.map} +1 -1
- package/dist/chunks/{get-positions-summary-DkZZYbGP.cjs → get-positions-summary-Dh1QPLYO.cjs} +2 -2
- package/dist/chunks/{get-positions-summary-DkZZYbGP.cjs.map → get-positions-summary-Dh1QPLYO.cjs.map} +1 -1
- package/dist/chunks/{get-positions-summary-B_MmGHLv.js → get-positions-summary-iYshN1RQ.js} +28 -28
- package/dist/chunks/{get-positions-summary-B_MmGHLv.js.map → get-positions-summary-iYshN1RQ.js.map} +1 -1
- package/dist/chunks/{get-vault-tvl-YAXePAW3.js → get-vault-tvl-Ct_Zkg7C.js} +41 -41
- package/dist/chunks/{get-vault-tvl-YAXePAW3.js.map → get-vault-tvl-Ct_Zkg7C.js.map} +1 -1
- package/dist/chunks/{get-vault-tvl-DmTUbOY7.cjs → get-vault-tvl-D_tQIDAs.cjs} +2 -2
- package/dist/chunks/{get-vault-tvl-DmTUbOY7.cjs.map → get-vault-tvl-D_tQIDAs.cjs.map} +1 -1
- package/dist/chunks/{get-vault-withdrawals-CWcYy_sH.cjs → get-vault-withdrawals-8ALlEiAC.cjs} +2 -2
- package/dist/chunks/{get-vault-withdrawals-CWcYy_sH.cjs.map → get-vault-withdrawals-8ALlEiAC.cjs.map} +1 -1
- package/dist/chunks/get-vault-withdrawals-jk7Sv4S4.js +161 -0
- package/dist/chunks/{get-vault-withdrawals-BrpZlt6s.js.map → get-vault-withdrawals-jk7Sv4S4.js.map} +1 -1
- package/dist/chunks/{getSharesByAddress-BEgOf1C0.cjs → getSharesByAddress-D8hehnP1.cjs} +2 -2
- package/dist/chunks/{getSharesByAddress-BEgOf1C0.cjs.map → getSharesByAddress-D8hehnP1.cjs.map} +1 -1
- package/dist/chunks/{getSharesByAddress-BiruCDp6.js → getSharesByAddress-_tBaIBsw.js} +38 -38
- package/dist/chunks/{getSharesByAddress-BiruCDp6.js.map → getSharesByAddress-_tBaIBsw.js.map} +1 -1
- package/dist/chunks/getUserStakeAndBakeSignature-CSEyzgMc.cjs +2 -0
- package/dist/chunks/getUserStakeAndBakeSignature-CSEyzgMc.cjs.map +1 -0
- package/dist/chunks/getUserStakeAndBakeSignature-Su-k10ap.js +125 -0
- package/dist/chunks/getUserStakeAndBakeSignature-Su-k10ap.js.map +1 -0
- package/dist/chunks/lbtc-addresses-D8MYCdsx.js +10 -0
- package/dist/chunks/{lbtc-addresses-BLRmtR3c.js.map → lbtc-addresses-D8MYCdsx.js.map} +1 -1
- package/dist/chunks/{lbtc-addresses-xyTYV7hx.cjs → lbtc-addresses-Kil252DX.cjs} +2 -2
- package/dist/chunks/{lbtc-addresses-xyTYV7hx.cjs.map → lbtc-addresses-Kil252DX.cjs.map} +1 -1
- package/dist/chunks/numbers-CclN2Ohk.js +15 -0
- package/dist/chunks/{numbers-CM-lcmt4.js.map → numbers-CclN2Ohk.js.map} +1 -1
- package/dist/chunks/parameters-C_16L5ft.js +11 -0
- package/dist/chunks/{parameters-CDV-6Hk5.js.map → parameters-C_16L5ft.js.map} +1 -1
- package/dist/chunks/satoshi-CSoJBXc6.js +19 -0
- package/dist/chunks/{satoshi-Ch6y8aYG.js.map → satoshi-CSoJBXc6.js.map} +1 -1
- package/dist/chunks/statusConstants-Cri7yswV.cjs +2 -0
- package/dist/chunks/statusConstants-Cri7yswV.cjs.map +1 -0
- package/dist/chunks/{statusConstants-DFxMrVob.js → statusConstants-Zii1786K.js} +1134 -1113
- package/dist/chunks/statusConstants-Zii1786K.js.map +1 -0
- package/dist/chunks/{storeNetworkFeeSignature-BZGL2Zn_.js → storeNetworkFeeSignature-BODIpq3Y.js} +26 -26
- package/dist/chunks/{storeNetworkFeeSignature-BZGL2Zn_.js.map → storeNetworkFeeSignature-BODIpq3Y.js.map} +1 -1
- package/dist/chunks/{storeNetworkFeeSignature-D7yo6lDV.cjs → storeNetworkFeeSignature-Buk4091C.cjs} +2 -2
- package/dist/chunks/{storeNetworkFeeSignature-D7yo6lDV.cjs.map → storeNetworkFeeSignature-Buk4091C.cjs.map} +1 -1
- package/dist/chunks/time-Sa5gggPG.js +24 -0
- package/dist/chunks/{time-QPeEEEnQ.js.map → time-Sa5gggPG.js.map} +1 -1
- package/dist/chunks/{token-addresses-FKpA3uc4.js → token-addresses-D0v5cR1j.js} +174 -163
- package/dist/chunks/{token-addresses-FKpA3uc4.js.map → token-addresses-D0v5cR1j.js.map} +1 -1
- package/dist/chunks/{token-addresses-DRBecUa7.cjs → token-addresses-nzvTOi24.cjs} +2 -2
- package/dist/chunks/{token-addresses-DRBecUa7.cjs.map → token-addresses-nzvTOi24.cjs.map} +1 -1
- package/dist/chunks/{tokens-D_HeVB5p.cjs → tokens-BkvA0Gp1.cjs} +2 -2
- package/dist/chunks/{tokens-D_HeVB5p.cjs.map → tokens-BkvA0Gp1.cjs.map} +1 -1
- package/dist/chunks/{tokens-C6qZHzph.js → tokens-DgC1hfkm.js} +18 -18
- package/dist/chunks/{tokens-C6qZHzph.js.map → tokens-DgC1hfkm.js.map} +1 -1
- package/dist/chunks/{unstakeLBTC-H0zdYQa6.cjs → unstakeLBTC-CmoCaGX9.cjs} +2 -2
- package/dist/chunks/{unstakeLBTC-H0zdYQa6.cjs.map → unstakeLBTC-CmoCaGX9.cjs.map} +1 -1
- package/dist/chunks/{unstakeLBTC-DAIR9NO_.js → unstakeLBTC-DtvVbpbU.js} +50 -50
- package/dist/chunks/{unstakeLBTC-DAIR9NO_.js.map → unstakeLBTC-DtvVbpbU.js.map} +1 -1
- package/dist/chunks/{withdraw-hHueI2p7.js → withdraw-DgjuaUN3.js} +45 -45
- package/dist/chunks/{withdraw-hHueI2p7.js.map → withdraw-DgjuaUN3.js.map} +1 -1
- package/dist/chunks/{withdraw-C1fMFSwy.cjs → withdraw-i0AueZ_C.cjs} +2 -2
- package/dist/chunks/{withdraw-C1fMFSwy.cjs.map → withdraw-i0AueZ_C.cjs.map} +1 -1
- package/dist/common/constants.d.ts +1 -0
- package/dist/common/constants.d.ts.map +1 -1
- package/dist/contracts.cjs +1 -1
- package/dist/contracts.js +16 -16
- package/dist/core/assets/catalog.d.ts.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +85 -85
- package/dist/debug.js +4 -4
- package/dist/defi.cjs +1 -1
- package/dist/defi.js +10 -10
- package/dist/evm.cjs +1 -1
- package/dist/evm.js +34 -34
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +287 -283
- package/dist/index.js.map +1 -1
- package/dist/metrics.cjs +1 -1
- package/dist/metrics.js +6 -6
- package/dist/stories/arg-types.d.ts +1 -0
- package/dist/stories/arg-types.d.ts.map +1 -1
- package/dist/tokens/token-addresses.d.ts +2 -2
- package/dist/tokens/token-addresses.d.ts.map +1 -1
- package/dist/utils/chain.d.ts +7 -0
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +76 -76
- package/dist/vaults.cjs +1 -1
- package/dist/vaults.js +14 -14
- package/package.json +19 -6
- package/dist/chunks/BtcActions-XbVRQEcM.cjs +0 -2
- package/dist/chunks/BtcActions-XbVRQEcM.cjs.map +0 -1
- package/dist/chunks/BtcActions-k-qs1uO0.js.map +0 -1
- package/dist/chunks/EvmActions-BVzQ3fLK.cjs +0 -2
- package/dist/chunks/EvmActions-BVzQ3fLK.cjs.map +0 -1
- package/dist/chunks/EvmActions-B_dF42So.js.map +0 -1
- package/dist/chunks/ReferralsClient-BC-1wT1q.cjs +0 -2
- package/dist/chunks/ReferralsClient-BC-1wT1q.cjs.map +0 -1
- package/dist/chunks/ReferralsClient-DbFWWtVi.js.map +0 -1
- package/dist/chunks/approveLBTC-B5-ZWqct.js +0 -26
- package/dist/chunks/constants-BBK-JNcY.cjs +0 -2
- package/dist/chunks/constants-BBK-JNcY.cjs.map +0 -1
- package/dist/chunks/constants-CuT4axsy.js +0 -5
- package/dist/chunks/constants-CuT4axsy.js.map +0 -1
- package/dist/chunks/events-DdV_xi-2.js.map +0 -1
- package/dist/chunks/events-DqIJRzJo.cjs +0 -2
- package/dist/chunks/events-DqIJRzJo.cjs.map +0 -1
- package/dist/chunks/evm-by-btc-address-CwLiENtM.js +0 -39
- package/dist/chunks/fee-requirements-x8-8mpJ7.js +0 -14
- package/dist/chunks/get-exchange-ratio-NtnkG1kZ.js +0 -20
- package/dist/chunks/get-vault-withdrawals-BrpZlt6s.js +0 -161
- package/dist/chunks/getUserStakeAndBakeSignature-BxRq2cI1.cjs +0 -2
- package/dist/chunks/getUserStakeAndBakeSignature-BxRq2cI1.cjs.map +0 -1
- package/dist/chunks/getUserStakeAndBakeSignature-NGGblnJl.js +0 -120
- package/dist/chunks/getUserStakeAndBakeSignature-NGGblnJl.js.map +0 -1
- package/dist/chunks/lbtc-addresses-BLRmtR3c.js +0 -10
- package/dist/chunks/numbers-CM-lcmt4.js +0 -15
- package/dist/chunks/parameters-CDV-6Hk5.js +0 -11
- package/dist/chunks/satoshi-Ch6y8aYG.js +0 -19
- package/dist/chunks/statusConstants-BLiNBT6s.cjs +0 -2
- package/dist/chunks/statusConstants-BLiNBT6s.cjs.map +0 -1
- package/dist/chunks/statusConstants-DFxMrVob.js.map +0 -1
- package/dist/chunks/time-QPeEEEnQ.js +0 -24
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
import m from "bignumber.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { makePublicClient as A, getTokenInfo as q, toBaseDenomination as V, fromBaseDenomination as g, getErrorMessage as W } from "./tokens-DgC1hfkm.js";
|
|
3
|
+
import { makeWalletClient as y, Token as D, CHAIN_ID_TO_VIEM_CHAIN_MAP as b } from "./token-addresses-D0v5cR1j.js";
|
|
4
|
+
import { toBigInt as P } from "./numbers-CclN2Ohk.js";
|
|
5
|
+
import { Vault as F, isVedaVaultChain as H, VAULTS as R } from "./config-DghboRx0.js";
|
|
6
|
+
import { DAY as Q } from "./time-Sa5gggPG.js";
|
|
7
7
|
async function j({
|
|
8
8
|
amount: l,
|
|
9
9
|
approve: u = !0,
|
|
10
10
|
token: d = D.LBTC,
|
|
11
11
|
vaultKey: o = F.Veda,
|
|
12
|
-
account:
|
|
12
|
+
account: n,
|
|
13
13
|
chainId: a,
|
|
14
14
|
provider: f,
|
|
15
|
-
rpcUrl:
|
|
15
|
+
rpcUrl: s,
|
|
16
16
|
env: C
|
|
17
17
|
}) {
|
|
18
|
-
const t =
|
|
18
|
+
const t = R[o];
|
|
19
19
|
if (!t)
|
|
20
20
|
throw new Error(`Unknown vault key: ${o}`);
|
|
21
21
|
if (!H(a))
|
|
22
22
|
throw new Error(
|
|
23
23
|
`Unsupported chain id: ${a}. Please switch to one of the supported chains: ${t.chains.join(", ")}`
|
|
24
24
|
);
|
|
25
|
-
const
|
|
25
|
+
const r = A({ chainId: a, rpcUrl: s }), w = y({ provider: f, chainId: a }), e = await q(d, a, C, s);
|
|
26
26
|
if (!e)
|
|
27
27
|
throw new Error(`Unknown deposit token: ${d}`);
|
|
28
28
|
const i = m(l), c = P(
|
|
29
29
|
V(i, e.decimals)
|
|
30
|
-
), T = await
|
|
30
|
+
), T = await r.readContract({
|
|
31
31
|
address: e.address,
|
|
32
32
|
abi: e.abi,
|
|
33
33
|
functionName: "allowance",
|
|
34
|
-
args: [
|
|
34
|
+
args: [n, t.vaultContract.address]
|
|
35
35
|
}), h = g(
|
|
36
36
|
String(T),
|
|
37
37
|
e.decimals
|
|
38
|
-
), E = await
|
|
38
|
+
), E = await r.readContract({
|
|
39
39
|
address: e.address,
|
|
40
40
|
abi: e.abi,
|
|
41
41
|
functionName: "balanceOf",
|
|
42
|
-
args: [
|
|
42
|
+
args: [n]
|
|
43
43
|
}), p = g(
|
|
44
44
|
String(E),
|
|
45
45
|
e.decimals
|
|
@@ -59,8 +59,8 @@ Allowance: ${h.toFixed()}`;
|
|
|
59
59
|
console.info(x);
|
|
60
60
|
try {
|
|
61
61
|
console.info(`Trying to approve ${c}`);
|
|
62
|
-
const { request: v } = await
|
|
63
|
-
account:
|
|
62
|
+
const { request: v } = await r.simulateContract({
|
|
63
|
+
account: n,
|
|
64
64
|
chain: b[a],
|
|
65
65
|
address: e.address,
|
|
66
66
|
abi: e.abi,
|
|
@@ -76,8 +76,8 @@ Reason: ${$}`
|
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
const { request: k } = await
|
|
80
|
-
account:
|
|
79
|
+
const { request: k } = await r.simulateContract({
|
|
80
|
+
account: n,
|
|
81
81
|
chain: b[a],
|
|
82
82
|
address: t.tellerContracts[a].address,
|
|
83
83
|
abi: t.tellerContracts[a].abi,
|
|
@@ -91,32 +91,32 @@ async function Y({
|
|
|
91
91
|
approve: u = !0,
|
|
92
92
|
token: d = D.LBTC,
|
|
93
93
|
vaultKey: o = F.Veda,
|
|
94
|
-
account:
|
|
94
|
+
account: n,
|
|
95
95
|
chainId: a,
|
|
96
96
|
provider: f,
|
|
97
|
-
rpcUrl:
|
|
97
|
+
rpcUrl: s,
|
|
98
98
|
env: C
|
|
99
99
|
}) {
|
|
100
|
-
const t =
|
|
100
|
+
const t = R[o];
|
|
101
101
|
if (!t)
|
|
102
102
|
throw new Error(`Unknown vault key: ${o}`);
|
|
103
103
|
if (!H(a))
|
|
104
104
|
throw new Error(
|
|
105
105
|
`Unsupported chain id: ${a}. Please switch to one of the supported chains: ${t.chains.join(", ")}`
|
|
106
106
|
);
|
|
107
|
-
const
|
|
107
|
+
const r = A({ chainId: a, rpcUrl: s }), w = y({ provider: f, chainId: a }), e = await q(d, a, C, s);
|
|
108
108
|
if (!e)
|
|
109
109
|
throw new Error(`Unknown withdraw token: ${d}`);
|
|
110
|
-
const i = m(l), c = P(V(i, t.decimals)), T = await
|
|
110
|
+
const i = m(l), c = P(V(i, t.decimals)), T = await r.readContract({
|
|
111
111
|
address: t.lensContract.address,
|
|
112
112
|
abi: t.lensContract.abi,
|
|
113
113
|
functionName: "balanceOf",
|
|
114
|
-
args: [
|
|
115
|
-
}), h = g(String(T), t.decimals), E = await
|
|
114
|
+
args: [n, t.vaultContract.address]
|
|
115
|
+
}), h = g(String(T), t.decimals), E = await r.readContract({
|
|
116
116
|
address: t.vaultContract.address,
|
|
117
117
|
abi: t.vaultContract.abi,
|
|
118
118
|
functionName: "allowance",
|
|
119
|
-
args: [
|
|
119
|
+
args: [n, t.withdrawQueueContracts[a].address]
|
|
120
120
|
}), p = g(String(E), t.decimals);
|
|
121
121
|
if (i.isGreaterThan(h))
|
|
122
122
|
throw new Error(
|
|
@@ -132,8 +132,8 @@ Allowance: ${p.toFixed()}`;
|
|
|
132
132
|
throw new Error($);
|
|
133
133
|
try {
|
|
134
134
|
console.info(`Trying to approve ${c}`);
|
|
135
|
-
const { request: B } = await
|
|
136
|
-
account:
|
|
135
|
+
const { request: B } = await r.simulateContract({
|
|
136
|
+
account: n,
|
|
137
137
|
chain: b[a],
|
|
138
138
|
address: t.vaultContract.address,
|
|
139
139
|
abi: t.vaultContract.abi,
|
|
@@ -149,11 +149,11 @@ Reason: ${N}`
|
|
|
149
149
|
);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
const k = m(Date.now()).dividedBy(1e3).plus(m(t.queueWithdrawDaysValid).multipliedBy(Q / 1e3)).decimalPlaces(0, m.ROUND_DOWN),
|
|
152
|
+
const k = m(Date.now()).dividedBy(1e3).plus(m(t.queueWithdrawDaysValid).multipliedBy(Q / 1e3)).decimalPlaces(0, m.ROUND_DOWN), U = m(t.queueWithdrawDiscountPercent).multipliedBy(
|
|
153
153
|
1e4
|
|
154
154
|
// 1% = 10000
|
|
155
|
-
), { request: x } = await
|
|
156
|
-
account:
|
|
155
|
+
), { request: x } = await r.simulateContract({
|
|
156
|
+
account: n,
|
|
157
157
|
chain: b[a],
|
|
158
158
|
address: t.withdrawQueueContracts[a].address,
|
|
159
159
|
abi: t.withdrawQueueContracts[a].abi,
|
|
@@ -163,7 +163,7 @@ Reason: ${N}`
|
|
|
163
163
|
e.address,
|
|
164
164
|
[k.toFixed(0), 0n, c, !1],
|
|
165
165
|
t.accountantContract.address,
|
|
166
|
-
|
|
166
|
+
U.toFixed(0)
|
|
167
167
|
]
|
|
168
168
|
});
|
|
169
169
|
return await w.writeContract(x);
|
|
@@ -173,37 +173,37 @@ async function z({
|
|
|
173
173
|
vaultKey: u = F.Veda,
|
|
174
174
|
account: d,
|
|
175
175
|
chainId: o,
|
|
176
|
-
provider:
|
|
176
|
+
provider: n,
|
|
177
177
|
rpcUrl: a,
|
|
178
178
|
env: f
|
|
179
179
|
}) {
|
|
180
|
-
const
|
|
181
|
-
if (!
|
|
180
|
+
const s = R[u];
|
|
181
|
+
if (!s)
|
|
182
182
|
throw new Error(`Unknown vault key: ${u}`);
|
|
183
183
|
if (!H(o))
|
|
184
184
|
throw new Error(
|
|
185
|
-
`Unsupported chain id: ${o}. Please switch to one of the supported chains: ${
|
|
185
|
+
`Unsupported chain id: ${o}. Please switch to one of the supported chains: ${s.chains.join(", ")}`
|
|
186
186
|
);
|
|
187
|
-
const C =
|
|
188
|
-
if (!
|
|
187
|
+
const C = A({ chainId: o, rpcUrl: a }), t = y({ provider: n, chainId: o }), r = await q(l, o, f, a);
|
|
188
|
+
if (!r)
|
|
189
189
|
throw new Error(`Unknown withdraw token: ${l}`);
|
|
190
190
|
const { request: w } = await C.simulateContract({
|
|
191
191
|
account: d,
|
|
192
192
|
chain: b[o],
|
|
193
|
-
address:
|
|
194
|
-
abi:
|
|
193
|
+
address: s.withdrawQueueContracts[o].address,
|
|
194
|
+
abi: s.withdrawQueueContracts[o].abi,
|
|
195
195
|
functionName: "updateAtomicRequest",
|
|
196
196
|
args: [
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
s.vaultContract.address,
|
|
198
|
+
r.address,
|
|
199
199
|
[0, 0, 0, !1]
|
|
200
200
|
]
|
|
201
201
|
});
|
|
202
202
|
return await t.writeContract(w);
|
|
203
203
|
}
|
|
204
204
|
export {
|
|
205
|
-
z as
|
|
206
|
-
j as
|
|
207
|
-
Y as
|
|
205
|
+
z as cancelWithdraw,
|
|
206
|
+
j as deposit,
|
|
207
|
+
Y as queueWithdraw
|
|
208
208
|
};
|
|
209
|
-
//# sourceMappingURL=withdraw-
|
|
209
|
+
//# sourceMappingURL=withdraw-DgjuaUN3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdraw-hHueI2p7.js","sources":["../../src/vaults/lib/ops/deposit.ts","../../src/vaults/lib/ops/withdraw.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type DepositParameters = {\n /** The amount to be deposited into the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Deposits specified amount to the chosen DeFi vault.\n * @param {DepositParameters} parameters\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function deposit({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: DepositParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const depositToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!depositToken) {\n throw new Error(`Unknown deposit token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(\n toBaseDenomination(amount, depositToken.decimals),\n );\n\n const allowanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'allowance',\n args: [account, vault.vaultContract.address],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n depositToken.decimals,\n );\n\n const balanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n depositToken.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The deposit amount exceeds the account's balance. \\nDeposit amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The deposit amount exceeds allowance. \\nDeposit amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n console.info(exceededMessage);\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'approve',\n args: [vault.vaultContract.address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // deposit funds via the teller contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.tellerContracts[chainId].address,\n abi: vault.tellerContracts[chainId].abi,\n functionName: 'deposit',\n args: [depositToken.address, amountBase, 0n],\n });\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { DAY } from '../../../utils/time';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type QueueWithdrawParameters = {\n /** The amount to be withdrawn from the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the withdraw amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Queues withdrawal from the DeFi vault.\n * @param {QueueWithdrawParameters} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function queueWithdraw({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: QueueWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(toBaseDenomination(amount, vault.decimals));\n\n const balanceRaw = await publicClient.readContract({\n address: vault.lensContract.address,\n abi: vault.lensContract.abi,\n functionName: 'balanceOf',\n args: [account, vault.vaultContract.address],\n });\n const balance = fromBaseDenomination(String(balanceRaw), vault.decimals);\n\n const allowanceRaw = await publicClient.readContract({\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'allowance',\n args: [account, vault.withdrawQueueContracts[chainId].address],\n });\n const allowance = fromBaseDenomination(String(allowanceRaw), vault.decimals);\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The withdraw amount exceeds the account's balance. \\nWithdraw amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The withdraw amount exceeds allowance. \\nWithdraw amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'approve',\n args: [vault.withdrawQueueContracts[chainId].address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // queue withdraw vault token to wihdraw token via the withdraw queue contract\n const expiry = BigNumber(Date.now())\n .dividedBy(1000)\n .plus(BigNumber(vault.queueWithdrawDaysValid).multipliedBy(DAY / 1000))\n .decimalPlaces(0, BigNumber.ROUND_DOWN); // expiry = now(seconds) + days(seconds)\n\n const discount = BigNumber(vault.queueWithdrawDiscountPercent).multipliedBy(\n 10000, // 1% = 10000\n );\n\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'safeUpdateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [expiry.toFixed(0), 0n, amountBase, false],\n vault.accountantContract.address,\n discount.toFixed(0),\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n\nexport type CancelWithdrawParameters = Pick<\n QueueWithdrawParameters,\n 'token' | 'vaultKey'\n> &\n CommonWriteParameters;\n\n/**\n * Cancels queued withdrawal.\n * @param {CancelWithdrawParameters} parameters - The parameters.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n * @returns\n */\nexport async function cancelWithdraw({\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: CancelWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n // cancel withdrawal via withdraw queue contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'updateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [0, 0, 0, false],\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n"],"names":["deposit","amountRaw","approve","token","Token","vaultKey","Vault","account","chainId","provider","rpcUrl","env","vault","VAULTS","isVedaVaultChain","publicClient","makePublicClient","walletClient","makeWalletClient","depositToken","getTokenInfo","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","allowanceRaw","allowance","fromBaseDenomination","balanceRaw","balance","exceededMessage","request","CHAIN_ID_TO_VIEM_CHAIN_MAP","txHash","err","msg","getErrorMessage","queueWithdraw","withdrawToken","expiry","DAY","discount","cancelWithdraw"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withdraw-DgjuaUN3.js","sources":["../../src/vaults/lib/ops/deposit.ts","../../src/vaults/lib/ops/withdraw.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type DepositParameters = {\n /** The amount to be deposited into the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Deposits specified amount to the chosen DeFi vault.\n * @param {DepositParameters} parameters\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function deposit({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: DepositParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const depositToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!depositToken) {\n throw new Error(`Unknown deposit token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(\n toBaseDenomination(amount, depositToken.decimals),\n );\n\n const allowanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'allowance',\n args: [account, vault.vaultContract.address],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n depositToken.decimals,\n );\n\n const balanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n depositToken.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The deposit amount exceeds the account's balance. \\nDeposit amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The deposit amount exceeds allowance. \\nDeposit amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n console.info(exceededMessage);\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'approve',\n args: [vault.vaultContract.address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // deposit funds via the teller contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.tellerContracts[chainId].address,\n abi: vault.tellerContracts[chainId].abi,\n functionName: 'deposit',\n args: [depositToken.address, amountBase, 0n],\n });\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { DAY } from '../../../utils/time';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type QueueWithdrawParameters = {\n /** The amount to be withdrawn from the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the withdraw amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Queues withdrawal from the DeFi vault.\n * @param {QueueWithdrawParameters} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function queueWithdraw({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: QueueWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(toBaseDenomination(amount, vault.decimals));\n\n const balanceRaw = await publicClient.readContract({\n address: vault.lensContract.address,\n abi: vault.lensContract.abi,\n functionName: 'balanceOf',\n args: [account, vault.vaultContract.address],\n });\n const balance = fromBaseDenomination(String(balanceRaw), vault.decimals);\n\n const allowanceRaw = await publicClient.readContract({\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'allowance',\n args: [account, vault.withdrawQueueContracts[chainId].address],\n });\n const allowance = fromBaseDenomination(String(allowanceRaw), vault.decimals);\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The withdraw amount exceeds the account's balance. \\nWithdraw amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The withdraw amount exceeds allowance. \\nWithdraw amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'approve',\n args: [vault.withdrawQueueContracts[chainId].address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // queue withdraw vault token to wihdraw token via the withdraw queue contract\n const expiry = BigNumber(Date.now())\n .dividedBy(1000)\n .plus(BigNumber(vault.queueWithdrawDaysValid).multipliedBy(DAY / 1000))\n .decimalPlaces(0, BigNumber.ROUND_DOWN); // expiry = now(seconds) + days(seconds)\n\n const discount = BigNumber(vault.queueWithdrawDiscountPercent).multipliedBy(\n 10000, // 1% = 10000\n );\n\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'safeUpdateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [expiry.toFixed(0), 0n, amountBase, false],\n vault.accountantContract.address,\n discount.toFixed(0),\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n\nexport type CancelWithdrawParameters = Pick<\n QueueWithdrawParameters,\n 'token' | 'vaultKey'\n> &\n CommonWriteParameters;\n\n/**\n * Cancels queued withdrawal.\n * @param {CancelWithdrawParameters} parameters - The parameters.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n * @returns\n */\nexport async function cancelWithdraw({\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: CancelWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n // cancel withdrawal via withdraw queue contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'updateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [0, 0, 0, false],\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n"],"names":["deposit","amountRaw","approve","token","Token","vaultKey","Vault","account","chainId","provider","rpcUrl","env","vault","VAULTS","isVedaVaultChain","publicClient","makePublicClient","walletClient","makeWalletClient","depositToken","getTokenInfo","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","allowanceRaw","allowance","fromBaseDenomination","balanceRaw","balance","exceededMessage","request","CHAIN_ID_TO_VIEM_CHAIN_MAP","txHash","err","msg","getErrorMessage","queueWithdraw","withdrawToken","expiry","DAY","discount","cancelWithdraw"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const f=require("bignumber.js"),n=require("./tokens-
|
|
1
|
+
"use strict";const f=require("bignumber.js"),n=require("./tokens-BkvA0Gp1.cjs"),l=require("./token-addresses-nzvTOi24.cjs"),q=require("./numbers-3LtmxfD8.cjs"),u=require("./config-DmCmanM_.cjs"),B=require("./time-I-BeyUkG.cjs");async function D({amount:m,approve:h=!0,token:w=l.Token.LBTC,vaultKey:o=u.Vault.Veda,account:s,chainId:e,provider:p,rpcUrl:i,env:b}){const t=u.VAULTS[o];if(!t)throw new Error(`Unknown vault key: ${o}`);if(!u.isVedaVaultChain(e))throw new Error(`Unsupported chain id: ${e}. Please switch to one of the supported chains: ${t.chains.join(", ")}`);const r=n.makePublicClient({chainId:e,rpcUrl:i}),C=l.makeWalletClient({provider:p,chainId:e}),a=await n.getTokenInfo(w,e,b,i);if(!a)throw new Error(`Unknown deposit token: ${w}`);const c=f(m),d=q.toBigInt(n.toBaseDenomination(c,a.decimals)),x=await r.readContract({address:a.address,abi:a.abi,functionName:"allowance",args:[s,t.vaultContract.address]}),$=n.fromBaseDenomination(String(x),a.decimals),k=await r.readContract({address:a.address,abi:a.abi,functionName:"balanceOf",args:[s]}),g=n.fromBaseDenomination(String(k),a.decimals);if(c.isGreaterThan(g))throw new Error(`The deposit amount exceeds the account's balance.
|
|
2
2
|
Deposit amount: ${c.toFixed()}
|
|
3
3
|
Balance: ${g.toFixed()}`);if(c.isGreaterThan($)){const A=`The deposit amount exceeds allowance.
|
|
4
4
|
Deposit amount: ${c.toFixed()}
|
|
@@ -9,4 +9,4 @@ Balance: ${$.toFixed()}`);if(c.isGreaterThan(g)){const T=`The withdraw amount ex
|
|
|
9
9
|
Withdraw amount: ${c.toFixed()}
|
|
10
10
|
Allowance: ${g.toFixed()}`;if(!h)throw new Error(T);try{console.info(`Trying to approve ${d}`);const{request:E}=await r.simulateContract({account:s,chain:l.CHAIN_ID_TO_VIEM_CHAIN_MAP[e],address:t.vaultContract.address,abi:t.vaultContract.abi,functionName:"approve",args:[t.withdrawQueueContracts[e].address,d]}),N=await C.writeContract(E);console.info(`Approve tx hash: ${N}`),console.info(`Approved ${d} for ${t.vaultContract.address}`)}catch(E){const N=n.getErrorMessage(E);throw new Error(`Could not approve ${d} for ${t.vaultContract.address}.
|
|
11
11
|
Reason: ${N}`)}}const _=f(Date.now()).dividedBy(1e3).plus(f(t.queueWithdrawDaysValid).multipliedBy(B.DAY/1e3)).decimalPlaces(0,f.ROUND_DOWN),V=f(t.queueWithdrawDiscountPercent).multipliedBy(1e4),{request:A}=await r.simulateContract({account:s,chain:l.CHAIN_ID_TO_VIEM_CHAIN_MAP[e],address:t.withdrawQueueContracts[e].address,abi:t.withdrawQueueContracts[e].abi,functionName:"safeUpdateAtomicRequest",args:[t.vaultContract.address,a.address,[_.toFixed(0),0n,d,!1],t.accountantContract.address,V.toFixed(0)]});return await C.writeContract(A)}async function M({token:m=l.Token.LBTC,vaultKey:h=u.Vault.Veda,account:w,chainId:o,provider:s,rpcUrl:e,env:p}){const i=u.VAULTS[h];if(!i)throw new Error(`Unknown vault key: ${h}`);if(!u.isVedaVaultChain(o))throw new Error(`Unsupported chain id: ${o}. Please switch to one of the supported chains: ${i.chains.join(", ")}`);const b=n.makePublicClient({chainId:o,rpcUrl:e}),t=l.makeWalletClient({provider:s,chainId:o}),r=await n.getTokenInfo(m,o,p,e);if(!r)throw new Error(`Unknown withdraw token: ${m}`);const{request:C}=await b.simulateContract({account:w,chain:l.CHAIN_ID_TO_VIEM_CHAIN_MAP[o],address:i.withdrawQueueContracts[o].address,abi:i.withdrawQueueContracts[o].abi,functionName:"updateAtomicRequest",args:[i.vaultContract.address,r.address,[0,0,0,!1]]});return await t.writeContract(C)}exports.cancelWithdraw=M;exports.deposit=D;exports.queueWithdraw=H;
|
|
12
|
-
//# sourceMappingURL=withdraw-
|
|
12
|
+
//# sourceMappingURL=withdraw-i0AueZ_C.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdraw-C1fMFSwy.cjs","sources":["../../src/vaults/lib/ops/deposit.ts","../../src/vaults/lib/ops/withdraw.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type DepositParameters = {\n /** The amount to be deposited into the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Deposits specified amount to the chosen DeFi vault.\n * @param {DepositParameters} parameters\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function deposit({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: DepositParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const depositToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!depositToken) {\n throw new Error(`Unknown deposit token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(\n toBaseDenomination(amount, depositToken.decimals),\n );\n\n const allowanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'allowance',\n args: [account, vault.vaultContract.address],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n depositToken.decimals,\n );\n\n const balanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n depositToken.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The deposit amount exceeds the account's balance. \\nDeposit amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The deposit amount exceeds allowance. \\nDeposit amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n console.info(exceededMessage);\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'approve',\n args: [vault.vaultContract.address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // deposit funds via the teller contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.tellerContracts[chainId].address,\n abi: vault.tellerContracts[chainId].abi,\n functionName: 'deposit',\n args: [depositToken.address, amountBase, 0n],\n });\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { DAY } from '../../../utils/time';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type QueueWithdrawParameters = {\n /** The amount to be withdrawn from the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the withdraw amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Queues withdrawal from the DeFi vault.\n * @param {QueueWithdrawParameters} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function queueWithdraw({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: QueueWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(toBaseDenomination(amount, vault.decimals));\n\n const balanceRaw = await publicClient.readContract({\n address: vault.lensContract.address,\n abi: vault.lensContract.abi,\n functionName: 'balanceOf',\n args: [account, vault.vaultContract.address],\n });\n const balance = fromBaseDenomination(String(balanceRaw), vault.decimals);\n\n const allowanceRaw = await publicClient.readContract({\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'allowance',\n args: [account, vault.withdrawQueueContracts[chainId].address],\n });\n const allowance = fromBaseDenomination(String(allowanceRaw), vault.decimals);\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The withdraw amount exceeds the account's balance. \\nWithdraw amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The withdraw amount exceeds allowance. \\nWithdraw amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'approve',\n args: [vault.withdrawQueueContracts[chainId].address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // queue withdraw vault token to wihdraw token via the withdraw queue contract\n const expiry = BigNumber(Date.now())\n .dividedBy(1000)\n .plus(BigNumber(vault.queueWithdrawDaysValid).multipliedBy(DAY / 1000))\n .decimalPlaces(0, BigNumber.ROUND_DOWN); // expiry = now(seconds) + days(seconds)\n\n const discount = BigNumber(vault.queueWithdrawDiscountPercent).multipliedBy(\n 10000, // 1% = 10000\n );\n\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'safeUpdateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [expiry.toFixed(0), 0n, amountBase, false],\n vault.accountantContract.address,\n discount.toFixed(0),\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n\nexport type CancelWithdrawParameters = Pick<\n QueueWithdrawParameters,\n 'token' | 'vaultKey'\n> &\n CommonWriteParameters;\n\n/**\n * Cancels queued withdrawal.\n * @param {CancelWithdrawParameters} parameters - The parameters.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n * @returns\n */\nexport async function cancelWithdraw({\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: CancelWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n // cancel withdrawal via withdraw queue contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'updateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [0, 0, 0, false],\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n"],"names":["deposit","amountRaw","approve","token","Token","vaultKey","Vault","account","chainId","provider","rpcUrl","env","vault","VAULTS","isVedaVaultChain","publicClient","makePublicClient","walletClient","makeWalletClient","depositToken","getTokenInfo","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","allowanceRaw","allowance","fromBaseDenomination","balanceRaw","balance","exceededMessage","request","CHAIN_ID_TO_VIEM_CHAIN_MAP","txHash","err","msg","getErrorMessage","queueWithdraw","withdrawToken","expiry","DAY","discount","cancelWithdraw"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withdraw-i0AueZ_C.cjs","sources":["../../src/vaults/lib/ops/deposit.ts","../../src/vaults/lib/ops/withdraw.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type DepositParameters = {\n /** The amount to be deposited into the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the deposit amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Deposits specified amount to the chosen DeFi vault.\n * @param {DepositParameters} parameters\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function deposit({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: DepositParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const depositToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!depositToken) {\n throw new Error(`Unknown deposit token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(\n toBaseDenomination(amount, depositToken.decimals),\n );\n\n const allowanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'allowance',\n args: [account, vault.vaultContract.address],\n });\n const allowance = fromBaseDenomination(\n String(allowanceRaw),\n depositToken.decimals,\n );\n\n const balanceRaw = await publicClient.readContract({\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'balanceOf',\n args: [account],\n });\n const balance = fromBaseDenomination(\n String(balanceRaw),\n depositToken.decimals,\n );\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The deposit amount exceeds the account's balance. \\nDeposit amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The deposit amount exceeds allowance. \\nDeposit amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n console.info(exceededMessage);\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: depositToken.address,\n abi: depositToken.abi,\n functionName: 'approve',\n args: [vault.vaultContract.address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // deposit funds via the teller contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.tellerContracts[chainId].address,\n abi: vault.tellerContracts[chainId].abi,\n functionName: 'deposit',\n args: [depositToken.address, amountBase, 0n],\n });\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n","import BigNumber from 'bignumber.js';\n\nimport { makePublicClient } from '../../../clients/public-client';\nimport { makeWalletClient } from '../../../clients/wallet-client';\nimport { CHAIN_ID_TO_VIEM_CHAIN_MAP } from '../../../common/chains';\nimport { CommonWriteParameters } from '../../../common/parameters';\nimport { Token } from '../../../tokens/token-addresses';\nimport {\n fromBaseDenomination,\n getTokenInfo,\n toBaseDenomination,\n} from '../../../tokens/tokens';\nimport { getErrorMessage } from '../../../utils/err';\nimport toBigInt from '../../../utils/numbers';\nimport { DAY } from '../../../utils/time';\nimport { isVedaVaultChain, Vault, VAULTS } from '../config';\n\nexport type QueueWithdrawParameters = {\n /** The amount to be withdrawn from the DeFi vault. */\n amount: BigNumber.Value;\n /**\n * A flag determining whether the amount should be approved within\n * the execution of this function. If set to `false` it will\n * throw an error when the withdraw amount exceeds allowance.\n */\n approve?: boolean;\n /** The optional deposit asset. */\n token?: Token;\n /** The vault identifier. */\n vaultKey?: Vault;\n} & CommonWriteParameters;\n\n/**\n * Queues withdrawal from the DeFi vault.\n * @param {QueueWithdrawParameters} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The deposit amount.\n * @param {boolean} parameters.approve - The optional flag determining whether approve actions should be performed.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n */\nexport async function queueWithdraw({\n amount: amountRaw,\n approve = true,\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: QueueWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n const amount = BigNumber(amountRaw);\n const amountBase = toBigInt(toBaseDenomination(amount, vault.decimals));\n\n const balanceRaw = await publicClient.readContract({\n address: vault.lensContract.address,\n abi: vault.lensContract.abi,\n functionName: 'balanceOf',\n args: [account, vault.vaultContract.address],\n });\n const balance = fromBaseDenomination(String(balanceRaw), vault.decimals);\n\n const allowanceRaw = await publicClient.readContract({\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'allowance',\n args: [account, vault.withdrawQueueContracts[chainId].address],\n });\n const allowance = fromBaseDenomination(String(allowanceRaw), vault.decimals);\n\n // check if amount exceeds balance\n if (amount.isGreaterThan(balance)) {\n throw new Error(\n `The withdraw amount exceeds the account's balance. \\nWithdraw amount: ${amount.toFixed()} \\nBalance: ${balance.toFixed()}`,\n );\n }\n\n // check if amount exceeds allowance\n if (amount.isGreaterThan(allowance)) {\n const exceededMessage = `The withdraw amount exceeds allowance. \\nWithdraw amount: ${amount.toFixed()} \\nAllowance: ${allowance.toFixed()}`;\n if (!approve) {\n throw new Error(exceededMessage);\n }\n\n // try to approve new amount\n try {\n console.info(`Trying to approve ${amountBase}`);\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.vaultContract.address,\n abi: vault.vaultContract.abi,\n functionName: 'approve',\n args: [vault.withdrawQueueContracts[chainId].address, amountBase],\n });\n\n const txHash = await walletClient.writeContract(request);\n console.info(`Approve tx hash: ${txHash}`);\n console.info(`Approved ${amountBase} for ${vault.vaultContract.address}`);\n } catch (err) {\n const msg = getErrorMessage(err);\n throw new Error(\n `Could not approve ${amountBase} for ${vault.vaultContract.address}. \\nReason: ${msg}`,\n );\n }\n }\n\n // queue withdraw vault token to wihdraw token via the withdraw queue contract\n const expiry = BigNumber(Date.now())\n .dividedBy(1000)\n .plus(BigNumber(vault.queueWithdrawDaysValid).multipliedBy(DAY / 1000))\n .decimalPlaces(0, BigNumber.ROUND_DOWN); // expiry = now(seconds) + days(seconds)\n\n const discount = BigNumber(vault.queueWithdrawDiscountPercent).multipliedBy(\n 10000, // 1% = 10000\n );\n\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'safeUpdateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [expiry.toFixed(0), 0n, amountBase, false],\n vault.accountantContract.address,\n discount.toFixed(0),\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n\nexport type CancelWithdrawParameters = Pick<\n QueueWithdrawParameters,\n 'token' | 'vaultKey'\n> &\n CommonWriteParameters;\n\n/**\n * Cancels queued withdrawal.\n * @param {CancelWithdrawParameters} parameters - The parameters.\n * @param {Token} parameters.token - The optional deposit asset.\n * @param {Vault} parameters.vaultKey - The vault identifier.\n * @param {Address} parameters.account - The EVM account address.\n * @param {ChainId} parameters.chainId - The chain id.\n * @param {EIP1193Provider} parameters.provider - The EIP1193 provider.\n * @param {string} parameters.rpcUrl - The optional rpc url.\n *\n * @returns {Promise<Hash>}\n * @returns\n */\nexport async function cancelWithdraw({\n token = Token.LBTC,\n vaultKey = Vault.Veda,\n account,\n chainId,\n provider,\n rpcUrl,\n env,\n}: CancelWithdrawParameters) {\n const vault = VAULTS[vaultKey];\n if (!vault) {\n throw new Error(`Unknown vault key: ${vaultKey}`);\n }\n\n if (!isVedaVaultChain(chainId)) {\n throw new Error(\n `Unsupported chain id: ${chainId}. Please switch to one of the supported chains: ${vault.chains.join(', ')}`,\n );\n }\n\n const publicClient = makePublicClient({ chainId, rpcUrl });\n const walletClient = makeWalletClient({ provider, chainId });\n\n const withdrawToken = await getTokenInfo(token, chainId, env, rpcUrl);\n if (!withdrawToken) {\n throw new Error(`Unknown withdraw token: ${token}`);\n }\n\n // cancel withdrawal via withdraw queue contract\n const { request } = await publicClient.simulateContract({\n account,\n chain: CHAIN_ID_TO_VIEM_CHAIN_MAP[chainId],\n address: vault.withdrawQueueContracts[chainId].address,\n abi: vault.withdrawQueueContracts[chainId].abi,\n functionName: 'updateAtomicRequest',\n args: [\n vault.vaultContract.address,\n withdrawToken.address,\n [0, 0, 0, false],\n ],\n });\n\n const txHash = await walletClient.writeContract(request);\n return txHash;\n}\n"],"names":["deposit","amountRaw","approve","token","Token","vaultKey","Vault","account","chainId","provider","rpcUrl","env","vault","VAULTS","isVedaVaultChain","publicClient","makePublicClient","walletClient","makeWalletClient","depositToken","getTokenInfo","amount","BigNumber","amountBase","toBigInt","toBaseDenomination","allowanceRaw","allowance","fromBaseDenomination","balanceRaw","balance","exceededMessage","request","CHAIN_ID_TO_VIEM_CHAIN_MAP","txHash","err","msg","getErrorMessage","queueWithdraw","withdrawToken","expiry","DAY","discount","cancelWithdraw"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,eAAO,MAAM,qBAAqB,SAAS,CAAC"}
|
package/dist/contracts.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/unstakeLBTC-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/unstakeLBTC-CmoCaGX9.cjs"),t=require("./chunks/getSharesByAddress-D8hehnP1.cjs"),n=require("./chunks/approveLBTC-CUXEC3kw.cjs");exports.BasculeDepositStatus=e.BasculeDepositStatus;exports.approveToken=e.approveToken;exports.claimLBTC=e.claimLBTC;exports.depositToken=e.depositToken;exports.getAddressConfirmationMessage=e.getAddressConfirmationMessage;exports.getAssetRouterAddress=e.getAssetRouterAddress;exports.getBasculeDepositStatus=e.getBasculeDepositStatus;exports.getLBTCBurningFee=e.getLBTCBurningFee;exports.getLBTCMintingFee=e.getLBTCMintingFee;exports.getMinRedeemAmount=e.getMinRedeemAmount;exports.getMinRedeemAmountWithFee=e.getMinRedeemAmountWithFee;exports.getMintingFee=e.getMintingFee;exports.getPermitNonce=e.getPermitNonce;exports.getRedeemFee=e.getRedeemFee;exports.getStakeAndBakeConfig=e.getStakeAndBakeConfig;exports.getStakeAndBakeFee=e.getStakeAndBakeFee;exports.getTokenAllowance=e.getTokenAllowance;exports.mintToken=e.mintToken;exports.redeemToken=e.redeemToken;exports.signLbtcDestinationAddr=e.signLbtcDestinationAddr;exports.signNetworkFee=e.signNetworkFee;exports.signStakeAndBake=e.signStakeAndBake;exports.unstakeLBTC=e.unstakeLBTC;exports.claimUnstakeRedeem=t.claimUnstakeRedeem;exports.getLBTCTotalSupply=t.getLBTCTotalSupply;exports.getShareValue=t.getShareValue;exports.getSharesByAddress=t.getSharesByAddress;exports.approveLBTC=n.approveLBTC;
|
|
2
2
|
//# sourceMappingURL=contracts.cjs.map
|
package/dist/contracts.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { BasculeDepositStatus as n, approveToken as o, claimLBTC as a, depositToken as g, getAddressConfirmationMessage as s, getAssetRouterAddress as i, getBasculeDepositStatus as r, getLBTCBurningFee as d, getLBTCMintingFee as m, getMinRedeemAmount as k, getMinRedeemAmountWithFee as B, getMintingFee as p, getPermitNonce as T, getRedeemFee as u, getStakeAndBakeConfig as A, getStakeAndBakeFee as l, getTokenAllowance as C, mintToken as S, redeemToken as c, signLbtcDestinationAddr as F, signNetworkFee as L, signStakeAndBake as f, unstakeLBTC as M } from "./chunks/unstakeLBTC-DtvVbpbU.js";
|
|
2
|
+
import { claimUnstakeRedeem as h, getLBTCTotalSupply as x, getShareValue as D, getSharesByAddress as v } from "./chunks/getSharesByAddress-_tBaIBsw.js";
|
|
3
|
+
import { approveLBTC as y } from "./chunks/approveLBTC-Du2El1tW.js";
|
|
4
4
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
n as BasculeDepositStatus,
|
|
6
|
+
y as approveLBTC,
|
|
7
|
+
o as approveToken,
|
|
8
|
+
a as claimLBTC,
|
|
9
9
|
h as claimUnstakeRedeem,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
g as depositToken,
|
|
11
|
+
s as getAddressConfirmationMessage,
|
|
12
12
|
i as getAssetRouterAddress,
|
|
13
13
|
r as getBasculeDepositStatus,
|
|
14
14
|
d as getLBTCBurningFee,
|
|
@@ -17,15 +17,15 @@ export {
|
|
|
17
17
|
k as getMinRedeemAmount,
|
|
18
18
|
B as getMinRedeemAmountWithFee,
|
|
19
19
|
p as getMintingFee,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
T as getPermitNonce,
|
|
21
|
+
u as getRedeemFee,
|
|
22
|
+
D as getShareValue,
|
|
23
|
+
v as getSharesByAddress,
|
|
24
24
|
A as getStakeAndBakeConfig,
|
|
25
25
|
l as getStakeAndBakeFee,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
C as getTokenAllowance,
|
|
27
|
+
S as mintToken,
|
|
28
|
+
c as redeemToken,
|
|
29
29
|
F as signLbtcDestinationAddr,
|
|
30
30
|
L as signNetworkFee,
|
|
31
31
|
f as signStakeAndBake,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/assets/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/assets/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,YAAY,EAAW,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,YAqV3B,CAAC"}
|
package/dist/core.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/statusConstants-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/statusConstants-Cri7yswV.cjs"),t=require("./chunks/events-5c8IHjEF.cjs"),n=require("./chunks/BtcActions-BOVJrdTI.cjs"),a=require("./chunks/EvmActions-VrDbgMDy.cjs"),d=require("./chunks/index-BKzxeh1Y.cjs"),s=require("./chunks/unstakeLBTC-CmoCaGX9.cjs"),o=require("./chunks/tokens-BkvA0Gp1.cjs"),c=require("./chunks/parameters-DK9cYCAH.cjs"),r=require("./chunks/time-I-BeyUkG.cjs"),i=require("./chunks/defi-registry-DDNavtO1.cjs");exports.BtcActionStatus=e.BtcActionStatus;exports.CHAIN_CATALOG=e.CHAIN_CATALOG;exports.Chain=e.Chain;exports.ContractErrorCode=e.ContractErrorCode;exports.ErrorCode=e.ErrorCode;exports.EvmOperationStatus=e.EvmOperationStatus;exports.LombardError=e.LombardError;exports.NonEvmUnstakeStatus=e.NonEvmUnstakeStatus;exports.PartnerConfiguration=e.PartnerConfiguration;exports.ProviderErrorCode=e.ProviderErrorCode;exports.RegistryErrorCode=e.RegistryErrorCode;exports.SDK_NAME=e.SDK_NAME;exports.SDK_RUNTIME=e.SDK_RUNTIME;exports.SDK_VERSION=e.SDK_VERSION;exports.StepStatus=e.StepStatus;exports.StrategyStatus=e.StrategyStatus;exports.ValidationErrorCode=e.ValidationErrorCode;exports.chainValueToKey=e.chainValueToKey;exports.evmChainIdToChain=e.evmChainIdToChain;exports.getAllAssetChains=e.getAllAssetChains;exports.getAssetAddress=e.getAssetAddress;exports.getAssetChains=e.getAssetChains;exports.getAssetChainsForEnvs=e.getAssetChainsForEnvs;exports.getChainMetadata=e.getChainMetadata;exports.getChainName=e.getChainName;exports.isAssetDeployed=e.isAssetDeployed;exports.isChain=e.isChain;exports.isEvmChain=e.isEvmChain;exports.isLombardError=e.isLombardError;exports.isMainnet=e.isMainnet;exports.isTestnet=e.isTestnet;exports.wrapError=e.wrapError;exports.ApiNamespace=t.ApiNamespace;exports.BridgeEvent=t.BridgeEvent;exports.DeployEvent=t.DeployEvent;exports.DepositEvent=t.DepositEvent;exports.LombardSDK=t.LombardSDK;exports.RedeemEvent=t.RedeemEvent;exports.SolanaActions=t.SolanaActions;exports.StakeEvent=t.StakeEvent;exports.StarknetActions=t.StarknetActions;exports.SuiActions=t.SuiActions;exports.UnstakeEvent=t.UnstakeEvent;exports.createConfig=t.createConfig;exports.createConsoleLogger=t.createConsoleLogger;exports.createLombardSDK=t.createLombardSDK;exports.createSilentLogger=t.createSilentLogger;exports.getSdkHeaders=t.getSdkHeaders;exports.isBtcProvider=t.isBtcProvider;exports.isEvmProvider=t.isEvmProvider;exports.isSolanaProvider=t.isSolanaProvider;exports.isStarknetProvider=t.isStarknetProvider;exports.isSuiProvider=t.isSuiProvider;exports.solanaActions=t.solanaActions;exports.starknetActions=t.starknetActions;exports.suiActions=t.suiActions;exports.BtcActions=n.BtcActions;exports.btcActions=n.btcActions;exports.btcModule=n.btcModule;exports.EvmActions=a.EvmActions;exports.evmActions=a.evmActions;exports.evmModule=a.evmModule;exports.Env=d.r;exports.SignerError=s.SignerError;exports.createAccountFromSigner=s.createAccountFromSigner;exports.createWalletClientFromSigner=s.createWalletClientFromSigner;exports.validateTransactionRequest=s.validateTransactionRequest;exports.RPC_URL=o.RPC_URL;exports.TokenContractAddressNotFoundError=o.TokenContractAddressNotFoundError;exports.UnsupportedTokenFlow=o.UnsupportedTokenFlow;exports.getErrorMessage=o.getErrorMessage;exports.getRpcUrlConfig=o.getRpcUrlConfig;exports.makePublicClient=o.makePublicClient;exports.rpcUrlConfig=o.rpcUrlConfig;exports.isProviderFlow=c.isProviderFlow;exports.isSignerFlow=c.isSignerFlow;exports.DAY=r.DAY;exports.HOUR=r.HOUR;exports.MINUTE=r.MINUTE;exports.SECOND=r.SECOND;exports.ensureHex=r.ensureHex;exports.isHex=r.isHex;exports.now=r.now;exports.toUnix=r.toUnix;exports.AssetId=i.AssetId;exports.DeployProtocol=i.DefiProtocol;exports.assetValueToKey=i.assetValueToKey;exports.isAssetId=i.isAssetId;
|
|
2
2
|
//# sourceMappingURL=core.cjs.map
|