@gauntlet-xyz/sdk 2.5.0 → 3.0.1
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/README.md +89 -6
- package/dist/api/activity.d.ts +1 -1
- package/dist/api/activity.d.ts.map +1 -1
- package/dist/api/caip.d.ts +1 -1
- package/dist/api/caip.d.ts.map +1 -1
- package/dist/api/client.d.ts +43 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/errors.d.ts +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/generated.d.ts +570 -7
- package/dist/api/generated.d.ts.map +1 -1
- package/dist/api/index.d.ts +13 -13
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +48 -8
- package/dist/api/index.js.map +7 -1
- package/dist/api/positionHistory.d.ts +1 -1
- package/dist/api/positionHistory.d.ts.map +1 -1
- package/dist/attribution/index.d.ts +3 -3
- package/dist/attribution/index.d.ts.map +1 -1
- package/dist/chunk-7TA2OJUK.js +4364 -0
- package/dist/chunk-7TA2OJUK.js.map +7 -0
- package/dist/chunk-HC2BS7MK.js +439 -0
- package/dist/chunk-HC2BS7MK.js.map +7 -0
- package/dist/chunk-S2TTA45N.js +2009 -0
- package/dist/chunk-S2TTA45N.js.map +7 -0
- package/dist/chunk-STIV2CC4.js +57 -0
- package/dist/chunk-STIV2CC4.js.map +7 -0
- package/dist/chunk-SU6JAKIA.js +283 -0
- package/dist/chunk-SU6JAKIA.js.map +7 -0
- package/dist/cjs/api/activity.d.ts +70 -0
- package/dist/cjs/api/activity.d.ts.map +1 -0
- package/dist/cjs/api/activity.js +136 -0
- package/dist/cjs/api/activity.js.map +7 -0
- package/dist/cjs/api/caip.d.ts +29 -0
- package/dist/cjs/api/caip.d.ts.map +1 -0
- package/dist/cjs/api/caip.js +59 -0
- package/dist/cjs/api/caip.js.map +7 -0
- package/dist/cjs/api/client.d.ts +173 -0
- package/dist/cjs/api/client.d.ts.map +1 -0
- package/dist/cjs/api/client.js +171 -0
- package/dist/cjs/api/client.js.map +7 -0
- package/dist/cjs/api/decimal.d.ts +21 -0
- package/dist/cjs/api/decimal.d.ts.map +1 -0
- package/dist/cjs/api/decimal.js +60 -0
- package/dist/cjs/api/decimal.js.map +7 -0
- package/dist/cjs/api/errors.d.ts +32 -0
- package/dist/cjs/api/errors.d.ts.map +1 -0
- package/dist/cjs/api/errors.js +80 -0
- package/dist/cjs/api/errors.js.map +7 -0
- package/dist/cjs/api/generated.d.ts +2068 -0
- package/dist/cjs/api/generated.d.ts.map +1 -0
- package/dist/cjs/api/generated.js +17 -0
- package/dist/cjs/api/generated.js.map +7 -0
- package/dist/cjs/api/http.d.ts +16 -0
- package/dist/cjs/api/http.d.ts.map +1 -0
- package/dist/cjs/api/http.js +64 -0
- package/dist/cjs/api/http.js.map +7 -0
- package/dist/cjs/api/index.d.ts +14 -0
- package/dist/cjs/api/index.d.ts.map +1 -0
- package/dist/cjs/api/index.js +73 -0
- package/dist/cjs/api/index.js.map +7 -0
- package/dist/cjs/api/positionHistory.d.ts +44 -0
- package/dist/cjs/api/positionHistory.d.ts.map +1 -0
- package/dist/cjs/api/positionHistory.js +131 -0
- package/dist/cjs/api/positionHistory.js.map +7 -0
- package/dist/cjs/attribution/erc8021.d.ts +9 -0
- package/dist/cjs/attribution/erc8021.d.ts.map +1 -0
- package/dist/cjs/attribution/erc8021.js +37 -0
- package/dist/cjs/attribution/erc8021.js.map +7 -0
- package/dist/cjs/attribution/index.d.ts +25 -0
- package/dist/cjs/attribution/index.d.ts.map +1 -0
- package/dist/cjs/attribution/index.js +68 -0
- package/dist/cjs/attribution/index.js.map +7 -0
- package/dist/cjs/client.d.ts +72 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +80 -0
- package/dist/cjs/client.js.map +7 -0
- package/dist/cjs/constants.d.ts +16 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +83 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/errors.d.ts +85 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +210 -0
- package/dist/cjs/errors.js.map +7 -0
- package/dist/cjs/evm/abis/erc20.d.ts +41 -0
- package/dist/cjs/evm/abis/erc20.d.ts.map +1 -0
- package/dist/cjs/evm/abis/erc20.js +57 -0
- package/dist/cjs/evm/abis/erc20.js.map +7 -0
- package/dist/cjs/evm/abis/erc4626.d.ts +105 -0
- package/dist/cjs/evm/abis/erc4626.d.ts.map +1 -0
- package/dist/cjs/evm/abis/erc4626.js +97 -0
- package/dist/cjs/evm/abis/erc4626.js.map +7 -0
- package/dist/cjs/evm/abis/multiDepositorVault.d.ts +1048 -0
- package/dist/cjs/evm/abis/multiDepositorVault.d.ts.map +1 -0
- package/dist/cjs/evm/abis/multiDepositorVault.js +614 -0
- package/dist/cjs/evm/abis/multiDepositorVault.js.map +7 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts +910 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts.map +1 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.js +517 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.js.map +7 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts +277 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js +166 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js.map +7 -0
- package/dist/cjs/evm/abis/provisioner.d.ts +4984 -0
- package/dist/cjs/evm/abis/provisioner.d.ts.map +1 -0
- package/dist/cjs/evm/abis/provisioner.js +2785 -0
- package/dist/cjs/evm/abis/provisioner.js.map +7 -0
- package/dist/cjs/evm/abis/provisionerV2.d.ts +740 -0
- package/dist/cjs/evm/abis/provisionerV2.d.ts.map +1 -0
- package/dist/cjs/evm/abis/provisionerV2.js +320 -0
- package/dist/cjs/evm/abis/provisionerV2.js.map +7 -0
- package/dist/cjs/evm/adapters/aera.d.ts +6 -0
- package/dist/cjs/evm/adapters/aera.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/aera.js +491 -0
- package/dist/cjs/evm/adapters/aera.js.map +7 -0
- package/dist/cjs/evm/adapters/index.d.ts +3 -0
- package/dist/cjs/evm/adapters/index.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/index.js +41 -0
- package/dist/cjs/evm/adapters/index.js.map +7 -0
- package/dist/cjs/evm/adapters/morpho.d.ts +3 -0
- package/dist/cjs/evm/adapters/morpho.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/morpho.js +103 -0
- package/dist/cjs/evm/adapters/morpho.js.map +7 -0
- package/dist/cjs/evm/adapters/types.d.ts +84 -0
- package/dist/cjs/evm/adapters/types.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/types.js +17 -0
- package/dist/cjs/evm/adapters/types.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts +46 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js +223 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/readOptions.d.ts +8 -0
- package/dist/cjs/evm/aeraContracts/readOptions.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/readOptions.js +31 -0
- package/dist/cjs/evm/aeraContracts/readOptions.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/v1.d.ts +2317 -0
- package/dist/cjs/evm/aeraContracts/v1.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/v1.js +120 -0
- package/dist/cjs/evm/aeraContracts/v1.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/v2.d.ts +4538 -0
- package/dist/cjs/evm/aeraContracts/v2.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/v2.js +449 -0
- package/dist/cjs/evm/aeraContracts/v2.js.map +7 -0
- package/dist/cjs/evm/aeraContracts.d.ts +33 -0
- package/dist/cjs/evm/aeraContracts.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts.js +224 -0
- package/dist/cjs/evm/aeraContracts.js.map +7 -0
- package/dist/cjs/evm/deposit.d.ts +50 -0
- package/dist/cjs/evm/deposit.d.ts.map +1 -0
- package/dist/cjs/evm/deposit.js +112 -0
- package/dist/cjs/evm/deposit.js.map +7 -0
- package/dist/cjs/evm/depositQuote.d.ts +32 -0
- package/dist/cjs/evm/depositQuote.d.ts.map +1 -0
- package/dist/cjs/evm/depositQuote.js +96 -0
- package/dist/cjs/evm/depositQuote.js.map +7 -0
- package/dist/cjs/evm/depositReceiverApproval.d.ts +17 -0
- package/dist/cjs/evm/depositReceiverApproval.d.ts.map +1 -0
- package/dist/cjs/evm/depositReceiverApproval.js +66 -0
- package/dist/cjs/evm/depositReceiverApproval.js.map +7 -0
- package/dist/cjs/evm/index.d.ts +28 -0
- package/dist/cjs/evm/index.d.ts.map +1 -0
- package/dist/cjs/evm/index.js +116 -0
- package/dist/cjs/evm/index.js.map +7 -0
- package/dist/cjs/evm/operationMode.d.ts +9 -0
- package/dist/cjs/evm/operationMode.d.ts.map +1 -0
- package/dist/cjs/evm/operationMode.js +65 -0
- package/dist/cjs/evm/operationMode.js.map +7 -0
- package/dist/cjs/evm/tokenModes.d.ts +22 -0
- package/dist/cjs/evm/tokenModes.d.ts.map +1 -0
- package/dist/cjs/evm/tokenModes.js +47 -0
- package/dist/cjs/evm/tokenModes.js.map +7 -0
- package/dist/cjs/evm/types.d.ts +34 -0
- package/dist/cjs/evm/types.d.ts.map +1 -0
- package/dist/cjs/evm/types.js +32 -0
- package/dist/cjs/evm/types.js.map +7 -0
- package/dist/cjs/evm/userCurrentBalance.d.ts +55 -0
- package/dist/cjs/evm/userCurrentBalance.d.ts.map +1 -0
- package/dist/cjs/evm/userCurrentBalance.js +225 -0
- package/dist/cjs/evm/userCurrentBalance.js.map +7 -0
- package/dist/cjs/evm/vaults.d.ts +44 -0
- package/dist/cjs/evm/vaults.d.ts.map +1 -0
- package/dist/cjs/evm/vaults.js +78 -0
- package/dist/cjs/evm/vaults.js.map +7 -0
- package/dist/cjs/evm/withdraw.d.ts +73 -0
- package/dist/cjs/evm/withdraw.d.ts.map +1 -0
- package/dist/cjs/evm/withdraw.js +161 -0
- package/dist/cjs/evm/withdraw.js.map +7 -0
- package/dist/cjs/evm/withdrawQuote.d.ts +135 -0
- package/dist/cjs/evm/withdrawQuote.d.ts.map +1 -0
- package/dist/cjs/evm/withdrawQuote.js +256 -0
- package/dist/cjs/evm/withdrawQuote.js.map +7 -0
- package/dist/cjs/index.d.ts +31 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +128 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/privy/index.d.ts +52 -0
- package/dist/cjs/privy/index.d.ts.map +1 -0
- package/dist/cjs/privy/index.js +57 -0
- package/dist/cjs/privy/index.js.map +7 -0
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/errors.d.ts +4 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/evm/adapters/aera.d.ts +1 -1
- package/dist/evm/adapters/aera.d.ts.map +1 -1
- package/dist/evm/adapters/index.d.ts +1 -1
- package/dist/evm/adapters/index.d.ts.map +1 -1
- package/dist/evm/adapters/morpho.d.ts +1 -1
- package/dist/evm/adapters/morpho.d.ts.map +1 -1
- package/dist/evm/adapters/types.d.ts +5 -3
- package/dist/evm/adapters/types.d.ts.map +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
- package/dist/evm/aeraContracts/v1.d.ts +2 -2
- package/dist/evm/aeraContracts/v1.d.ts.map +1 -1
- package/dist/evm/aeraContracts/v2.d.ts +25 -4
- package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
- package/dist/evm/aeraContracts.d.ts +2 -2
- package/dist/evm/aeraContracts.d.ts.map +1 -1
- package/dist/evm/deposit.d.ts +4 -2
- package/dist/evm/deposit.d.ts.map +1 -1
- package/dist/evm/depositQuote.d.ts +32 -0
- package/dist/evm/depositQuote.d.ts.map +1 -0
- package/dist/evm/depositReceiverApproval.d.ts +2 -2
- package/dist/evm/depositReceiverApproval.d.ts.map +1 -1
- package/dist/evm/index.d.ts +27 -25
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +88 -12
- package/dist/evm/index.js.map +7 -1
- package/dist/evm/tokenModes.d.ts +2 -2
- package/dist/evm/tokenModes.d.ts.map +1 -1
- package/dist/evm/userCurrentBalance.d.ts +6 -2
- package/dist/evm/userCurrentBalance.d.ts.map +1 -1
- package/dist/evm/vaults.d.ts +2 -9
- package/dist/evm/vaults.d.ts.map +1 -1
- package/dist/evm/withdraw.d.ts +3 -3
- package/dist/evm/withdraw.d.ts.map +1 -1
- package/dist/evm/withdrawQuote.d.ts +14 -6
- package/dist/evm/withdrawQuote.d.ts.map +1 -1
- package/dist/index.d.ts +30 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -14
- package/dist/index.js.map +7 -1
- package/dist/manifest/vaults.json +1958 -0
- package/dist/privy/index.d.ts +1 -1
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +39 -48
- package/dist/privy/index.js.map +7 -1
- package/manifest/vaults.json +22 -395
- package/package.json +43 -9
- package/src/api/client.ts +69 -5
- package/src/api/generated.ts +570 -7
- package/src/api/index.ts +8 -0
- package/src/client.ts +4 -1
- package/src/constants.ts +2 -0
- package/src/errors.ts +7 -0
- package/src/evm/adapters/aera.ts +14 -11
- package/src/evm/adapters/types.ts +2 -0
- package/src/evm/aeraContracts/v2.ts +124 -16
- package/src/evm/deposit.ts +19 -7
- package/src/evm/depositQuote.ts +137 -0
- package/src/evm/index.ts +10 -1
- package/src/evm/userCurrentBalance.ts +12 -1
- package/src/evm/vaults.ts +0 -7
- package/src/evm/withdrawQuote.ts +125 -51
- package/src/index.ts +11 -2
- package/dist/api/activity.js +0 -154
- package/dist/api/activity.js.map +0 -1
- package/dist/api/caip.js +0 -38
- package/dist/api/caip.js.map +0 -1
- package/dist/api/client.js +0 -119
- package/dist/api/client.js.map +0 -1
- package/dist/api/decimal.js +0 -44
- package/dist/api/decimal.js.map +0 -1
- package/dist/api/errors.js +0 -41
- package/dist/api/errors.js.map +0 -1
- package/dist/api/generated.js +0 -6
- package/dist/api/generated.js.map +0 -1
- package/dist/api/http.js +0 -39
- package/dist/api/http.js.map +0 -1
- package/dist/api/positionHistory.js +0 -126
- package/dist/api/positionHistory.js.map +0 -1
- package/dist/attribution/erc8021.js +0 -17
- package/dist/attribution/erc8021.js.map +0 -1
- package/dist/attribution/index.js +0 -45
- package/dist/attribution/index.js.map +0 -1
- package/dist/client.js +0 -72
- package/dist/client.js.map +0 -1
- package/dist/constants.js +0 -28
- package/dist/constants.js.map +0 -1
- package/dist/errors.js +0 -134
- package/dist/errors.js.map +0 -1
- package/dist/evm/abis/erc20.js +0 -30
- package/dist/evm/abis/erc20.js.map +0 -1
- package/dist/evm/abis/erc4626.js +0 -70
- package/dist/evm/abis/erc4626.js.map +0 -1
- package/dist/evm/abis/multiDepositorVault.js +0 -587
- package/dist/evm/abis/multiDepositorVault.js.map +0 -1
- package/dist/evm/abis/priceAndFeeCalculator.js +0 -490
- package/dist/evm/abis/priceAndFeeCalculator.js.map +0 -1
- package/dist/evm/abis/priceAndFeeCalculatorV2.js +0 -141
- package/dist/evm/abis/priceAndFeeCalculatorV2.js.map +0 -1
- package/dist/evm/abis/provisioner.js +0 -2768
- package/dist/evm/abis/provisioner.js.map +0 -1
- package/dist/evm/abis/provisionerV2.js +0 -295
- package/dist/evm/abis/provisionerV2.js.map +0 -1
- package/dist/evm/adapters/aera.js +0 -280
- package/dist/evm/adapters/aera.js.map +0 -1
- package/dist/evm/adapters/index.js +0 -14
- package/dist/evm/adapters/index.js.map +0 -1
- package/dist/evm/adapters/morpho.js +0 -79
- package/dist/evm/adapters/morpho.js.map +0 -1
- package/dist/evm/adapters/types.js +0 -2
- package/dist/evm/adapters/types.js.map +0 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js +0 -174
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js.map +0 -1
- package/dist/evm/aeraContracts/readOptions.js +0 -4
- package/dist/evm/aeraContracts/readOptions.js.map +0 -1
- package/dist/evm/aeraContracts/v1.js +0 -59
- package/dist/evm/aeraContracts/v1.js.map +0 -1
- package/dist/evm/aeraContracts/v2.js +0 -273
- package/dist/evm/aeraContracts/v2.js.map +0 -1
- package/dist/evm/aeraContracts.js +0 -195
- package/dist/evm/aeraContracts.js.map +0 -1
- package/dist/evm/deposit.js +0 -109
- package/dist/evm/deposit.js.map +0 -1
- package/dist/evm/depositReceiverApproval.js +0 -32
- package/dist/evm/depositReceiverApproval.js.map +0 -1
- package/dist/evm/operationMode.js +0 -41
- package/dist/evm/operationMode.js.map +0 -1
- package/dist/evm/tokenModes.js +0 -34
- package/dist/evm/tokenModes.js.map +0 -1
- package/dist/evm/types.js +0 -5
- package/dist/evm/types.js.map +0 -1
- package/dist/evm/userCurrentBalance.js +0 -211
- package/dist/evm/userCurrentBalance.js.map +0 -1
- package/dist/evm/vaults.js +0 -75
- package/dist/evm/vaults.js.map +0 -1
- package/dist/evm/withdraw.js +0 -177
- package/dist/evm/withdraw.js.map +0 -1
- package/dist/evm/withdrawQuote.js +0 -164
- package/dist/evm/withdrawQuote.js.map +0 -1
package/dist/evm/deposit.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { getAdapter } from './adapters';
|
|
2
|
-
import { encodeTransactionWithAttribution } from '../attribution';
|
|
3
|
-
import { AccountRequiredError, VaultNotFoundError, UnsupportedAssetError, InvalidSlippageBPSError, } from '../errors';
|
|
4
|
-
import { resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
|
|
5
|
-
import { resolveVault } from './vaults';
|
|
6
|
-
import { DEFAULT_BPS, MAX_BPS } from '../constants';
|
|
7
|
-
import { parseOperationMode, resolveOperationMode, resolveSyncOnlyOperationMode, } from './operationMode';
|
|
8
|
-
/**
|
|
9
|
-
* Builds the ordered list of EVM transactions required to deposit into a Gauntlet vault.
|
|
10
|
-
*
|
|
11
|
-
* Returns one or two transactions: an ERC-20 approval (only if the current allowance is
|
|
12
|
-
* insufficient) followed by the deposit or async deposit request. Each transaction is
|
|
13
|
-
* returned as a `PreparedTx` object ready to be signed and sent.
|
|
14
|
-
*
|
|
15
|
-
* @param client - A configured `GauntletClient` instance with an EVM public client and wallet.
|
|
16
|
-
* @param params - Deposit parameters including the vault identifier, token amount, and optional
|
|
17
|
-
* chain, asset symbol, deposit mode (`'sync'` | `'async'`), and receiver address.
|
|
18
|
-
* @returns Ordered array of prepared transactions to execute in sequence.
|
|
19
|
-
*
|
|
20
|
-
* @throws {VaultNotFoundError} If the vault ID is not found in the manifest.
|
|
21
|
-
* @throws {AccountRequiredError} If no wallet account is set on the client.
|
|
22
|
-
* @throws {UnsupportedDepositModeError} If the requested deposit mode is not supported by the vault.
|
|
23
|
-
* @throws {UnsupportedAssetError} If the specified asset symbol is not accepted by the vault.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* const txs = await getDepositTx(client, {
|
|
28
|
-
* vaultId: 'baseUsdcPrime',
|
|
29
|
-
* amount: 100_000_000n, // 100 USDC (6 decimals)
|
|
30
|
-
* });
|
|
31
|
-
* for (const tx of txs) {
|
|
32
|
-
* await walletClient.sendTransaction(tx.tx);
|
|
33
|
-
* }
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export async function getDepositTx(client, params) {
|
|
37
|
-
if (params.slippageBps !== undefined &&
|
|
38
|
-
(!Number.isInteger(params.slippageBps) ||
|
|
39
|
-
params.slippageBps < 0 ||
|
|
40
|
-
params.slippageBps > Number(MAX_BPS))) {
|
|
41
|
-
throw new InvalidSlippageBPSError(params.slippageBps);
|
|
42
|
-
}
|
|
43
|
-
const resolved = await resolveVault(client, params.vaultId, params.chainId);
|
|
44
|
-
if (!resolved)
|
|
45
|
-
throw new VaultNotFoundError(params.vaultId);
|
|
46
|
-
const chainId = params.chainId ?? resolved.vault.chainId;
|
|
47
|
-
const account = client.wallet?.account?.address;
|
|
48
|
-
if (!account)
|
|
49
|
-
throw new AccountRequiredError();
|
|
50
|
-
const { vault, protocol } = resolved;
|
|
51
|
-
const adapter = getAdapter(protocol);
|
|
52
|
-
const publicClient = client.getPublicClient(chainId);
|
|
53
|
-
const token = vault.supplyToken.length > 1
|
|
54
|
-
? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
|
|
55
|
-
: vault.supplyToken[0];
|
|
56
|
-
if (token === undefined) {
|
|
57
|
-
throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
|
|
58
|
-
}
|
|
59
|
-
const requestedDepositMode = parseOperationMode(params.vaultId, params.depositMode);
|
|
60
|
-
let modifiedDepositMode;
|
|
61
|
-
let aeraRuntime;
|
|
62
|
-
if (protocol === 'aera') {
|
|
63
|
-
aeraRuntime = await resolveAeraRuntimeContracts(publicClient, vault);
|
|
64
|
-
const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address, { includeSyncModes: requestedDepositMode !== 'async' });
|
|
65
|
-
modifiedDepositMode = resolveOperationMode(params.vaultId, requestedDepositMode, {
|
|
66
|
-
async: tokenModeSupport.asyncDeposit,
|
|
67
|
-
sync: tokenModeSupport.syncDeposit,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
modifiedDepositMode = resolveSyncOnlyOperationMode(params.vaultId, requestedDepositMode);
|
|
72
|
-
}
|
|
73
|
-
const spender = protocol === 'aera' && modifiedDepositMode === 'async'
|
|
74
|
-
? aeraRuntime.provisioner.address
|
|
75
|
-
: vault.vaultAddress;
|
|
76
|
-
// NOTE: this could be moved to the buildDeposit level
|
|
77
|
-
const { sufficient } = await adapter.checkAllowance({
|
|
78
|
-
publicClient,
|
|
79
|
-
token: token.address,
|
|
80
|
-
owner: account,
|
|
81
|
-
spender,
|
|
82
|
-
amount: params.amount,
|
|
83
|
-
});
|
|
84
|
-
const steps = [];
|
|
85
|
-
if (!sufficient) {
|
|
86
|
-
steps.push(adapter.buildApproval({
|
|
87
|
-
token: token.address,
|
|
88
|
-
spender,
|
|
89
|
-
amount: params.amount,
|
|
90
|
-
account,
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
const depositSteps = await adapter.buildDeposit({
|
|
94
|
-
vault,
|
|
95
|
-
amount: params.amount,
|
|
96
|
-
receiver: params.receiver ?? account,
|
|
97
|
-
account,
|
|
98
|
-
async: modifiedDepositMode === 'async',
|
|
99
|
-
asset: token,
|
|
100
|
-
publicClient,
|
|
101
|
-
slippageBps: params.slippageBps ?? DEFAULT_BPS,
|
|
102
|
-
solverTip: params.solverTip,
|
|
103
|
-
maxPriceAge: params.maxPriceAge,
|
|
104
|
-
aeraRuntime,
|
|
105
|
-
});
|
|
106
|
-
steps.push(...depositSteps);
|
|
107
|
-
return await Promise.all(steps.map((step) => encodeTransactionWithAttribution(client, step)));
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=deposit.js.map
|
package/dist/evm/deposit.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAc,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,GAE7B,MAAM,iBAAiB,CAAC;AAqBzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAAwB;IAExB,IACE,MAAM,CAAC,WAAW,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;YACpC,MAAM,CAAC,WAAW,GAAG,CAAC;YACtB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EACvC,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IAEzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAE/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAErC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACpF,IAAI,mBAAkC,CAAC;IACvC,IAAI,WAA6C,CAAC;IAElD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,WAAW,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CACxD,YAAY,EACZ,WAAW,EACX,KAAK,CAAC,OAAO,EACb,EAAE,gBAAgB,EAAE,oBAAoB,KAAK,OAAO,EAAE,CACvD,CAAC;QACF,mBAAmB,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE;YAC/E,KAAK,EAAE,gBAAgB,CAAC,YAAY;YACpC,IAAI,EAAE,gBAAgB,CAAC,WAAW;SACnC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,OAAO,GACX,QAAQ,KAAK,MAAM,IAAI,mBAAmB,KAAK,OAAO;QACpD,CAAC,CAAC,WAAY,CAAC,WAAW,CAAC,OAAO;QAClC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAEzB,sDAAsD;IACtD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC;QAClD,YAAY;QACZ,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,KAAK,EAAE,OAAO;QACd,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,OAAO,CAAC,aAAa,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;SACR,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;QAC9C,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO;QACpC,OAAO;QACP,KAAK,EAAE,mBAAmB,KAAK,OAAO;QACtC,KAAK,EAAE,KAAK;QACZ,YAAY;QACZ,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,WAAW;QAC9C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW;KACZ,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAE5B,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { encodeTransactionWithAttribution } from '../attribution';
|
|
2
|
-
import { AccountRequiredError, UnsupportedFeatureError, VaultNotFoundError } from '../errors';
|
|
3
|
-
import { resolveAeraRuntimeContracts } from './aeraContracts';
|
|
4
|
-
import * as provisionerV2 from './aeraContracts/v2';
|
|
5
|
-
import { ContractVersion } from './types';
|
|
6
|
-
import { resolveVault } from './vaults';
|
|
7
|
-
/**
|
|
8
|
-
* Builds the V2 receiver-side approval transaction required before a depositor
|
|
9
|
-
* can make sync deposits to a separate receiver.
|
|
10
|
-
*
|
|
11
|
-
* The wallet account on the client is the receiver and must sign this transaction.
|
|
12
|
-
*/
|
|
13
|
-
export async function getDepositReceiverApprovalTx(client, params) {
|
|
14
|
-
const resolved = await resolveVault(client, params.vaultId, params.chainId);
|
|
15
|
-
if (!resolved)
|
|
16
|
-
throw new VaultNotFoundError(params.vaultId);
|
|
17
|
-
const chainId = params.chainId ?? resolved.vault.chainId;
|
|
18
|
-
const receiver = client.wallet?.account?.address;
|
|
19
|
-
if (!receiver)
|
|
20
|
-
throw new AccountRequiredError();
|
|
21
|
-
const { vault } = resolved;
|
|
22
|
-
const publicClient = client.getPublicClient(chainId);
|
|
23
|
-
const runtime = await resolveAeraRuntimeContracts(publicClient, vault);
|
|
24
|
-
if (runtime.provisioner.version !== ContractVersion.V2) {
|
|
25
|
-
throw new UnsupportedFeatureError('Aera: deposit receiver approval on V1');
|
|
26
|
-
}
|
|
27
|
-
return encodeTransactionWithAttribution(client, {
|
|
28
|
-
type: 'setDepositReceiverApproval',
|
|
29
|
-
...provisionerV2.setDepositReceiverApprovalTxRequest(runtime.provisioner.address, params.depositor, params.approved ?? true, receiver),
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=depositReceiverApproval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"depositReceiverApproval.js","sourceRoot":"","sources":["../../src/evm/depositReceiverApproval.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASxC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAsB,EACtB,MAAwC;IAExC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAEhD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,uBAAuB,CAAC,uCAAuC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,gCAAgC,CAAC,MAAM,EAAE;QAC9C,IAAI,EAAE,4BAA4B;QAClC,GAAG,aAAa,CAAC,mCAAmC,CAClD,OAAO,CAAC,WAAW,CAAC,OAAO,EAC3B,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,QAAQ,CACT;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { UnsupportedDepositModeError } from '../errors';
|
|
2
|
-
function formatAvailableModes(support) {
|
|
3
|
-
if (support.async && support.sync)
|
|
4
|
-
return 'both';
|
|
5
|
-
if (support.async)
|
|
6
|
-
return 'async';
|
|
7
|
-
if (support.sync)
|
|
8
|
-
return 'sync';
|
|
9
|
-
return 'none';
|
|
10
|
-
}
|
|
11
|
-
export function parseOperationMode(vaultId, requested) {
|
|
12
|
-
if (requested === undefined || requested === 'sync' || requested === 'async') {
|
|
13
|
-
return requested;
|
|
14
|
-
}
|
|
15
|
-
throw new UnsupportedDepositModeError(vaultId, requested, 'sync, async');
|
|
16
|
-
}
|
|
17
|
-
export function resolveOperationMode(vaultId, requested, support) {
|
|
18
|
-
const available = formatAvailableModes(support);
|
|
19
|
-
if (requested === 'sync') {
|
|
20
|
-
if (!support.sync)
|
|
21
|
-
throw new UnsupportedDepositModeError(vaultId, 'sync', available);
|
|
22
|
-
return 'sync';
|
|
23
|
-
}
|
|
24
|
-
if (requested === 'async') {
|
|
25
|
-
if (!support.async)
|
|
26
|
-
throw new UnsupportedDepositModeError(vaultId, 'async', available);
|
|
27
|
-
return 'async';
|
|
28
|
-
}
|
|
29
|
-
if (support.async)
|
|
30
|
-
return 'async';
|
|
31
|
-
if (support.sync)
|
|
32
|
-
return 'sync';
|
|
33
|
-
throw new UnsupportedDepositModeError(vaultId, 'async', available);
|
|
34
|
-
}
|
|
35
|
-
export function resolveSyncOnlyOperationMode(vaultId, requested) {
|
|
36
|
-
if (requested === 'async') {
|
|
37
|
-
throw new UnsupportedDepositModeError(vaultId, 'async', 'sync');
|
|
38
|
-
}
|
|
39
|
-
return 'sync';
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=operationMode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"operationMode.js","sourceRoot":"","sources":["../../src/evm/operationMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AASxD,SAAS,oBAAoB,CAAC,OAA6B;IACzD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,SAA6B;IAE7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAAoC,EACpC,OAA6B;IAE7B,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEhC,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe,EACf,SAAoC;IAEpC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/evm/tokenModes.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { UnsupportedAssetError, UnsupportedFeatureError, VaultNotFoundError } from '../errors';
|
|
2
|
-
import { resolveVault } from './vaults';
|
|
3
|
-
import { resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
|
|
4
|
-
/**
|
|
5
|
-
* Reads which deposit/redeem modes (sync vs async) are currently enabled on-chain for a vault token.
|
|
6
|
-
*
|
|
7
|
-
* Use this to decide which entry points to offer a user (e.g. whether an instant withdraw is
|
|
8
|
-
* available) before any amount is entered. Mode availability includes the provisioner's token
|
|
9
|
-
* settings and live runtime gates. A paused V2 solving gate disables both sync modes.
|
|
10
|
-
*
|
|
11
|
-
* @throws {VaultNotFoundError} If the vault ID is not found.
|
|
12
|
-
* @throws {UnsupportedFeatureError} If the vault is not an Aera deployment.
|
|
13
|
-
* @throws {UnsupportedAssetError} If the asset symbol is not accepted by the vault.
|
|
14
|
-
*/
|
|
15
|
-
export async function getAeraTokenModeSupport(client, params) {
|
|
16
|
-
const resolved = await resolveVault(client, params.vaultId, params.chainId);
|
|
17
|
-
if (!resolved)
|
|
18
|
-
throw new VaultNotFoundError(params.vaultId);
|
|
19
|
-
const { vault, protocol } = resolved;
|
|
20
|
-
if (protocol !== 'aera') {
|
|
21
|
-
throw new UnsupportedFeatureError('Token mode support is only available for Aera vaults');
|
|
22
|
-
}
|
|
23
|
-
const chainId = params.chainId ?? vault.chainId;
|
|
24
|
-
const publicClient = client.getPublicClient(chainId);
|
|
25
|
-
const token = vault.supplyToken.length > 1
|
|
26
|
-
? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
|
|
27
|
-
: vault.supplyToken[0];
|
|
28
|
-
if (token === undefined) {
|
|
29
|
-
throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
|
|
30
|
-
}
|
|
31
|
-
const runtime = await resolveAeraRuntimeContracts(publicClient, vault);
|
|
32
|
-
return resolveAeraTokenModeSupport(publicClient, runtime, token.address);
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=tokenModes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenModes.js","sourceRoot":"","sources":["../../src/evm/tokenModes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,iBAAiB,CAAC;AAUzB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAsB,EACtB,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACrC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,uBAAuB,CAAC,sDAAsD,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,OAAO,2BAA2B,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/evm/types.js
DELETED
package/dist/evm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/evm/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;CACA,CAAC"}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { parseAbi } from 'viem';
|
|
2
|
-
import { ChainMismatchError, UnsupportedProtocolError, VaultNotFoundError } from '../errors';
|
|
3
|
-
import { getMultiDepositorVault, resolveAeraRuntimeContracts } from './aeraContracts';
|
|
4
|
-
import { convertUnitsToToken } from './aeraContracts/priceAndFeeCalculator';
|
|
5
|
-
import { provisionerV2Abi } from './abis/provisionerV2';
|
|
6
|
-
import { ContractVersion } from './types';
|
|
7
|
-
import { BLOCKS_3_DAYS, CHAIN_NAMES, DEFAULT_BLOCKS_3_DAYS, LOG_PAGE_SIZE } from '../constants';
|
|
8
|
-
// Inline as-const ABI items give viem full type inference for args and return types.
|
|
9
|
-
const DEPOSIT_REQUESTED_V1_ABI = [
|
|
10
|
-
{
|
|
11
|
-
type: 'event',
|
|
12
|
-
name: 'DepositRequested',
|
|
13
|
-
inputs: [
|
|
14
|
-
{ type: 'address', name: 'user', indexed: true },
|
|
15
|
-
{ type: 'address', name: 'token', indexed: true },
|
|
16
|
-
{ type: 'uint256', name: 'tokensIn', indexed: false },
|
|
17
|
-
{ type: 'uint256', name: 'minUnitsOut', indexed: false },
|
|
18
|
-
{ type: 'uint256', name: 'solverTip', indexed: false },
|
|
19
|
-
{ type: 'uint256', name: 'deadline', indexed: false },
|
|
20
|
-
{ type: 'uint256', name: 'maxPriceAge', indexed: false },
|
|
21
|
-
{ type: 'bool', name: 'isFixedPrice', indexed: false },
|
|
22
|
-
{ type: 'bytes32', name: 'depositRequestHash', indexed: false },
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
];
|
|
26
|
-
const REDEEM_REQUESTED_V1_ABI = [
|
|
27
|
-
{
|
|
28
|
-
type: 'event',
|
|
29
|
-
name: 'RedeemRequested',
|
|
30
|
-
inputs: [
|
|
31
|
-
{ type: 'address', name: 'user', indexed: true },
|
|
32
|
-
{ type: 'address', name: 'token', indexed: true },
|
|
33
|
-
{ type: 'uint256', name: 'minTokensOut', indexed: false },
|
|
34
|
-
{ type: 'uint256', name: 'unitsIn', indexed: false },
|
|
35
|
-
{ type: 'uint256', name: 'solverTip', indexed: false },
|
|
36
|
-
{ type: 'uint256', name: 'deadline', indexed: false },
|
|
37
|
-
{ type: 'uint256', name: 'maxPriceAge', indexed: false },
|
|
38
|
-
{ type: 'bool', name: 'isFixedPrice', indexed: false },
|
|
39
|
-
{ type: 'bytes32', name: 'redeemRequestHash', indexed: false },
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
const provisionerV1StateAbi = parseAbi([
|
|
44
|
-
'function asyncDepositHashes(bytes32 asyncDepositHash) view returns (bool exists)',
|
|
45
|
-
'function asyncRedeemHashes(bytes32 asyncRedeemHash) view returns (bool exists)',
|
|
46
|
-
]);
|
|
47
|
-
// V2 legacy wrapper calls can emit both receiver-aware and legacy events for one request.
|
|
48
|
-
// Keep one row per request hash before state checks and summing pending amounts.
|
|
49
|
-
function dedupeByRequestHash(logs, hashKey) {
|
|
50
|
-
const seen = new Set();
|
|
51
|
-
return logs.filter((log) => {
|
|
52
|
-
const hash = log.args[hashKey];
|
|
53
|
-
// Drop malformed events and duplicates so one pending request cannot be counted twice.
|
|
54
|
-
if (hash == null || seen.has(hash))
|
|
55
|
-
return false;
|
|
56
|
-
seen.add(hash);
|
|
57
|
-
return true;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
async function queryDeploymentBalance(client, deployment, address) {
|
|
61
|
-
const publicClient = client.getPublicClient(deployment.chainId);
|
|
62
|
-
const token = deployment.supplyToken[0];
|
|
63
|
-
const vaultContract = getMultiDepositorVault(publicClient, deployment.vaultAddress);
|
|
64
|
-
const [runtime, units] = await Promise.all([
|
|
65
|
-
resolveAeraRuntimeContracts(publicClient, deployment),
|
|
66
|
-
vaultContract.read.balanceOf([address]),
|
|
67
|
-
]);
|
|
68
|
-
const provisionerAddress = runtime.provisioner.address;
|
|
69
|
-
const isV2 = runtime.provisioner.version === ContractVersion.V2;
|
|
70
|
-
const balance = await convertUnitsToToken(publicClient, runtime.feeCalculator.address, runtime.feeCalculator.version, deployment.vaultAddress, token.address, units);
|
|
71
|
-
// Look back ~3 days for pending async requests
|
|
72
|
-
const currentBlock = await publicClient.getBlockNumber();
|
|
73
|
-
const lookback = BLOCKS_3_DAYS[deployment.chainId] ?? DEFAULT_BLOCKS_3_DAYS;
|
|
74
|
-
const fromBlock = currentBlock > lookback ? currentBlock - lookback : 0n;
|
|
75
|
-
// Compute block-range chunks to stay within the 10,000-block RPC limit, then fetch in parallel
|
|
76
|
-
const chunks = [];
|
|
77
|
-
for (let cursor = fromBlock; cursor <= currentBlock; cursor += LOG_PAGE_SIZE + 1n) {
|
|
78
|
-
const end = cursor + LOG_PAGE_SIZE <= currentBlock ? cursor + LOG_PAGE_SIZE : currentBlock;
|
|
79
|
-
chunks.push([cursor, end]);
|
|
80
|
-
}
|
|
81
|
-
const [depositPages, redeemPages] = await Promise.all([
|
|
82
|
-
Promise.all(chunks.map(([from, to]) => isV2
|
|
83
|
-
? publicClient.getContractEvents({
|
|
84
|
-
address: provisionerAddress,
|
|
85
|
-
abi: provisionerV2Abi,
|
|
86
|
-
eventName: 'DepositRequested',
|
|
87
|
-
args: { receiver: address },
|
|
88
|
-
fromBlock: from,
|
|
89
|
-
toBlock: to,
|
|
90
|
-
})
|
|
91
|
-
: publicClient.getContractEvents({
|
|
92
|
-
address: provisionerAddress,
|
|
93
|
-
abi: DEPOSIT_REQUESTED_V1_ABI,
|
|
94
|
-
eventName: 'DepositRequested',
|
|
95
|
-
args: { user: address },
|
|
96
|
-
fromBlock: from,
|
|
97
|
-
toBlock: to,
|
|
98
|
-
}))),
|
|
99
|
-
Promise.all(chunks.map(([from, to]) => isV2
|
|
100
|
-
? publicClient.getContractEvents({
|
|
101
|
-
address: provisionerAddress,
|
|
102
|
-
abi: provisionerV2Abi,
|
|
103
|
-
eventName: 'RedeemRequested',
|
|
104
|
-
args: { user: address },
|
|
105
|
-
fromBlock: from,
|
|
106
|
-
toBlock: to,
|
|
107
|
-
})
|
|
108
|
-
: publicClient.getContractEvents({
|
|
109
|
-
address: provisionerAddress,
|
|
110
|
-
abi: REDEEM_REQUESTED_V1_ABI,
|
|
111
|
-
eventName: 'RedeemRequested',
|
|
112
|
-
args: { user: address },
|
|
113
|
-
fromBlock: from,
|
|
114
|
-
toBlock: to,
|
|
115
|
-
}))),
|
|
116
|
-
]);
|
|
117
|
-
const depositLogs = dedupeByRequestHash(depositPages.flat(), 'depositRequestHash');
|
|
118
|
-
const redeemLogs = dedupeByRequestHash(redeemPages.flat(), 'redeemRequestHash');
|
|
119
|
-
// Check which requests are still pending on-chain via a single multicall
|
|
120
|
-
const pendingChecks = await publicClient.multicall({
|
|
121
|
-
contracts: [
|
|
122
|
-
...depositLogs.map((log) => ({
|
|
123
|
-
address: provisionerAddress,
|
|
124
|
-
abi: isV2 ? provisionerV2Abi : provisionerV1StateAbi,
|
|
125
|
-
functionName: isV2 ? 'asyncRequestHashes' : 'asyncDepositHashes',
|
|
126
|
-
args: [log.args.depositRequestHash],
|
|
127
|
-
})),
|
|
128
|
-
...redeemLogs.map((log) => ({
|
|
129
|
-
address: provisionerAddress,
|
|
130
|
-
abi: isV2 ? provisionerV2Abi : provisionerV1StateAbi,
|
|
131
|
-
functionName: isV2 ? 'asyncRequestHashes' : 'asyncRedeemHashes',
|
|
132
|
-
args: [log.args.redeemRequestHash],
|
|
133
|
-
})),
|
|
134
|
-
],
|
|
135
|
-
allowFailure: false,
|
|
136
|
-
});
|
|
137
|
-
const depositChecks = pendingChecks.slice(0, depositLogs.length);
|
|
138
|
-
const redeemChecks = pendingChecks.slice(depositLogs.length);
|
|
139
|
-
let pendingDeposit = 0n;
|
|
140
|
-
for (let i = 0; i < depositLogs.length; i++) {
|
|
141
|
-
if (depositChecks[i]) {
|
|
142
|
-
pendingDeposit += depositLogs[i].args.tokensIn ?? 0n;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
let pendingWithdrawUnits = 0n;
|
|
146
|
-
for (let i = 0; i < redeemLogs.length; i++) {
|
|
147
|
-
if (redeemChecks[i]) {
|
|
148
|
-
pendingWithdrawUnits += redeemLogs[i].args.unitsIn ?? 0n;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const pendingWithdraw = pendingWithdrawUnits > 0n
|
|
152
|
-
? await convertUnitsToToken(publicClient, runtime.feeCalculator.address, runtime.feeCalculator.version, deployment.vaultAddress, token.address, pendingWithdrawUnits)
|
|
153
|
-
: 0n;
|
|
154
|
-
return {
|
|
155
|
-
chain: CHAIN_NAMES[deployment.chainId] ?? `chain-${deployment.chainId}`,
|
|
156
|
-
token: token.address,
|
|
157
|
-
decimals: token.decimals,
|
|
158
|
-
pendingDeposit,
|
|
159
|
-
balance,
|
|
160
|
-
pendingWithdraw,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Returns the current balance breakdown for a user across all EVM deployments of a vault.
|
|
165
|
-
*
|
|
166
|
-
* Queries the vault's on-chain state to split the user's position into three buckets:
|
|
167
|
-
* - `balance` — assets actively earning inside the vault (converted from vault units to tokens).
|
|
168
|
-
* - `pendingDeposit` — tokens submitted via async deposit but not yet processed by a solver.
|
|
169
|
-
* - `pendingWithdraw` — vault units locked in a pending async redeem request (converted to tokens).
|
|
170
|
-
*
|
|
171
|
-
* Only supported for Aera multi-depositor vaults. Pending amounts are detected by scanning
|
|
172
|
-
* the last ~3 days of provisioner events and cross-checking hash existence on-chain.
|
|
173
|
-
*
|
|
174
|
-
* @param client - A configured `GauntletClient` instance with an EVM public client for each
|
|
175
|
-
* chain the vault is deployed on.
|
|
176
|
-
* @param params - Query parameters including `vaultId`, the user `address`, and an optional
|
|
177
|
-
* `chainId` to limit the query to a single deployment.
|
|
178
|
-
* @returns One `UserCurrentBalance` entry per chain queried.
|
|
179
|
-
*
|
|
180
|
-
* @throws {VaultNotFoundError} If the vault ID is not found in the manifest.
|
|
181
|
-
* @throws {UnsupportedProtocolError} If the vault is not an Aera multi-depositor vault.
|
|
182
|
-
* @throws {ChainMismatchError} If `chainId` is specified but no deployment exists for that chain.
|
|
183
|
-
*
|
|
184
|
-
* @example
|
|
185
|
-
* ```ts
|
|
186
|
-
* const balances = await getUserCurrentBalance(client, {
|
|
187
|
-
* vaultId: 'baseUsdcPrime',
|
|
188
|
-
* address: '0xYourWalletAddress',
|
|
189
|
-
* });
|
|
190
|
-
* // [{ chain: 'base', token: '0x...', decimals: 6, balance: 100_000_000n, pendingDeposit: 0n, pendingWithdraw: 0n }]
|
|
191
|
-
* ```
|
|
192
|
-
*/
|
|
193
|
-
export async function getUserCurrentBalance(client, params) {
|
|
194
|
-
const manifest = await client.manifest;
|
|
195
|
-
const vaultInfo = manifest.vaults.find((v) => v.vaultId === params.vaultId);
|
|
196
|
-
if (!vaultInfo)
|
|
197
|
-
throw new VaultNotFoundError(params.vaultId);
|
|
198
|
-
const evmDeployments = vaultInfo.deployments.filter((d) => d.chain === 'evm' && d.vaultType === 'multi-depositor');
|
|
199
|
-
if (vaultInfo.protocol !== 'aera' || evmDeployments.length === 0) {
|
|
200
|
-
throw new UnsupportedProtocolError(vaultInfo.protocol);
|
|
201
|
-
}
|
|
202
|
-
if (params.chainId !== undefined) {
|
|
203
|
-
const deployment = evmDeployments.find((d) => d.chainId === params.chainId);
|
|
204
|
-
if (!deployment) {
|
|
205
|
-
throw new ChainMismatchError(`${params.chainId}`, evmDeployments.map((d) => `${d.chainId}`).join(', '));
|
|
206
|
-
}
|
|
207
|
-
return [await queryDeploymentBalance(client, deployment, params.address)];
|
|
208
|
-
}
|
|
209
|
-
return Promise.all(evmDeployments.map((d) => queryDeploymentBalance(client, d, params.address)));
|
|
210
|
-
}
|
|
211
|
-
//# sourceMappingURL=userCurrentBalance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userCurrentBalance.js","sourceRoot":"","sources":["../../src/evm/userCurrentBalance.ts"],"names":[],"mappings":"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"}
|
package/dist/evm/vaults.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { base } from 'viem/chains';
|
|
2
|
-
import { ChainMismatchError } from '../errors';
|
|
3
|
-
export var VaultId;
|
|
4
|
-
(function (VaultId) {
|
|
5
|
-
VaultId["BaseUsdcPrime"] = "baseUsdcPrime";
|
|
6
|
-
VaultId["EthUsdcPrime"] = "ethUsdcPrime";
|
|
7
|
-
VaultId["AeraUsdAlpha"] = "gtusda";
|
|
8
|
-
VaultId["EthUsdcPrimeV2"] = "ethUsdcPrimeV2";
|
|
9
|
-
VaultId["AeraUsdAlphaStaging"] = "stgusda";
|
|
10
|
-
VaultId["AeraUsdAlphaDev"] = "devusda";
|
|
11
|
-
VaultId["AeraUsdAlphaDevDeux"] = "devusda2";
|
|
12
|
-
VaultId["AeraLeveredFalconX"] = "gpaafalconx";
|
|
13
|
-
VaultId["AeraLeveredFalconXStaging"] = "pytstg";
|
|
14
|
-
VaultId["AeraSyrupUsdc"] = "gpsyrupusdc";
|
|
15
|
-
VaultId["AeraSyrupUsdcStaging"] = "syruppytstg";
|
|
16
|
-
VaultId["AeraBtcYield"] = "gtbtc";
|
|
17
|
-
VaultId["AeraBtcYieldStaging"] = "gtbtcstaging";
|
|
18
|
-
VaultId["AeraLeveredUsccStaging"] = "gtusccstg";
|
|
19
|
-
VaultId["AeraLeveredUscc"] = "gtuscc";
|
|
20
|
-
VaultId["AeraLend"] = "gtlend";
|
|
21
|
-
VaultId["AeraKastEth"] = "kasteth";
|
|
22
|
-
})(VaultId || (VaultId = {}));
|
|
23
|
-
/**
|
|
24
|
-
* Returns vaults from the bundled manifest, optionally filtered by chain and/or protocol.
|
|
25
|
-
* Does not make any network requests.
|
|
26
|
-
*
|
|
27
|
-
* @param client - A configured `GauntletClient` instance.
|
|
28
|
-
* @param filter - Optional filter criteria. `chainId` restricts results to vaults that have
|
|
29
|
-
* at least one EVM deployment on that chain. `protocol` restricts results to a specific
|
|
30
|
-
* protocol (e.g. `'aera'`, `'morpho'`).
|
|
31
|
-
* @returns Array of `VaultInfo` objects matching the filter, or all vaults if no filter is given.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```ts
|
|
35
|
-
* // All vaults on Base
|
|
36
|
-
* const vaults = await getVaults(client, { chainId: base.id });
|
|
37
|
-
*
|
|
38
|
-
* // All Aera vaults
|
|
39
|
-
* const aeraVaults = await getVaults(client, { protocol: 'aera' });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export async function getVaults(client, filter) {
|
|
43
|
-
const manifest = await client.manifest;
|
|
44
|
-
let vaults = manifest.vaults;
|
|
45
|
-
if (filter?.chainId) {
|
|
46
|
-
vaults = vaults.filter((v) => v.deployments.some((d) => d.chain === 'evm' && d.chainId === filter.chainId));
|
|
47
|
-
}
|
|
48
|
-
if (filter?.protocol) {
|
|
49
|
-
vaults = vaults.filter((v) => v.protocol === filter.protocol);
|
|
50
|
-
}
|
|
51
|
-
return vaults;
|
|
52
|
-
}
|
|
53
|
-
export async function resolveVault(client, vaultId, chainId) {
|
|
54
|
-
const manifest = await client.manifest;
|
|
55
|
-
const vaultInfo = manifest.vaults.find((v) => v.vaultId === vaultId);
|
|
56
|
-
if (!vaultInfo)
|
|
57
|
-
return undefined;
|
|
58
|
-
const evmDeployments = vaultInfo.deployments.filter((d) => d.chain === 'evm');
|
|
59
|
-
if (evmDeployments.length === 1) {
|
|
60
|
-
// if user specifies a chain we need to make sure they get it
|
|
61
|
-
if (chainId !== undefined && evmDeployments[0].chainId !== chainId) {
|
|
62
|
-
throw new ChainMismatchError(`${chainId}`, `${evmDeployments[0].chainId}`);
|
|
63
|
-
}
|
|
64
|
-
// otherwise they're expected to know what chain
|
|
65
|
-
// the single chain vault they request is on
|
|
66
|
-
return { vault: evmDeployments[0], protocol: vaultInfo.protocol };
|
|
67
|
-
}
|
|
68
|
-
// now we default to base
|
|
69
|
-
const defaultChainId = chainId ?? base.id;
|
|
70
|
-
const deployment = evmDeployments.find((d) => d.chainId === defaultChainId);
|
|
71
|
-
if (!deployment)
|
|
72
|
-
return undefined;
|
|
73
|
-
return { vault: deployment, protocol: vaultInfo.protocol };
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=vaults.js.map
|
package/dist/evm/vaults.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vaults.js","sourceRoot":"","sources":["../../src/evm/vaults.ts"],"names":[],"mappings":"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"}
|