@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,8 +1,12 @@
1
1
  import { parseAbi } from 'viem';
2
2
  import { ChainMismatchError, UnsupportedProtocolError, VaultNotFoundError } from '../errors';
3
- import { getMultiDepositorVault, getPriceAndFeeCalculator } from './aeraContracts';
3
+ import { getMultiDepositorVault, resolveAeraRuntimeContracts } from './aeraContracts';
4
+ import { convertUnitsToToken } from './aeraContracts/priceAndFeeCalculator';
5
+ import { provisionerV2Abi } from './abis/provisionerV2';
6
+ import { ContractVersion } from './types';
7
+ import { BLOCKS_3_DAYS, CHAIN_NAMES, DEFAULT_BLOCKS_3_DAYS, LOG_PAGE_SIZE } from '../constants';
4
8
  // Inline as-const ABI items give viem full type inference for args and return types.
5
- const DEPOSIT_REQUESTED_ABI = [
9
+ const DEPOSIT_REQUESTED_V1_ABI = [
6
10
  {
7
11
  type: 'event',
8
12
  name: 'DepositRequested',
@@ -19,7 +23,7 @@ const DEPOSIT_REQUESTED_ABI = [
19
23
  ],
20
24
  },
21
25
  ];
22
- const REDEEM_REQUESTED_ABI = [
26
+ const REDEEM_REQUESTED_V1_ABI = [
23
27
  {
24
28
  type: 'event',
25
29
  name: 'RedeemRequested',
@@ -36,42 +40,34 @@ const REDEEM_REQUESTED_ABI = [
36
40
  ],
37
41
  },
38
42
  ];
39
- // ABI for provisioner state queries
40
- const provisionerStateAbi = parseAbi([
43
+ const provisionerV1StateAbi = parseAbi([
41
44
  'function asyncDepositHashes(bytes32 asyncDepositHash) view returns (bool exists)',
42
45
  'function asyncRedeemHashes(bytes32 asyncRedeemHash) view returns (bool exists)',
43
46
  ]);
44
- const CHAIN_NAMES = {
45
- 1: 'ethereum',
46
- 8453: 'base',
47
- 42161: 'arbitrum',
48
- 10: 'optimism',
49
- };
50
- // Approximate 3-day block lookback per chain based on avg block time
51
- const BLOCKS_3_DAYS = {
52
- 1: 21600n,
53
- 8453: 129600n,
54
- 42161: 1036800n,
55
- 10: 129600n,
56
- };
57
- const DEFAULT_BLOCKS_3_DAYS = 129600n;
58
- // Many RPC providers cap eth_getLogs to 10,000 blocks per request.
59
- const LOG_PAGE_SIZE = 9999n;
47
+ // V2 legacy wrapper calls can emit both receiver-aware and legacy events for one request.
48
+ // Keep one row per request hash before state checks and summing pending amounts.
49
+ function dedupeByRequestHash(logs, hashKey) {
50
+ const seen = new Set();
51
+ return logs.filter((log) => {
52
+ const hash = log.args[hashKey];
53
+ // Drop malformed events and duplicates so one pending request cannot be counted twice.
54
+ if (hash == null || seen.has(hash))
55
+ return false;
56
+ seen.add(hash);
57
+ return true;
58
+ });
59
+ }
60
60
  async function queryDeploymentBalance(client, deployment, address) {
61
61
  const publicClient = client.getPublicClient(deployment.chainId);
62
62
  const token = deployment.supplyToken[0];
63
- const provisionerAddress = deployment.provisionerAddress;
64
63
  const vaultContract = getMultiDepositorVault(publicClient, deployment.vaultAddress);
65
- const [units, feeCalculatorAddress] = await Promise.all([
64
+ const [runtime, units] = await Promise.all([
65
+ resolveAeraRuntimeContracts(publicClient, deployment),
66
66
  vaultContract.read.balanceOf([address]),
67
- vaultContract.read.feeCalculator(),
68
- ]);
69
- const feeCalc = getPriceAndFeeCalculator(publicClient, feeCalculatorAddress);
70
- const balance = await feeCalc.read.convertUnitsToToken([
71
- deployment.vaultAddress,
72
- token.address,
73
- units,
74
67
  ]);
68
+ const provisionerAddress = runtime.provisioner.address;
69
+ const isV2 = runtime.provisioner.version === ContractVersion.V2;
70
+ const balance = await convertUnitsToToken(publicClient, runtime.feeCalculator.address, runtime.feeCalculator.version, deployment.vaultAddress, token.address, units);
75
71
  // Look back ~3 days for pending async requests
76
72
  const currentBlock = await publicClient.getBlockNumber();
77
73
  const lookback = BLOCKS_3_DAYS[deployment.chainId] ?? DEFAULT_BLOCKS_3_DAYS;
@@ -83,38 +79,56 @@ async function queryDeploymentBalance(client, deployment, address) {
83
79
  chunks.push([cursor, end]);
84
80
  }
85
81
  const [depositPages, redeemPages] = await Promise.all([
86
- Promise.all(chunks.map(([from, to]) => publicClient.getContractEvents({
87
- address: provisionerAddress,
88
- abi: DEPOSIT_REQUESTED_ABI,
89
- eventName: 'DepositRequested',
90
- args: { user: address },
91
- fromBlock: from,
92
- toBlock: to,
93
- }))),
94
- Promise.all(chunks.map(([from, to]) => publicClient.getContractEvents({
95
- address: provisionerAddress,
96
- abi: REDEEM_REQUESTED_ABI,
97
- eventName: 'RedeemRequested',
98
- args: { user: address },
99
- fromBlock: from,
100
- toBlock: to,
101
- }))),
82
+ Promise.all(chunks.map(([from, to]) => isV2
83
+ ? publicClient.getContractEvents({
84
+ address: provisionerAddress,
85
+ abi: provisionerV2Abi,
86
+ eventName: 'DepositRequested',
87
+ args: { receiver: address },
88
+ fromBlock: from,
89
+ toBlock: to,
90
+ })
91
+ : publicClient.getContractEvents({
92
+ address: provisionerAddress,
93
+ abi: DEPOSIT_REQUESTED_V1_ABI,
94
+ eventName: 'DepositRequested',
95
+ args: { user: address },
96
+ fromBlock: from,
97
+ toBlock: to,
98
+ }))),
99
+ Promise.all(chunks.map(([from, to]) => isV2
100
+ ? publicClient.getContractEvents({
101
+ address: provisionerAddress,
102
+ abi: provisionerV2Abi,
103
+ eventName: 'RedeemRequested',
104
+ args: { user: address },
105
+ fromBlock: from,
106
+ toBlock: to,
107
+ })
108
+ : publicClient.getContractEvents({
109
+ address: provisionerAddress,
110
+ abi: REDEEM_REQUESTED_V1_ABI,
111
+ eventName: 'RedeemRequested',
112
+ args: { user: address },
113
+ fromBlock: from,
114
+ toBlock: to,
115
+ }))),
102
116
  ]);
103
- const depositLogs = depositPages.flat().filter((log) => log.args.depositRequestHash != null);
104
- const redeemLogs = redeemPages.flat().filter((log) => log.args.redeemRequestHash != null);
117
+ const depositLogs = dedupeByRequestHash(depositPages.flat(), 'depositRequestHash');
118
+ const redeemLogs = dedupeByRequestHash(redeemPages.flat(), 'redeemRequestHash');
105
119
  // Check which requests are still pending on-chain via a single multicall
106
120
  const pendingChecks = await publicClient.multicall({
107
121
  contracts: [
108
122
  ...depositLogs.map((log) => ({
109
123
  address: provisionerAddress,
110
- abi: provisionerStateAbi,
111
- functionName: 'asyncDepositHashes',
124
+ abi: isV2 ? provisionerV2Abi : provisionerV1StateAbi,
125
+ functionName: isV2 ? 'asyncRequestHashes' : 'asyncDepositHashes',
112
126
  args: [log.args.depositRequestHash],
113
127
  })),
114
128
  ...redeemLogs.map((log) => ({
115
129
  address: provisionerAddress,
116
- abi: provisionerStateAbi,
117
- functionName: 'asyncRedeemHashes',
130
+ abi: isV2 ? provisionerV2Abi : provisionerV1StateAbi,
131
+ functionName: isV2 ? 'asyncRequestHashes' : 'asyncRedeemHashes',
118
132
  args: [log.args.redeemRequestHash],
119
133
  })),
120
134
  ],
@@ -135,11 +149,7 @@ async function queryDeploymentBalance(client, deployment, address) {
135
149
  }
136
150
  }
137
151
  const pendingWithdraw = pendingWithdrawUnits > 0n
138
- ? await feeCalc.read.convertUnitsToToken([
139
- deployment.vaultAddress,
140
- token.address,
141
- pendingWithdrawUnits,
142
- ])
152
+ ? await convertUnitsToToken(publicClient, runtime.feeCalculator.address, runtime.feeCalculator.version, deployment.vaultAddress, token.address, pendingWithdrawUnits)
143
153
  : 0n;
144
154
  return {
145
155
  chain: CHAIN_NAMES[deployment.chainId] ?? `chain-${deployment.chainId}`,
@@ -185,7 +195,7 @@ export async function getUserCurrentBalance(client, params) {
185
195
  const vaultInfo = manifest.vaults.find((v) => v.vaultId === params.vaultId);
186
196
  if (!vaultInfo)
187
197
  throw new VaultNotFoundError(params.vaultId);
188
- const evmDeployments = vaultInfo.deployments.filter((d) => d.chain === 'evm' && d.provisionerAddress !== undefined);
198
+ const evmDeployments = vaultInfo.deployments.filter((d) => d.chain === 'evm' && d.vaultType === 'multi-depositor');
189
199
  if (vaultInfo.protocol !== 'aera' || evmDeployments.length === 0) {
190
200
  throw new UnsupportedProtocolError(vaultInfo.protocol);
191
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"userCurrentBalance.js","sourceRoot":"","sources":["../../src/evm/userCurrentBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userCurrentBalance.js","sourceRoot":"","sources":["../../src/evm/userCurrentBalance.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,15 @@ export type EvmWithdrawParams = {
5
5
  vaultId: string;
6
6
  chainId?: number;
7
7
  assetSymbol?: string;
8
- /** Request async (queued) withdraw. Only valid for vaults with depositMode 'async' or 'both'. */
8
+ /** Request async (queued) or sync withdraw. Availability is read from live vault configuration. */
9
9
  depositMode?: string;
10
10
  receiver?: Address;
11
11
  /** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */
12
12
  slippageBps?: number;
13
+ /** Solver tip passed to async Aera provisioner requests. Defaults to 0. */
14
+ solverTip?: bigint;
15
+ /** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */
16
+ maxPriceAge?: bigint;
13
17
  } & ({
14
18
  shares: bigint;
15
19
  amount?: never;
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../src/evm/withdraw.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,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,CACA;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GACxD;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CACzD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CAyDvB"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../src/evm/withdraw.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,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,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,GAAG,CACA;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,GACxD;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CACzD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CAqEvB"}
@@ -1,7 +1,10 @@
1
1
  import { getAdapter } from './adapters';
2
2
  import { encodeTransactionWithAttribution } from '../attribution';
3
- import { AccountRequiredError, VaultNotFoundError, UnsupportedAssetError, UnsupportedDepositModeError, 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 withdraw from a Gauntlet vault.
7
10
  *
@@ -38,7 +41,9 @@ import { resolveVault } from './vaults';
38
41
  */
39
42
  export async function getWithdrawTx(client, params) {
40
43
  if (params.slippageBps !== undefined &&
41
- (!Number.isInteger(params.slippageBps) || params.slippageBps < 0 || params.slippageBps > 10000)) {
44
+ (!Number.isInteger(params.slippageBps) ||
45
+ params.slippageBps < 0 ||
46
+ params.slippageBps > Number(MAX_BPS))) {
42
47
  throw new InvalidSlippageBPSError(params.slippageBps);
43
48
  }
44
49
  const resolved = await resolveVault(client, params.vaultId, params.chainId);
@@ -49,16 +54,6 @@ export async function getWithdrawTx(client, params) {
49
54
  if (!account)
50
55
  throw new AccountRequiredError();
51
56
  const { vault, protocol } = resolved;
52
- if (params.depositMode === 'sync' && vault.depositMode === 'async') {
53
- throw new UnsupportedDepositModeError(params.vaultId, 'sync', vault.depositMode);
54
- }
55
- if (params.depositMode === 'async' && vault.depositMode === 'sync') {
56
- throw new UnsupportedDepositModeError(params.vaultId, 'async', vault.depositMode);
57
- }
58
- let modifiedDepositMode = params.depositMode;
59
- if (params.depositMode === undefined) {
60
- modifiedDepositMode = vault.depositMode === 'both' ? 'async' : vault.depositMode;
61
- }
62
57
  const token = vault.supplyToken.length > 1
63
58
  ? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
64
59
  : vault.supplyToken[0];
@@ -67,6 +62,20 @@ export async function getWithdrawTx(client, params) {
67
62
  }
68
63
  const adapter = getAdapter(protocol);
69
64
  const publicClient = client.getPublicClient(chainId);
65
+ const requestedWithdrawMode = parseOperationMode(params.vaultId, params.depositMode);
66
+ let modifiedDepositMode;
67
+ let aeraRuntime;
68
+ if (protocol === 'aera') {
69
+ aeraRuntime = await resolveAeraRuntimeContracts(publicClient, vault);
70
+ const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address);
71
+ modifiedDepositMode = resolveOperationMode(params.vaultId, requestedWithdrawMode, {
72
+ async: tokenModeSupport.asyncRedeem,
73
+ sync: tokenModeSupport.syncRedeem,
74
+ });
75
+ }
76
+ else {
77
+ modifiedDepositMode = resolveSyncOnlyOperationMode(params.vaultId, requestedWithdrawMode);
78
+ }
70
79
  const withdrawParams = {
71
80
  vault,
72
81
  receiver: params.receiver ?? account,
@@ -74,7 +83,10 @@ export async function getWithdrawTx(client, params) {
74
83
  async: modifiedDepositMode === 'async',
75
84
  asset: token,
76
85
  publicClient,
77
- slippageBps: params.slippageBps,
86
+ slippageBps: params.slippageBps ?? DEFAULT_BPS,
87
+ solverTip: params.solverTip,
88
+ maxPriceAge: params.maxPriceAge,
89
+ aeraRuntime,
78
90
  ...('shares' in params && params.shares != null ? { shares: params.shares } : {}),
79
91
  ...('amount' in params && params.amount != null ? { amount: params.amount } : {}),
80
92
  ...('entireAmount' in params && params.entireAmount ? { entireAmount: true } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/evm/withdraw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/evm/withdraw.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,23 @@
1
1
  export { GauntletClient, AttributionMode } from './client';
2
2
  export type { GauntletClientConfig } from './client';
3
+ export { ContractVersion } from './evm/types';
4
+ export * from './api';
3
5
  export type { VaultInfo, VaultDeployment, EvmVaultDeployment, TokenInfo, VaultManifest, } from './evm/types';
4
6
  export type { VaultFilter } from './evm/vaults';
5
7
  export { getDepositTx } from './evm/deposit';
8
+ export { getDepositReceiverApprovalTx } from './evm/depositReceiverApproval';
6
9
  export { getWithdrawTx } from './evm/withdraw';
7
10
  export { getUserCurrentBalance } from './evm/userCurrentBalance';
8
11
  export { getVaults, VaultId } from './evm/vaults';
12
+ export { resolveAeraRuntimeContracts, resolveContractVersion } from './evm/aeraContracts';
13
+ export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './evm/aeraContracts/priceAndFeeCalculator';
9
14
  export type { EvmDepositParams } from './evm/deposit';
15
+ export type { EvmDepositReceiverApprovalParams } from './evm/depositReceiverApproval';
10
16
  export type { EvmWithdrawParams } from './evm/withdraw';
11
17
  export type { EvmTxStep } from './evm/adapters/types';
12
18
  export type { UserCurrentBalanceParams, UserCurrentBalance } from './evm/userCurrentBalance';
13
19
  export type { PreparedTx } from './attribution';
14
- export { GauntletSDKError, VaultNotFoundError, UnsupportedAssetError, ChainMismatchError, UnsupportedDepositModeError, RpcNotConfiguredError, AccountRequiredError, UnsupportedProtocolError, InvalidWithdrawParamsError, UnimplementedFeatureError, UnitConversionError, } from './errors';
20
+ export type { AeraRuntimeContracts, AeraTokenModeSupport } from './evm/aeraContracts';
21
+ export type { NormalizedVaultPriceState } from './evm/aeraContracts/priceAndFeeCalculator';
22
+ export { GauntletSDKError, VaultNotFoundError, UnsupportedAssetError, ChainMismatchError, UnsupportedDepositModeError, RpcNotConfiguredError, AccountRequiredError, UnsupportedProtocolError, UnsupportedFeatureError, InvalidWithdrawParamsError, UnimplementedFeatureError, UnitConversionError, StalePriceError, InvalidSolverTipError, } from './errors';
15
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,cAAc,OAAO,CAAC;AAEtB,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,2CAA2C,CAAC;AAEnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAE3F,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,12 @@
1
1
  export { GauntletClient, AttributionMode } from './client';
2
+ export { ContractVersion } from './evm/types';
3
+ export * from './api';
2
4
  export { getDepositTx } from './evm/deposit';
5
+ export { getDepositReceiverApprovalTx } from './evm/depositReceiverApproval';
3
6
  export { getWithdrawTx } from './evm/withdraw';
4
7
  export { getUserCurrentBalance } from './evm/userCurrentBalance';
5
8
  export { getVaults, VaultId } from './evm/vaults';
6
- export { GauntletSDKError, VaultNotFoundError, UnsupportedAssetError, ChainMismatchError, UnsupportedDepositModeError, RpcNotConfiguredError, AccountRequiredError, UnsupportedProtocolError, InvalidWithdrawParamsError, UnimplementedFeatureError, UnitConversionError, } from './errors';
9
+ export { resolveAeraRuntimeContracts, resolveContractVersion } from './evm/aeraContracts';
10
+ export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './evm/aeraContracts/priceAndFeeCalculator';
11
+ export { GauntletSDKError, VaultNotFoundError, UnsupportedAssetError, ChainMismatchError, UnsupportedDepositModeError, RpcNotConfiguredError, AccountRequiredError, UnsupportedProtocolError, UnsupportedFeatureError, InvalidWithdrawParamsError, UnimplementedFeatureError, UnitConversionError, StalePriceError, InvalidSolverTipError, } from './errors';
7
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAY3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQlD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,cAAc,OAAO,CAAC;AAWtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,2CAA2C,CAAC;AAWnD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type Chain, type EIP1193Provider, type Transport, type WalletClient } from 'viem';
2
+ import { AttributionMode, GauntletClient, type ChainId } from '../client';
3
+ /**
4
+ * Structural view of a Privy embedded or connected wallet — matches
5
+ * `ConnectedWallet` from `@privy-io/react-auth` (via `useWallets()`) and
6
+ * `PrivyClient`-side wallets without importing Privy types, so the SDK has no
7
+ * dependency on any `@privy-io` package.
8
+ */
9
+ export interface PrivyEthereumWallet {
10
+ /** The wallet's EVM address. */
11
+ address: string;
12
+ /** Privy's EIP-1193 provider factory for this wallet. */
13
+ getEthereumProvider(): Promise<EIP1193Provider>;
14
+ }
15
+ /**
16
+ * Wraps a Privy wallet in a viem `WalletClient` bound to `chain`, ready to
17
+ * sign SDK transaction steps.
18
+ *
19
+ * ```ts
20
+ * const { wallets } = useWallets();
21
+ * const wallet = await walletClientFromPrivy(wallets[0], base);
22
+ * ```
23
+ */
24
+ export declare function walletClientFromPrivy(wallet: PrivyEthereumWallet, chain: Chain): Promise<WalletClient>;
25
+ export interface PrivyGauntletClientConfig {
26
+ /** The Privy wallet to sign with (e.g. `useWallets().wallets[0]`). */
27
+ wallet: PrivyEthereumWallet;
28
+ /** Chains the client should be able to read from; the first is the wallet's signing chain. */
29
+ chains: [Chain, ...Chain[]];
30
+ /** Per-chain transport override; defaults to each chain's public RPC via `http()`. */
31
+ transports?: Record<ChainId, Transport>;
32
+ apiKey?: string;
33
+ apiUrl?: string;
34
+ attributionMode?: AttributionMode;
35
+ builderCode?: string;
36
+ }
37
+ /**
38
+ * Opinionated one-call setup for Privy apps: builds public clients for each
39
+ * chain and a signing wallet from the Privy provider, returning a fully
40
+ * configured `GauntletClient`.
41
+ *
42
+ * ```ts
43
+ * const client = await createGauntletClientFromPrivy({
44
+ * wallet: wallets[0],
45
+ * chains: [base],
46
+ * builderCode: 'my-app',
47
+ * });
48
+ * const steps = await getDepositTx(client, { vaultId, amount });
49
+ * ```
50
+ */
51
+ export declare function createGauntletClientFromPrivy(config: PrivyGauntletClientConfig): Promise<GauntletClient>;
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,eAAe,EAEpB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;CACjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,YAAY,CAAC,CAOvB;AAED,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8FAA8F;IAC9F,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,cAAc,CAAC,CAiBzB"}
@@ -0,0 +1,51 @@
1
+ import { createPublicClient, createWalletClient, custom, http, } from 'viem';
2
+ import { GauntletClient } from '../client';
3
+ /**
4
+ * Wraps a Privy wallet in a viem `WalletClient` bound to `chain`, ready to
5
+ * sign SDK transaction steps.
6
+ *
7
+ * ```ts
8
+ * const { wallets } = useWallets();
9
+ * const wallet = await walletClientFromPrivy(wallets[0], base);
10
+ * ```
11
+ */
12
+ export async function walletClientFromPrivy(wallet, chain) {
13
+ const provider = await wallet.getEthereumProvider();
14
+ return createWalletClient({
15
+ account: wallet.address,
16
+ chain,
17
+ transport: custom(provider),
18
+ });
19
+ }
20
+ /**
21
+ * Opinionated one-call setup for Privy apps: builds public clients for each
22
+ * chain and a signing wallet from the Privy provider, returning a fully
23
+ * configured `GauntletClient`.
24
+ *
25
+ * ```ts
26
+ * const client = await createGauntletClientFromPrivy({
27
+ * wallet: wallets[0],
28
+ * chains: [base],
29
+ * builderCode: 'my-app',
30
+ * });
31
+ * const steps = await getDepositTx(client, { vaultId, amount });
32
+ * ```
33
+ */
34
+ export async function createGauntletClientFromPrivy(config) {
35
+ const evmClients = {};
36
+ for (const chain of config.chains) {
37
+ evmClients[chain.id] = createPublicClient({
38
+ chain,
39
+ transport: config.transports?.[chain.id] ?? http(),
40
+ });
41
+ }
42
+ return new GauntletClient({
43
+ evmClients,
44
+ wallet: await walletClientFromPrivy(config.wallet, config.chains[0]),
45
+ apiKey: config.apiKey,
46
+ apiUrl: config.apiUrl,
47
+ attributionMode: config.attributionMode,
48
+ builderCode: config.builderCode,
49
+ });
50
+ }
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/privy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,IAAI,GAOL,MAAM,MAAM,CAAC;AACd,OAAO,EAAmB,cAAc,EAAgB,MAAM,WAAW,CAAC;AAe1E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA2B,EAC3B,KAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACpD,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,OAAkB;QAClC,KAAK;QACL,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAeD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAiC;IAEjC,MAAM,UAAU,GAAkC,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC;YACxC,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;SACnD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,cAAc,CAAC;QACxB,UAAU;QACV,MAAM,EAAE,MAAM,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC"}