@gauntlet-xyz/sdk 2.3.0 → 2.5.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.
- package/README.md +52 -0
- package/dist/api/client.d.ts +22 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +11 -1
- package/dist/api/client.js.map +1 -1
- package/dist/api/generated.d.ts +51 -7
- package/dist/api/generated.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +21 -2
- package/dist/errors.js.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/priceAndFeeCalculatorV2.js +22 -0
- package/dist/evm/abis/priceAndFeeCalculatorV2.js.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/abis/provisionerV2.js +33 -0
- package/dist/evm/abis/provisionerV2.js.map +1 -1
- package/dist/evm/adapters/aera.d.ts.map +1 -1
- package/dist/evm/adapters/aera.js +41 -10
- package/dist/evm/adapters/aera.js.map +1 -1
- package/dist/evm/adapters/types.d.ts +2 -0
- package/dist/evm/adapters/types.d.ts.map +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +10 -5
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js +39 -5
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js.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/readOptions.js +4 -0
- package/dist/evm/aeraContracts/readOptions.js.map +1 -0
- package/dist/evm/aeraContracts/v2.d.ts +373 -2
- package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
- package/dist/evm/aeraContracts/v2.js +84 -28
- package/dist/evm/aeraContracts/v2.js.map +1 -1
- package/dist/evm/aeraContracts.d.ts +9 -3
- package/dist/evm/aeraContracts.d.ts.map +1 -1
- package/dist/evm/aeraContracts.js +69 -8
- package/dist/evm/aeraContracts.js.map +1 -1
- package/dist/evm/deposit.d.ts.map +1 -1
- package/dist/evm/deposit.js +1 -1
- package/dist/evm/deposit.js.map +1 -1
- package/dist/evm/index.d.ts +8 -0
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +3 -0
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/tokenModes.d.ts +22 -0
- package/dist/evm/tokenModes.d.ts.map +1 -0
- package/dist/evm/tokenModes.js +34 -0
- package/dist/evm/tokenModes.js.map +1 -0
- package/dist/evm/withdraw.d.ts +8 -0
- package/dist/evm/withdraw.d.ts.map +1 -1
- package/dist/evm/withdraw.js +85 -5
- package/dist/evm/withdraw.js.map +1 -1
- package/dist/evm/withdrawQuote.d.ts +127 -0
- package/dist/evm/withdrawQuote.d.ts.map +1 -0
- package/dist/evm/withdrawQuote.js +164 -0
- package/dist/evm/withdrawQuote.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/manifest/vaults.json +112 -154
- package/package.json +1 -1
- package/src/api/client.ts +35 -2
- package/src/api/generated.ts +51 -7
- package/src/api/index.ts +5 -0
- package/src/errors.ts +32 -2
- package/src/evm/abis/priceAndFeeCalculatorV2.ts +22 -0
- package/src/evm/abis/provisionerV2.ts +33 -0
- package/src/evm/adapters/aera.ts +50 -23
- package/src/evm/adapters/types.ts +2 -0
- package/src/evm/aeraContracts/priceAndFeeCalculator.ts +72 -5
- package/src/evm/aeraContracts/readOptions.ts +3 -0
- package/src/evm/aeraContracts/v2.ts +158 -34
- package/src/evm/aeraContracts.ts +81 -8
- package/src/evm/deposit.ts +2 -1
- package/src/evm/index.ts +32 -0
- package/src/evm/tokenModes.ts +54 -0
- package/src/evm/withdraw.ts +131 -7
- package/src/evm/withdrawQuote.ts +360 -0
- package/src/index.ts +16 -0
|
@@ -3,7 +3,8 @@ import { priceAndFeeCalculatorV2Abi } from '../abis/priceAndFeeCalculatorV2';
|
|
|
3
3
|
import { provisionerV2Abi } from '../abis/provisionerV2';
|
|
4
4
|
import { Rounding, convertTokenToUnitsIfActive, convertUnitsToTokenIfActive, } from './priceAndFeeCalculator';
|
|
5
5
|
import { MAX_BPS } from '../../constants';
|
|
6
|
-
import { StalePriceError } from '../../errors';
|
|
6
|
+
import { StalePriceError, UnsupportedFeatureError } from '../../errors';
|
|
7
|
+
import { readAtBlock } from './readOptions';
|
|
7
8
|
export function getPriceAndFeeCalculator(client, address) {
|
|
8
9
|
return getContract({
|
|
9
10
|
address,
|
|
@@ -11,37 +12,57 @@ export function getPriceAndFeeCalculator(client, address) {
|
|
|
11
12
|
client,
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
async function resolveReadContext(client, options = {}) {
|
|
16
|
+
if (options.blockNumber !== undefined && options.blockTimestamp !== undefined) {
|
|
17
|
+
return { blockNumber: options.blockNumber, blockTimestamp: options.blockTimestamp };
|
|
18
|
+
}
|
|
19
|
+
const block = options.blockNumber === undefined ? await client.getBlock() : await client.getBlock(options);
|
|
20
|
+
if (block.number === null) {
|
|
21
|
+
throw new UnsupportedFeatureError('Aera: sync redeem reads require a numbered block');
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
blockNumber: options.blockNumber ?? block.number,
|
|
25
|
+
blockTimestamp: options.blockTimestamp ?? BigInt(block.timestamp),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async function getTokenDetails(client, provisioner, token, options = {}) {
|
|
29
|
+
return client.readContract({
|
|
30
|
+
address: provisioner,
|
|
17
31
|
abi: provisionerV2Abi,
|
|
18
|
-
|
|
32
|
+
functionName: 'tokensDetails',
|
|
33
|
+
args: [token],
|
|
34
|
+
...readAtBlock(options),
|
|
19
35
|
});
|
|
20
36
|
}
|
|
21
|
-
async function
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
async function getDepositUnitsOut({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensIn, multiplierIndex, }) {
|
|
25
|
-
const tokenDetails = await getTokenDetails(client, provisioner, token);
|
|
37
|
+
async function getDepositUnitsOut({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensIn, multiplierIndex, options, }) {
|
|
38
|
+
const tokenDetails = await getTokenDetails(client, provisioner, token, options);
|
|
26
39
|
const multiplier = BigInt(tokenDetails[multiplierIndex]);
|
|
27
40
|
const adjustedTokensIn = (tokensIn * multiplier) / MAX_BPS;
|
|
28
|
-
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, adjustedTokensIn, Rounding.Floor);
|
|
41
|
+
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, adjustedTokensIn, Rounding.Floor, options);
|
|
29
42
|
}
|
|
30
|
-
async function getRedeemTokenOut({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, multiplierIndex, }) {
|
|
43
|
+
async function getRedeemTokenOut({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, multiplierIndex, options, }) {
|
|
31
44
|
const [tokenDetails, tokensOut] = await Promise.all([
|
|
32
|
-
getTokenDetails(client, provisioner, token),
|
|
33
|
-
convertUnitsToTokenIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, Rounding.Floor),
|
|
45
|
+
getTokenDetails(client, provisioner, token, options),
|
|
46
|
+
convertUnitsToTokenIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, Rounding.Floor, options),
|
|
34
47
|
]);
|
|
35
48
|
const multiplier = BigInt(tokenDetails[multiplierIndex]);
|
|
36
49
|
return (tokensOut * multiplier) / MAX_BPS;
|
|
37
50
|
}
|
|
38
|
-
async function getWithdrawUnitsIn({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensOut, multiplierIndex, }) {
|
|
39
|
-
const tokenDetails = await getTokenDetails(client, provisioner, token);
|
|
51
|
+
async function getWithdrawUnitsIn({ client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensOut, multiplierIndex, options, }) {
|
|
52
|
+
const tokenDetails = await getTokenDetails(client, provisioner, token, options);
|
|
40
53
|
const multiplier = BigInt(tokenDetails[multiplierIndex]);
|
|
41
54
|
const preMultiplierTokens = (tokensOut * MAX_BPS + multiplier - 1n) / multiplier;
|
|
42
|
-
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, preMultiplierTokens, Rounding.Ceil);
|
|
55
|
+
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, preMultiplierTokens, Rounding.Ceil, options);
|
|
43
56
|
}
|
|
44
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Reads the live sync redeem rate, replicating the provisioner's effective-multiplier
|
|
59
|
+
* derivation (base multiplier minus a price-age-proportional dynamic premium).
|
|
60
|
+
*
|
|
61
|
+
* @throws {StalePriceError} If the oracle price is older than the configured max age,
|
|
62
|
+
* in which case the on-chain sync redeem would revert.
|
|
63
|
+
*/
|
|
64
|
+
export async function getSyncRedeemRate(client, provisioner, vault, token, feeCalculator, options = {}) {
|
|
65
|
+
const readContext = await resolveReadContext(client, options);
|
|
45
66
|
const [tokenDetails, syncRedeemDetails, anchorTimestamp] = await client.multicall({
|
|
46
67
|
contracts: [
|
|
47
68
|
{
|
|
@@ -63,12 +84,12 @@ async function getSyncRedeemMultiplier(client, provisioner, vault, token, feeCal
|
|
|
63
84
|
},
|
|
64
85
|
],
|
|
65
86
|
allowFailure: false,
|
|
87
|
+
blockNumber: readContext.blockNumber,
|
|
66
88
|
});
|
|
67
|
-
const
|
|
68
|
-
const syncRedeemMultiplier = BigInt(tokenDetails[7]);
|
|
89
|
+
const baseMultiplierBps = BigInt(tokenDetails[7]);
|
|
69
90
|
const maxPriceAge = BigInt(syncRedeemDetails[0]);
|
|
70
91
|
const maxDynamicPremiumBps = BigInt(syncRedeemDetails[2]);
|
|
71
|
-
const blockTimestamp =
|
|
92
|
+
const blockTimestamp = readContext.blockTimestamp;
|
|
72
93
|
const priceTimestamp = BigInt(anchorTimestamp);
|
|
73
94
|
if (priceTimestamp + maxPriceAge < blockTimestamp) {
|
|
74
95
|
throw new StalePriceError({
|
|
@@ -80,12 +101,23 @@ async function getSyncRedeemMultiplier(client, provisioner, vault, token, feeCal
|
|
|
80
101
|
const dynamicPremiumBps = maxDynamicPremiumBps === 0n || maxPriceAge === 0n
|
|
81
102
|
? 0n
|
|
82
103
|
: ((blockTimestamp - priceTimestamp) * maxDynamicPremiumBps + maxPriceAge - 1n) / maxPriceAge;
|
|
83
|
-
return
|
|
104
|
+
return {
|
|
105
|
+
baseMultiplierBps,
|
|
106
|
+
dynamicPremiumBps,
|
|
107
|
+
effectiveMultiplierBps: baseMultiplierBps - dynamicPremiumBps,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async function getSyncRedeemMultiplier(client, provisioner, vault, token, feeCalculator, options = {}) {
|
|
111
|
+
return (await getSyncRedeemRate(client, provisioner, vault, token, feeCalculator, options))
|
|
112
|
+
.effectiveMultiplierBps;
|
|
84
113
|
}
|
|
85
|
-
export async function getSyncRedeemTokenOut(client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, unitsIn) {
|
|
114
|
+
export async function getSyncRedeemTokenOut(client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, effectiveMultiplierBps, options = {}) {
|
|
115
|
+
const readContext = effectiveMultiplierBps === undefined ? await resolveReadContext(client, options) : options;
|
|
86
116
|
const [tokenAmount, multiplier] = await Promise.all([
|
|
87
|
-
convertUnitsToTokenIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, Rounding.Floor),
|
|
88
|
-
|
|
117
|
+
convertUnitsToTokenIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, unitsIn, Rounding.Floor, readContext),
|
|
118
|
+
effectiveMultiplierBps !== undefined
|
|
119
|
+
? Promise.resolve(effectiveMultiplierBps)
|
|
120
|
+
: getSyncRedeemMultiplier(client, provisioner, vault, token, feeCalculator, readContext),
|
|
89
121
|
]);
|
|
90
122
|
return (tokenAmount * multiplier) / MAX_BPS;
|
|
91
123
|
}
|
|
@@ -137,10 +169,34 @@ export async function getAsyncWithdrawUnitsIn(client, provisioner, feeCalculator
|
|
|
137
169
|
multiplierIndex: 5,
|
|
138
170
|
});
|
|
139
171
|
}
|
|
140
|
-
export async function getSyncWithdrawUnitsIn(client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensOut) {
|
|
141
|
-
const
|
|
172
|
+
export async function getSyncWithdrawUnitsIn(client, provisioner, feeCalculator, feeCalculatorVersion, vault, token, tokensOut, effectiveMultiplierBps, options = {}) {
|
|
173
|
+
const readContext = effectiveMultiplierBps === undefined ? await resolveReadContext(client, options) : options;
|
|
174
|
+
const multiplier = effectiveMultiplierBps ??
|
|
175
|
+
(await getSyncRedeemMultiplier(client, provisioner, vault, token, feeCalculator, readContext));
|
|
142
176
|
const prePremiumTokens = (tokensOut * MAX_BPS + multiplier - 1n) / multiplier;
|
|
143
|
-
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, prePremiumTokens, Rounding.Ceil);
|
|
177
|
+
return convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, prePremiumTokens, Rounding.Ceil, readContext);
|
|
178
|
+
}
|
|
179
|
+
export async function getSyncRedeemEpochState(client, provisioner, options = {}) {
|
|
180
|
+
const [epochTimestamp, epochStartTvlNumeraire, epochRedeemedNumeraire, epochCapNumeraire] = await client.readContract({
|
|
181
|
+
address: provisioner,
|
|
182
|
+
abi: provisionerV2Abi,
|
|
183
|
+
functionName: 'getSyncRedeemEpochState',
|
|
184
|
+
...readAtBlock(options),
|
|
185
|
+
});
|
|
186
|
+
return { epochTimestamp, epochStartTvlNumeraire, epochRedeemedNumeraire, epochCapNumeraire };
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Raw expiry timestamp for the user's latest sync-deposit lock (0 if none was recorded).
|
|
190
|
+
* The user is locked while this value is greater than or equal to the relevant block timestamp.
|
|
191
|
+
*/
|
|
192
|
+
export async function getUserUnitsRefundableUntil(client, provisioner, user, options = {}) {
|
|
193
|
+
return client.readContract({
|
|
194
|
+
address: provisioner,
|
|
195
|
+
abi: provisionerV2Abi,
|
|
196
|
+
functionName: 'userUnitsRefundableUntil',
|
|
197
|
+
args: [user],
|
|
198
|
+
...readAtBlock(options),
|
|
199
|
+
});
|
|
144
200
|
}
|
|
145
201
|
export function depositTxRequest(provisioner, token, tokensIn, minUnitsOut, receiver, account) {
|
|
146
202
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../src/evm/aeraContracts/v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../src/evm/aeraContracts/v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,17 @@ export interface AeraTokenModeSupport {
|
|
|
17
17
|
syncDeposit: boolean;
|
|
18
18
|
syncRedeem: boolean;
|
|
19
19
|
}
|
|
20
|
+
export declare function requireAeraSyncRedeemRuntime(runtime: AeraRuntimeContracts): void;
|
|
21
|
+
export type AeraReadOptions = {
|
|
22
|
+
blockNumber?: bigint;
|
|
23
|
+
};
|
|
20
24
|
export declare function applySlippageDown(amount: bigint, slippageBps: number): bigint;
|
|
21
25
|
export declare function applySlippageUp(amount: bigint, slippageBps: number): bigint;
|
|
22
26
|
export type MultiDepositorVaultContract<T extends Client> = GetContractReturnType<typeof multiDepositorVaultAbi, T, Address>;
|
|
23
27
|
export declare function getMultiDepositorVault<T extends Client>(client: T, vaultAddress: Address): MultiDepositorVaultContract<T>;
|
|
24
|
-
export declare function resolveContractVersion(client: PublicClient, address: Address): Promise<ContractVersion>;
|
|
25
|
-
export declare function resolveAeraRuntimeContracts(client: PublicClient, vault: EvmVaultDeployment): Promise<AeraRuntimeContracts>;
|
|
26
|
-
export declare function resolveAeraTokenModeSupport(client: PublicClient, runtime: AeraRuntimeContracts, token: Address
|
|
28
|
+
export declare function resolveContractVersion(client: PublicClient, address: Address, options?: AeraReadOptions): Promise<ContractVersion>;
|
|
29
|
+
export declare function resolveAeraRuntimeContracts(client: PublicClient, vault: EvmVaultDeployment, options?: AeraReadOptions): Promise<AeraRuntimeContracts>;
|
|
30
|
+
export declare function resolveAeraTokenModeSupport(client: PublicClient, runtime: AeraRuntimeContracts, token: Address, options?: AeraReadOptions & {
|
|
31
|
+
includeSyncModes?: boolean;
|
|
32
|
+
}): Promise<AeraTokenModeSupport>;
|
|
27
33
|
//# sourceMappingURL=aeraContracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AA4BnE,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,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAOhF;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,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,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAsB1B;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA0C/B;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,eAAe,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7D,OAAO,CAAC,oBAAoB,CAAC,CAsE/B"}
|
|
@@ -5,6 +5,7 @@ import { provisionerAbi } from './abis/provisioner';
|
|
|
5
5
|
import { provisionerV2Abi } from './abis/provisionerV2';
|
|
6
6
|
import { MAX_BPS } from '../constants';
|
|
7
7
|
import { ContractVersion } from './types';
|
|
8
|
+
import { readAtBlock } from './aeraContracts/readOptions';
|
|
8
9
|
const contractVersionCache = new Map();
|
|
9
10
|
const contractVersionAbi = [
|
|
10
11
|
{
|
|
@@ -15,6 +16,26 @@ const contractVersionAbi = [
|
|
|
15
16
|
stateMutability: 'view',
|
|
16
17
|
},
|
|
17
18
|
];
|
|
19
|
+
const solvingGateAbi = [
|
|
20
|
+
{
|
|
21
|
+
type: 'function',
|
|
22
|
+
inputs: [
|
|
23
|
+
{ name: 'provisioner', internalType: 'address', type: 'address' },
|
|
24
|
+
{ name: 'token', internalType: 'address', type: 'address' },
|
|
25
|
+
],
|
|
26
|
+
name: 'paused',
|
|
27
|
+
outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
|
|
28
|
+
stateMutability: 'view',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
export function requireAeraSyncRedeemRuntime(runtime) {
|
|
32
|
+
if (runtime.provisioner.version !== ContractVersion.V2) {
|
|
33
|
+
throw new UnsupportedFeatureError('Aera: sync redeem requires a V2 provisioner');
|
|
34
|
+
}
|
|
35
|
+
if (runtime.feeCalculator.version !== ContractVersion.V2) {
|
|
36
|
+
throw new UnsupportedFeatureError('Aera: sync redeem requires a V2 price and fee calculator');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
18
39
|
export function applySlippageDown(amount, slippageBps) {
|
|
19
40
|
return (amount * (MAX_BPS - BigInt(slippageBps))) / MAX_BPS;
|
|
20
41
|
}
|
|
@@ -44,7 +65,7 @@ export function getMultiDepositorVault(client, vaultAddress) {
|
|
|
44
65
|
client,
|
|
45
66
|
});
|
|
46
67
|
}
|
|
47
|
-
export async function resolveContractVersion(client, address) {
|
|
68
|
+
export async function resolveContractVersion(client, address, options = {}) {
|
|
48
69
|
const cacheKey = contractVersionCacheKey(client, address);
|
|
49
70
|
const cached = contractVersionCache.get(cacheKey);
|
|
50
71
|
if (cached)
|
|
@@ -54,6 +75,7 @@ export async function resolveContractVersion(client, address) {
|
|
|
54
75
|
address,
|
|
55
76
|
abi: contractVersionAbi,
|
|
56
77
|
functionName: 'version',
|
|
78
|
+
...readAtBlock(options),
|
|
57
79
|
});
|
|
58
80
|
const version = versionString.startsWith('2.') ? ContractVersion.V2 : ContractVersion.V1;
|
|
59
81
|
contractVersionCache.set(cacheKey, version);
|
|
@@ -66,7 +88,7 @@ export async function resolveContractVersion(client, address) {
|
|
|
66
88
|
return ContractVersion.V1;
|
|
67
89
|
}
|
|
68
90
|
}
|
|
69
|
-
export async function resolveAeraRuntimeContracts(client, vault) {
|
|
91
|
+
export async function resolveAeraRuntimeContracts(client, vault, options = {}) {
|
|
70
92
|
if (vault.vaultType !== 'multi-depositor') {
|
|
71
93
|
throw new UnimplementedFeatureError('Aera: single depositor vaults');
|
|
72
94
|
}
|
|
@@ -75,11 +97,13 @@ export async function resolveAeraRuntimeContracts(client, vault) {
|
|
|
75
97
|
address: vault.vaultAddress,
|
|
76
98
|
abi: multiDepositorVaultAbi,
|
|
77
99
|
functionName: 'provisioner',
|
|
100
|
+
...readAtBlock(options),
|
|
78
101
|
}),
|
|
79
102
|
client.readContract({
|
|
80
103
|
address: vault.vaultAddress,
|
|
81
104
|
abi: multiDepositorVaultAbi,
|
|
82
105
|
functionName: 'feeCalculator',
|
|
106
|
+
...readAtBlock(options),
|
|
83
107
|
}),
|
|
84
108
|
]);
|
|
85
109
|
if (provisionerAddress === zeroAddress) {
|
|
@@ -89,8 +113,8 @@ export async function resolveAeraRuntimeContracts(client, vault) {
|
|
|
89
113
|
throw new UnsupportedFeatureError('Aera: vault without price and fee calculator');
|
|
90
114
|
}
|
|
91
115
|
const [provisionerVersion, feeCalculatorVersion] = await Promise.all([
|
|
92
|
-
resolveContractVersion(client, provisionerAddress),
|
|
93
|
-
resolveContractVersion(client, feeCalculatorAddress),
|
|
116
|
+
resolveContractVersion(client, provisionerAddress, options),
|
|
117
|
+
resolveContractVersion(client, feeCalculatorAddress, options),
|
|
94
118
|
]);
|
|
95
119
|
return {
|
|
96
120
|
provisioner: {
|
|
@@ -103,19 +127,55 @@ export async function resolveAeraRuntimeContracts(client, vault) {
|
|
|
103
127
|
},
|
|
104
128
|
};
|
|
105
129
|
}
|
|
106
|
-
export async function resolveAeraTokenModeSupport(client, runtime, token) {
|
|
130
|
+
export async function resolveAeraTokenModeSupport(client, runtime, token, options = {}) {
|
|
107
131
|
if (runtime.provisioner.version === ContractVersion.V2) {
|
|
108
|
-
const
|
|
132
|
+
const tokenDetailsPromise = client.readContract({
|
|
109
133
|
address: runtime.provisioner.address,
|
|
110
134
|
abi: provisionerV2Abi,
|
|
111
135
|
functionName: 'tokensDetails',
|
|
112
136
|
args: [token],
|
|
137
|
+
...readAtBlock(options),
|
|
113
138
|
});
|
|
139
|
+
if (options.includeSyncModes === false) {
|
|
140
|
+
const tokenDetails = await tokenDetailsPromise;
|
|
141
|
+
return {
|
|
142
|
+
asyncDeposit: Boolean(tokenDetails[0]),
|
|
143
|
+
asyncRedeem: Boolean(tokenDetails[1]),
|
|
144
|
+
syncDeposit: false,
|
|
145
|
+
syncRedeem: false,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const [tokenDetails, solvingGateEnabled, solvingGate] = await Promise.all([
|
|
149
|
+
tokenDetailsPromise,
|
|
150
|
+
client.readContract({
|
|
151
|
+
address: runtime.provisioner.address,
|
|
152
|
+
abi: provisionerV2Abi,
|
|
153
|
+
functionName: 'SOLVING_GATE_ENABLED',
|
|
154
|
+
...readAtBlock(options),
|
|
155
|
+
}),
|
|
156
|
+
client.readContract({
|
|
157
|
+
address: runtime.provisioner.address,
|
|
158
|
+
abi: provisionerV2Abi,
|
|
159
|
+
functionName: 'solvingGate',
|
|
160
|
+
...readAtBlock(options),
|
|
161
|
+
}),
|
|
162
|
+
]);
|
|
163
|
+
const solvingPaused = solvingGateEnabled && solvingGate !== zeroAddress
|
|
164
|
+
? await client.readContract({
|
|
165
|
+
address: solvingGate,
|
|
166
|
+
abi: solvingGateAbi,
|
|
167
|
+
functionName: 'paused',
|
|
168
|
+
args: [runtime.provisioner.address, token],
|
|
169
|
+
...readAtBlock(options),
|
|
170
|
+
})
|
|
171
|
+
: false;
|
|
114
172
|
return {
|
|
115
173
|
asyncDeposit: Boolean(tokenDetails[0]),
|
|
116
174
|
asyncRedeem: Boolean(tokenDetails[1]),
|
|
117
|
-
syncDeposit: Boolean(tokenDetails[2]),
|
|
118
|
-
syncRedeem: Boolean(tokenDetails[3])
|
|
175
|
+
syncDeposit: Boolean(tokenDetails[2]) && !solvingPaused,
|
|
176
|
+
syncRedeem: Boolean(tokenDetails[3]) &&
|
|
177
|
+
!solvingPaused &&
|
|
178
|
+
runtime.feeCalculator.version === ContractVersion.V2,
|
|
119
179
|
};
|
|
120
180
|
}
|
|
121
181
|
const tokenDetails = await client.readContract({
|
|
@@ -123,6 +183,7 @@ export async function resolveAeraTokenModeSupport(client, runtime, token) {
|
|
|
123
183
|
abi: provisionerAbi,
|
|
124
184
|
functionName: 'tokensDetails',
|
|
125
185
|
args: [token],
|
|
186
|
+
...readAtBlock(options),
|
|
126
187
|
});
|
|
127
188
|
return {
|
|
128
189
|
asyncDeposit: Boolean(tokenDetails[0]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aeraContracts.js","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAK7B,WAAW,EACX,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAA2B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"aeraContracts.js","sourceRoot":"","sources":["../../src/evm/aeraContracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;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,
|
|
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,CA8FvB"}
|
package/dist/evm/deposit.js
CHANGED
|
@@ -61,7 +61,7 @@ export async function getDepositTx(client, params) {
|
|
|
61
61
|
let aeraRuntime;
|
|
62
62
|
if (protocol === 'aera') {
|
|
63
63
|
aeraRuntime = await resolveAeraRuntimeContracts(publicClient, vault);
|
|
64
|
-
const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address);
|
|
64
|
+
const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address, { includeSyncModes: requestedDepositMode !== 'async' });
|
|
65
65
|
modifiedDepositMode = resolveOperationMode(params.vaultId, requestedDepositMode, {
|
|
66
66
|
async: tokenModeSupport.asyncDeposit,
|
|
67
67
|
sync: tokenModeSupport.syncDeposit,
|
package/dist/evm/deposit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAc,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,GAE7B,MAAM,iBAAiB,CAAC;AAqBzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAAwB;IAExB,IACE,MAAM,CAAC,WAAW,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;YACpC,MAAM,CAAC,WAAW,GAAG,CAAC;YACtB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EACvC,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IAEzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IAE/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAErC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACpF,IAAI,mBAAkC,CAAC;IACvC,IAAI,WAA6C,CAAC;IAElD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,WAAW,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CACxD,YAAY,EACZ,WAAW,EACX,KAAK,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../src/evm/deposit.ts"],"names":[],"mappings":"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"}
|
package/dist/evm/index.d.ts
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
export { getDepositTx } from './deposit';
|
|
2
2
|
export { getDepositReceiverApprovalTx } from './depositReceiverApproval';
|
|
3
3
|
export { getWithdrawTx } from './withdraw';
|
|
4
|
+
export { getSyncWithdrawQuote } from './withdrawQuote';
|
|
5
|
+
export { getAeraTokenModeSupport } from './tokenModes';
|
|
4
6
|
export { getUserCurrentBalance } from './userCurrentBalance';
|
|
5
7
|
export { getVaults, VaultId } from './vaults';
|
|
6
8
|
export { ContractVersion } from './types';
|
|
7
9
|
export { resolveAeraRuntimeContracts, resolveContractVersion } from './aeraContracts';
|
|
10
|
+
export { GauntletSDKError, AccountRequiredError, AccountMismatchError, ChainMismatchError, InvalidSlippageBPSError, InvalidSolverTipError, InvalidSyncWithdrawBoundError, InvalidWithdrawParamsError, RpcNotConfiguredError, StalePriceError, UnsupportedAssetError, UnsupportedDepositModeError, UnsupportedFeatureError, UnsupportedProtocolError, UnimplementedFeatureError, VaultNotFoundError, } from '../errors';
|
|
8
11
|
export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './aeraContracts/priceAndFeeCalculator';
|
|
9
12
|
export type { EvmDepositParams } from './deposit';
|
|
10
13
|
export type { EvmDepositReceiverApprovalParams } from './depositReceiverApproval';
|
|
11
14
|
export type { EvmWithdrawParams } from './withdraw';
|
|
15
|
+
export type { SyncWithdrawQuote, SyncWithdrawQuoteParams, SyncWithdrawCapacity, SyncWithdrawQuoteContext, SyncWithdrawQuoteRequest, SyncWithdrawQuoteBounds, } from './withdrawQuote';
|
|
16
|
+
export type { AeraTokenModeSupportParams } from './tokenModes';
|
|
17
|
+
export type { SyncRedeemRate } from './aeraContracts/v2';
|
|
12
18
|
export type { EvmTxStep } from './adapters/types';
|
|
19
|
+
export type { PreparedTx } from '../attribution';
|
|
13
20
|
export type { VaultInfo, VaultDeployment, EvmVaultDeployment, TokenInfo, VaultManifest, } from './types';
|
|
14
21
|
export type { VaultFilter } from './vaults';
|
|
15
22
|
export type { UserCurrentBalanceParams, UserCurrentBalance } from './userCurrentBalance';
|
|
16
23
|
export type { AeraRuntimeContracts, AeraTokenModeSupport } from './aeraContracts';
|
|
17
24
|
export type { NormalizedVaultPriceState } from './aeraContracts/priceAndFeeCalculator';
|
|
25
|
+
export type { SyncWithdrawBound } from '../errors';
|
|
18
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/evm/index.d.ts.map
CHANGED
|
@@ -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,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"}
|
|
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,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,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,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,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,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,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;AACvF,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/evm/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { getDepositTx } from './deposit';
|
|
2
2
|
export { getDepositReceiverApprovalTx } from './depositReceiverApproval';
|
|
3
3
|
export { getWithdrawTx } from './withdraw';
|
|
4
|
+
export { getSyncWithdrawQuote } from './withdrawQuote';
|
|
5
|
+
export { getAeraTokenModeSupport } from './tokenModes';
|
|
4
6
|
export { getUserCurrentBalance } from './userCurrentBalance';
|
|
5
7
|
export { getVaults, VaultId } from './vaults';
|
|
6
8
|
export { ContractVersion } from './types';
|
|
7
9
|
export { resolveAeraRuntimeContracts, resolveContractVersion } from './aeraContracts';
|
|
10
|
+
export { GauntletSDKError, AccountRequiredError, AccountMismatchError, ChainMismatchError, InvalidSlippageBPSError, InvalidSolverTipError, InvalidSyncWithdrawBoundError, InvalidWithdrawParamsError, RpcNotConfiguredError, StalePriceError, UnsupportedAssetError, UnsupportedDepositModeError, UnsupportedFeatureError, UnsupportedProtocolError, UnimplementedFeatureError, VaultNotFoundError, } from '../errors';
|
|
8
11
|
export { Rounding, convertTokenToUnits, convertTokenToUnitsIfActive, convertUnitsToToken, convertUnitsToTokenIfActive, getAnchorTimestamp, getVaultState, isVaultPaused, } from './aeraContracts/priceAndFeeCalculator';
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
package/dist/evm/index.js.map
CHANGED
|
@@ -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,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"}
|
|
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,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,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,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { GauntletClient } from '../client';
|
|
2
|
+
import { type AeraTokenModeSupport } from './aeraContracts';
|
|
3
|
+
export interface AeraTokenModeSupportParams {
|
|
4
|
+
vaultId: string;
|
|
5
|
+
/** EVM chain ID. Defaults to the vault's primary chain (Base for current multichain vaults). */
|
|
6
|
+
chainId?: number;
|
|
7
|
+
/** Required for multiasset vaults. */
|
|
8
|
+
assetSymbol?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Reads which deposit/redeem modes (sync vs async) are currently enabled on-chain for a vault token.
|
|
12
|
+
*
|
|
13
|
+
* Use this to decide which entry points to offer a user (e.g. whether an instant withdraw is
|
|
14
|
+
* available) before any amount is entered. Mode availability includes the provisioner's token
|
|
15
|
+
* settings and live runtime gates. A paused V2 solving gate disables both sync modes.
|
|
16
|
+
*
|
|
17
|
+
* @throws {VaultNotFoundError} If the vault ID is not found.
|
|
18
|
+
* @throws {UnsupportedFeatureError} If the vault is not an Aera deployment.
|
|
19
|
+
* @throws {UnsupportedAssetError} If the asset symbol is not accepted by the vault.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAeraTokenModeSupport(client: GauntletClient, params: AeraTokenModeSupportParams): Promise<AeraTokenModeSupport>;
|
|
22
|
+
//# sourceMappingURL=tokenModes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenModes.d.ts","sourceRoot":"","sources":["../../src/evm/tokenModes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAsB/B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UnsupportedAssetError, UnsupportedFeatureError, VaultNotFoundError } from '../errors';
|
|
2
|
+
import { resolveVault } from './vaults';
|
|
3
|
+
import { resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
|
|
4
|
+
/**
|
|
5
|
+
* Reads which deposit/redeem modes (sync vs async) are currently enabled on-chain for a vault token.
|
|
6
|
+
*
|
|
7
|
+
* Use this to decide which entry points to offer a user (e.g. whether an instant withdraw is
|
|
8
|
+
* available) before any amount is entered. Mode availability includes the provisioner's token
|
|
9
|
+
* settings and live runtime gates. A paused V2 solving gate disables both sync modes.
|
|
10
|
+
*
|
|
11
|
+
* @throws {VaultNotFoundError} If the vault ID is not found.
|
|
12
|
+
* @throws {UnsupportedFeatureError} If the vault is not an Aera deployment.
|
|
13
|
+
* @throws {UnsupportedAssetError} If the asset symbol is not accepted by the vault.
|
|
14
|
+
*/
|
|
15
|
+
export async function getAeraTokenModeSupport(client, params) {
|
|
16
|
+
const resolved = await resolveVault(client, params.vaultId, params.chainId);
|
|
17
|
+
if (!resolved)
|
|
18
|
+
throw new VaultNotFoundError(params.vaultId);
|
|
19
|
+
const { vault, protocol } = resolved;
|
|
20
|
+
if (protocol !== 'aera') {
|
|
21
|
+
throw new UnsupportedFeatureError('Token mode support is only available for Aera vaults');
|
|
22
|
+
}
|
|
23
|
+
const chainId = params.chainId ?? vault.chainId;
|
|
24
|
+
const publicClient = client.getPublicClient(chainId);
|
|
25
|
+
const token = vault.supplyToken.length > 1
|
|
26
|
+
? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
|
|
27
|
+
: vault.supplyToken[0];
|
|
28
|
+
if (token === undefined) {
|
|
29
|
+
throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
|
|
30
|
+
}
|
|
31
|
+
const runtime = await resolveAeraRuntimeContracts(publicClient, vault);
|
|
32
|
+
return resolveAeraTokenModeSupport(publicClient, runtime, token.address);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=tokenModes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenModes.js","sourceRoot":"","sources":["../../src/evm/tokenModes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAE5B,MAAM,iBAAiB,CAAC;AAUzB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAsB,EACtB,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACrC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,uBAAuB,CAAC,sDAAsD,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,KAAK,GACT,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvE,OAAO,2BAA2B,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/evm/withdraw.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Address } from 'viem';
|
|
2
2
|
import type { GauntletClient } from '../client';
|
|
3
|
+
import type { SyncWithdrawQuoteBounds } from './withdrawQuote';
|
|
3
4
|
import { PreparedTx } from '../attribution';
|
|
4
5
|
export type EvmWithdrawParams = {
|
|
5
6
|
vaultId: string;
|
|
@@ -14,6 +15,11 @@ export type EvmWithdrawParams = {
|
|
|
14
15
|
solverTip?: bigint;
|
|
15
16
|
/** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */
|
|
16
17
|
maxPriceAge?: bigint;
|
|
18
|
+
/**
|
|
19
|
+
* Current sync quote bounds to pin instant withdraw transaction construction.
|
|
20
|
+
* Supplying bounds implies `depositMode: 'sync'`; explicit async requests are rejected.
|
|
21
|
+
*/
|
|
22
|
+
syncWithdrawQuote?: SyncWithdrawQuoteBounds;
|
|
17
23
|
} & ({
|
|
18
24
|
shares: bigint;
|
|
19
25
|
amount?: never;
|
|
@@ -23,6 +29,7 @@ export type EvmWithdrawParams = {
|
|
|
23
29
|
shares?: never;
|
|
24
30
|
entireAmount?: never;
|
|
25
31
|
} | {
|
|
32
|
+
account?: Address;
|
|
26
33
|
entireAmount: true;
|
|
27
34
|
shares?: never;
|
|
28
35
|
amount?: never;
|
|
@@ -58,6 +65,7 @@ export type EvmWithdrawParams = {
|
|
|
58
65
|
* const txs = await getWithdrawTx(client, {
|
|
59
66
|
* vaultId: 'baseUsdcPrime',
|
|
60
67
|
* entireAmount: true,
|
|
68
|
+
* account: walletAddress,
|
|
61
69
|
* });
|
|
62
70
|
* ```
|
|
63
71
|
*/
|