@gauntlet-xyz/sdk 1.0.6 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +82 -1
  2. package/dist/api/activity.d.ts +70 -0
  3. package/dist/api/activity.d.ts.map +1 -0
  4. package/dist/api/activity.js +154 -0
  5. package/dist/api/activity.js.map +1 -0
  6. package/dist/api/caip.d.ts +29 -0
  7. package/dist/api/caip.d.ts.map +1 -0
  8. package/dist/api/caip.js +38 -0
  9. package/dist/api/caip.js.map +1 -0
  10. package/dist/api/client.d.ts +114 -0
  11. package/dist/api/client.d.ts.map +1 -0
  12. package/dist/api/client.js +109 -0
  13. package/dist/api/client.js.map +1 -0
  14. package/dist/api/decimal.d.ts +21 -0
  15. package/dist/api/decimal.d.ts.map +1 -0
  16. package/dist/api/decimal.js +44 -0
  17. package/dist/api/decimal.js.map +1 -0
  18. package/dist/api/errors.d.ts +32 -0
  19. package/dist/api/errors.d.ts.map +1 -0
  20. package/dist/api/errors.js +41 -0
  21. package/dist/api/errors.js.map +1 -0
  22. package/dist/api/generated.d.ts +1461 -0
  23. package/dist/api/generated.d.ts.map +1 -0
  24. package/dist/api/generated.js +6 -0
  25. package/dist/api/generated.js.map +1 -0
  26. package/dist/api/http.d.ts +16 -0
  27. package/dist/api/http.d.ts.map +1 -0
  28. package/dist/api/http.js +39 -0
  29. package/dist/api/http.js.map +1 -0
  30. package/dist/api/index.d.ts +14 -0
  31. package/dist/api/index.d.ts.map +1 -0
  32. package/dist/api/index.js +8 -0
  33. package/dist/api/index.js.map +1 -0
  34. package/dist/api/positionHistory.d.ts +44 -0
  35. package/dist/api/positionHistory.d.ts.map +1 -0
  36. package/dist/api/positionHistory.js +126 -0
  37. package/dist/api/positionHistory.js.map +1 -0
  38. package/dist/client.d.ts +6 -0
  39. package/dist/client.d.ts.map +1 -1
  40. package/dist/client.js +2 -0
  41. package/dist/client.js.map +1 -1
  42. package/dist/constants.d.ts +16 -0
  43. package/dist/constants.d.ts.map +1 -0
  44. package/dist/constants.js +28 -0
  45. package/dist/constants.js.map +1 -0
  46. package/dist/errors.d.ts +18 -3
  47. package/dist/errors.d.ts.map +1 -1
  48. package/dist/errors.js +20 -2
  49. package/dist/errors.js.map +1 -1
  50. package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts +233 -0
  51. package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -0
  52. package/dist/evm/abis/priceAndFeeCalculatorV2.js +119 -0
  53. package/dist/evm/abis/priceAndFeeCalculatorV2.js.map +1 -0
  54. package/dist/evm/abis/provisionerV2.d.ts +684 -0
  55. package/dist/evm/abis/provisionerV2.d.ts.map +1 -0
  56. package/dist/evm/abis/provisionerV2.js +262 -0
  57. package/dist/evm/abis/provisionerV2.js.map +1 -0
  58. package/dist/evm/adapters/aera.d.ts +3 -3
  59. package/dist/evm/adapters/aera.d.ts.map +1 -1
  60. package/dist/evm/adapters/aera.js +179 -103
  61. package/dist/evm/adapters/aera.js.map +1 -1
  62. package/dist/evm/adapters/types.d.ts +12 -1
  63. package/dist/evm/adapters/types.d.ts.map +1 -1
  64. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +41 -0
  65. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -0
  66. package/dist/evm/aeraContracts/priceAndFeeCalculator.js +140 -0
  67. package/dist/evm/aeraContracts/priceAndFeeCalculator.js.map +1 -0
  68. package/dist/evm/aeraContracts/v1.d.ts +2317 -0
  69. package/dist/evm/aeraContracts/v1.d.ts.map +1 -0
  70. package/dist/evm/aeraContracts/v1.js +59 -0
  71. package/dist/evm/aeraContracts/v1.js.map +1 -0
  72. package/dist/evm/aeraContracts/v2.d.ts +4146 -0
  73. package/dist/evm/aeraContracts/v2.d.ts.map +1 -0
  74. package/dist/evm/aeraContracts/v2.js +217 -0
  75. package/dist/evm/aeraContracts/v2.js.map +1 -0
  76. package/dist/evm/aeraContracts.d.ts +23 -2316
  77. package/dist/evm/aeraContracts.d.ts.map +1 -1
  78. package/dist/evm/aeraContracts.js +117 -24
  79. package/dist/evm/aeraContracts.js.map +1 -1
  80. package/dist/evm/deposit.d.ts +5 -1
  81. package/dist/evm/deposit.d.ts.map +1 -1
  82. package/dist/evm/deposit.js +28 -14
  83. package/dist/evm/deposit.js.map +1 -1
  84. package/dist/evm/depositReceiverApproval.d.ts +17 -0
  85. package/dist/evm/depositReceiverApproval.d.ts.map +1 -0
  86. package/dist/evm/depositReceiverApproval.js +32 -0
  87. package/dist/evm/depositReceiverApproval.js.map +1 -0
  88. package/dist/evm/index.d.ts +8 -1
  89. package/dist/evm/index.d.ts.map +1 -1
  90. package/dist/evm/index.js +4 -0
  91. package/dist/evm/index.js.map +1 -1
  92. package/dist/evm/operationMode.d.ts +9 -0
  93. package/dist/evm/operationMode.d.ts.map +1 -0
  94. package/dist/evm/operationMode.js +41 -0
  95. package/dist/evm/operationMode.js.map +1 -0
  96. package/dist/evm/types.d.ts +5 -3
  97. package/dist/evm/types.d.ts.map +1 -1
  98. package/dist/evm/types.js +4 -1
  99. package/dist/evm/types.js.map +1 -1
  100. package/dist/evm/userCurrentBalance.d.ts.map +1 -1
  101. package/dist/evm/userCurrentBalance.js +68 -58
  102. package/dist/evm/userCurrentBalance.js.map +1 -1
  103. package/dist/evm/withdraw.d.ts +5 -1
  104. package/dist/evm/withdraw.d.ts.map +1 -1
  105. package/dist/evm/withdraw.js +25 -13
  106. package/dist/evm/withdraw.js.map +1 -1
  107. package/dist/index.d.ts +9 -1
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +6 -1
  110. package/dist/index.js.map +1 -1
  111. package/dist/privy/index.d.ts +52 -0
  112. package/dist/privy/index.d.ts.map +1 -0
  113. package/dist/privy/index.js +51 -0
  114. package/dist/privy/index.js.map +1 -0
  115. package/manifest/vaults.json +316 -132
  116. package/package.json +2 -2
  117. package/src/api/activity.ts +219 -0
  118. package/src/api/caip.ts +61 -0
  119. package/src/api/client.ts +201 -0
  120. package/src/api/decimal.ts +49 -0
  121. package/src/api/errors.ts +64 -0
  122. package/src/api/generated.ts +1461 -0
  123. package/src/api/http.ts +62 -0
  124. package/src/api/index.ts +65 -0
  125. package/src/api/positionHistory.ts +167 -0
  126. package/src/client.ts +7 -1
  127. package/src/constants.ts +32 -0
  128. package/src/errors.ts +44 -5
  129. package/src/evm/abis/priceAndFeeCalculatorV2.ts +118 -0
  130. package/src/evm/abis/provisionerV2.ts +261 -0
  131. package/src/evm/adapters/aera.ts +419 -137
  132. package/src/evm/adapters/types.ts +19 -1
  133. package/src/evm/aeraContracts/priceAndFeeCalculator.ts +223 -0
  134. package/src/evm/aeraContracts/v1.ts +157 -0
  135. package/src/evm/aeraContracts/v2.ts +466 -0
  136. package/src/evm/aeraContracts.ts +173 -52
  137. package/src/evm/deposit.ts +48 -16
  138. package/src/evm/depositReceiverApproval.ts +51 -0
  139. package/src/evm/index.ts +23 -1
  140. package/src/evm/operationMode.ts +60 -0
  141. package/src/evm/types.ts +7 -3
  142. package/src/evm/userCurrentBalance.ts +80 -55
  143. package/src/evm/withdraw.ts +42 -15
  144. package/src/index.ts +21 -0
  145. package/src/privy/index.ts +95 -0
@@ -1 +1 @@
1
- {"version":3,"file":"aeraContracts.d.ts","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjB"}
1
+ {"version":3,"file":"aeraContracts.d.ts","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAcnE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,eAAe,CAAC;KAC1B,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,eAAe,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AA0BD,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,MAAM,IAAI,qBAAqB,CAC/E,OAAO,sBAAsB,EAC7B,CAAC,EACD,OAAO,CACR,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,OAAO,GACpB,2BAA2B,CAAC,CAAC,CAAC,CAMhC;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,eAAe,CAAC,CAqB1B;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAwC/B;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,oBAAoB,CAAC,CA8B/B"}
@@ -1,11 +1,42 @@
1
- /**
2
- * CODE PULLED FROM AERA-V3-TS-SDK in gauntlet/apps/packages/aera-v3-ts-sdk
3
- * pulled in here with the goal to have this SDK replace the previous
4
- */
5
- import { getContract } from 'viem';
1
+ import { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, getContract, zeroAddress, } from 'viem';
2
+ import { UnimplementedFeatureError, UnsupportedFeatureError } from '../errors';
6
3
  import { multiDepositorVaultAbi } from './abis/multiDepositorVault';
7
- import { priceAndFeeCalculatorAbi } from './abis/priceAndFeeCalculator';
8
4
  import { provisionerAbi } from './abis/provisioner';
5
+ import { provisionerV2Abi } from './abis/provisionerV2';
6
+ import { MAX_BPS } from '../constants';
7
+ import { ContractVersion } from './types';
8
+ const contractVersionCache = new Map();
9
+ const contractVersionAbi = [
10
+ {
11
+ type: 'function',
12
+ inputs: [],
13
+ name: 'version',
14
+ outputs: [{ name: '', internalType: 'string', type: 'string' }],
15
+ stateMutability: 'view',
16
+ },
17
+ ];
18
+ export function applySlippageDown(amount, slippageBps) {
19
+ return (amount * (MAX_BPS - BigInt(slippageBps))) / MAX_BPS;
20
+ }
21
+ export function applySlippageUp(amount, slippageBps) {
22
+ return (amount * (MAX_BPS + BigInt(slippageBps)) + MAX_BPS - 1n) / MAX_BPS;
23
+ }
24
+ function contractVersionCacheKey(client, address) {
25
+ return `${client.chain?.id ?? 'unknown'}:${address.toLowerCase()}`;
26
+ }
27
+ function isVersionUnavailableError(error) {
28
+ if (!(error instanceof ContractFunctionExecutionError) || error.functionName !== 'version') {
29
+ return false;
30
+ }
31
+ if (error.cause instanceof ContractFunctionRevertedError) {
32
+ const hasDecodedError = error.cause.signature !== undefined ||
33
+ error.cause.data !== undefined ||
34
+ (error.cause.raw !== undefined && error.cause.raw !== '0x');
35
+ return (!hasDecodedError &&
36
+ (error.cause.reason === undefined || error.cause.reason === 'execution reverted'));
37
+ }
38
+ return error.cause instanceof ContractFunctionZeroDataError;
39
+ }
9
40
  export function getMultiDepositorVault(client, vaultAddress) {
10
41
  return getContract({
11
42
  address: vaultAddress,
@@ -13,29 +44,91 @@ export function getMultiDepositorVault(client, vaultAddress) {
13
44
  client,
14
45
  });
15
46
  }
16
- export function getPriceAndFeeCalculator(client, address) {
17
- return getContract({
18
- address,
19
- abi: priceAndFeeCalculatorAbi,
20
- client,
21
- });
47
+ export async function resolveContractVersion(client, address) {
48
+ const cacheKey = contractVersionCacheKey(client, address);
49
+ const cached = contractVersionCache.get(cacheKey);
50
+ if (cached)
51
+ return cached;
52
+ try {
53
+ const versionString = await client.readContract({
54
+ address,
55
+ abi: contractVersionAbi,
56
+ functionName: 'version',
57
+ });
58
+ const version = versionString.startsWith('2.') ? ContractVersion.V2 : ContractVersion.V1;
59
+ contractVersionCache.set(cacheKey, version);
60
+ return version;
61
+ }
62
+ catch (error) {
63
+ if (!isVersionUnavailableError(error))
64
+ throw error;
65
+ contractVersionCache.set(cacheKey, ContractVersion.V1);
66
+ return ContractVersion.V1;
67
+ }
22
68
  }
23
- export function requestDepositTxRequest(provisioner, token, tokensIn, minUnitsOut, solverTip, deadline, maxPriceAge, isFixedPrice, account) {
69
+ export async function resolveAeraRuntimeContracts(client, vault) {
70
+ if (vault.vaultType !== 'multi-depositor') {
71
+ throw new UnimplementedFeatureError('Aera: single depositor vaults');
72
+ }
73
+ const [provisionerAddress, feeCalculatorAddress] = await Promise.all([
74
+ client.readContract({
75
+ address: vault.vaultAddress,
76
+ abi: multiDepositorVaultAbi,
77
+ functionName: 'provisioner',
78
+ }),
79
+ client.readContract({
80
+ address: vault.vaultAddress,
81
+ abi: multiDepositorVaultAbi,
82
+ functionName: 'feeCalculator',
83
+ }),
84
+ ]);
85
+ if (provisionerAddress === zeroAddress) {
86
+ throw new UnsupportedFeatureError('Aera: vault without provisioner');
87
+ }
88
+ if (feeCalculatorAddress === zeroAddress) {
89
+ throw new UnsupportedFeatureError('Aera: vault without price and fee calculator');
90
+ }
91
+ const [provisionerVersion, feeCalculatorVersion] = await Promise.all([
92
+ resolveContractVersion(client, provisionerAddress),
93
+ resolveContractVersion(client, feeCalculatorAddress),
94
+ ]);
24
95
  return {
25
- address: provisioner,
26
- abi: provisionerAbi,
27
- functionName: 'requestDeposit',
28
- args: [token, tokensIn, minUnitsOut, solverTip, deadline, maxPriceAge, isFixedPrice],
29
- account,
96
+ provisioner: {
97
+ address: provisionerAddress,
98
+ version: provisionerVersion,
99
+ },
100
+ feeCalculator: {
101
+ address: feeCalculatorAddress,
102
+ version: feeCalculatorVersion,
103
+ },
30
104
  };
31
105
  }
32
- export function requestRedeemTxRequest(provisioner, token, unitsIn, minTokenOut, solverTip, deadline, maxPriceAge, isFixedPrice, account) {
33
- return {
34
- address: provisioner,
106
+ export async function resolveAeraTokenModeSupport(client, runtime, token) {
107
+ if (runtime.provisioner.version === ContractVersion.V2) {
108
+ const tokenDetails = await client.readContract({
109
+ address: runtime.provisioner.address,
110
+ abi: provisionerV2Abi,
111
+ functionName: 'tokensDetails',
112
+ args: [token],
113
+ });
114
+ return {
115
+ asyncDeposit: Boolean(tokenDetails[0]),
116
+ asyncRedeem: Boolean(tokenDetails[1]),
117
+ syncDeposit: Boolean(tokenDetails[2]),
118
+ syncRedeem: Boolean(tokenDetails[3]),
119
+ };
120
+ }
121
+ const tokenDetails = await client.readContract({
122
+ address: runtime.provisioner.address,
35
123
  abi: provisionerAbi,
36
- functionName: 'requestRedeem',
37
- args: [token, unitsIn, minTokenOut, solverTip, deadline, maxPriceAge, isFixedPrice],
38
- account,
124
+ functionName: 'tokensDetails',
125
+ args: [token],
126
+ });
127
+ return {
128
+ asyncDeposit: Boolean(tokenDetails[0]),
129
+ asyncRedeem: Boolean(tokenDetails[1]),
130
+ syncDeposit: false,
131
+ syncRedeem: false,
39
132
  };
40
133
  }
41
134
  //# sourceMappingURL=aeraContracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aeraContracts.js","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAyD,WAAW,EAAE,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,MAAM,UAAU,sBAAsB,CACpC,MAAS,EACT,YAAqB;IAErB,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,sBAAsB;QAC3B,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,UAAU,wBAAwB,CACtC,MAAS,EACT,OAAgB;IAEhB,OAAO,WAAW,CAAC;QACjB,OAAO;QACP,GAAG,EAAE,wBAAwB;QAC7B,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAoB,EACpB,KAAc,EACd,QAAgB,EAChB,WAAmB,EACnB,SAAiB,EACjB,QAAgB,EAChB,WAAmB,EACnB,YAAqB,EACrB,OAAgB;IAEhB,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,gBAAyB;QACvC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAU;QAC7F,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAoB,EACpB,KAAc,EACd,OAAe,EACf,WAAmB,EACnB,SAAiB,EACjB,QAAgB,EAChB,WAAmB,EACnB,YAAqB,EACrB,OAAgB;IAEhB,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,eAAwB;QACtC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAU;QAC5F,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"aeraContracts.js","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,15 @@ export interface EvmDepositParams {
6
6
  amount: bigint;
7
7
  chainId?: number;
8
8
  assetSymbol?: string;
9
- /** Request async (queued) deposit. Only valid for vaults with depositMode 'async' or 'both'. */
9
+ /** Request async (queued) or sync deposit. Availability is read from live vault configuration. */
10
10
  depositMode?: string;
11
11
  receiver?: Address;
12
12
  /** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */
13
13
  slippageBps?: number;
14
+ /** Solver tip passed to async Aera provisioner requests. Defaults to 0. */
15
+ solverTip?: bigint;
16
+ /** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */
17
+ maxPriceAge?: bigint;
14
18
  }
15
19
  /**
16
20
  * Builds the ordered list of EVM transactions required to deposit into a Gauntlet vault.
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAoC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAU9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC,CA4EvB"}
1
+ {"version":3,"file":"deposit.d.ts","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAoC,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqB9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,UAAU,EAAE,CAAC,CA6FvB"}
@@ -1,7 +1,10 @@
1
1
  import { getAdapter } from './adapters';
2
2
  import { encodeTransactionWithAttribution } from '../attribution';
3
- import { AccountRequiredError, VaultNotFoundError, UnsupportedDepositModeError, UnsupportedAssetError, InvalidSlippageBPSError, } from '../errors';
3
+ import { AccountRequiredError, VaultNotFoundError, UnsupportedAssetError, InvalidSlippageBPSError, } from '../errors';
4
+ import { resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
4
5
  import { resolveVault } from './vaults';
6
+ import { DEFAULT_BPS, MAX_BPS } from '../constants';
7
+ import { parseOperationMode, resolveOperationMode, resolveSyncOnlyOperationMode, } from './operationMode';
5
8
  /**
6
9
  * Builds the ordered list of EVM transactions required to deposit into a Gauntlet vault.
7
10
  *
@@ -32,7 +35,9 @@ import { resolveVault } from './vaults';
32
35
  */
33
36
  export async function getDepositTx(client, params) {
34
37
  if (params.slippageBps !== undefined &&
35
- (!Number.isInteger(params.slippageBps) || params.slippageBps < 0 || params.slippageBps > 10000)) {
38
+ (!Number.isInteger(params.slippageBps) ||
39
+ params.slippageBps < 0 ||
40
+ params.slippageBps > Number(MAX_BPS))) {
36
41
  throw new InvalidSlippageBPSError(params.slippageBps);
37
42
  }
38
43
  const resolved = await resolveVault(client, params.vaultId, params.chainId);
@@ -43,17 +48,6 @@ export async function getDepositTx(client, params) {
43
48
  if (!account)
44
49
  throw new AccountRequiredError();
45
50
  const { vault, protocol } = resolved;
46
- if (params.depositMode === 'sync' && vault.depositMode === 'async') {
47
- throw new UnsupportedDepositModeError(params.vaultId, 'sync', vault.depositMode);
48
- }
49
- if (params.depositMode === 'async' && vault.depositMode === 'sync') {
50
- throw new UnsupportedDepositModeError(params.vaultId, 'async', vault.depositMode);
51
- }
52
- let modifiedDepositMode = params.depositMode;
53
- if (params.depositMode === undefined) {
54
- modifiedDepositMode = vault.depositMode === 'both' ? 'async' : vault.depositMode;
55
- }
56
- const spender = vault.provisionerAddress ?? vault.vaultAddress;
57
51
  const adapter = getAdapter(protocol);
58
52
  const publicClient = client.getPublicClient(chainId);
59
53
  const token = vault.supplyToken.length > 1
@@ -62,6 +56,23 @@ export async function getDepositTx(client, params) {
62
56
  if (token === undefined) {
63
57
  throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
64
58
  }
59
+ const requestedDepositMode = parseOperationMode(params.vaultId, params.depositMode);
60
+ let modifiedDepositMode;
61
+ let aeraRuntime;
62
+ if (protocol === 'aera') {
63
+ aeraRuntime = await resolveAeraRuntimeContracts(publicClient, vault);
64
+ const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address);
65
+ modifiedDepositMode = resolveOperationMode(params.vaultId, requestedDepositMode, {
66
+ async: tokenModeSupport.asyncDeposit,
67
+ sync: tokenModeSupport.syncDeposit,
68
+ });
69
+ }
70
+ else {
71
+ modifiedDepositMode = resolveSyncOnlyOperationMode(params.vaultId, requestedDepositMode);
72
+ }
73
+ const spender = protocol === 'aera' && modifiedDepositMode === 'async'
74
+ ? aeraRuntime.provisioner.address
75
+ : vault.vaultAddress;
65
76
  // NOTE: this could be moved to the buildDeposit level
66
77
  const { sufficient } = await adapter.checkAllowance({
67
78
  publicClient,
@@ -87,7 +98,10 @@ export async function getDepositTx(client, params) {
87
98
  async: modifiedDepositMode === 'async',
88
99
  asset: token,
89
100
  publicClient,
90
- slippageBps: params.slippageBps,
101
+ slippageBps: params.slippageBps ?? DEFAULT_BPS,
102
+ solverTip: params.solverTip,
103
+ maxPriceAge: params.maxPriceAge,
104
+ aeraRuntime,
91
105
  });
92
106
  steps.push(...depositSteps);
93
107
  return await Promise.all(steps.map((step) => encodeTransactionWithAttribution(client, step)));
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Address } from 'viem';
2
+ import type { GauntletClient } from '../client';
3
+ import type { PreparedTx } from '../attribution';
4
+ export interface EvmDepositReceiverApprovalParams {
5
+ vaultId: string;
6
+ depositor: Address;
7
+ approved?: boolean;
8
+ chainId?: number;
9
+ }
10
+ /**
11
+ * Builds the V2 receiver-side approval transaction required before a depositor
12
+ * can make sync deposits to a separate receiver.
13
+ *
14
+ * The wallet account on the client is the receiver and must sign this transaction.
15
+ */
16
+ export declare function getDepositReceiverApprovalTx(client: GauntletClient, params: EvmDepositReceiverApprovalParams): Promise<PreparedTx>;
17
+ //# sourceMappingURL=depositReceiverApproval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositReceiverApproval.d.ts","sourceRoot":"","sources":["../../src/evm/depositReceiverApproval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,UAAU,CAAC,CAwBrB"}
@@ -0,0 +1,32 @@
1
+ import { encodeTransactionWithAttribution } from '../attribution';
2
+ import { AccountRequiredError, UnsupportedFeatureError, VaultNotFoundError } from '../errors';
3
+ import { resolveAeraRuntimeContracts } from './aeraContracts';
4
+ import * as provisionerV2 from './aeraContracts/v2';
5
+ import { ContractVersion } from './types';
6
+ import { resolveVault } from './vaults';
7
+ /**
8
+ * Builds the V2 receiver-side approval transaction required before a depositor
9
+ * can make sync deposits to a separate receiver.
10
+ *
11
+ * The wallet account on the client is the receiver and must sign this transaction.
12
+ */
13
+ export async function getDepositReceiverApprovalTx(client, params) {
14
+ const resolved = await resolveVault(client, params.vaultId, params.chainId);
15
+ if (!resolved)
16
+ throw new VaultNotFoundError(params.vaultId);
17
+ const chainId = params.chainId ?? resolved.vault.chainId;
18
+ const receiver = client.wallet?.account?.address;
19
+ if (!receiver)
20
+ throw new AccountRequiredError();
21
+ const { vault } = resolved;
22
+ const publicClient = client.getPublicClient(chainId);
23
+ const runtime = await resolveAeraRuntimeContracts(publicClient, vault);
24
+ if (runtime.provisioner.version !== ContractVersion.V2) {
25
+ throw new UnsupportedFeatureError('Aera: deposit receiver approval on V1');
26
+ }
27
+ return encodeTransactionWithAttribution(client, {
28
+ type: 'setDepositReceiverApproval',
29
+ ...provisionerV2.setDepositReceiverApprovalTxRequest(runtime.provisioner.address, params.depositor, params.approved ?? true, receiver),
30
+ });
31
+ }
32
+ //# sourceMappingURL=depositReceiverApproval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositReceiverApproval.js","sourceRoot":"","sources":["../../src/evm/depositReceiverApproval.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASxC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAsB,EACtB,MAAwC;IAExC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAEhD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,uBAAuB,CAAC,uCAAuC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,gCAAgC,CAAC,MAAM,EAAE;QAC9C,IAAI,EAAE,4BAA4B;QAClC,GAAG,aAAa,CAAC,mCAAmC,CAClD,OAAO,CAAC,WAAW,CAAC,OAAO,EAC3B,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,QAAQ,CACT;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,11 +1,18 @@
1
1
  export { getDepositTx } from './deposit';
2
+ export { getDepositReceiverApprovalTx } from './depositReceiverApproval';
2
3
  export { getWithdrawTx } from './withdraw';
3
4
  export { getUserCurrentBalance } from './userCurrentBalance';
4
5
  export { getVaults, VaultId } from './vaults';
6
+ export { ContractVersion } from './types';
7
+ export { resolveAeraRuntimeContracts, resolveContractVersion } from './aeraContracts';
8
+ export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './aeraContracts/priceAndFeeCalculator';
5
9
  export type { EvmDepositParams } from './deposit';
10
+ export type { EvmDepositReceiverApprovalParams } from './depositReceiverApproval';
6
11
  export type { EvmWithdrawParams } from './withdraw';
7
12
  export type { EvmTxStep } from './adapters/types';
8
- export type { VaultInfo, VaultDeployment, TokenInfo, VaultManifest } from './types';
13
+ export type { VaultInfo, VaultDeployment, EvmVaultDeployment, TokenInfo, VaultManifest, } from './types';
9
14
  export type { VaultFilter } from './vaults';
10
15
  export type { UserCurrentBalanceParams, UserCurrentBalance } from './userCurrentBalance';
16
+ export type { AeraRuntimeContracts, AeraTokenModeSupport } from './aeraContracts';
17
+ export type { NormalizedVaultPriceState } from './aeraContracts/priceAndFeeCalculator';
11
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC;AAClF,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzF,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAClF,YAAY,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC"}
package/dist/evm/index.js CHANGED
@@ -1,5 +1,9 @@
1
1
  export { getDepositTx } from './deposit';
2
+ export { getDepositReceiverApprovalTx } from './depositReceiverApproval';
2
3
  export { getWithdrawTx } from './withdraw';
3
4
  export { getUserCurrentBalance } from './userCurrentBalance';
4
5
  export { getVaults, VaultId } from './vaults';
6
+ export { ContractVersion } from './types';
7
+ export { resolveAeraRuntimeContracts, resolveContractVersion } from './aeraContracts';
8
+ export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './aeraContracts/priceAndFeeCalculator';
5
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type OperationMode = 'sync' | 'async';
2
+ export interface OperationModeSupport {
3
+ sync: boolean;
4
+ async: boolean;
5
+ }
6
+ export declare function parseOperationMode(vaultId: string, requested: string | undefined): OperationMode | undefined;
7
+ export declare function resolveOperationMode(vaultId: string, requested: OperationMode | undefined, support: OperationModeSupport): OperationMode;
8
+ export declare function resolveSyncOnlyOperationMode(vaultId: string, requested: OperationMode | undefined): OperationMode;
9
+ //# sourceMappingURL=operationMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationMode.d.ts","sourceRoot":"","sources":["../../src/evm/operationMode.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AASD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,aAAa,GAAG,SAAS,CAM3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GAAG,SAAS,EACpC,OAAO,EAAE,oBAAoB,GAC5B,aAAa,CAiBf;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,GAAG,SAAS,GACnC,aAAa,CAMf"}
@@ -0,0 +1,41 @@
1
+ import { UnsupportedDepositModeError } from '../errors';
2
+ function formatAvailableModes(support) {
3
+ if (support.async && support.sync)
4
+ return 'both';
5
+ if (support.async)
6
+ return 'async';
7
+ if (support.sync)
8
+ return 'sync';
9
+ return 'none';
10
+ }
11
+ export function parseOperationMode(vaultId, requested) {
12
+ if (requested === undefined || requested === 'sync' || requested === 'async') {
13
+ return requested;
14
+ }
15
+ throw new UnsupportedDepositModeError(vaultId, requested, 'sync, async');
16
+ }
17
+ export function resolveOperationMode(vaultId, requested, support) {
18
+ const available = formatAvailableModes(support);
19
+ if (requested === 'sync') {
20
+ if (!support.sync)
21
+ throw new UnsupportedDepositModeError(vaultId, 'sync', available);
22
+ return 'sync';
23
+ }
24
+ if (requested === 'async') {
25
+ if (!support.async)
26
+ throw new UnsupportedDepositModeError(vaultId, 'async', available);
27
+ return 'async';
28
+ }
29
+ if (support.async)
30
+ return 'async';
31
+ if (support.sync)
32
+ return 'sync';
33
+ throw new UnsupportedDepositModeError(vaultId, 'async', available);
34
+ }
35
+ export function resolveSyncOnlyOperationMode(vaultId, requested) {
36
+ if (requested === 'async') {
37
+ throw new UnsupportedDepositModeError(vaultId, 'async', 'sync');
38
+ }
39
+ return 'sync';
40
+ }
41
+ //# sourceMappingURL=operationMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationMode.js","sourceRoot":"","sources":["../../src/evm/operationMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AASxD,SAAS,oBAAoB,CAAC,OAA6B;IACzD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,SAA6B;IAE7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAAoC,EACpC,OAA6B;IAE7B,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAEhC,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAe,EACf,SAAoC;IAEpC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -4,14 +4,16 @@ export interface TokenInfo {
4
4
  address: Address;
5
5
  decimals: number;
6
6
  }
7
+ export declare const ContractVersion: {
8
+ readonly V1: "v1";
9
+ readonly V2: "v2";
10
+ };
11
+ export type ContractVersion = (typeof ContractVersion)[keyof typeof ContractVersion];
7
12
  export interface EvmVaultDeployment {
8
13
  chain: 'evm';
9
14
  chainId: number;
10
15
  vaultAddress: Address;
11
- /** Present for Aera multi-depositor vaults; absent for single-depositor and Morpho */
12
- provisionerAddress?: Address;
13
16
  vaultType: 'single-depositor' | 'multi-depositor';
14
- depositMode: 'sync' | 'async' | 'both';
15
17
  supplyToken: TokenInfo[];
16
18
  /** Number of days before an async request deadline expires. Defaults to 3. */
17
19
  expirationDays?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;IAClD,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wGAAwG;AACxG,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;IAClD,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wGAAwG;AACxG,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB"}
package/dist/evm/types.js CHANGED
@@ -1,2 +1,5 @@
1
- export {};
1
+ export const ContractVersion = {
2
+ V1: 'v1',
3
+ V2: 'v2',
4
+ };
2
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/evm/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/evm/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;CACA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"userCurrentBalance.d.ts","sourceRoot":"","sources":["../../src/evm/userCurrentBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAgDhD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;CACzB;AA4ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
1
+ {"version":3,"file":"userCurrentBalance.d.ts","sourceRoot":"","sources":["../../src/evm/userCurrentBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAmDhD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;CACzB;AAkKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}