@gauntlet-xyz/sdk 2.3.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 +135 -0
- 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 +65 -6
- 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 +621 -14
- 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 +15 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts +44 -0
- package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -1
- package/dist/evm/abis/provisionerV2.d.ts +56 -0
- package/dist/evm/abis/provisionerV2.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 -2
- package/dist/evm/adapters/types.d.ts.map +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +11 -6
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
- package/dist/evm/aeraContracts/readOptions.d.ts +8 -0
- package/dist/evm/aeraContracts/readOptions.d.ts.map +1 -0
- 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 +396 -4
- package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
- package/dist/evm/aeraContracts.d.ts +11 -5
- 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 -17
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +88 -9
- package/dist/evm/index.js.map +7 -1
- package/dist/evm/tokenModes.d.ts +22 -0
- package/dist/evm/tokenModes.d.ts.map +1 -0
- 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 +10 -2
- package/dist/evm/withdraw.d.ts.map +1 -1
- package/dist/evm/withdrawQuote.d.ts +135 -0
- package/dist/evm/withdrawQuote.d.ts.map +1 -0
- package/dist/index.d.ts +30 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +139 -12
- 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 +45 -460
- package/package.json +43 -9
- package/src/api/client.ts +104 -7
- package/src/api/generated.ts +621 -14
- package/src/api/index.ts +13 -0
- package/src/client.ts +4 -1
- package/src/constants.ts +2 -0
- package/src/errors.ts +39 -2
- package/src/evm/abis/priceAndFeeCalculatorV2.ts +22 -0
- package/src/evm/abis/provisionerV2.ts +33 -0
- package/src/evm/adapters/aera.ts +64 -34
- package/src/evm/adapters/types.ts +4 -0
- package/src/evm/aeraContracts/priceAndFeeCalculator.ts +72 -5
- package/src/evm/aeraContracts/readOptions.ts +3 -0
- package/src/evm/aeraContracts/v2.ts +273 -41
- package/src/evm/aeraContracts.ts +81 -8
- package/src/evm/deposit.ts +21 -8
- package/src/evm/depositQuote.ts +137 -0
- package/src/evm/index.ts +41 -0
- package/src/evm/tokenModes.ts +54 -0
- package/src/evm/userCurrentBalance.ts +12 -1
- package/src/evm/vaults.ts +0 -7
- package/src/evm/withdraw.ts +131 -7
- package/src/evm/withdrawQuote.ts +434 -0
- package/src/index.ts +26 -1
- 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 -109
- 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 -115
- 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 -119
- 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 -262
- package/dist/evm/abis/provisionerV2.js.map +0 -1
- package/dist/evm/adapters/aera.js +0 -249
- 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 -140
- package/dist/evm/aeraContracts/priceAndFeeCalculator.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 -217
- package/dist/evm/aeraContracts/v2.js.map +0 -1
- package/dist/evm/aeraContracts.js +0 -134
- 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/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 -97
- package/dist/evm/withdraw.js.map +0 -1
package/dist/api/caip.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { VaultNotFoundError } from '../errors';
|
|
2
|
-
import { resolveVault } from '../evm/vaults';
|
|
3
|
-
import { InvalidCaipIdError } from './errors';
|
|
4
|
-
export function parseApiVaultId(id) {
|
|
5
|
-
const match = /^(?:eip155:)?(\d+):(0x[0-9a-fA-F]{40})$/.exec(id);
|
|
6
|
-
if (!match)
|
|
7
|
-
throw new InvalidCaipIdError(id);
|
|
8
|
-
return { chainId: Number(match[1]), address: match[2].toLowerCase() };
|
|
9
|
-
}
|
|
10
|
-
export function formatApiVaultId(chainId, address) {
|
|
11
|
-
return `${chainId}:${address.toLowerCase()}`;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Resolves a manifest vault id (e.g. `VaultId.AeraUsdAlpha` / `'gtusda'`) to
|
|
15
|
-
* the Gaia API's CAIP-10 id for the vault's deployment on `chainId`.
|
|
16
|
-
*
|
|
17
|
-
* Deployment resolution is `resolveVault` — the same rules tx-building uses:
|
|
18
|
-
* single-deployment vaults resolve directly (a mismatched explicit `chainId`
|
|
19
|
-
* throws `ChainMismatchError`), multi-chain vaults default to Base when
|
|
20
|
-
* `chainId` is omitted.
|
|
21
|
-
*/
|
|
22
|
-
export async function apiVaultIdFromVaultId(client, vaultId, chainId) {
|
|
23
|
-
const resolved = await resolveVault(client, vaultId, chainId);
|
|
24
|
-
if (!resolved)
|
|
25
|
-
throw new VaultNotFoundError(vaultId, chainId);
|
|
26
|
-
return formatApiVaultId(resolved.vault.chainId, resolved.vault.vaultAddress);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Resolves a Gaia API CAIP-10 vault id back to the manifest vault id, or
|
|
30
|
-
* `undefined` when the vault is not in the bundled manifest (the API indexes
|
|
31
|
-
* more vaults than the manifest lists).
|
|
32
|
-
*/
|
|
33
|
-
export async function vaultIdFromApiVaultId(client, apiVaultId) {
|
|
34
|
-
const { chainId, address } = parseApiVaultId(apiVaultId);
|
|
35
|
-
const manifest = await client.manifest;
|
|
36
|
-
return manifest.vaults.find((v) => v.deployments.some((d) => d.chain === 'evm' && d.chainId === chainId && d.vaultAddress.toLowerCase() === address))?.vaultId;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=caip.js.map
|
package/dist/api/caip.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"caip.js","sourceRoot":"","sources":["../../src/api/caip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAY9C,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,MAAM,KAAK,GAAG,yCAAyC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAe,EACf,OAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,UAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;IACvC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,WAAW,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,OAAO,CAC9F,CACF,EAAE,OAAO,CAAC;AACb,CAAC"}
|
package/dist/api/client.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { apiGet } from './http';
|
|
2
|
-
/**
|
|
3
|
-
* Typed client for the Gaia REST API (api.gauntlet.xyz).
|
|
4
|
-
*
|
|
5
|
-
* All response types are generated from the service's OpenAPI spec
|
|
6
|
-
* (`src/api/generated.ts`, regenerated via `yarn generate:api-types`) so they
|
|
7
|
-
* cannot drift from the server models. Values are returned exactly as the API
|
|
8
|
-
* emits them — human-unit decimal strings and CAIP-10 vault ids; use
|
|
9
|
-
* `decimalToBigInt` / `sharesToBigInt` and `apiVaultIdFromVaultId` /
|
|
10
|
-
* `vaultIdFromApiVaultId` to convert, or the higher-level `activityFlows` /
|
|
11
|
-
* `positionHistory` helpers for pre-normalized values.
|
|
12
|
-
*
|
|
13
|
-
* Available on a configured client as `client.api`, or standalone:
|
|
14
|
-
* ```ts
|
|
15
|
-
* const api = new GauntletApi({ apiKey: process.env.GAUNTLET_API_KEY });
|
|
16
|
-
* const { data } = await api.vaults();
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export class GauntletApi {
|
|
20
|
-
constructor(config = {}) {
|
|
21
|
-
this.config = config;
|
|
22
|
-
}
|
|
23
|
-
get(path, query) {
|
|
24
|
-
return apiGet(this.config, path, query);
|
|
25
|
-
}
|
|
26
|
-
/** GET /health — service liveness (version + uptime). */
|
|
27
|
-
health() {
|
|
28
|
-
return this.get('/health');
|
|
29
|
-
}
|
|
30
|
-
/** GET /health/chains — per-chain indexer sync freshness. */
|
|
31
|
-
chainSyncStatus() {
|
|
32
|
-
return this.get('/health/chains');
|
|
33
|
-
}
|
|
34
|
-
/** GET /v1/vaults — all indexed vaults with live metrics (TVL, APY, unit price). */
|
|
35
|
-
vaults(options = {}) {
|
|
36
|
-
return this.get('/v1/vaults', { next: options.next, limit: options.limit });
|
|
37
|
-
}
|
|
38
|
-
/** GET /v1/vaults/{vault_id} — one vault with live metrics. `vaultId` is CAIP-10. */
|
|
39
|
-
vault(vaultId) {
|
|
40
|
-
return this.get(`/v1/vaults/${encodeURIComponent(vaultId)}`);
|
|
41
|
-
}
|
|
42
|
-
/** GET /v1/vaults/{vault_id}/definition — raw indexed vault definition. */
|
|
43
|
-
vaultDefinition(vaultId) {
|
|
44
|
-
return this.get(`/v1/vaults/${encodeURIComponent(vaultId)}/definition`);
|
|
45
|
-
}
|
|
46
|
-
/** GET /v1/vaults/{vault_id}/timeseries — TVL / unit-price / APY history. */
|
|
47
|
-
vaultTimeseries(vaultId, options = {}) {
|
|
48
|
-
return this.get(`/v1/vaults/${encodeURIComponent(vaultId)}/timeseries`, { ...options });
|
|
49
|
-
}
|
|
50
|
-
/** GET /v1/users/{wallet}/positions — all of a wallet's indexed positions with PnL. */
|
|
51
|
-
positions(walletAddress, options = {}) {
|
|
52
|
-
return this.get(`/v1/users/${encodeURIComponent(walletAddress)}/positions`, {
|
|
53
|
-
next: options.next,
|
|
54
|
-
limit: options.limit,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/** GET /v1/users/{wallet}/positions/{vault_id} — one position with PnL breakdown. */
|
|
58
|
-
position(walletAddress, vaultId) {
|
|
59
|
-
return this.get(`/v1/users/${encodeURIComponent(walletAddress)}/positions/${encodeURIComponent(vaultId)}`);
|
|
60
|
-
}
|
|
61
|
-
/** GET /v1/users/{wallet}/positions/{vault_id}/timeseries — value / cost-basis / PnL / ROI history. */
|
|
62
|
-
positionTimeseries(walletAddress, vaultId, options = {}) {
|
|
63
|
-
return this.get(`/v1/users/${encodeURIComponent(walletAddress)}/positions/${encodeURIComponent(vaultId)}/timeseries`, { ...options });
|
|
64
|
-
}
|
|
65
|
-
/** GET /v1/users/{wallet}/activity — one page of the wallet's immutable event log. */
|
|
66
|
-
activity(walletAddress, options = {}) {
|
|
67
|
-
const { vaultId, ...page } = options;
|
|
68
|
-
return this.get(`/v1/users/${encodeURIComponent(walletAddress)}/activity`, {
|
|
69
|
-
vault_id: vaultId,
|
|
70
|
-
...page,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Iterates the wallet's full activity log, following `meta.next_cursor`
|
|
75
|
-
* across pages so callers never handle cursors.
|
|
76
|
-
*/
|
|
77
|
-
async *activityRows(walletAddress, options = {}) {
|
|
78
|
-
let next;
|
|
79
|
-
do {
|
|
80
|
-
const page = await this.activity(walletAddress, { ...options, next });
|
|
81
|
-
yield* page.data;
|
|
82
|
-
next = page.meta.next_cursor ?? undefined;
|
|
83
|
-
} while (next);
|
|
84
|
-
}
|
|
85
|
-
/** GET /v1/tvl — aggregate Gauntlet TVL, optionally with per-source breakdown. */
|
|
86
|
-
tvl(options = {}) {
|
|
87
|
-
return this.get('/v1/tvl', { include_breakdown: options.includeBreakdown });
|
|
88
|
-
}
|
|
89
|
-
/** GET /v1/prices — latest USD price for a token. */
|
|
90
|
-
latestPrice(options) {
|
|
91
|
-
return this.get('/v1/prices', {
|
|
92
|
-
address: options.address,
|
|
93
|
-
chain_id: options.chainId,
|
|
94
|
-
at: options.at,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
/** GET /v1/prices/timeseries — USD price history for a token. */
|
|
98
|
-
priceTimeseries(options) {
|
|
99
|
-
return this.get('/v1/prices/timeseries', {
|
|
100
|
-
address: options.address,
|
|
101
|
-
chain_id: options.chainId,
|
|
102
|
-
start: options.start,
|
|
103
|
-
end: options.end,
|
|
104
|
-
granularity: options.granularity,
|
|
105
|
-
limit: options.limit,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=client.js.map
|
package/dist/api/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/decimal.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { formatUnits } from 'viem';
|
|
2
|
-
import { DecimalPrecisionError, InvalidDecimalError } from './errors';
|
|
3
|
-
const DECIMAL_RE = /^(-?)(\d+)(?:\.(\d+))?$/;
|
|
4
|
-
/**
|
|
5
|
-
* Converts an API decimal string (human units, e.g. `"1250.5"`) into base-unit
|
|
6
|
-
* bigint at the given token decimals (e.g. `1250500000n` for 6 decimals).
|
|
7
|
-
*
|
|
8
|
-
* The conversion is exact: a value with more significant fractional digits
|
|
9
|
-
* than `decimals` throws `DecimalPrecisionError` rather than rounding.
|
|
10
|
-
* Hand-rolled instead of viem's `parseUnits`, which silently rounds excess
|
|
11
|
-
* precision (`parseUnits('1.0000005', 6)` → `1000001n`) — unacceptable for
|
|
12
|
-
* financial amounts.
|
|
13
|
-
*/
|
|
14
|
-
export function decimalToBigInt(value, decimals) {
|
|
15
|
-
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
16
|
-
throw new InvalidDecimalError(`decimals=${decimals}`);
|
|
17
|
-
}
|
|
18
|
-
const match = DECIMAL_RE.exec(value);
|
|
19
|
-
if (!match)
|
|
20
|
-
throw new InvalidDecimalError(value);
|
|
21
|
-
const [, sign, whole, frac = ''] = match;
|
|
22
|
-
if (frac.length > decimals && !/^0*$/.test(frac.slice(decimals))) {
|
|
23
|
-
throw new DecimalPrecisionError(value, decimals);
|
|
24
|
-
}
|
|
25
|
-
const scaled = BigInt(whole + frac.slice(0, decimals).padEnd(decimals, '0'));
|
|
26
|
-
return sign === '-' ? -scaled : scaled;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Formats a base-unit bigint back into the API's human decimal-string
|
|
30
|
-
* representation (no trailing fractional zeros, no exponent notation).
|
|
31
|
-
*/
|
|
32
|
-
export function bigIntToDecimal(value, decimals) {
|
|
33
|
-
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
34
|
-
throw new InvalidDecimalError(`decimals=${decimals}`);
|
|
35
|
-
}
|
|
36
|
-
return formatUnits(value, decimals);
|
|
37
|
-
}
|
|
38
|
-
/** Vault shares are always reported in 18-decimal units by the Gaia API. */
|
|
39
|
-
export const SHARE_DECIMALS = 18;
|
|
40
|
-
/** Parses an API share amount (decimal string) into base-unit bigint (1e18). */
|
|
41
|
-
export function sharesToBigInt(value) {
|
|
42
|
-
return decimalToBigInt(value, SHARE_DECIMALS);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=decimal.js.map
|
package/dist/api/decimal.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decimal.js","sourceRoot":"","sources":["../../src/api/decimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEtE,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,mBAAmB,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,mBAAmB,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/api/errors.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { GauntletSDKError } from '../errors';
|
|
2
|
-
export class GauntletApiError extends GauntletSDKError {
|
|
3
|
-
constructor(params) {
|
|
4
|
-
super(`Gauntlet API request to "${params.path}" failed with ${params.status}: ${params.message}`);
|
|
5
|
-
this.name = 'GauntletApiError';
|
|
6
|
-
this.status = params.status;
|
|
7
|
-
this.path = params.path;
|
|
8
|
-
this.code = params.code;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export class InvalidDecimalError extends GauntletSDKError {
|
|
12
|
-
constructor(value) {
|
|
13
|
-
super(`Value "${value}" is not a valid decimal string`);
|
|
14
|
-
this.name = 'InvalidDecimalError';
|
|
15
|
-
this.value = value;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export class DecimalPrecisionError extends GauntletSDKError {
|
|
19
|
-
constructor(value, decimals) {
|
|
20
|
-
super(`Decimal "${value}" has more fractional digits than the token's ${decimals} decimals; converting would lose precision`);
|
|
21
|
-
this.name = 'DecimalPrecisionError';
|
|
22
|
-
this.value = value;
|
|
23
|
-
this.decimals = decimals;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export class InvalidCaipIdError extends GauntletSDKError {
|
|
27
|
-
constructor(id) {
|
|
28
|
-
super(`"${id}" is not a valid CAIP-10 vault id (expected "{chainId}:{address}")`);
|
|
29
|
-
this.name = 'InvalidCaipIdError';
|
|
30
|
-
this.id = id;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export class SettlementTimeoutError extends GauntletSDKError {
|
|
34
|
-
constructor(requestHash, timeoutMs) {
|
|
35
|
-
super(`Request "${requestHash}" did not settle within ${timeoutMs}ms`);
|
|
36
|
-
this.name = 'SettlementTimeoutError';
|
|
37
|
-
this.requestHash = requestHash;
|
|
38
|
-
this.timeoutMs = timeoutMs;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/api/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAMpD,YAAY,MAAwE;QAClF,KAAK,CACH,4BAA4B,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE,CAC3F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IAGvD,YAAY,KAAa;QACvB,KAAK,CAAC,UAAU,KAAK,iCAAiC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IAIzD,YAAY,KAAa,EAAE,QAAgB;QACzC,KAAK,CACH,YAAY,KAAK,iDAAiD,QAAQ,4CAA4C,CACvH,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAGtD,YAAY,EAAU;QACpB,KAAK,CAAC,IAAI,EAAE,oEAAoE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAI1D,YAAY,WAAmB,EAAE,SAAiB;QAChD,KAAK,CAAC,YAAY,WAAW,2BAA2B,SAAS,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
package/dist/api/generated.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/api/generated.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/api/http.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { GauntletApiError } from './errors';
|
|
2
|
-
export const DEFAULT_API_URL = 'https://api.gauntlet.xyz';
|
|
3
|
-
export async function apiGet(config, path, query) {
|
|
4
|
-
// Concatenate instead of `new URL(path, base)`: the paths are absolute, so
|
|
5
|
-
// URL resolution would silently drop any path prefix on a proxy apiUrl.
|
|
6
|
-
const base = (config.apiUrl ?? DEFAULT_API_URL).replace(/\/+$/, '');
|
|
7
|
-
// Relative bases resolve against the browser origin.
|
|
8
|
-
const origin = globalThis.location?.origin;
|
|
9
|
-
if (origin === undefined && !/^[a-z][a-z0-9+.-]*:\/\//i.test(base)) {
|
|
10
|
-
throw new Error(`relative apiUrl "${base}" requires a browser origin; pass an absolute apiUrl outside the browser`);
|
|
11
|
-
}
|
|
12
|
-
const url = new URL(base + path, origin);
|
|
13
|
-
for (const [key, value] of Object.entries(query ?? {})) {
|
|
14
|
-
if (value !== undefined)
|
|
15
|
-
url.searchParams.set(key, String(value));
|
|
16
|
-
}
|
|
17
|
-
const fetchImpl = config.fetch ?? fetch;
|
|
18
|
-
const response = await fetchImpl(url, {
|
|
19
|
-
headers: {
|
|
20
|
-
accept: 'application/json',
|
|
21
|
-
...(config.apiKey ? { 'x-api-key': config.apiKey } : {}),
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
let message = response.statusText || 'request failed';
|
|
26
|
-
let code;
|
|
27
|
-
try {
|
|
28
|
-
const body = (await response.json());
|
|
29
|
-
message = body.error?.message ?? message;
|
|
30
|
-
code = body.error?.code;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// non-JSON error body — keep the status text
|
|
34
|
-
}
|
|
35
|
-
throw new GauntletApiError({ status: response.status, path, message, code });
|
|
36
|
-
}
|
|
37
|
-
return (await response.json());
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=http.js.map
|
package/dist/api/http.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAiB1D,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAyB,EACzB,IAAY,EACZ,KAAmB;IAEnB,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpE,qDAAqD;IACrD,MAAM,MAAM,GAAI,UAAgD,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClF,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,0EAA0E,CACnG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;QACpC,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,gBAAgB,CAAC;QACtD,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoD,CAAC;YACxF,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;QACD,MAAM,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;AACtC,CAAC"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { GauntletSDKError } from '../errors';
|
|
2
|
-
import { bigIntToDecimal, decimalToBigInt, sharesToBigInt } from './decimal';
|
|
3
|
-
/**
|
|
4
|
-
* Internal accounting scale for asset amounts. The API emits human-unit
|
|
5
|
-
* decimal strings with at most `token.decimals` fractional digits, so 18
|
|
6
|
-
* digits is exact for every supported asset; a token with more than 18
|
|
7
|
-
* decimals would throw `DecimalPrecisionError` rather than lose precision.
|
|
8
|
-
*/
|
|
9
|
-
const ASSET_SCALE = 18;
|
|
10
|
-
/**
|
|
11
|
-
* Pure builder: replays a single vault's activity rows (any order) into a
|
|
12
|
-
* chronological position timeline — running share balance, escrowed pending
|
|
13
|
-
* amounts, and cumulative net asset flows.
|
|
14
|
-
*
|
|
15
|
-
* Async lifecycles are paired via `request_hash` so settled deposits count
|
|
16
|
-
* the requested asset amount and terminal rows release the matching escrow.
|
|
17
|
-
*/
|
|
18
|
-
export function buildPositionHistory(rows) {
|
|
19
|
-
if (rows.length === 0) {
|
|
20
|
-
throw new GauntletSDKError('Cannot build position history from zero activity rows');
|
|
21
|
-
}
|
|
22
|
-
const vaultIds = new Set(rows.map((r) => r.vault_id));
|
|
23
|
-
if (vaultIds.size > 1) {
|
|
24
|
-
throw new GauntletSDKError(`Position history requires rows from a single vault; got ${[...vaultIds].join(', ')}`);
|
|
25
|
-
}
|
|
26
|
-
const ordered = [...rows].sort((a, b) => a.block_timestamp - b.block_timestamp);
|
|
27
|
-
const token = ordered.find((r) => r.assets_delta.token)?.assets_delta.token ?? null;
|
|
28
|
-
let sharesBalance = 0n;
|
|
29
|
-
let pendingDepositAssets = 0n;
|
|
30
|
-
let pendingRedeemShares = 0n;
|
|
31
|
-
let netAssetsIn = 0n;
|
|
32
|
-
const pendingDepositByHash = new Map();
|
|
33
|
-
const pendingRedeemByHash = new Map();
|
|
34
|
-
const points = [];
|
|
35
|
-
for (const row of ordered) {
|
|
36
|
-
const sharesDelta = sharesToBigInt(row.shares_delta);
|
|
37
|
-
const assetsDelta = decimalToBigInt(row.assets_delta.native, ASSET_SCALE);
|
|
38
|
-
sharesBalance += sharesDelta;
|
|
39
|
-
switch (row.type) {
|
|
40
|
-
case 'deposit':
|
|
41
|
-
if (row.request_hash != null) {
|
|
42
|
-
// Async terminal solve: assets moved at request time; release escrow.
|
|
43
|
-
const requested = pendingDepositByHash.get(row.request_hash);
|
|
44
|
-
if (requested === undefined) {
|
|
45
|
-
throw new GauntletSDKError(`Deposit settlement ${row.tx_hash} references request_hash "${row.request_hash}" with no matching deposit_pending row`);
|
|
46
|
-
}
|
|
47
|
-
pendingDepositByHash.delete(row.request_hash);
|
|
48
|
-
pendingDepositAssets -= requested;
|
|
49
|
-
netAssetsIn += requested;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
netAssetsIn += assetsDelta;
|
|
53
|
-
}
|
|
54
|
-
break;
|
|
55
|
-
case 'deposit_pending':
|
|
56
|
-
pendingDepositAssets += assetsDelta;
|
|
57
|
-
if (row.request_hash != null)
|
|
58
|
-
pendingDepositByHash.set(row.request_hash, assetsDelta);
|
|
59
|
-
break;
|
|
60
|
-
case 'deposit_refunded':
|
|
61
|
-
// Row carries the unwound request as a negative delta.
|
|
62
|
-
pendingDepositAssets += assetsDelta;
|
|
63
|
-
if (row.request_hash != null)
|
|
64
|
-
pendingDepositByHash.delete(row.request_hash);
|
|
65
|
-
break;
|
|
66
|
-
case 'withdraw':
|
|
67
|
-
// Sync withdraws and async terminal solves both carry the asset
|
|
68
|
-
// payout as a negative delta on this row.
|
|
69
|
-
netAssetsIn += assetsDelta;
|
|
70
|
-
if (row.request_hash != null) {
|
|
71
|
-
const escrowed = pendingRedeemByHash.get(row.request_hash);
|
|
72
|
-
if (escrowed === undefined) {
|
|
73
|
-
throw new GauntletSDKError(`Withdraw settlement ${row.tx_hash} references request_hash "${row.request_hash}" with no matching withdraw_pending row`);
|
|
74
|
-
}
|
|
75
|
-
pendingRedeemByHash.delete(row.request_hash);
|
|
76
|
-
pendingRedeemShares -= escrowed;
|
|
77
|
-
}
|
|
78
|
-
break;
|
|
79
|
-
case 'withdraw_pending': {
|
|
80
|
-
const escrowed = -sharesDelta;
|
|
81
|
-
pendingRedeemShares += escrowed;
|
|
82
|
-
if (row.request_hash != null)
|
|
83
|
-
pendingRedeemByHash.set(row.request_hash, escrowed);
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
case 'withdraw_refunded':
|
|
87
|
-
pendingRedeemShares -= sharesDelta;
|
|
88
|
-
if (row.request_hash != null)
|
|
89
|
-
pendingRedeemByHash.delete(row.request_hash);
|
|
90
|
-
break;
|
|
91
|
-
case 'transfer_in':
|
|
92
|
-
case 'transfer_out':
|
|
93
|
-
break;
|
|
94
|
-
default:
|
|
95
|
-
throw new GauntletSDKError(`Unknown activity row type "${row.type}"`);
|
|
96
|
-
}
|
|
97
|
-
points.push({
|
|
98
|
-
timestamp: new Date(row.block_timestamp * 1000),
|
|
99
|
-
txHash: row.tx_hash,
|
|
100
|
-
type: row.type,
|
|
101
|
-
sharesDelta,
|
|
102
|
-
assetsDelta: row.assets_delta.native,
|
|
103
|
-
sharesBalance,
|
|
104
|
-
pendingDepositAssets: bigIntToDecimal(pendingDepositAssets, ASSET_SCALE),
|
|
105
|
-
pendingRedeemShares,
|
|
106
|
-
netAssetsIn: bigIntToDecimal(netAssetsIn, ASSET_SCALE),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return { vaultId: ordered[0].vault_id, token, points };
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Fetches a wallet's complete activity for one vault and replays it into a
|
|
113
|
-
* position timeline. `vaultId` is the CAIP-10 id; use `apiVaultIdFromVaultId`
|
|
114
|
-
* to convert a manifest vault id. A wallet that has never touched the vault
|
|
115
|
-
* gets an empty timeline, not an error.
|
|
116
|
-
*/
|
|
117
|
-
export async function getPositionHistory(api, walletAddress, vaultId) {
|
|
118
|
-
const rows = [];
|
|
119
|
-
for await (const row of api.activityRows(walletAddress, { vaultId, order: 'asc', limit: 1000 })) {
|
|
120
|
-
rows.push(row);
|
|
121
|
-
}
|
|
122
|
-
if (rows.length === 0)
|
|
123
|
-
return { vaultId, token: null, points: [] };
|
|
124
|
-
return buildPositionHistory(rows);
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=positionHistory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"positionHistory.js","sourceRoot":"","sources":["../../src/api/positionHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { toHex } from 'viem';
|
|
2
|
-
// 16-byte ERC-8021 marker: "8021" repeated 8 times
|
|
3
|
-
const ERC8021_MARKER = '80218021802180218021802180218021';
|
|
4
|
-
const ERC8021_SCHEMA_ID = '00'; // Schema 0: simple ASCII codes
|
|
5
|
-
/**
|
|
6
|
-
* Encode an ERC-8021 builder code as a calldata suffix.
|
|
7
|
-
* Format: utf8-encoded builder code + codesLength (1 byte) + schemaId (1 byte) + ERC marker (16 bytes)
|
|
8
|
-
*
|
|
9
|
-
* @see https://eips.ethereum.org/EIPS/eip-8021
|
|
10
|
-
*/
|
|
11
|
-
export function encodeBuilderCode(builderCode) {
|
|
12
|
-
const codeHex = toHex(builderCode).slice(2); // UTF-8 hex without 0x prefix
|
|
13
|
-
const codeByteLen = codeHex.length / 2;
|
|
14
|
-
const codeLengthHex = codeByteLen.toString(16).padStart(2, '0');
|
|
15
|
-
return `0x${codeHex}${codeLengthHex}${ERC8021_SCHEMA_ID}${ERC8021_MARKER}`;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=erc8021.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc8021.js","sourceRoot":"","sources":["../../src/attribution/erc8021.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,MAAM,CAAC;AAEvC,mDAAmD;AACnD,MAAM,cAAc,GAAG,kCAA2C,CAAC;AACnE,MAAM,iBAAiB,GAAG,IAAa,CAAC,CAAC,+BAA+B;AAExE;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,OAAO,KAAK,OAAO,GAAG,aAAa,GAAG,iBAAiB,GAAG,cAAc,EAAS,CAAC;AACpF,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { encodeFunctionData } from 'viem';
|
|
2
|
-
import { encodeBuilderCode } from './erc8021';
|
|
3
|
-
import { AttributionMode } from '../client';
|
|
4
|
-
import { UnimplementedFeatureError } from '../errors';
|
|
5
|
-
export { encodeBuilderCode } from './erc8021';
|
|
6
|
-
/**
|
|
7
|
-
* Build the full attribution suffix to append to transaction calldata.
|
|
8
|
-
*
|
|
9
|
-
* PUBLIC: ERC-8021 builder code only — `0x{codesLength}{builderCode utf8}{schemaId=0x00}{ercMarker}`, or `0x` if no builderCode.
|
|
10
|
-
* ENCODED: Requests a sourceId from the Gauntlet API with builder code as an arg and encodes that.
|
|
11
|
-
* PRIVATE: Generates a random salt and posts it to the Gauntlet API.
|
|
12
|
-
*
|
|
13
|
-
*/
|
|
14
|
-
export async function buildAttribution(client) {
|
|
15
|
-
switch (client.attributionMode) {
|
|
16
|
-
case AttributionMode.PUBLIC:
|
|
17
|
-
return client.builderCode ? encodeBuilderCode(client.builderCode) : '0x';
|
|
18
|
-
case AttributionMode.ENCODED:
|
|
19
|
-
throw new UnimplementedFeatureError('AttributionMode.ENCODED');
|
|
20
|
-
case AttributionMode.PRIVATE:
|
|
21
|
-
throw new UnimplementedFeatureError('AttributionMode.PRIVATE');
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export async function encodeTransactionWithAttribution(client, transaction) {
|
|
25
|
-
const customAttribution = await buildAttribution(client);
|
|
26
|
-
const encodedTx = encodeFunctionData({
|
|
27
|
-
abi: transaction.abi,
|
|
28
|
-
functionName: transaction.functionName,
|
|
29
|
-
args: transaction.args,
|
|
30
|
-
});
|
|
31
|
-
const encodedTxWithAttribution = `${encodedTx}${customAttribution.replace('0x', '')}`;
|
|
32
|
-
return {
|
|
33
|
-
payload: {
|
|
34
|
-
type: transaction.type,
|
|
35
|
-
account: transaction.account,
|
|
36
|
-
to: transaction.address,
|
|
37
|
-
data: encodedTxWithAttribution,
|
|
38
|
-
},
|
|
39
|
-
tx: {
|
|
40
|
-
...transaction,
|
|
41
|
-
attribution: customAttribution,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attribution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,kBAAkB,EAAY,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAkB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAc9C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IAC3D,QAAQ,MAAM,CAAC,eAAe,EAAE,CAAC;QAC/B,KAAK,eAAe,CAAC,MAAM;YACzB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,KAAK,eAAe,CAAC,OAAO;YAC1B,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;QACjE,KAAK,eAAe,CAAC,OAAO;YAC1B,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAsB,EACtB,WAAmB;IAEnB,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI;KACvB,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,GAAG,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAS,CAAC;IAC7F,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,EAAE,EAAE,WAAW,CAAC,OAAO;YACvB,IAAI,EAAE,wBAAwB;SAC/B;QACD,EAAE,EAAE;YACF,GAAG,WAAW;YACd,WAAW,EAAE,iBAAiB;SAC/B;KACF,CAAC;AACJ,CAAC"}
|
package/dist/client.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import bundledManifest from '../manifest/vaults.json';
|
|
2
|
-
import { GauntletApi } from './api/client';
|
|
3
|
-
import { RpcNotConfiguredError, UnimplementedFeatureError } from './errors';
|
|
4
|
-
import { base } from 'viem/chains';
|
|
5
|
-
/**
|
|
6
|
-
* Controls how builder attribution is appended to transactions.
|
|
7
|
-
*
|
|
8
|
-
* - `PUBLIC` – attribution is sent as plain calldata (default).
|
|
9
|
-
* - `ENCODED` – attribution is encoded using ERC-8021 with a builder code fetched from the API.
|
|
10
|
-
* - `PRIVATE` – no attribution data is appended.
|
|
11
|
-
*/
|
|
12
|
-
export var AttributionMode;
|
|
13
|
-
(function (AttributionMode) {
|
|
14
|
-
AttributionMode["PUBLIC"] = "public";
|
|
15
|
-
AttributionMode["ENCODED"] = "encoded";
|
|
16
|
-
AttributionMode["PRIVATE"] = "private";
|
|
17
|
-
})(AttributionMode || (AttributionMode = {}));
|
|
18
|
-
/**
|
|
19
|
-
* Main entry point for the Gauntlet SDK.
|
|
20
|
-
*
|
|
21
|
-
* Holds configuration (RPC clients, wallet, attribution mode) and exposes helpers
|
|
22
|
-
* for reading the vault manifest. Pass an instance of this class to every SDK
|
|
23
|
-
* function (e.g. `getDepositTx`, `getWithdrawTx`, `getVaults`).
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* import { createPublicClient, createWalletClient, http } from 'viem';
|
|
28
|
-
* import { base } from 'viem/chains';
|
|
29
|
-
* import { GauntletClient, AttributionMode } from '@gauntlet-xyz/sdk';
|
|
30
|
-
*
|
|
31
|
-
* const wallet = createWalletClient({
|
|
32
|
-
* account: privateKeyToAccount('0x...'), // or other account source
|
|
33
|
-
* chain: base,
|
|
34
|
-
* transport: http()
|
|
35
|
-
* })
|
|
36
|
-
*
|
|
37
|
-
* const client = new GauntletClient({
|
|
38
|
-
* evmClients: { [base.id]: createPublicClient({ chain: base, transport: http() }) },
|
|
39
|
-
* wallet,
|
|
40
|
-
* attributionMode: AttributionMode.PUBLIC,
|
|
41
|
-
* });
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export class GauntletClient {
|
|
45
|
-
constructor(config) {
|
|
46
|
-
this._manifest = bundledManifest;
|
|
47
|
-
this.apiKey = config.apiKey;
|
|
48
|
-
this.evmClients = config.evmClients ?? {};
|
|
49
|
-
this.attributionMode = config.attributionMode ?? AttributionMode.PUBLIC;
|
|
50
|
-
this.builderCode = config.builderCode;
|
|
51
|
-
this.wallet = config.wallet;
|
|
52
|
-
this.api = new GauntletApi({ apiKey: config.apiKey, apiUrl: config.apiUrl });
|
|
53
|
-
}
|
|
54
|
-
get manifest() {
|
|
55
|
-
return Promise.resolve(this._manifest);
|
|
56
|
-
}
|
|
57
|
-
setManifest(manifest) {
|
|
58
|
-
this._manifest = manifest;
|
|
59
|
-
}
|
|
60
|
-
getPublicClient(chainId = base.id) {
|
|
61
|
-
const client = this.evmClients[chainId];
|
|
62
|
-
if (!client)
|
|
63
|
-
throw new RpcNotConfiguredError(chainId);
|
|
64
|
-
return client;
|
|
65
|
-
}
|
|
66
|
-
// Will be used for encoded attribution
|
|
67
|
-
// Will use apiKey to get a builder ID from core api
|
|
68
|
-
async getSourceId() {
|
|
69
|
-
throw new UnimplementedFeatureError('getSourceId');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,cAAc;IAWzB,YAAY,MAA4B;QAFhC,cAAS,GAAkB,eAAgC,CAAC;QAGlE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,UAAmB,IAAI,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uCAAuC;IACvC,oDAAoD;IACpD,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,yBAAyB,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;CACF"}
|
package/dist/constants.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export const MAX_BPS = 10000n;
|
|
2
|
-
export const DEFAULT_BPS = 100;
|
|
3
|
-
export const SECOND = 1;
|
|
4
|
-
export const MINUTE = SECOND * 60;
|
|
5
|
-
export const HOUR = MINUTE * 60;
|
|
6
|
-
export const DAY = HOUR * 24;
|
|
7
|
-
export const REQUEST_DEADLINE_BUFFER_DAYS = 3;
|
|
8
|
-
export const DEFAULT_MAX_PRICE_AGE_DAYS = 10;
|
|
9
|
-
export const DEFAULT_SOLVER_TIP = 0n;
|
|
10
|
-
export const DEFAULT_REQUEST_DEADLINE_BUFFER = DAY * REQUEST_DEADLINE_BUFFER_DAYS;
|
|
11
|
-
export const DEFAULT_MAX_PRICE_AGE = BigInt(DAY * DEFAULT_MAX_PRICE_AGE_DAYS);
|
|
12
|
-
export const CHAIN_NAMES = {
|
|
13
|
-
1: 'ethereum',
|
|
14
|
-
8453: 'base',
|
|
15
|
-
42161: 'arbitrum',
|
|
16
|
-
10: 'optimism',
|
|
17
|
-
};
|
|
18
|
-
// Approximate 3-day block lookback per chain based on avg block time.
|
|
19
|
-
export const BLOCKS_3_DAYS = {
|
|
20
|
-
1: 21600n,
|
|
21
|
-
8453: 129600n,
|
|
22
|
-
42161: 1036800n,
|
|
23
|
-
10: 129600n,
|
|
24
|
-
};
|
|
25
|
-
export const DEFAULT_BLOCKS_3_DAYS = 129600n;
|
|
26
|
-
// Many RPC providers cap eth_getLogs to 10,000 blocks per request.
|
|
27
|
-
export const LOG_PAGE_SIZE = 9999n;
|
|
28
|
-
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAE7B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,GAAG,4BAA4B,CAAC;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,GAAG,0BAA0B,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,CAAC,EAAE,UAAU;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,UAAU;CACf,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,CAAC,EAAE,MAAO;IACV,IAAI,EAAE,OAAQ;IACd,KAAK,EAAE,QAAU;IACjB,EAAE,EAAE,OAAQ;CACb,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAQ,CAAC;AAE9C,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAM,CAAC"}
|