@gauntlet-xyz/sdk 2.5.0 → 3.1.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 +121 -7
- package/dist/api/activity.d.ts +4 -2
- package/dist/api/activity.d.ts.map +1 -1
- package/dist/api/activityRows.d.ts +11 -0
- package/dist/api/activityRows.d.ts.map +1 -0
- 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/decimal.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/http.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 +47 -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 +8 -5
- package/dist/attribution/index.d.ts.map +1 -1
- package/dist/chunk-JJOLVL5V.js +546 -0
- package/dist/chunk-JJOLVL5V.js.map +7 -0
- package/dist/chunk-JRSNLXFY.js +2009 -0
- package/dist/chunk-JRSNLXFY.js.map +7 -0
- package/dist/chunk-MEKISE2T.js +367 -0
- package/dist/chunk-MEKISE2T.js.map +7 -0
- package/dist/chunk-YQXTLIJA.js +4477 -0
- package/dist/chunk-YQXTLIJA.js.map +7 -0
- package/dist/cjs/api/activity.d.ts +72 -0
- package/dist/cjs/api/activity.d.ts.map +1 -0
- package/dist/cjs/api/activity.js +138 -0
- package/dist/cjs/api/activity.js.map +7 -0
- package/dist/cjs/api/activityRows.d.ts +11 -0
- package/dist/cjs/api/activityRows.d.ts.map +1 -0
- package/dist/cjs/api/activityRows.js +139 -0
- package/dist/cjs/api/activityRows.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 +61 -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 +199 -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 +61 -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 +65 -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 +144 -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 +28 -0
- package/dist/cjs/attribution/index.d.ts.map +1 -0
- package/dist/cjs/attribution/index.js +70 -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 +500 -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 +85 -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 +234 -0
- package/dist/cjs/evm/aeraContracts.js.map +7 -0
- package/dist/cjs/evm/deposit.d.ts +51 -0
- package/dist/cjs/evm/deposit.d.ts.map +1 -0
- package/dist/cjs/evm/deposit.js +142 -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 +97 -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 +71 -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 +69 -0
- package/dist/cjs/evm/userCurrentBalance.d.ts.map +1 -0
- package/dist/cjs/evm/userCurrentBalance.js +268 -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 +75 -0
- package/dist/cjs/evm/withdraw.d.ts.map +1 -0
- package/dist/cjs/evm/withdraw.js +174 -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 +257 -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 +6 -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 +7 -4
- 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 +86 -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 +21 -3
- 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 +5 -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 +137 -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/activity.ts +18 -15
- package/src/api/activityRows.ts +143 -0
- package/src/api/caip.ts +3 -1
- package/src/api/client.ts +105 -6
- package/src/api/decimal.ts +1 -0
- package/src/api/generated.ts +570 -7
- package/src/api/http.ts +1 -0
- package/src/api/index.ts +8 -0
- package/src/api/positionHistory.ts +20 -5
- package/src/attribution/index.ts +6 -2
- package/src/client.ts +4 -1
- package/src/constants.ts +2 -0
- package/src/errors.ts +7 -0
- package/src/evm/adapters/aera.ts +40 -19
- package/src/evm/adapters/types.ts +3 -0
- package/src/evm/aeraContracts/v2.ts +124 -16
- package/src/evm/aeraContracts.ts +29 -14
- package/src/evm/deposit.ts +61 -18
- package/src/evm/depositQuote.ts +138 -0
- package/src/evm/depositReceiverApproval.ts +14 -9
- package/src/evm/index.ts +10 -1
- package/src/evm/userCurrentBalance.ts +155 -60
- package/src/evm/vaults.ts +0 -7
- package/src/evm/withdraw.ts +20 -1
- package/src/evm/withdrawQuote.ts +126 -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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../manifest/vaults.json", "../src/client.ts"],
|
|
4
|
+
"sourcesContent": ["{\n \"version\": \"2026-08-07\",\n \"vaults\": [\n {\n \"vaultId\": \"baseUsdcPrime\",\n \"name\": \"Gauntlet USDC Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0xeE8F4eC5672F09119b96Ab6fB59C27E1b7e44b61\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcPrime\",\n \"name\": \"Gauntlet USDC Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xdd0f28e19C1780eb6396170735D45153D261490d\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcPrimeV2\",\n \"name\": \"Gauntlet USDC Prime v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x8c106EEDAd96553e64287A5A6839c3Cc78afA3D0\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x8eB67A509616cd6A7c1B3c8C21D48FF57df3d458\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWethPrime\",\n \"name\": \"Gauntlet WETH Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x2371e134e3455e0593363cBF89d3b6cf53740618\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWethBalanced\",\n \"name\": \"Gauntlet WETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x4881Ef0BF6d2365D3dd6499ccd7532bcdBCE0658\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdtPrime\",\n \"name\": \"Gauntlet USDT Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x8CB3649114051cA5119141a34C200D65dc0Faa73\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethEusdBalanced\",\n \"name\": \"Gauntlet eUSD Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xc080f56504e0278828A403269DB945F6c6D6E014\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0d69E286B938e21CBf7E51D71F6A4c8918f482F\",\n \"symbol\": \"eUSD\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethDaiBalanced\",\n \"name\": \"Gauntlet DAI Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x500331c9fF24D9d11aee6B07734Aa72343EA74a5\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x6B175474E89094C44Da98b954EedeAC495271d0F\",\n \"symbol\": \"DAI\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethAusdBalanced\",\n \"name\": \"Gauntlet AUSD Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x1B4cd53a1A8e5F50aB6320EF34E5fB4D3df7B6f6\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a\",\n \"symbol\": \"AUSD\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"swissborgUsdc\",\n \"name\": \"SwissBorg USDC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x4Ff4186188f8406917293A9e01A1ca16d3cf9E59\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWbtcBalanced\",\n \"name\": \"Gauntlet WBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x443df5eEE3196e9b2Dd77CaBd3eA76C3dee8f9b2\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\n \"symbol\": \"WBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethCbbtcBalanced\",\n \"name\": \"Gauntlet cbBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xF587f2e8AfF7D76618d3B6B4626621860FbD54e3\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\",\n \"symbol\": \"cbBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethLbtcBalanced\",\n \"name\": \"Gauntlet LBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xdC94785959B73F7A168452b3654E44fEc6A750e4\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x8236a87084f8B84306f72007F36F2618A5634494\",\n \"symbol\": \"LBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethMsethCore\",\n \"name\": \"Metronome msETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x78B18E07dc43017fcEaabaD0751d6464c0F56b25\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x64351fC9810aDAd17A690E4e1717Df5e7e085160\",\n \"symbol\": \"msETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethMsusdCore\",\n \"name\": \"Metronome msUSD\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x6859B34a9379122d25A9FA46f0882d434fee36c3\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xab5eB14c09D416F0aC63661E57EDB7AEcDb9BEfA\",\n \"symbol\": \"msUSD\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"indexCoopHyeth\",\n \"name\": \"Index Coop hyETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x701907283a57FF77E255C3f1aAD790466B8CE4ef\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"resolvUsdc\",\n \"name\": \"Resolv USDC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x132E6C9C33A62D7727cd359b1f51e5B566E485Eb\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWethEcosystem\",\n \"name\": \"Gauntlet WETH Ecosystem\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Ecosystem Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x1e6ffa4e9F63d10B8820A3ab52566Af881Dab53c\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"swissborgTbtc\",\n \"name\": \"SwissBorg tBTC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x059Fc6723b9bF77DbF4283C8d7C90eA8Af44EF10\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x18084fbA666a33d37592fA2633fD49a74DD93a88\",\n \"symbol\": \"tBTC\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcRwa\",\n \"name\": \"Gauntlet USDC RWA\",\n \"protocol\": \"morpho\",\n \"strategy\": \"RWA Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xA8875aaeBc4f830524e35d57F9772FfAcbdD6C45\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"solvbtcBabylon\",\n \"name\": \"SolvBTC Babylon\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xdBB316375B4dC992B2c8827D120c09dFB1d3455D\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xd9D920AA40f578ab794426F5C90F6C731D159DEf\",\n \"symbol\": \"xSolvBTC\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcFrontier\",\n \"name\": \"Gauntlet USDC Frontier\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethOlympusSusds\",\n \"name\": \"Gauntlet Olympus sUSDS\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x3365184e87d2Bd75961780454A5810BEc956F0dD\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD\",\n \"symbol\": \"sUSDS\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdtFrontier\",\n \"name\": \"Gauntlet USDT Frontier\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x79FD640000F8563A866322483524a4b48f1Ed702\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"vaultBridgeWeth\",\n \"name\": \"Vault Bridge WETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x31A5684983EeE865d943A696AAC155363bA024f9\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"vaultBridgeWbtc\",\n \"name\": \"Vault Bridge WBTC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x812B2C6Ab3f4471c0E43D4BB61098a9211017427\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599\",\n \"symbol\": \"WBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"vaultBridgeUsdt\",\n \"name\": \"Vault Bridge USDT\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xc54b4E08C1Dcc199fdd35c6b5Ab589ffD3428a8d\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethEurcBalanced\",\n \"name\": \"Gauntlet EURC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x2ed10624315b74a78f11FAbedAa1A228c198aEfB\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c\",\n \"symbol\": \"EURC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdcFrontierV2\",\n \"name\": \"Gauntlet USDC Frontier v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x9a1D6bd5b8642C41F25e0958129B85f8E1176F3e\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdtFrontierV2\",\n \"name\": \"Gauntlet USDT Frontier v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xE571B648569619566CF6ce1060C97B621CB635D3\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethEurcBalancedV2\",\n \"name\": \"Gauntlet EURC Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x842A84Df61DbE701c5dAE345F3f8E64aF727E48C\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c\",\n \"symbol\": \"EURC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWethPrimeV2\",\n \"name\": \"Gauntlet WETH Prime v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x43fCd85E8D9D003D515f886891B7C742AC9f92da\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethUsdtPrimeV2\",\n \"name\": \"Gauntlet USDT Prime v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xf3557AD5E984211ac8A0874A670344f2C3376471\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n \"symbol\": \"USDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"ethWethBalancedV2\",\n \"name\": \"Gauntlet WETH Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x5f342382D5F77F0f99E8f26161E689df6c7Cded3\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseWethBalanced\",\n \"name\": \"Gauntlet WETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x6b13c060F13Af1fdB319F52315BbbF3fb1D88844\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0xc0c5689e6f4D256E861F65465b691aeEcC0dEb12\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseCbbtcBalanced\",\n \"name\": \"Gauntlet cbBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x6770216aC60F634483Ec073cBABC4011c94307Cb\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\",\n \"symbol\": \"cbBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"extrafiXlendUsdc\",\n \"name\": \"Extrafi XLend USDC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x23479229e52Ab6aaD312D0B03DF9F33B46753B5e\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"extrafiXlendWeth\",\n \"name\": \"Extrafi XLend WETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x5A32099837D89E3a794a44fb131CBbAD41f87a8C\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseLbtcBalanced\",\n \"name\": \"Gauntlet LBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x0D05e6ec0A10f9fFE9229EAA785c11606a1d13Fb\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xecAc9C5F704e954931349Da37F60E39f515c11c1\",\n \"symbol\": \"LBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"seamlessUsdc\",\n \"name\": \"Seamless USDC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x616a4E1db48e22028f6bbf20444Cd3b8e3273738\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"seamlessCbbtc\",\n \"name\": \"Seamless cbBTC\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x5a47C803488FE2BB0A0EAaf346b420e4dF22F3C7\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\",\n \"symbol\": \"cbBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"seamlessWeth\",\n \"name\": \"Seamless WETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x27D8c7273fd3fcC6956a0B370cE5Fd4A7fc65c18\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseSusdsBalanced\",\n \"name\": \"Gauntlet sUSDS Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x0FE5b4aF0337Fd5b2E1675D5f5E8c9101E4D3c7e\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x5875eEE11Cf8398102FdAd704C9E96607675467a\",\n \"symbol\": \"sUSDS\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseMsethCore\",\n \"name\": \"Metronome msETH\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x43Cd00De63485618A5CEEBE0de364cD6cBeB26E7\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x7Ba6F01772924a82D9626c126347A28299E98c98\",\n \"symbol\": \"msETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseEurcBalanced\",\n \"name\": \"Gauntlet EURC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x1c155be6bC51F2c37d472d4C2Eba7a637806e122\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42\",\n \"symbol\": \"EURC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseUsdcFrontier\",\n \"name\": \"Gauntlet USDC Frontier\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x236919F11ff9eA9550A4287696C2FC9e18E6e890\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseUsdcPrimeV2\",\n \"name\": \"Gauntlet USDC Prime v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x050cE30b927Da55177A4914EC73480238BAD56f0\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseUsdcFrontierV2\",\n \"name\": \"Gauntlet USDC Frontier v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Frontier Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x1deEfABEe758AAbdC29a542B24ca3b75aFD56765\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseWethBalancedV2\",\n \"name\": \"Gauntlet WETH Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0xFeFeC33668E22677c4762d0853d56245a800ff08\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"baseEurcBalancedV2\",\n \"name\": \"Gauntlet EURC Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x94Af495DE1F56Aa5576dEB17986bDCeE5Dd9778D\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42\",\n \"symbol\": \"EURC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"junoMxnbPrime\",\n \"name\": \"Juno MXNB Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x08cc279532f159BdB450eBc0bAf6562f585Ded58\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xF197FFC28c23E0309B5559e7a166f2c6164C80aA\",\n \"symbol\": \"MXNB\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"unichainUsdt0\",\n \"name\": \"Gauntlet USDT0\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 130,\n \"vaultAddress\": \"0x89849B6e57e1c61e447257242bDa97c70FA99b6b\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x9151434b16b9763660705744891fA906F660EcC5\",\n \"symbol\": \"USDT0\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"unichainUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 130,\n \"vaultAddress\": \"0x38f4f3B6533de0023b9DCd04b02F93d36ad1F9f9\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x078D782b760474a361dDA0AF3839290b0EF57AD6\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"unichainWethBalanced\",\n \"name\": \"Gauntlet WETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 130,\n \"vaultAddress\": \"0x830898200F0E8Be8Dc1C9A836f4AB29ECEdf76eb\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x4200000000000000000000000000000000000006\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"katanaUsdtBalanced\",\n \"name\": \"Gauntlet USDT Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 747474,\n \"vaultAddress\": \"0x1ecDC3F2B5E90bfB55fF45a7476FF98A8957388E\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x2DCa96907fde857dd3D816880A0df407eeB2D2F2\",\n \"symbol\": \"vbUSDT\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"katanaUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 747474,\n \"vaultAddress\": \"0xE4248e2105508FcBad3fe95691551d1AF14015f7\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x203A662b0BD271A6ed5a60EdFbd04bFce608FD36\",\n \"symbol\": \"vbUSDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"katanaAusdBalanced\",\n \"name\": \"Gauntlet AUSD Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 747474,\n \"vaultAddress\": \"0x9540441C503D763094921dbE4f13268E6d1d3B56\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a\",\n \"symbol\": \"AUSD\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"katanaWbtcBalanced\",\n \"name\": \"Gauntlet WBTC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 747474,\n \"vaultAddress\": \"0xf243523996ADbb273F0B237B53f30017C4364bBC\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x0913DA6Da4b42f538B445599b46Bb4622342Cf52\",\n \"symbol\": \"vbWBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"katanaWethBalanced\",\n \"name\": \"Gauntlet WETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 747474,\n \"vaultAddress\": \"0xC5e7AB07030305fc925175b25B93b285d40dCdFf\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xEE7D8BCFb72bC1880D0Cf19822eB0A2e6577aB62\",\n \"symbol\": \"vbETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x7e97fa6893871A2751B5fE961978DCCb2c201E65\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbUsdcPrime\",\n \"name\": \"Gauntlet USDC Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x7c574174DA4b2be3f705c6244B4BfA0815a8B3Ed\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbUsdt0Balanced\",\n \"name\": \"Gauntlet USDT0 Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x139250CdB310D657eAC506c7C7FC6AcDE34Af1ec\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n \"symbol\": \"USDT0\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbWethBalanced\",\n \"name\": \"Gauntlet WETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0xBD14bEa2eCECeCD5F32149B0f84BE7f7F446B964\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbUsdcBalancedV2\",\n \"name\": \"Gauntlet USDC Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x55a2B207b0074E13AdCb858950a81B7a04775E0F\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"arbUsdcPrimeV2\",\n \"name\": \"Gauntlet USDC Prime v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x610D151aE40662AE148cdBaaE1Ea5904b6AFAE78\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"hyperevmUsdcBalanced\",\n \"name\": \"Gauntlet USDC Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 999,\n \"vaultAddress\": \"0x08C00F8279dFF5B0CB5a04d349E7d79708Ceadf3\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xb88339CB7199b77E23DB6E890353E22632Ba630f\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"hyperevmUsdt0Balanced\",\n \"name\": \"Gauntlet USDT0 Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 999,\n \"vaultAddress\": \"0x53A333e51E96FE288bC9aDd7cdC4B1EAD2CD2FfA\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb\",\n \"symbol\": \"USDT0\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"hyperevmUethBalanced\",\n \"name\": \"Gauntlet uETH Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 999,\n \"vaultAddress\": \"0x0571362ba5EA9784a97605f57483f865A37dBEAA\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xBe6727B535545C67d5cAa73dEa54865B92CF7907\",\n \"symbol\": \"UETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"hyperevmUsdeBalanced\",\n \"name\": \"Gauntlet USDe Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 999,\n \"vaultAddress\": \"0x5eEC795d919FA97688Fb9844eeB0072E6B846F9d\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34\",\n \"symbol\": \"USDe\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"hyperevmWhypeBalanced\",\n \"name\": \"Gauntlet WHYPE Balanced\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 999,\n \"vaultAddress\": \"0x264a06Fd7A7C9E0Bfe75163b475E2A3cc1856578\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x5555555555555555555555555555555555555555\",\n \"symbol\": \"WHYPE\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"opUsdcPrime\",\n \"name\": \"Gauntlet USDC Prime\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Prime Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 10,\n \"vaultAddress\": \"0xC30ce6A5758786e0F640cC5f881Dd96e9a1C5C59\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"opUsdcBalancedV2\",\n \"name\": \"Gauntlet USDC Balanced v2\",\n \"protocol\": \"morpho\",\n \"strategy\": \"Core Lending v2\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 10,\n \"vaultAddress\": \"0x4fFc4e5F1f1F5C43dc9Bc27b53728DA13b02bE35\",\n \"vaultType\": \"single-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtusda\",\n \"name\": \"Gauntlet USD Alpha\",\n \"protocol\": \"aera\",\n \"strategy\": \"Multi-strategy Stablecoin Yield\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x000000000001CdB57E58Fa75Fe420a0f4D6640D5\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x3bd9248048df95db4fbd748c6cd99c1baa40bad0\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 10,\n \"vaultAddress\": \"0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gpaafalconx\",\n \"name\": \"Gauntlet Levered FalconX\",\n \"protocol\": \"aera\",\n \"strategy\": \"Levered FalconX USDC\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x00000000d8f3d6c5DFeB2D2b5ED2276095f3aF44\",\n \"vaultType\": \"multi-depositor\",\n \"expirationDays\": 90,\n \"supplyToken\": [\n {\n \"address\": \"0xc26a6fa2c37b38e549a4a1807543801db684f99c\",\n \"symbol\": \"AA_FalconXUSDC\",\n \"decimals\": 18\n },\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gpsyrupusdc\",\n \"name\": \"Gauntlet SyrupUSDC\",\n \"protocol\": \"aera\",\n \"strategy\": \"Levered Maple syrupUSDC\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x00000000D283e5f8294e7E2dc06b55D43e060F49\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0b\",\n \"symbol\": \"syrupUSDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtbtc\",\n \"name\": \"Gauntlet BTC Yield\",\n \"protocol\": \"aera\",\n \"strategy\": \"BTC Carry Trade Yield\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xefF0AE5b39271b33f448cD408b51DC8aA72a672b\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\",\n \"symbol\": \"cbBTC\",\n \"decimals\": 8\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtuscc\",\n \"name\": \"Gauntlet Levered USCC\",\n \"protocol\": \"aera\",\n \"strategy\": \"Levered Superstate USCC\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x02b6bFD9561aC669305A0af0e5b88D9Cf850Bf67\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x14d60e7fdc0d71d8611742720e4c50e7a974020c\",\n \"symbol\": \"USCC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtlend\",\n \"name\": \"Gauntlet Lend\",\n \"protocol\": \"aera\",\n \"strategy\": \"Multi-chain Stablecoin Lending\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x2Bb2e3c0a970E74D219bADeC5d05E2D4cf456Ac8\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xF008043d4a0301E7dC45A92FFf77e3af1F975Ce5\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x93d5226FA75C1Ff8ba55943355A659Ed0A634eF5\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n },\n {\n \"chain\": \"evm\",\n \"chainId\": 10,\n \"vaultAddress\": \"0x79A296131A8cAE82613AA16A158Ae146742Ac592\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"kasteth\",\n \"name\": \"KastETH\",\n \"protocol\": \"aera\",\n \"strategy\": \"WETH Yield\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x6e4713B21E2879642a83d1c4dC0daCaa7ec6dB63\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtlpsnib\",\n \"name\": \"gtLPSNIB\",\n \"protocol\": \"aera\",\n \"strategy\": \"Gauntlet x SecondFi LP Vault\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x785F3D804aCdA02CD0eC2243dc6f9F408CC075C8\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtlpluia\",\n \"name\": \"gtLPLUIA\",\n \"protocol\": \"aera\",\n \"strategy\": \"Gauntlet x Liquid LP Vault\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 42161,\n \"vaultAddress\": \"0x364d2ACDc98d1bF8A734141178996E9fB0b37d2E\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"exausd\",\n \"name\": \"exaUSD\",\n \"protocol\": \"aera\",\n \"strategy\": \"Institutional USD Yield Vault\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0xDDDFf4bE1a90CD6F05CE1e977c674ff3aa556C97\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"exaeth\",\n \"name\": \"exaETH\",\n \"protocol\": \"aera\",\n \"strategy\": \"Institutional ETH Yield Vault\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x2B02DA0A074b690075f0b8E6921e2526B0Ff7896\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n \"symbol\": \"WETH\",\n \"decimals\": 18\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"prime\",\n \"name\": \"Gauntlet Levered PRIME\",\n \"protocol\": \"aera\",\n \"strategy\": \"Levered PRIME Looping\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xc4C7Ea9af473046559F0492bbBa186A2E043fe94\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtlpraen\",\n \"name\": \"gtLPRAEN\",\n \"protocol\": \"aera\",\n \"strategy\": \"Gauntlet x Raenest Base LP Vault\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 8453,\n \"vaultAddress\": \"0x970173b2666736ebe040e2C3bef6c62664D9b0B9\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtusdhy\",\n \"name\": \"gtUSDhy\",\n \"protocol\": \"aera\",\n \"strategy\": \"Gauntlet High Yield Prod\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0x15218Fbb0Efc0A3D5D731a242d853fa625532C3D\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n \"symbol\": \"USDC\",\n \"decimals\": 6\n }\n ]\n }\n ]\n },\n {\n \"vaultId\": \"gtskylooping\",\n \"name\": \"Gauntlet sUSDS Looping\",\n \"protocol\": \"aera\",\n \"strategy\": \"sUSDS Looping\",\n \"deployments\": [\n {\n \"chain\": \"evm\",\n \"chainId\": 1,\n \"vaultAddress\": \"0xeA40De595f099cA04695b0Ca105499E50AF77f92\",\n \"vaultType\": \"multi-depositor\",\n \"supplyToken\": [\n {\n \"address\": \"0xdC035D45d973E3EC169d2276DDab16f1e407384F\",\n \"symbol\": \"USDS\",\n \"decimals\": 18\n }\n ]\n }\n ]\n }\n ]\n}\n", "import { type PublicClient, type WalletClient } from 'viem';\nimport bundledManifest from '../manifest/vaults.json';\nimport { GauntletApi } from './api/client';\nimport { RpcNotConfiguredError, UnimplementedFeatureError } from './errors';\nimport type { VaultManifest } from './evm/types';\nimport { base } from 'viem/chains';\n\n/**\n * Controls how builder attribution is appended to transactions.\n *\n * - `PUBLIC` \u2013 attribution is sent as plain calldata (default).\n * - `ENCODED` \u2013 attribution is encoded using ERC-8021 with a builder code fetched from the API.\n * - `PRIVATE` \u2013 no attribution data is appended.\n */\nexport enum AttributionMode {\n PUBLIC = 'public',\n ENCODED = 'encoded',\n PRIVATE = 'private',\n}\n\nexport type ChainId = string | number;\n\n/** The static vault manifest bundled with this SDK release; the GauntletClient default. */\nexport const bundledVaultManifest = bundledManifest as VaultManifest;\n\nexport interface GauntletClientConfig {\n /** Gaia API key, sent as `x-api-key` on `client.api` requests. Anonymous access is rate-limited. */\n apiKey?: string;\n /** Override the Gaia API origin (e.g. a same-origin proxy route). Defaults to `https://api.gauntlet.xyz`. */\n apiUrl?: string;\n /** Map of chainId \u2192 PublicClient, e.g. { [base.id]: createPublicClient(...) } */\n evmClients?: Record<ChainId, PublicClient>;\n attributionMode?: AttributionMode;\n builderCode?: string;\n /** Viem WalletClient for signing transactions. */\n wallet?: WalletClient;\n}\n\n/**\n * Main entry point for the Gauntlet SDK.\n *\n * Holds configuration (RPC clients, wallet, attribution mode) and exposes helpers\n * for reading the vault manifest. Pass an instance of this class to every SDK\n * function (e.g. `getDepositTx`, `getWithdrawTx`, `getVaults`).\n *\n * @example\n * ```ts\n * import { createPublicClient, createWalletClient, http } from 'viem';\n * import { base } from 'viem/chains';\n * import { GauntletClient, AttributionMode } from '@gauntlet-xyz/sdk';\n *\n * const wallet = createWalletClient({\n * account: privateKeyToAccount('0x...'), // or other account source\n * chain: base,\n * transport: http()\n * })\n *\n * const client = new GauntletClient({\n * evmClients: { [base.id]: createPublicClient({ chain: base, transport: http() }) },\n * wallet,\n * attributionMode: AttributionMode.PUBLIC,\n * });\n * ```\n */\nexport class GauntletClient {\n readonly apiKey?: string;\n readonly builderCode?: string;\n readonly attributionMode: AttributionMode;\n readonly evmClients: Record<ChainId, PublicClient>;\n readonly wallet?: WalletClient;\n /** Typed client for the Gaia REST API (vaults, positions, activity, tvl, prices). */\n readonly api: GauntletApi;\n\n private _manifest: VaultManifest = bundledVaultManifest;\n\n constructor(config: GauntletClientConfig) {\n this.apiKey = config.apiKey;\n this.evmClients = config.evmClients ?? {};\n this.attributionMode = config.attributionMode ?? AttributionMode.PUBLIC;\n this.builderCode = config.builderCode;\n this.wallet = config.wallet;\n this.api = new GauntletApi({ apiKey: config.apiKey, apiUrl: config.apiUrl });\n }\n\n get manifest(): Promise<VaultManifest> {\n return Promise.resolve(this._manifest);\n }\n\n setManifest(manifest: VaultManifest): void {\n this._manifest = manifest;\n }\n\n getPublicClient(chainId: ChainId = base.id): PublicClient {\n const client = this.evmClients[chainId];\n if (!client) throw new RpcNotConfiguredError(chainId);\n return client;\n }\n\n // Will be used for encoded attribution\n // Will use apiKey to get a builder ID from core api\n async getSourceId(): Promise<string> {\n throw new UnimplementedFeatureError('getSourceId');\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["AttributionMode"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DecimalPrecisionError,
|
|
3
|
+
GauntletSDKError,
|
|
4
|
+
InvalidDecimalError,
|
|
5
|
+
SettlementTimeoutError
|
|
6
|
+
} from "./chunk-JJOLVL5V.js";
|
|
7
|
+
|
|
8
|
+
// src/api/decimal.ts
|
|
9
|
+
import { formatUnits } from "viem";
|
|
10
|
+
var DECIMAL_RE = /^(-?)(\d+)(?:\.(\d+))?$/;
|
|
11
|
+
function decimalToBigInt(value, decimals) {
|
|
12
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
13
|
+
throw new InvalidDecimalError(`decimals=${decimals}`);
|
|
14
|
+
}
|
|
15
|
+
if (typeof value !== "string") throw new InvalidDecimalError(String(value));
|
|
16
|
+
const match = DECIMAL_RE.exec(value);
|
|
17
|
+
if (!match) throw new InvalidDecimalError(value);
|
|
18
|
+
const [, sign, whole, frac = ""] = match;
|
|
19
|
+
if (frac.length > decimals && !/^0*$/.test(frac.slice(decimals))) {
|
|
20
|
+
throw new DecimalPrecisionError(value, decimals);
|
|
21
|
+
}
|
|
22
|
+
const scaled = BigInt(whole + frac.slice(0, decimals).padEnd(decimals, "0"));
|
|
23
|
+
return sign === "-" ? -scaled : scaled;
|
|
24
|
+
}
|
|
25
|
+
function bigIntToDecimal(value, decimals) {
|
|
26
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
27
|
+
throw new InvalidDecimalError(`decimals=${decimals}`);
|
|
28
|
+
}
|
|
29
|
+
return formatUnits(value, decimals);
|
|
30
|
+
}
|
|
31
|
+
var SHARE_DECIMALS = 18;
|
|
32
|
+
function sharesToBigInt(value) {
|
|
33
|
+
return decimalToBigInt(value, SHARE_DECIMALS);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/api/activityRows.ts
|
|
37
|
+
function isPending(row) {
|
|
38
|
+
return row.type === "deposit_pending" || row.type === "withdraw_pending";
|
|
39
|
+
}
|
|
40
|
+
function requireSameToken(leftRow, rightRow) {
|
|
41
|
+
if (leftRow.vault_id.split(":")[0] !== rightRow.vault_id.split(":")[0]) {
|
|
42
|
+
throw new GauntletSDKError("Activity rows contain assets on different chains");
|
|
43
|
+
}
|
|
44
|
+
const left = leftRow.assets_delta.token;
|
|
45
|
+
const right = rightRow.assets_delta.token;
|
|
46
|
+
if (left != null && right != null && (left.address.toLowerCase() !== right.address.toLowerCase() || (left.decimals ?? null) !== (right.decimals ?? null))) {
|
|
47
|
+
throw new GauntletSDKError("Activity rows contain different asset denominations");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function validateActivityRow(row) {
|
|
51
|
+
const shares = sharesToBigInt(row.shares_delta);
|
|
52
|
+
const assets = decimalToBigInt(row.assets_delta.native, 18);
|
|
53
|
+
if (!Number.isSafeInteger(row.block_number) || row.block_number < 0 || !Number.isSafeInteger(row.block_timestamp) || row.block_timestamp < 0 || typeof row.vault_id !== "string" || row.vault_id.length === 0 || typeof row.tx_hash !== "string" || row.tx_hash.length === 0 || row.request_hash != null && (typeof row.request_hash !== "string" || row.request_hash.length === 0)) {
|
|
54
|
+
throw new GauntletSDKError("The activity row has invalid event identifiers");
|
|
55
|
+
}
|
|
56
|
+
const token = row.assets_delta.token;
|
|
57
|
+
if (token != null && token.decimals != null) {
|
|
58
|
+
if (!Number.isInteger(token.decimals) || token.decimals < 0 || token.decimals > 255) {
|
|
59
|
+
throw new GauntletSDKError("The activity token has invalid decimals");
|
|
60
|
+
}
|
|
61
|
+
decimalToBigInt(row.assets_delta.native, token.decimals);
|
|
62
|
+
}
|
|
63
|
+
let valid;
|
|
64
|
+
switch (row.type) {
|
|
65
|
+
case "deposit":
|
|
66
|
+
valid = shares >= 0n && assets >= 0n && (row.request_hash == null || assets === 0n);
|
|
67
|
+
break;
|
|
68
|
+
case "deposit_pending":
|
|
69
|
+
valid = shares === 0n && assets > 0n && row.request_hash != null;
|
|
70
|
+
break;
|
|
71
|
+
case "deposit_refunded":
|
|
72
|
+
valid = shares === 0n && assets < 0n && row.request_hash != null;
|
|
73
|
+
break;
|
|
74
|
+
case "withdraw":
|
|
75
|
+
valid = shares <= 0n && assets <= 0n && (row.request_hash == null || shares === 0n);
|
|
76
|
+
break;
|
|
77
|
+
case "withdraw_pending":
|
|
78
|
+
valid = shares < 0n && assets === 0n && row.request_hash != null;
|
|
79
|
+
break;
|
|
80
|
+
case "withdraw_refunded":
|
|
81
|
+
valid = shares > 0n && assets === 0n && row.request_hash != null;
|
|
82
|
+
break;
|
|
83
|
+
case "transfer_in":
|
|
84
|
+
valid = shares >= 0n && assets >= 0n && row.request_hash == null;
|
|
85
|
+
break;
|
|
86
|
+
case "transfer_out":
|
|
87
|
+
valid = shares <= 0n && assets <= 0n && row.request_hash == null;
|
|
88
|
+
break;
|
|
89
|
+
default:
|
|
90
|
+
valid = false;
|
|
91
|
+
}
|
|
92
|
+
if (!valid) throw new GauntletSDKError(`Invalid activity deltas for ${row.type}`);
|
|
93
|
+
}
|
|
94
|
+
function orderActivityRows(rows) {
|
|
95
|
+
rows.forEach(validateActivityRow);
|
|
96
|
+
return [...rows].sort(
|
|
97
|
+
(a, b) => a.block_number - b.block_number || a.block_timestamp - b.block_timestamp || Number(isPending(b)) - Number(isPending(a))
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
function activityLifecycles(ordered) {
|
|
101
|
+
const groups = [];
|
|
102
|
+
const latest = /* @__PURE__ */ new Map();
|
|
103
|
+
for (const row of ordered) {
|
|
104
|
+
if (row.request_hash == null) {
|
|
105
|
+
groups.push([row]);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const key = `${row.vault_id}:${row.request_hash}`;
|
|
109
|
+
const previous = latest.get(key);
|
|
110
|
+
if (previous === void 0 || isPending(row)) {
|
|
111
|
+
if (previous !== void 0 && previous.every(isPending)) {
|
|
112
|
+
throw new GauntletSDKError("An activity request has duplicate pending rows");
|
|
113
|
+
}
|
|
114
|
+
const group = [row];
|
|
115
|
+
latest.set(key, group);
|
|
116
|
+
groups.push(group);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (previous.some((entry) => !isPending(entry))) {
|
|
120
|
+
throw new GauntletSDKError("An activity request has conflicting terminal rows");
|
|
121
|
+
}
|
|
122
|
+
const pending = previous[0];
|
|
123
|
+
requireSameToken(pending, row);
|
|
124
|
+
const expected = pending.type === "deposit_pending" ? ["deposit", "deposit_refunded"] : ["withdraw", "withdraw_refunded"];
|
|
125
|
+
if (!expected.includes(row.type)) {
|
|
126
|
+
throw new GauntletSDKError("The activity terminal does not match its request");
|
|
127
|
+
}
|
|
128
|
+
if (row.type === "deposit_refunded" && decimalToBigInt(pending.assets_delta.native, 18) !== -decimalToBigInt(row.assets_delta.native, 18)) {
|
|
129
|
+
throw new GauntletSDKError("The deposit refund does not match its request");
|
|
130
|
+
}
|
|
131
|
+
if (row.type === "withdraw_refunded" && sharesToBigInt(pending.shares_delta) !== -sharesToBigInt(row.shares_delta)) {
|
|
132
|
+
throw new GauntletSDKError("The withdrawal refund does not match its request");
|
|
133
|
+
}
|
|
134
|
+
previous.push(row);
|
|
135
|
+
}
|
|
136
|
+
return groups;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// src/api/activity.ts
|
|
140
|
+
var PENDING_TYPES = /* @__PURE__ */ new Set(["deposit_pending", "withdraw_pending"]);
|
|
141
|
+
var REFUNDED_TYPES = /* @__PURE__ */ new Set(["deposit_refunded", "withdraw_refunded"]);
|
|
142
|
+
function flowKind(rowType) {
|
|
143
|
+
if (["deposit", "deposit_pending", "deposit_refunded"].includes(rowType)) return "deposit";
|
|
144
|
+
if (["withdraw", "withdraw_pending", "withdraw_refunded"].includes(rowType)) return "withdraw";
|
|
145
|
+
if (rowType === "transfer_in" || rowType === "transfer_out") return rowType;
|
|
146
|
+
throw new GauntletSDKError(`Unknown activity row type "${rowType}"`);
|
|
147
|
+
}
|
|
148
|
+
function abs(value) {
|
|
149
|
+
return value < 0n ? -value : value;
|
|
150
|
+
}
|
|
151
|
+
var ASSET_SCALE = 18;
|
|
152
|
+
function toAssetAmount(rows) {
|
|
153
|
+
let best = rows[0];
|
|
154
|
+
let bestMagnitude = abs(decimalToBigInt(best.assets_delta.native, ASSET_SCALE));
|
|
155
|
+
for (const row of rows.slice(1)) {
|
|
156
|
+
const magnitude = abs(decimalToBigInt(row.assets_delta.native, ASSET_SCALE));
|
|
157
|
+
if (magnitude > bestMagnitude) {
|
|
158
|
+
best = row;
|
|
159
|
+
bestMagnitude = magnitude;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const token = best.assets_delta.token ?? rows.find((r) => r.assets_delta.token)?.assets_delta.token ?? null;
|
|
163
|
+
const decimal = best.assets_delta.native.replace(/^-/, "");
|
|
164
|
+
const raw = token?.decimals != null ? decimalToBigInt(decimal, token.decimals) : null;
|
|
165
|
+
return { decimal, raw, token };
|
|
166
|
+
}
|
|
167
|
+
function stitchActivityFlows(rows) {
|
|
168
|
+
const groups = activityLifecycles(orderActivityRows(rows));
|
|
169
|
+
const flows = [];
|
|
170
|
+
for (const group of groups) {
|
|
171
|
+
group.sort((a, b) => a.block_timestamp - b.block_timestamp);
|
|
172
|
+
const pendingRow = group.find((r) => PENDING_TYPES.has(r.type)) ?? null;
|
|
173
|
+
const terminalRow = group.find((r) => !PENDING_TYPES.has(r.type)) ?? null;
|
|
174
|
+
const isAsync = group.some((r) => r.request_hash != null);
|
|
175
|
+
let status;
|
|
176
|
+
if (!terminalRow) status = "pending";
|
|
177
|
+
else if (REFUNDED_TYPES.has(terminalRow.type)) status = "refunded";
|
|
178
|
+
else status = "settled";
|
|
179
|
+
let sharesMagnitude = 0n;
|
|
180
|
+
for (const row of group) {
|
|
181
|
+
const shares = abs(sharesToBigInt(row.shares_delta));
|
|
182
|
+
if (shares > sharesMagnitude) sharesMagnitude = shares;
|
|
183
|
+
}
|
|
184
|
+
flows.push({
|
|
185
|
+
kind: flowKind((terminalRow ?? pendingRow ?? group[0]).type),
|
|
186
|
+
status,
|
|
187
|
+
vaultId: group[0].vault_id,
|
|
188
|
+
requestHash: group[0].request_hash ?? null,
|
|
189
|
+
requestedAt: pendingRow ? new Date(pendingRow.block_timestamp * 1e3) : isAsync ? null : new Date(group[0].block_timestamp * 1e3),
|
|
190
|
+
settledAt: terminalRow ? new Date(terminalRow.block_timestamp * 1e3) : null,
|
|
191
|
+
assets: toAssetAmount(group),
|
|
192
|
+
shares: sharesMagnitude,
|
|
193
|
+
txHashes: [...new Set(group.map((r) => r.tx_hash))]
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return flows.sort((a, b) => {
|
|
197
|
+
const aAt = (a.settledAt ?? a.requestedAt)?.getTime() ?? 0;
|
|
198
|
+
const bAt = (b.settledAt ?? b.requestedAt)?.getTime() ?? 0;
|
|
199
|
+
return bAt - aAt;
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
async function getActivityFlows(api, walletAddress, options = {}) {
|
|
203
|
+
const maxRows = options.maxRows ?? 1e3;
|
|
204
|
+
const rows = [];
|
|
205
|
+
for await (const row of api.activityRows(walletAddress, {
|
|
206
|
+
vaultId: options.vaultId,
|
|
207
|
+
// The API caps page size at 1000; request maxRows per page so the common
|
|
208
|
+
// case is a single round trip instead of ten default-100 pages.
|
|
209
|
+
limit: options.limit ?? Math.min(maxRows, 1e3),
|
|
210
|
+
order: "desc"
|
|
211
|
+
})) {
|
|
212
|
+
rows.push(row);
|
|
213
|
+
if (rows.length >= maxRows) break;
|
|
214
|
+
}
|
|
215
|
+
const flows = stitchActivityFlows(rows);
|
|
216
|
+
if (rows.length >= maxRows) {
|
|
217
|
+
return flows.filter((f) => f.requestHash === null || f.requestedAt !== null);
|
|
218
|
+
}
|
|
219
|
+
return flows;
|
|
220
|
+
}
|
|
221
|
+
async function waitForRequestSettlement(api, walletAddress, requestHash, options) {
|
|
222
|
+
if (typeof options?.requestTxHash !== "string" || options.requestTxHash.length === 0) {
|
|
223
|
+
throw new GauntletSDKError(
|
|
224
|
+
"Settlement polling requires the submitted request transaction hash"
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
const pollIntervalMs = options.pollIntervalMs ?? 5e3;
|
|
228
|
+
const timeoutMs = options.timeoutMs ?? 6e5;
|
|
229
|
+
const deadline = Date.now() + timeoutMs;
|
|
230
|
+
for (; ; ) {
|
|
231
|
+
const flows = await getActivityFlows(api, walletAddress, { vaultId: options.vaultId });
|
|
232
|
+
const flow = flows.find(
|
|
233
|
+
(f) => f.requestHash === requestHash && f.txHashes.some((hash) => hash.toLowerCase() === options.requestTxHash.toLowerCase())
|
|
234
|
+
);
|
|
235
|
+
if (flow && flow.status !== "pending") return flow;
|
|
236
|
+
if (Date.now() + pollIntervalMs > deadline) {
|
|
237
|
+
throw new SettlementTimeoutError(requestHash, timeoutMs);
|
|
238
|
+
}
|
|
239
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// src/api/positionHistory.ts
|
|
244
|
+
var ASSET_SCALE2 = 18;
|
|
245
|
+
function buildPositionHistory(rows) {
|
|
246
|
+
if (rows.length === 0) {
|
|
247
|
+
throw new GauntletSDKError("Cannot build position history from zero activity rows");
|
|
248
|
+
}
|
|
249
|
+
const vaultIds = new Set(rows.map((r) => r.vault_id));
|
|
250
|
+
if (vaultIds.size > 1) {
|
|
251
|
+
throw new GauntletSDKError(
|
|
252
|
+
`Position history requires rows from a single vault; got ${[...vaultIds].join(", ")}`
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
const ordered = orderActivityRows(rows);
|
|
256
|
+
activityLifecycles(ordered);
|
|
257
|
+
const tokenRow = ordered.find((r) => r.assets_delta.token) ?? ordered[0];
|
|
258
|
+
const token = tokenRow.assets_delta.token ?? null;
|
|
259
|
+
for (const row of ordered) requireSameToken(tokenRow, row);
|
|
260
|
+
let sharesBalance = 0n;
|
|
261
|
+
let pendingDepositAssets = 0n;
|
|
262
|
+
let pendingRedeemShares = 0n;
|
|
263
|
+
let netAssetsIn = 0n;
|
|
264
|
+
const pendingDepositByHash = /* @__PURE__ */ new Map();
|
|
265
|
+
const pendingRedeemByHash = /* @__PURE__ */ new Map();
|
|
266
|
+
const points = [];
|
|
267
|
+
for (const row of ordered) {
|
|
268
|
+
const sharesDelta = sharesToBigInt(row.shares_delta);
|
|
269
|
+
const assetsDelta = decimalToBigInt(row.assets_delta.native, ASSET_SCALE2);
|
|
270
|
+
sharesBalance += sharesDelta;
|
|
271
|
+
switch (row.type) {
|
|
272
|
+
case "deposit":
|
|
273
|
+
if (row.request_hash != null) {
|
|
274
|
+
const requested = pendingDepositByHash.get(row.request_hash);
|
|
275
|
+
if (requested === void 0) {
|
|
276
|
+
throw new GauntletSDKError(
|
|
277
|
+
`Deposit settlement ${row.tx_hash} references request_hash "${row.request_hash}" with no matching deposit_pending row`
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
pendingDepositByHash.delete(row.request_hash);
|
|
281
|
+
pendingDepositAssets -= requested;
|
|
282
|
+
netAssetsIn += requested;
|
|
283
|
+
} else {
|
|
284
|
+
netAssetsIn += assetsDelta;
|
|
285
|
+
}
|
|
286
|
+
break;
|
|
287
|
+
case "deposit_pending":
|
|
288
|
+
pendingDepositAssets += assetsDelta;
|
|
289
|
+
if (row.request_hash != null) pendingDepositByHash.set(row.request_hash, assetsDelta);
|
|
290
|
+
break;
|
|
291
|
+
case "deposit_refunded":
|
|
292
|
+
if (row.request_hash == null || pendingDepositByHash.get(row.request_hash) !== -assetsDelta) {
|
|
293
|
+
throw new GauntletSDKError("The deposit refund does not match its escrow");
|
|
294
|
+
}
|
|
295
|
+
pendingDepositAssets += assetsDelta;
|
|
296
|
+
pendingDepositByHash.delete(row.request_hash);
|
|
297
|
+
break;
|
|
298
|
+
case "withdraw":
|
|
299
|
+
netAssetsIn += assetsDelta;
|
|
300
|
+
if (row.request_hash != null) {
|
|
301
|
+
const escrowed = pendingRedeemByHash.get(row.request_hash);
|
|
302
|
+
if (escrowed === void 0) {
|
|
303
|
+
throw new GauntletSDKError(
|
|
304
|
+
`Withdraw settlement ${row.tx_hash} references request_hash "${row.request_hash}" with no matching withdraw_pending row`
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
pendingRedeemByHash.delete(row.request_hash);
|
|
308
|
+
pendingRedeemShares -= escrowed;
|
|
309
|
+
}
|
|
310
|
+
break;
|
|
311
|
+
case "withdraw_pending": {
|
|
312
|
+
const escrowed = -sharesDelta;
|
|
313
|
+
pendingRedeemShares += escrowed;
|
|
314
|
+
if (row.request_hash != null) pendingRedeemByHash.set(row.request_hash, escrowed);
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
case "withdraw_refunded":
|
|
318
|
+
if (row.request_hash == null || pendingRedeemByHash.get(row.request_hash) !== sharesDelta) {
|
|
319
|
+
throw new GauntletSDKError("The withdrawal refund does not match its escrow");
|
|
320
|
+
}
|
|
321
|
+
pendingRedeemShares -= sharesDelta;
|
|
322
|
+
pendingRedeemByHash.delete(row.request_hash);
|
|
323
|
+
break;
|
|
324
|
+
case "transfer_in":
|
|
325
|
+
case "transfer_out":
|
|
326
|
+
break;
|
|
327
|
+
default:
|
|
328
|
+
throw new GauntletSDKError(`Unknown activity row type "${row.type}"`);
|
|
329
|
+
}
|
|
330
|
+
if (sharesBalance < 0n || pendingDepositAssets < 0n || pendingRedeemShares < 0n) {
|
|
331
|
+
throw new GauntletSDKError("The activity history produces a negative position balance");
|
|
332
|
+
}
|
|
333
|
+
points.push({
|
|
334
|
+
timestamp: new Date(row.block_timestamp * 1e3),
|
|
335
|
+
txHash: row.tx_hash,
|
|
336
|
+
type: row.type,
|
|
337
|
+
sharesDelta,
|
|
338
|
+
assetsDelta: row.assets_delta.native,
|
|
339
|
+
sharesBalance,
|
|
340
|
+
pendingDepositAssets: bigIntToDecimal(pendingDepositAssets, ASSET_SCALE2),
|
|
341
|
+
pendingRedeemShares,
|
|
342
|
+
netAssetsIn: bigIntToDecimal(netAssetsIn, ASSET_SCALE2)
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
return { vaultId: ordered[0].vault_id, token, points };
|
|
346
|
+
}
|
|
347
|
+
async function getPositionHistory(api, walletAddress, vaultId) {
|
|
348
|
+
const rows = [];
|
|
349
|
+
for await (const row of api.activityRows(walletAddress, { vaultId, order: "asc", limit: 1e3 })) {
|
|
350
|
+
rows.push(row);
|
|
351
|
+
}
|
|
352
|
+
if (rows.length === 0) return { vaultId, token: null, points: [] };
|
|
353
|
+
return buildPositionHistory(rows);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export {
|
|
357
|
+
decimalToBigInt,
|
|
358
|
+
bigIntToDecimal,
|
|
359
|
+
SHARE_DECIMALS,
|
|
360
|
+
sharesToBigInt,
|
|
361
|
+
stitchActivityFlows,
|
|
362
|
+
getActivityFlows,
|
|
363
|
+
waitForRequestSettlement,
|
|
364
|
+
buildPositionHistory,
|
|
365
|
+
getPositionHistory
|
|
366
|
+
};
|
|
367
|
+
//# sourceMappingURL=chunk-MEKISE2T.js.map
|