@continuumdao/ctm-mpc-defi 0.2.0 → 0.2.2

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 (100) hide show
  1. package/README.md +20 -78
  2. package/dist/agent/catalog.cjs +563 -5
  3. package/dist/agent/catalog.cjs.map +1 -1
  4. package/dist/agent/catalog.d.ts +166 -20
  5. package/dist/agent/catalog.js +551 -7
  6. package/dist/agent/catalog.js.map +1 -1
  7. package/dist/agent/skills/aave-v4/SKILL.md +43 -0
  8. package/dist/agent/skills/curve-dao/SKILL.md +13 -0
  9. package/dist/agent/skills/ethena/SKILL.md +10 -0
  10. package/dist/agent/skills/euler-v2/SKILL.md +10 -0
  11. package/dist/agent/skills/lido/SKILL.md +22 -0
  12. package/dist/agent/skills/maple-syrup/SKILL.md +10 -0
  13. package/dist/agent/skills/sky/SKILL.md +10 -0
  14. package/dist/agent/skills/uniswap-v4/SKILL.md +22 -0
  15. package/dist/chains/evm/index.cjs +79 -224
  16. package/dist/chains/evm/index.cjs.map +1 -1
  17. package/dist/chains/evm/index.d.ts +26 -26
  18. package/dist/chains/evm/index.js +69 -209
  19. package/dist/chains/evm/index.js.map +1 -1
  20. package/dist/chains/near/index.d.ts +1 -1
  21. package/dist/chains/solana/index.d.ts +1 -1
  22. package/dist/core/index.cjs +68 -106
  23. package/dist/core/index.cjs.map +1 -1
  24. package/dist/core/index.d.ts +21 -36
  25. package/dist/core/index.js +57 -96
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/{envelope-CcE5Cz_q.d.ts → envelope-CpBUh9eP.d.ts} +1 -1
  28. package/dist/index.cjs +356 -1855
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +7 -11
  31. package/dist/index.js +332 -1826
  32. package/dist/index.js.map +1 -1
  33. package/dist/protocols/evm/aave-v4/index.cjs +1152 -669
  34. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  35. package/dist/protocols/evm/aave-v4/index.d.ts +418 -3
  36. package/dist/protocols/evm/aave-v4/index.js +1126 -670
  37. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  38. package/dist/protocols/evm/curve-dao/index.cjs +257 -131
  39. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  40. package/dist/protocols/evm/curve-dao/index.d.ts +69 -5
  41. package/dist/protocols/evm/curve-dao/index.js +242 -124
  42. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  43. package/dist/protocols/evm/ethena/index.cjs +394 -402
  44. package/dist/protocols/evm/ethena/index.cjs.map +1 -1
  45. package/dist/protocols/evm/ethena/index.d.ts +47 -3
  46. package/dist/protocols/evm/ethena/index.js +390 -404
  47. package/dist/protocols/evm/ethena/index.js.map +1 -1
  48. package/dist/protocols/evm/euler-v2/index.cjs +2810 -1191
  49. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  50. package/dist/protocols/evm/euler-v2/index.d.ts +465 -3
  51. package/dist/protocols/evm/euler-v2/index.js +2761 -1192
  52. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  53. package/dist/protocols/evm/lido/index.cjs +351 -236
  54. package/dist/protocols/evm/lido/index.cjs.map +1 -1
  55. package/dist/protocols/evm/lido/index.d.ts +34 -4
  56. package/dist/protocols/evm/lido/index.js +348 -238
  57. package/dist/protocols/evm/lido/index.js.map +1 -1
  58. package/dist/protocols/evm/maple/index.cjs +390 -395
  59. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  60. package/dist/protocols/evm/maple/index.d.ts +23 -3
  61. package/dist/protocols/evm/maple/index.js +390 -397
  62. package/dist/protocols/evm/maple/index.js.map +1 -1
  63. package/dist/protocols/evm/sky/index.cjs +454 -232
  64. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  65. package/dist/protocols/evm/sky/index.d.ts +57 -3
  66. package/dist/protocols/evm/sky/index.js +444 -231
  67. package/dist/protocols/evm/sky/index.js.map +1 -1
  68. package/dist/protocols/evm/uniswap-v4/index.cjs +423 -658
  69. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  70. package/dist/protocols/evm/uniswap-v4/index.d.ts +3 -4
  71. package/dist/protocols/evm/uniswap-v4/index.js +422 -657
  72. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  73. package/dist/{registry-oMKlO_5z.d.ts → registry-Bv5o37_w.d.ts} +1 -1
  74. package/dist/{types-Ce2qNHai.d.cts → types-BfjWdw1j.d.ts} +3 -1
  75. package/dist/{types-5u863Fd9.d.ts → types-DUeNJLr9.d.ts} +1 -1
  76. package/package.json +7 -6
  77. package/dist/agent/catalog.d.cts +0 -939
  78. package/dist/chains/evm/index.d.cts +0 -64
  79. package/dist/chains/near/index.d.cts +0 -37
  80. package/dist/chains/solana/index.d.cts +0 -40
  81. package/dist/core/index.d.cts +0 -43
  82. package/dist/envelope-DYDPnrHZ.d.cts +0 -35
  83. package/dist/index.d.cts +0 -16
  84. package/dist/keygen-CfNp8yKJ.d.cts +0 -9
  85. package/dist/keygen-DsINazx8.d.ts +0 -9
  86. package/dist/nodeRead-BnmSaMGO.d.cts +0 -8
  87. package/dist/nodeRead-BnmSaMGO.d.ts +0 -8
  88. package/dist/protocols/evm/aave-v4/index.d.cts +0 -500
  89. package/dist/protocols/evm/curve-dao/index.d.cts +0 -147
  90. package/dist/protocols/evm/ethena/index.d.cts +0 -161
  91. package/dist/protocols/evm/euler-v2/index.d.cts +0 -317
  92. package/dist/protocols/evm/lido/index.d.cts +0 -120
  93. package/dist/protocols/evm/maple/index.d.cts +0 -109
  94. package/dist/protocols/evm/sky/index.d.cts +0 -218
  95. package/dist/protocols/evm/uniswap-v4/index.d.cts +0 -324
  96. package/dist/registry-BwZoE668.d.cts +0 -8
  97. package/dist/txParams-BC7ogvdR.d.cts +0 -19
  98. package/dist/txParams-BC7ogvdR.d.ts +0 -19
  99. package/dist/types-B8idm_gu.d.cts +0 -34
  100. package/dist/types-Ce2qNHai.d.ts +0 -57
@@ -1,161 +0,0 @@
1
- import { d as ProtocolModule } from '../../../types-Ce2qNHai.cjs';
2
- import { Address } from 'viem';
3
- import { K as KeyGenSubsetForPermit } from '../../../keygen-CfNp8yKJ.cjs';
4
-
5
- declare const ETHENA_LABS_GITHUB = "https://github.com/ethena-labs";
6
- declare const ETHENA_KEY_ADDRESSES_DOC = "https://docs.ethena.fi/solution-design/key-addresses";
7
- declare const USDE_ETHEREUM_MAINNET: "0x4c9edd5852cd905f086c759e8383e09bff1e68b3";
8
- /** sUSDe (StakedUSDe / ERC-4626 vault share) on Ethereum mainnet. @see Ethena key addresses */
9
- declare const SUSDE_ETHEREUM_MAINNET: "0x9d39a5de30e57443bff2a8307a4256c8797a3497";
10
- /** “Most L2s” in Ethena’s key-addresses table (same bytecode address on many networks). */
11
- declare const USDE_MOST_L2S: "0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34";
12
- declare const USDE_ZKSYNC_ERA: "0x39Fe7a0DACcE31Bd90418e3e659fb0b5f0B3Db0d";
13
- /**
14
- * USDe address on a chain, or `null` if we do not model USDe for that EVM id (e.g. testnets / unlisted L2s).
15
- */
16
- declare function usdeTokenAddressOnEvmChain(chainId: number): `0x${string}` | null;
17
- declare function isEthenaUsdeOnAssetsChain(assetsChainId: string, contractAddress: string): boolean;
18
- type EthenaUsdeEvmNetworkRow = {
19
- chainId: number;
20
- /** Static fallback; UI may prefer a name from the node’s chain list. */
21
- label: string;
22
- usde: `0x${string}`;
23
- };
24
- /**
25
- * EVM mainnets with a known USDe deployment for the “networks” table in the Ethena dialog.
26
- * ZKSync uses a different address; all other listed L2s here share `USDE_MOST_L2S`.
27
- */
28
- declare function listEthenaUsdeEvmNetworkRows(): EthenaUsdeEvmNetworkRow[];
29
- declare function isEvmChainInEthenaUsdeList(chainId: number): boolean;
30
-
31
- /**
32
- * Ethena: stake USDe → sUSDe (`deposit`) and exit sUSDe on Ethereum mainnet.
33
- * Stake: batches `approve(USDe → vault, amount)` when needed, then `deposit(assets, receiver)`.
34
- * Unstake when `cooldownDuration == 0`: `redeem`. When cooldown is on: `cooldownShares`, then `unstake` to claim.
35
- */
36
-
37
- /**
38
- * StakedUSDe `deposit` gas when estimate is skipped or reverts.
39
- * Off-chain `eth_estimateGas` cannot apply a prior same-batch `approve`, so deposit often reverts with
40
- * "ERC20: insufficient allowance" when simulated in isolation (e.g. Batch Get Sigs).
41
- */
42
- declare const ETHENA_SUSDE_DEPOSIT_GET_SIG_GAS_FALLBACK = 1200000n;
43
- type ChainRow = {
44
- legacy?: boolean;
45
- gasLimit?: number;
46
- gasMultiplier?: number;
47
- gasPrice?: number;
48
- baseFee?: number;
49
- priorityFee?: number;
50
- baseFeeMultiplier?: number;
51
- };
52
- /**
53
- * sUSDe shares for a given USDe `assets` amount (on-chain, same block rules as `deposit`).
54
- */
55
- declare function readEthenaStakePreviewShares(args: {
56
- rpcUrl: string;
57
- usdeAmountWei: bigint;
58
- }): Promise<bigint>;
59
- /**
60
- * USDe you would get when redeeming a given sUSDe `shares` amount (on-chain `previewRedeem`).
61
- */
62
- declare function readEthenaUnstakePreviewUsde(args: {
63
- rpcUrl: string;
64
- susdeSharesWei: bigint;
65
- }): Promise<bigint>;
66
- declare function buildEvmMultisignBodyEthenaUsdeStakeToSusde(args: {
67
- keyGen: KeyGenSubsetForPermit;
68
- /** Must be 1 (mainnet) — sUSDe staking is on Ethereum. */
69
- chainId: number;
70
- rpcUrl: string;
71
- chainDetail: ChainRow;
72
- useCustomGas: boolean;
73
- customGasChainDetails?: Record<string, unknown> | null;
74
- usde: Address;
75
- /** StakedUSDe (ERC-4626 vault) — defaults to mainnet constant. */
76
- susdeVault?: Address;
77
- amountHuman: string;
78
- /** Receives minted sUSDe shares. */
79
- receiver: Address;
80
- executorAddress: Address;
81
- purposeText: string;
82
- }): Promise<{
83
- bodyForSign: Record<string, unknown>;
84
- messageToSign: string;
85
- }>;
86
- /**
87
- * sUSDe → USDe: ERC-4626 `redeem` on the StakedUSDe vault (shares in, USDe to receiver; executor = owner of shares).
88
- * **Only when `cooldownDuration` is 0** on the vault; otherwise use {@link buildEvmMultisignBodyEthenaSusdeCooldownShares}.
89
- */
90
- declare function buildEvmMultisignBodyEthenaSusdeRedeemToUsde(args: {
91
- keyGen: KeyGenSubsetForPermit;
92
- chainId: number;
93
- rpcUrl: string;
94
- chainDetail: ChainRow;
95
- useCustomGas: boolean;
96
- customGasChainDetails?: Record<string, unknown> | null;
97
- /** StakedUSDe (ERC-4626 vault) — must match StakedUSDe; defaults to mainnet. */
98
- susdeVault?: Address;
99
- /** Human amount of sUSDe shares to burn (uses vault / share decimals on-chain). */
100
- sharesHuman: string;
101
- /** Receives USDe assets. */
102
- receiver: Address;
103
- /** Signs txs and is `owner` in `redeem` (must hold the shares). */
104
- executorAddress: Address;
105
- purposeText: string;
106
- }): Promise<{
107
- bodyForSign: Record<string, unknown>;
108
- messageToSign: string;
109
- }>;
110
- /**
111
- * StakedUSDeV2 `cooldownShares` when `cooldownDuration > 0` (redeem/withdraw are disabled on-chain). Starts withdrawal cooldown; use {@link buildEvmMultisignBodyEthenaUnstakeClaim} after `cooldownEnd`.
112
- */
113
- declare function buildEvmMultisignBodyEthenaSusdeCooldownShares(args: {
114
- keyGen: KeyGenSubsetForPermit;
115
- chainId: number;
116
- rpcUrl: string;
117
- chainDetail: ChainRow;
118
- useCustomGas: boolean;
119
- customGasChainDetails?: Record<string, unknown> | null;
120
- susdeVault?: Address;
121
- sharesHuman: string;
122
- /** Signs txs; must hold the shares. */
123
- executorAddress: Address;
124
- purposeText: string;
125
- }): Promise<{
126
- bodyForSign: Record<string, unknown>;
127
- messageToSign: string;
128
- }>;
129
- /**
130
- * StakedUSDeV2 `unstake` — after cooldown ended, move USDe from silo to `receiver`.
131
- */
132
- declare function buildEvmMultisignBodyEthenaUnstakeClaim(args: {
133
- keyGen: KeyGenSubsetForPermit;
134
- chainId: number;
135
- rpcUrl: string;
136
- chainDetail: ChainRow;
137
- useCustomGas: boolean;
138
- customGasChainDetails?: Record<string, unknown> | null;
139
- susdeVault?: Address;
140
- /** USDe is sent to this address (e.g. key’s Ethereum address). */
141
- receiver: Address;
142
- /** Signs txs and must be the same account that holds the silo position to claim. */
143
- executorAddress: Address;
144
- purposeText: string;
145
- }): Promise<{
146
- bodyForSign: Record<string, unknown>;
147
- messageToSign: string;
148
- }>;
149
- /**
150
- * True when `batchMeta[batchIndex]` is StakedUSDe `deposit` (USDe stake batch step that follows `approve`).
151
- */
152
- declare function isEthenaSusdeDepositBatchStep(detail: Record<string, unknown> | null | undefined, batchIndex: number): boolean;
153
- /**
154
- * Prefer `proposalTxParams[i]` / `batchMeta[i].ethena.gasBuildDeposit` when `eth_estimateGas` reverts on deposit.
155
- */
156
- declare function resolveEthenaBatchStepGasFromSignRequest(detail: Record<string, unknown> | null | undefined, batchIndex: number): bigint | null;
157
-
158
- declare const ETHENA_PROTOCOL_ID = "ethena";
159
- declare const ethenaProtocolModule: ProtocolModule;
160
-
161
- export { ETHENA_KEY_ADDRESSES_DOC, ETHENA_LABS_GITHUB, ETHENA_PROTOCOL_ID, ETHENA_SUSDE_DEPOSIT_GET_SIG_GAS_FALLBACK, type EthenaUsdeEvmNetworkRow, SUSDE_ETHEREUM_MAINNET, USDE_ETHEREUM_MAINNET, USDE_MOST_L2S, USDE_ZKSYNC_ERA, buildEvmMultisignBodyEthenaSusdeCooldownShares, buildEvmMultisignBodyEthenaSusdeRedeemToUsde, buildEvmMultisignBodyEthenaUnstakeClaim, buildEvmMultisignBodyEthenaUsdeStakeToSusde, ethenaProtocolModule, isEthenaSusdeDepositBatchStep, isEthenaUsdeOnAssetsChain, isEvmChainInEthenaUsdeList, listEthenaUsdeEvmNetworkRows, readEthenaStakePreviewShares, readEthenaUnstakePreviewUsde, resolveEthenaBatchStepGasFromSignRequest, usdeTokenAddressOnEvmChain };
@@ -1,317 +0,0 @@
1
- import { d as ProtocolModule } from '../../../types-Ce2qNHai.cjs';
2
- import { Address } from 'viem';
3
- import { K as KeyGenSubsetForPermit } from '../../../keygen-CfNp8yKJ.cjs';
4
-
5
- /** Stay below on-chain max borrow LTV when computing per-round headroom (basis points). */
6
- declare const EULER_SAME_ASSET_BORROW_PROTOCOL_HEADROOM_BPS = 50n;
7
- /** Extra allowance on total collateral deposits: `total * (1 + bps/10000)` plus one wei. */
8
- declare const EULER_SAME_ASSET_BORROW_APPROVAL_BUFFER_BPS = 100n;
9
- declare const EULER_SAME_ASSET_BORROW_MAX_ROUNDS = 48;
10
- /** Stop iterating when current LTV is within this many bps of target (0.15%). */
11
- declare const EULER_SAME_ASSET_BORROW_RATIO_STOP_EPS_BPS = 15n;
12
- declare function eulerBorrowAndCollateralSameAsset(row: {
13
- collateralAssetAddressLower?: string | null | undefined;
14
- borrowAssetAddressLower?: string | null | undefined;
15
- }): boolean;
16
- /**
17
- * Plan iterative borrow → re-deposit rounds so final debt/collateral (UoA) approaches `targetLtvBps`,
18
- * without exceeding a capped max LTV (vault max minus protocol headroom). Same borrow/collateral asset only.
19
- */
20
- declare function planSameAssetLeveragedBorrows(args: {
21
- initialCollateralWei: bigint;
22
- oneBorrowUnitUoAWei: bigint;
23
- borrowDecimals: number;
24
- targetLtvBps: number;
25
- maxLtvBps: number;
26
- maxNewBorrowWei: bigint;
27
- }): {
28
- borrowWeis: readonly bigint[];
29
- totalBorrowWei: bigint;
30
- projectedFinalLtvBps: bigint;
31
- } | null;
32
- /** Total ERC-20 allowance target for collateral vault: deposits plus buffer. */
33
- declare function eulerSameAssetTotalCollateralPullWei(args: {
34
- initialCollateralWei: bigint;
35
- loopBorrowWeis: readonly bigint[];
36
- }): bigint;
37
- declare function eulerSameAssetApproveAmountWithBuffer(args: {
38
- totalPullWei: bigint;
39
- }): bigint;
40
-
41
- /**
42
- * Maximum collateral underlying (asset wei) safely withdrawable for a borrow position’s collateral eVault,
43
- * matching how the app submits `EVC.batch` → `withdraw(assets, receiver, owner=subAccount)`.
44
- *
45
- * Prefer ERC-4626 `maxWithdraw` when non-zero (no controller shortcut). Otherwise simulate via RPC.
46
- */
47
- declare function fetchEulerBorrowCollateralMaxWithdrawAssetsWei(args: {
48
- rpcUrl: string;
49
- chainId: number;
50
- evc: Address;
51
- collateralVault: Address;
52
- subAccount: Address;
53
- /** Address that submits the multisign tx (must match multisign executor / receiver). */
54
- caller: Address;
55
- }): Promise<bigint>;
56
-
57
- declare const EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS = 900000n;
58
- type ChainRow$5 = {
59
- legacy?: boolean;
60
- gasLimit?: number;
61
- gasMultiplier?: number;
62
- gasPrice?: number;
63
- baseFee?: number;
64
- priorityFee?: number;
65
- baseFeeMultiplier?: number;
66
- };
67
- declare function fetchEulerVaultUnderlyingMeta(args: {
68
- rpcUrl: string;
69
- chainId: number;
70
- evault: Address;
71
- }): Promise<{
72
- asset: Address;
73
- decimals: number;
74
- }>;
75
- /**
76
- * Some RPCs/indexers report too-low underlying `decimals` (~15) for WETH-class assets, inflating formatted amounts ~1000×.
77
- * Prefer wrapped-gas alias match, then Euler ETH-style vault labels, then raw chain `decimals`.
78
- */
79
- declare function clampEulerUnderlyingDecimalsForEulerUi(args: {
80
- fetchedDecimals: number;
81
- underlyingAssetLower: string;
82
- marketName: string;
83
- underlyingSymbol: string;
84
- wrappedGasAliasesLower: ReadonlySet<string>;
85
- }): number;
86
- declare function fetchEulerVaultAssetDecimals(args: {
87
- rpcUrl: string;
88
- chainId: number;
89
- evault: Address;
90
- }): Promise<number>;
91
- /** Max underlying assets redeemable via `withdraw` for `owner` (ERC-4626 `maxWithdraw`). */
92
- declare function fetchEulerVaultMaxWithdrawWei(args: {
93
- rpcUrl: string;
94
- chainId: number;
95
- evault: Address;
96
- owner: Address;
97
- }): Promise<bigint>;
98
- /** Use for LEND/EARN redeem UX + validation: merges ERC-4626 `maxWithdraw` with withdraw simulation when it is pessimistically zero. */
99
- declare function fetchEulerLendEarnVaultEffectiveMaxWithdrawWei(args: {
100
- rpcUrl: string;
101
- chainId: number;
102
- evault: Address;
103
- vaultShareOwner: Address;
104
- /** Must match multisign redeem `receiver` and `executor` (key Ethereum address). */
105
- txSender: Address;
106
- }): Promise<bigint>;
107
- /**
108
- * Single ERC-4626 `withdraw(assets, receiver, owner)` on an Euler isolated eVault — no unwrap batch.
109
- */
110
- declare function buildEvmMultisignBodyEulerV2VaultWithdraw(args: {
111
- keyGen: KeyGenSubsetForPermit;
112
- chainId: number;
113
- rpcUrl: string;
114
- chainDetail: ChainRow$5;
115
- useCustomGas: boolean;
116
- customGasChainDetails?: Record<string, unknown> | null;
117
- evault: Address;
118
- /** Underlying asset amount (human decimal string); capped by `fetchEulerLendEarnVaultEffectiveMaxWithdrawWei`. */
119
- amountHuman: string;
120
- /** Receiver of underlying (usually the key address). */
121
- owner: Address;
122
- /** Address whose eVault shares are redeemed (ERC-4626 `owner`); defaults to `owner` when omitted. */
123
- vaultShareOwner?: Address;
124
- executorAddress: Address;
125
- purposeText: string;
126
- vaultMarketLabel: string;
127
- }): Promise<{
128
- bodyForSign: Record<string, unknown>;
129
- messageToSign: string;
130
- }>;
131
-
132
- /** Conservative fallback when `estimateGas` fails on Euler eVault `deposit`. */
133
- declare const EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS = 950000n;
134
- type ChainRow$4 = {
135
- legacy?: boolean;
136
- gasLimit?: number;
137
- gasMultiplier?: number;
138
- gasPrice?: number;
139
- baseFee?: number;
140
- priorityFee?: number;
141
- baseFeeMultiplier?: number;
142
- };
143
- /**
144
- * Euler v2 isolated lending: wrap native → WETH when needed, `approve(eVault, amount)` if required,
145
- * then `eVault.deposit(assets, receiver)` (ERC-4626).
146
- */
147
- declare function buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch(args: {
148
- keyGen: KeyGenSubsetForPermit;
149
- chainId: number;
150
- rpcUrl: string;
151
- chainDetail: ChainRow$4;
152
- useCustomGas: boolean;
153
- customGasChainDetails?: Record<string, unknown> | null;
154
- /** Euler eVault (checksummed). */
155
- evault: Address;
156
- /** Underlying ERC-20 passed to `deposit` (WETH when user chose native gas token row). */
157
- underlying: Address;
158
- isNativeIn: boolean;
159
- nativeWrapped: Address;
160
- amountHuman: string;
161
- receiver: Address;
162
- executorAddress: Address;
163
- purposeText: string;
164
- vaultMarketLabel: string;
165
- }): Promise<{
166
- bodyForSign: Record<string, unknown>;
167
- messageToSign: string;
168
- }>;
169
-
170
- type ChainRow$3 = {
171
- legacy?: boolean;
172
- gasLimit?: number;
173
- gasMultiplier?: number;
174
- gasPrice?: number;
175
- baseFee?: number;
176
- priorityFee?: number;
177
- baseFeeMultiplier?: number;
178
- };
179
- /**
180
- * Collateral deposit + enable collateral + enable borrow controller + borrow, batched on EVC (after wrap/approve).
181
- * When {@link args.redepositBorrowedToCollateral} is true (borrow asset === collateral asset), each borrow is followed
182
- * by a collateral deposit of the same size inside the same EVC batch (leverage loop).
183
- */
184
- declare function buildEvmMultisignBodyEulerV2IsolatedBorrowBatch(args: {
185
- keyGen: KeyGenSubsetForPermit;
186
- chainId: number;
187
- rpcUrl: string;
188
- chainDetail: ChainRow$3;
189
- useCustomGas: boolean;
190
- customGasChainDetails?: Record<string, unknown> | null;
191
- evc: Address;
192
- borrowVault: Address;
193
- collateralVault: Address;
194
- collateralUnderlying: Address;
195
- borrowUnderlying: Address;
196
- isNativeCollateralIn: boolean;
197
- nativeWrapped: Address;
198
- collateralAmountHuman: string;
199
- borrowAmountHuman: string;
200
- /** Each round: `borrow(amount)` then optional `deposit(amount)` when redepositing. */
201
- loopBorrowWeis: readonly bigint[];
202
- redepositBorrowedToCollateral: boolean;
203
- receiver: Address;
204
- executorAddress: Address;
205
- purposeText: string;
206
- vaultMarketLabel: string;
207
- }): Promise<{
208
- bodyForSign: Record<string, unknown>;
209
- messageToSign: string;
210
- }>;
211
-
212
- type ChainRow$2 = {
213
- legacy?: boolean;
214
- gasLimit?: number;
215
- gasMultiplier?: number;
216
- gasPrice?: number;
217
- baseFee?: number;
218
- priorityFee?: number;
219
- baseFeeMultiplier?: number;
220
- };
221
- /**
222
- * ERC-20 approve (if needed) + EVC batch with liability vault `repay` for `subAccount`’s debt.
223
- */
224
- declare function buildEvmMultisignBodyEulerV2BorrowRepayBatch(args: {
225
- keyGen: KeyGenSubsetForPermit;
226
- chainId: number;
227
- rpcUrl: string;
228
- chainDetail: ChainRow$2;
229
- useCustomGas: boolean;
230
- customGasChainDetails?: Record<string, unknown> | null;
231
- evc: Address;
232
- borrowVault: Address;
233
- borrowUnderlying: Address;
234
- subAccount: Address;
235
- /** Human decimal string; full repay when `repayAll` or amount ≥ on-chain debt. */
236
- amountHuman: string;
237
- /** When true, encodes `repay(type(uint256).max, receiver)`. */
238
- repayAll: boolean;
239
- executorAddress: Address;
240
- purposeText: string;
241
- vaultMarketLabel: string;
242
- }): Promise<{
243
- bodyForSign: Record<string, unknown>;
244
- messageToSign: string;
245
- }>;
246
-
247
- type ChainRow$1 = {
248
- legacy?: boolean;
249
- gasLimit?: number;
250
- gasMultiplier?: number;
251
- gasPrice?: number;
252
- baseFee?: number;
253
- priorityFee?: number;
254
- baseFeeMultiplier?: number;
255
- };
256
- /**
257
- * ERC-20 approve (if needed) + EVC batch: collateral eVault `deposit(assets, receiver=subAccount)` on behalf of the sub-account.
258
- * Uses the key EOA as token source (`executor` approves the collateral vault).
259
- */
260
- declare function buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch(args: {
261
- keyGen: KeyGenSubsetForPermit;
262
- chainId: number;
263
- rpcUrl: string;
264
- chainDetail: ChainRow$1;
265
- useCustomGas: boolean;
266
- customGasChainDetails?: Record<string, unknown> | null;
267
- evc: Address;
268
- collateralVault: Address;
269
- collateralUnderlying: Address;
270
- subAccount: Address;
271
- amountHuman: string;
272
- executorAddress: Address;
273
- purposeText: string;
274
- vaultMarketLabel: string;
275
- }): Promise<{
276
- bodyForSign: Record<string, unknown>;
277
- messageToSign: string;
278
- }>;
279
-
280
- type ChainRow = {
281
- legacy?: boolean;
282
- gasLimit?: number;
283
- gasMultiplier?: number;
284
- gasPrice?: number;
285
- baseFee?: number;
286
- priorityFee?: number;
287
- baseFeeMultiplier?: number;
288
- };
289
- /**
290
- * EVC batch: collateral eVault `withdraw(assets, receiver, owner=subAccount)` on behalf of the sub-account.
291
- * Amount is capped by `fetchEulerBorrowCollateralMaxWithdrawAssetsWei` (ERC-4626 `maxWithdraw` is 0 while EVC controls the account).
292
- */
293
- declare function buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch(args: {
294
- keyGen: KeyGenSubsetForPermit;
295
- chainId: number;
296
- rpcUrl: string;
297
- chainDetail: ChainRow;
298
- useCustomGas: boolean;
299
- customGasChainDetails?: Record<string, unknown> | null;
300
- evc: Address;
301
- collateralVault: Address;
302
- subAccount: Address;
303
- /** Receives underlying collateral tokens (typically the key EOA). */
304
- receiver: Address;
305
- amountHuman: string;
306
- executorAddress: Address;
307
- purposeText: string;
308
- vaultMarketLabel: string;
309
- }): Promise<{
310
- bodyForSign: Record<string, unknown>;
311
- messageToSign: string;
312
- }>;
313
-
314
- declare const EULER_V2_PROTOCOL_ID = "euler-v2";
315
- declare const eulerV2ProtocolModule: ProtocolModule;
316
-
317
- export { EULER_SAME_ASSET_BORROW_APPROVAL_BUFFER_BPS, EULER_SAME_ASSET_BORROW_MAX_ROUNDS, EULER_SAME_ASSET_BORROW_PROTOCOL_HEADROOM_BPS, EULER_SAME_ASSET_BORROW_RATIO_STOP_EPS_BPS, EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS, EULER_V2_PROTOCOL_ID, EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS, buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch, buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch, buildEvmMultisignBodyEulerV2BorrowRepayBatch, buildEvmMultisignBodyEulerV2IsolatedBorrowBatch, buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch, buildEvmMultisignBodyEulerV2VaultWithdraw, clampEulerUnderlyingDecimalsForEulerUi, eulerBorrowAndCollateralSameAsset, eulerSameAssetApproveAmountWithBuffer, eulerSameAssetTotalCollateralPullWei, eulerV2ProtocolModule, fetchEulerBorrowCollateralMaxWithdrawAssetsWei, fetchEulerLendEarnVaultEffectiveMaxWithdrawWei, fetchEulerVaultAssetDecimals, fetchEulerVaultMaxWithdrawWei, fetchEulerVaultUnderlyingMeta, planSameAssetLeveragedBorrows };
@@ -1,120 +0,0 @@
1
- import { d as ProtocolModule } from '../../../types-Ce2qNHai.cjs';
2
- import { Address } from 'viem';
3
- import { K as KeyGenSubsetForPermit } from '../../../keygen-CfNp8yKJ.cjs';
4
-
5
- /** Lido staking / stERC-20 (“stETH”) on Ethereum mainnet — same proxy for `submit` + ERC‑20 balances. */
6
- declare const LIDO_STETH_CONTRACT_MAINNET: `0x${string}`;
7
- /** Lido Wrapped stETH (ERC-20): `wrap` / `unwrap`. */
8
- declare const LIDO_WSTETH_CONTRACT_MAINNET: `0x${string}`;
9
- /** EIP-7623-era Withdrawal Queue (NFT-backed requests). */
10
- declare const LIDO_WITHDRAWAL_QUEUE_MAINNET: `0x${string}`;
11
- declare const LIDO_ETHEREUM_MAINNET_CHAIN_ID = 1;
12
- /** Accepted referral pad for `submit`; zero is valid. */
13
- declare const LIDO_SUBMIT_REFERRAL_MAINNET: "0x0000000000000000000000000000000000000000";
14
- declare function isEthereumMainnetChainId(chainIdStr: string | undefined | null): boolean;
15
-
16
- /**
17
- * Lido on Ethereum — multi-sign payloads for stake (`submit`), queue exit (`approve` + `requestWithdrawals`),
18
- * and finalized claim (`claimWithdrawal`).
19
- */
20
-
21
- declare const LIDO_SUBMIT_FALLBACK_GAS_UNITS = 450000n;
22
- declare const LIDO_REQUEST_WITHDRAWALS_FALLBACK_GAS_UNITS = 1350000n;
23
- declare const LIDO_CLAIM_WITHDRAWAL_FALLBACK_GAS_UNITS = 900000n;
24
- /** `wrap(stETH)` on wstETH. */
25
- declare const LIDO_WSTETH_WRAP_FALLBACK_GAS_UNITS = 520000n;
26
- /** `unwrap(wstETH)` on wstETH. */
27
- declare const LIDO_WSTETH_UNWRAP_FALLBACK_GAS_UNITS = 600000n;
28
- declare const MIN_LIDO_EXECUTE_GAS = 260000n;
29
- type ChainRow = {
30
- legacy?: boolean;
31
- gasLimit?: number;
32
- gasMultiplier?: number;
33
- gasPrice?: number;
34
- baseFee?: number;
35
- priorityFee?: number;
36
- baseFeeMultiplier?: number;
37
- };
38
- declare const LIDO_EVM_TYPES: Set<string>;
39
- /** 0-based batch indices whose `batchMeta[i].evm.type` is `lido_request_withdrawals`. */
40
- declare function lidoRequestWithdrawalsBatchIndices(detail: Record<string, unknown> | null | undefined): number[];
41
- declare function isLidoBatchStepEvmSignRequest(detail: Record<string, unknown> | null | undefined, batchIndex: number): boolean;
42
- declare function resolveLidoBatchStepGasFromSignRequest(detail: Record<string, unknown> | null | undefined, batchIndex: number): bigint | null;
43
- declare function buildEvmMultisignBodyLidoSubmit(args: {
44
- keyGen: KeyGenSubsetForPermit;
45
- chainId: number;
46
- rpcUrl: string;
47
- chainDetail: ChainRow;
48
- useCustomGas: boolean;
49
- customGasChainDetails?: Record<string, unknown> | null;
50
- ethAmountHuman: string;
51
- executorAddress: Address;
52
- purposeText: string;
53
- }): Promise<{
54
- bodyForSign: Record<string, unknown>;
55
- messageToSign: string;
56
- }>;
57
- declare function buildEvmMultisignBodyLidoRequestWithdrawals(args: {
58
- keyGen: KeyGenSubsetForPermit;
59
- chainId: number;
60
- rpcUrl: string;
61
- chainDetail: ChainRow;
62
- useCustomGas: boolean;
63
- customGasChainDetails?: Record<string, unknown> | null;
64
- stEthAmountHuman: string;
65
- owner: Address;
66
- executorAddress: Address;
67
- purposeText: string;
68
- }): Promise<{
69
- bodyForSign: Record<string, unknown>;
70
- messageToSign: string;
71
- }>;
72
- declare function buildEvmMultisignBodyLidoClaimWithdrawal(args: {
73
- keyGen: KeyGenSubsetForPermit;
74
- chainId: number;
75
- rpcUrl: string;
76
- chainDetail: ChainRow;
77
- useCustomGas: boolean;
78
- customGasChainDetails?: Record<string, unknown> | null;
79
- requestId: bigint;
80
- executorAddress: Address;
81
- purposeText: string;
82
- }): Promise<{
83
- bodyForSign: Record<string, unknown>;
84
- messageToSign: string;
85
- }>;
86
- declare function buildEvmMultisignBodyLidoWrapStEth(args: {
87
- keyGen: KeyGenSubsetForPermit;
88
- chainId: number;
89
- rpcUrl: string;
90
- chainDetail: ChainRow;
91
- useCustomGas: boolean;
92
- customGasChainDetails?: Record<string, unknown> | null;
93
- stEthAmountHuman: string;
94
- executorAddress: Address;
95
- purposeText: string;
96
- }): Promise<{
97
- bodyForSign: Record<string, unknown>;
98
- messageToSign: string;
99
- }>;
100
- declare function buildEvmMultisignBodyLidoUnwrapWstEth(args: {
101
- keyGen: KeyGenSubsetForPermit;
102
- chainId: number;
103
- rpcUrl: string;
104
- chainDetail: ChainRow;
105
- useCustomGas: boolean;
106
- customGasChainDetails?: Record<string, unknown> | null;
107
- wstEthAmountHuman: string;
108
- executorAddress: Address;
109
- purposeText: string;
110
- }): Promise<{
111
- bodyForSign: Record<string, unknown>;
112
- messageToSign: string;
113
- }>;
114
- /** True if this sign request relies on isolated `estimateGas` pitfalls (prior batch allowances). */
115
- declare function isLidoEvmSignRequestForEstimateWorkaround(detail: Record<string, unknown> | null | undefined, batchIndex?: number): boolean;
116
-
117
- declare const LIDO_PROTOCOL_ID = "lido";
118
- declare const lidoProtocolModule: ProtocolModule;
119
-
120
- export { LIDO_CLAIM_WITHDRAWAL_FALLBACK_GAS_UNITS, LIDO_ETHEREUM_MAINNET_CHAIN_ID, LIDO_EVM_TYPES, LIDO_PROTOCOL_ID, LIDO_REQUEST_WITHDRAWALS_FALLBACK_GAS_UNITS, LIDO_STETH_CONTRACT_MAINNET, LIDO_SUBMIT_FALLBACK_GAS_UNITS, LIDO_SUBMIT_REFERRAL_MAINNET, LIDO_WITHDRAWAL_QUEUE_MAINNET, LIDO_WSTETH_CONTRACT_MAINNET, LIDO_WSTETH_UNWRAP_FALLBACK_GAS_UNITS, LIDO_WSTETH_WRAP_FALLBACK_GAS_UNITS, MIN_LIDO_EXECUTE_GAS, buildEvmMultisignBodyLidoClaimWithdrawal, buildEvmMultisignBodyLidoRequestWithdrawals, buildEvmMultisignBodyLidoSubmit, buildEvmMultisignBodyLidoUnwrapWstEth, buildEvmMultisignBodyLidoWrapStEth, isEthereumMainnetChainId, isLidoBatchStepEvmSignRequest, isLidoEvmSignRequestForEstimateWorkaround, lidoProtocolModule, lidoRequestWithdrawalsBatchIndices, resolveLidoBatchStepGasFromSignRequest };