@continuumdao/ctm-mpc-defi 0.2.43 → 0.2.44
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/dist/agent/catalog.cjs +146 -11
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +598 -9
- package/dist/agent/catalog.js +143 -12
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/aave-v4/SKILL.md +9 -1
- package/dist/agent/skills/euler-v2/SKILL.md +9 -0
- package/dist/agent/skills/morpho/SKILL.md +8 -2
- package/dist/merklDistributor-CdqtZC9N.d.ts +65 -0
- package/dist/multisign-Dr0j9fHm.d.ts +489 -0
- package/dist/protocols/evm/aave-v4/index.cjs +207 -2
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +12 -467
- package/dist/protocols/evm/aave-v4/index.js +192 -3
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +209 -1
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +9 -1
- package/dist/protocols/evm/euler-v2/index.js +208 -2
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +169 -1
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +9 -1
- package/dist/protocols/evm/morpho/index.js +155 -2
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { b as KeyGenSubsetForPermit, e as ProtocolModule } from '../../../types-lIfv59N1.js';
|
|
2
2
|
import { Address } from 'viem';
|
|
3
|
+
import { f as MerklRewardsSummary } from '../../../merklDistributor-CdqtZC9N.js';
|
|
4
|
+
export { w as buildEvmMultisignBodyEulerV2MerklDistributorClaim } from '../../../multisign-Dr0j9fHm.js';
|
|
3
5
|
|
|
4
6
|
/** Stay below on-chain max borrow LTV when computing per-round headroom (basis points). */
|
|
5
7
|
declare const EULER_SAME_ASSET_BORROW_PROTOCOL_HEADROOM_BPS = 50n;
|
|
@@ -848,7 +850,13 @@ declare function loadEulerV2PortfolioUsdSnapshot(args: {
|
|
|
848
850
|
*/
|
|
849
851
|
declare function loadEulerV2SupportedChainIds(): Promise<ReadonlySet<number>>;
|
|
850
852
|
|
|
853
|
+
/** Wallet-wide Merkl claimables for the Euler v2 rewards pack. rEUL is listed as skippedReulCount. */
|
|
854
|
+
declare function eulerV2FetchMerklRewardsSummary(args: {
|
|
855
|
+
user: string;
|
|
856
|
+
chainId: number;
|
|
857
|
+
}): Promise<MerklRewardsSummary>;
|
|
858
|
+
|
|
851
859
|
declare const EULER_V2_PROTOCOL_ID = "euler-v2";
|
|
852
860
|
declare const eulerV2ProtocolModule: ProtocolModule;
|
|
853
861
|
|
|
854
|
-
export { EULER_EVAULT_CAP_UNLIMITED_WEI, EULER_EVAULT_SUPPLY_CAP_UNLIMITED_WEI, EULER_REUL_UNLOCK_GAS_FALLBACK, 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_GOLDSKY_SUBGRAPH_URL_BY_CHAIN_ID, EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS, EULER_V2_PREFER_ON_CHAIN_LEND_METRICS, EULER_V2_PROTOCOL_ID, EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS, EULER_V3_API_BASE, type EulerReulVestingTranche, type EulerV2AssetModes, type EulerV2BorrowCollateralRow, type EulerV2BorrowOracleQuoteSnapshot, type EulerV2BorrowPairRisk, type EulerV2ChainAssetCache, type EulerV2EarnFlowVaultMeta, type EulerV2EarnOfferingRow, type EulerV2EarnStrategyRow, type EulerV2EarnVaultDiscoveryRow, type EulerV2IsolatedLendMarketRow, type EulerV2LendPositionDraft, type EulerV2LendUiPosition, type EulerV2LendVaultDiscoveryRow, type EulerV2PortfolioUsdSnapshot, type EulerV3VaultRow, type EulerV3VaultVisibility, type EulerVaultOnChainLendMetrics, type EulerVaultOnChainLendMetricsResult, REUL_FULL_VEST_SEC, REUL_LOCK_DAY_SEC, buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch, buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch, buildEvmMultisignBodyEulerV2BorrowRepayBatch, buildEvmMultisignBodyEulerV2IsolatedBorrowBatch, buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch, buildEvmMultisignBodyEulerV2VaultWithdraw, clampEulerUnderlyingDecimalsForEulerUi, encodeEulerReulWithdrawToByLockTimestampsData, ensureEulerV2ChainAssetCache, estimateBorrowHumanFromLtv, eulerBorrowAndCollateralSameAsset, eulerLabelsAppendUnderlyingIfDistinct, eulerLabelsLookupLabelForVault, eulerReulUnlockAbi, eulerSameAssetApproveAmountWithBuffer, eulerSameAssetTotalCollateralPullWei, eulerSubgraphVaultCapToUnderlyingWei, eulerV2FetchEarnVaultsSummary, eulerV2FetchLendVaultsSummary, eulerV2GoldskyUrlForChain, eulerV2KeyForNodeAssetRow, eulerV2ProtocolModule, eulerV2QueryGraphQl, eulerVaultLendMetricsFromIndexerVaultState, eulerVaultMaxNewBorrowWei, eulerVaultMaxNewSupplyWei, eulerWrappedGasTokenAliasesLower, fetchCoingeckoTokenUsdByContract, fetchEulerBorrowCollateralMaxWithdrawAssetsWei, fetchEulerLabelsEarnVaultAllowlist, fetchEulerLabelsEntityNameByAddress, fetchEulerLabelsVaultNameMap, fetchEulerLendEarnVaultEffectiveMaxWithdrawWei, fetchEulerReulVestingTranches, fetchEulerV2BorrowDebtWei, fetchEulerV2BorrowOracleQuoteSnapshot, fetchEulerV2BorrowPairLtvs, fetchEulerV2ChainAssetCache, fetchEulerV2EarnOfferingsForRowAsset, fetchEulerV2IsolatedLendMarketsForRowAsset, fetchEulerV2TrackingBorrowEntries, fetchEulerV2TrackingDepositEntries, fetchEulerV3ActiveChainIds, fetchEulerV3EarnVaults, fetchEulerV3EvkVaults, fetchEulerVaultAssetDecimals, fetchEulerVaultMaxWithdrawWei, fetchEulerVaultOnChainLendMetrics, fetchEulerVaultOnChainLendMetricsForVaults, fetchEulerVaultUnderlyingMeta, flattenEulerV2BorrowCollateralRows, formatEulerRayApyPercent, formatEulerRaySupplyApyPercent, formatEulerResolvedCapOrCashForUi, loadEulerV2BorrowPositionsForOwner, loadEulerV2LendSupplyPositionsForOwner, loadEulerV2PortfolioUsdSnapshot, loadEulerV2SupportedChainIds, maxCollateralWeiCappedByBorrowLiquidity, mergeEulerV2PositionsTabRows, parseEulerTrackingBorrowEntry, planSameAssetLeveragedBorrows, resolveEulerAmountCapToSupplyWei, resolveEulerAmountCapToWei, resolveEulerWrappedNativeToken };
|
|
862
|
+
export { EULER_EVAULT_CAP_UNLIMITED_WEI, EULER_EVAULT_SUPPLY_CAP_UNLIMITED_WEI, EULER_REUL_UNLOCK_GAS_FALLBACK, 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_GOLDSKY_SUBGRAPH_URL_BY_CHAIN_ID, EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS, EULER_V2_PREFER_ON_CHAIN_LEND_METRICS, EULER_V2_PROTOCOL_ID, EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS, EULER_V3_API_BASE, type EulerReulVestingTranche, type EulerV2AssetModes, type EulerV2BorrowCollateralRow, type EulerV2BorrowOracleQuoteSnapshot, type EulerV2BorrowPairRisk, type EulerV2ChainAssetCache, type EulerV2EarnFlowVaultMeta, type EulerV2EarnOfferingRow, type EulerV2EarnStrategyRow, type EulerV2EarnVaultDiscoveryRow, type EulerV2IsolatedLendMarketRow, type EulerV2LendPositionDraft, type EulerV2LendUiPosition, type EulerV2LendVaultDiscoveryRow, type EulerV2PortfolioUsdSnapshot, type EulerV3VaultRow, type EulerV3VaultVisibility, type EulerVaultOnChainLendMetrics, type EulerVaultOnChainLendMetricsResult, REUL_FULL_VEST_SEC, REUL_LOCK_DAY_SEC, buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch, buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch, buildEvmMultisignBodyEulerV2BorrowRepayBatch, buildEvmMultisignBodyEulerV2IsolatedBorrowBatch, buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch, buildEvmMultisignBodyEulerV2VaultWithdraw, clampEulerUnderlyingDecimalsForEulerUi, encodeEulerReulWithdrawToByLockTimestampsData, ensureEulerV2ChainAssetCache, estimateBorrowHumanFromLtv, eulerBorrowAndCollateralSameAsset, eulerLabelsAppendUnderlyingIfDistinct, eulerLabelsLookupLabelForVault, eulerReulUnlockAbi, eulerSameAssetApproveAmountWithBuffer, eulerSameAssetTotalCollateralPullWei, eulerSubgraphVaultCapToUnderlyingWei, eulerV2FetchEarnVaultsSummary, eulerV2FetchLendVaultsSummary, eulerV2FetchMerklRewardsSummary, eulerV2GoldskyUrlForChain, eulerV2KeyForNodeAssetRow, eulerV2ProtocolModule, eulerV2QueryGraphQl, eulerVaultLendMetricsFromIndexerVaultState, eulerVaultMaxNewBorrowWei, eulerVaultMaxNewSupplyWei, eulerWrappedGasTokenAliasesLower, fetchCoingeckoTokenUsdByContract, fetchEulerBorrowCollateralMaxWithdrawAssetsWei, fetchEulerLabelsEarnVaultAllowlist, fetchEulerLabelsEntityNameByAddress, fetchEulerLabelsVaultNameMap, fetchEulerLendEarnVaultEffectiveMaxWithdrawWei, fetchEulerReulVestingTranches, fetchEulerV2BorrowDebtWei, fetchEulerV2BorrowOracleQuoteSnapshot, fetchEulerV2BorrowPairLtvs, fetchEulerV2ChainAssetCache, fetchEulerV2EarnOfferingsForRowAsset, fetchEulerV2IsolatedLendMarketsForRowAsset, fetchEulerV2TrackingBorrowEntries, fetchEulerV2TrackingDepositEntries, fetchEulerV3ActiveChainIds, fetchEulerV3EarnVaults, fetchEulerV3EvkVaults, fetchEulerVaultAssetDecimals, fetchEulerVaultMaxWithdrawWei, fetchEulerVaultOnChainLendMetrics, fetchEulerVaultOnChainLendMetricsForVaults, fetchEulerVaultUnderlyingMeta, flattenEulerV2BorrowCollateralRows, formatEulerRayApyPercent, formatEulerRaySupplyApyPercent, formatEulerResolvedCapOrCashForUi, loadEulerV2BorrowPositionsForOwner, loadEulerV2LendSupplyPositionsForOwner, loadEulerV2PortfolioUsdSnapshot, loadEulerV2SupportedChainIds, maxCollateralWeiCappedByBorrowLiquidity, mergeEulerV2PositionsTabRows, parseEulerTrackingBorrowEntry, planSameAssetLeveragedBorrows, resolveEulerAmountCapToSupplyWei, resolveEulerAmountCapToWei, resolveEulerWrappedNativeToken };
|
|
@@ -3863,6 +3863,210 @@ async function loadEulerV2SupportedChainIds() {
|
|
|
3863
3863
|
cached = new Set(Object.keys(EULER_V2_GOLDSKY_SUBGRAPH_URL_BY_CHAIN_ID).map((k) => Number(k)));
|
|
3864
3864
|
return cached;
|
|
3865
3865
|
}
|
|
3866
|
+
var MERKL_API_BASE = "https://api.merkl.xyz";
|
|
3867
|
+
var MERKL_DISTRIBUTOR_ADDRESS = "0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae";
|
|
3868
|
+
var MERKL_REWARDS_NOTES = "Wallet-wide Merkl on this chain (not protocol-filtered). Other venues\u2019 campaigns can appear. Claims the first Merkle root batch; call again if additionalRoots > 0. rEUL is omitted (Euler unlock flow). Merkl updates every 8\u201312 hours.";
|
|
3869
|
+
function normHex32(p) {
|
|
3870
|
+
const s = (p ?? "").trim();
|
|
3871
|
+
if (!s) return null;
|
|
3872
|
+
const x = s.startsWith("0x") ? s : `0x${s}`;
|
|
3873
|
+
if (!/^0x[0-9a-fA-F]{64}$/.test(x)) return null;
|
|
3874
|
+
return x;
|
|
3875
|
+
}
|
|
3876
|
+
function merklUserRewardsUrl(addr, chainId) {
|
|
3877
|
+
return `${MERKL_API_BASE}/v4/users/${encodeURIComponent(addr)}/rewards?chainId=${chainId}`;
|
|
3878
|
+
}
|
|
3879
|
+
async function loadMerklUserRewardsJson(args) {
|
|
3880
|
+
const addr = getAddress(args.user);
|
|
3881
|
+
const url = merklUserRewardsUrl(addr, args.chainId);
|
|
3882
|
+
const res = await fetch(url, { cache: "no-store" });
|
|
3883
|
+
if (!res.ok) {
|
|
3884
|
+
let detail = `Merkl API error ${res.status}`;
|
|
3885
|
+
try {
|
|
3886
|
+
const j = await res.json();
|
|
3887
|
+
if (j?.error) {
|
|
3888
|
+
detail = j.details ? `${j.error}: ${j.details}` : j.error;
|
|
3889
|
+
}
|
|
3890
|
+
} catch {
|
|
3891
|
+
}
|
|
3892
|
+
throw new Error(detail);
|
|
3893
|
+
}
|
|
3894
|
+
return res.json();
|
|
3895
|
+
}
|
|
3896
|
+
function parseMerklUserRewardsToLeaves(raw, args) {
|
|
3897
|
+
const addr = getAddress(args.user);
|
|
3898
|
+
if (!Array.isArray(raw)) {
|
|
3899
|
+
throw new Error("Merkl API returned an unexpected rewards shape.");
|
|
3900
|
+
}
|
|
3901
|
+
const collected = [];
|
|
3902
|
+
for (const block of raw) {
|
|
3903
|
+
for (const rw of block.rewards ?? []) {
|
|
3904
|
+
const root = (rw.root ?? "").trim();
|
|
3905
|
+
const dist = rw.distributionChainId;
|
|
3906
|
+
if (!root || dist !== args.chainId) continue;
|
|
3907
|
+
let recipient;
|
|
3908
|
+
try {
|
|
3909
|
+
recipient = getAddress((rw.recipient ?? "").trim());
|
|
3910
|
+
} catch {
|
|
3911
|
+
continue;
|
|
3912
|
+
}
|
|
3913
|
+
if (recipient !== addr) continue;
|
|
3914
|
+
let amt = 0n;
|
|
3915
|
+
let clm = 0n;
|
|
3916
|
+
try {
|
|
3917
|
+
amt = BigInt((rw.amount ?? "0").toString().trim() || "0");
|
|
3918
|
+
clm = BigInt((rw.claimed ?? "0").toString().trim() || "0");
|
|
3919
|
+
} catch {
|
|
3920
|
+
continue;
|
|
3921
|
+
}
|
|
3922
|
+
if (amt <= clm) continue;
|
|
3923
|
+
let tokenAddr;
|
|
3924
|
+
try {
|
|
3925
|
+
tokenAddr = getAddress((rw.token?.address ?? "").trim());
|
|
3926
|
+
} catch {
|
|
3927
|
+
continue;
|
|
3928
|
+
}
|
|
3929
|
+
const proofsRaw = rw.proofs ?? [];
|
|
3930
|
+
const proofs = [];
|
|
3931
|
+
for (const p of proofsRaw) {
|
|
3932
|
+
const h = normHex32(String(p));
|
|
3933
|
+
if (!h) continue;
|
|
3934
|
+
proofs.push(h);
|
|
3935
|
+
}
|
|
3936
|
+
if (proofsRaw.length > 0 && proofs.length !== proofsRaw.length) continue;
|
|
3937
|
+
const sym = (rw.token?.symbol ?? "").trim() || "\u2014";
|
|
3938
|
+
let dec = 18;
|
|
3939
|
+
try {
|
|
3940
|
+
const d = Number(rw.token?.decimals ?? 18);
|
|
3941
|
+
if (Number.isFinite(d) && d >= 0 && d <= 36) dec = d;
|
|
3942
|
+
} catch {
|
|
3943
|
+
dec = 18;
|
|
3944
|
+
}
|
|
3945
|
+
collected.push({ root, token: tokenAddr, amountWei: amt, proofs, symbol: sym, decimals: dec });
|
|
3946
|
+
}
|
|
3947
|
+
}
|
|
3948
|
+
return collected;
|
|
3949
|
+
}
|
|
3950
|
+
function selectFirstRootMerklLeaves(collected) {
|
|
3951
|
+
if (collected.length === 0) return [];
|
|
3952
|
+
const root0 = collected[0].root;
|
|
3953
|
+
return collected.filter((x) => x.root === root0);
|
|
3954
|
+
}
|
|
3955
|
+
function isMerklRewardEulLeaf(leaf) {
|
|
3956
|
+
const s = leaf.symbol.trim().toLowerCase().replace(/\s+/g, " ").trim();
|
|
3957
|
+
return s === "reul" || s === "reward eul";
|
|
3958
|
+
}
|
|
3959
|
+
async function fetchAllMerklDistributorClaimLeaves(args) {
|
|
3960
|
+
const raw = await loadMerklUserRewardsJson(args);
|
|
3961
|
+
return parseMerklUserRewardsToLeaves(raw, args);
|
|
3962
|
+
}
|
|
3963
|
+
function merklLeafToRow(leaf) {
|
|
3964
|
+
return {
|
|
3965
|
+
symbol: leaf.symbol,
|
|
3966
|
+
token: leaf.token,
|
|
3967
|
+
amountHuman: formatUnits(leaf.amountWei, leaf.decimals),
|
|
3968
|
+
amountWei: leaf.amountWei.toString(),
|
|
3969
|
+
decimals: leaf.decimals,
|
|
3970
|
+
root: leaf.root
|
|
3971
|
+
};
|
|
3972
|
+
}
|
|
3973
|
+
async function fetchMerklRewardsSummary(args) {
|
|
3974
|
+
const user = getAddress(args.user);
|
|
3975
|
+
const chainId = args.chainId;
|
|
3976
|
+
const all = await fetchAllMerklDistributorClaimLeaves({ chainId, user });
|
|
3977
|
+
const skippedReulCount = all.filter(isMerklRewardEulLeaf).length;
|
|
3978
|
+
const display = all.filter((l) => !isMerklRewardEulLeaf(l));
|
|
3979
|
+
const firstRoot = selectFirstRootMerklLeaves(display);
|
|
3980
|
+
const roots = new Set(display.map((l) => l.root));
|
|
3981
|
+
return {
|
|
3982
|
+
chainId,
|
|
3983
|
+
user,
|
|
3984
|
+
distributor: MERKL_DISTRIBUTOR_ADDRESS,
|
|
3985
|
+
claimable: display.map(merklLeafToRow),
|
|
3986
|
+
claimableCount: display.length,
|
|
3987
|
+
firstRootClaimableCount: firstRoot.length,
|
|
3988
|
+
additionalRoots: Math.max(0, roots.size - (firstRoot.length > 0 ? 1 : 0)),
|
|
3989
|
+
skippedReulCount,
|
|
3990
|
+
notes: MERKL_REWARDS_NOTES
|
|
3991
|
+
};
|
|
3992
|
+
}
|
|
3993
|
+
|
|
3994
|
+
// src/protocols/evm/euler-v2/merklRewards.ts
|
|
3995
|
+
async function eulerV2FetchMerklRewardsSummary(args) {
|
|
3996
|
+
return fetchMerklRewardsSummary(args);
|
|
3997
|
+
}
|
|
3998
|
+
var AAVE_MERKL_CLAIM_ESTIMATE_FALLBACK = 500000n;
|
|
3999
|
+
parseAbi(["function deposit() payable"]);
|
|
4000
|
+
parseAbi([
|
|
4001
|
+
"function allowance(address owner, address spender) view returns (uint256)",
|
|
4002
|
+
"function decimals() view returns (uint8)"
|
|
4003
|
+
]);
|
|
4004
|
+
parseAbi(["function approve(address spender, uint256 amount) returns (bool)"]);
|
|
4005
|
+
parseAbi(["function supply(uint256 reserveId, uint256 amount, address onBehalfOf)"]);
|
|
4006
|
+
parseAbi(["function withdraw(uint256 reserveId, uint256 amount, address onBehalfOf)"]);
|
|
4007
|
+
parseAbi(["function borrow(uint256 reserveId, uint256 amount, address onBehalfOf)"]);
|
|
4008
|
+
parseAbi(["function repay(uint256 reserveId, uint256 amount, address onBehalfOf)"]);
|
|
4009
|
+
parseAbi([
|
|
4010
|
+
"function setUsingAsCollateral(uint256 reserveId, bool usingAsCollateral, address onBehalfOf)"
|
|
4011
|
+
]);
|
|
4012
|
+
async function buildEvmMultisignBodyEulerV2MerklDistributorClaim(args) {
|
|
4013
|
+
const to = getAddress(args.to);
|
|
4014
|
+
const executor = getAddress(args.executorAddress);
|
|
4015
|
+
return buildEvmMultisignBodyAaveV4OneStep({
|
|
4016
|
+
keyGen: args.keyGen,
|
|
4017
|
+
chainId: args.chainId,
|
|
4018
|
+
rpcUrl: args.rpcUrl,
|
|
4019
|
+
chainDetail: args.chainDetail,
|
|
4020
|
+
useCustomGas: args.useCustomGas,
|
|
4021
|
+
customGasChainDetails: args.customGasChainDetails ?? void 0,
|
|
4022
|
+
purposeText: args.purposeText,
|
|
4023
|
+
purposeSuffix: `Euler v2: 1-tx \u2014 Merkl distributor claim (${args.claimLeafCount} reward(s), see calldata in signature text).`,
|
|
4024
|
+
executorAddress: executor,
|
|
4025
|
+
v: { to, data: args.data, value: args.valueWei },
|
|
4026
|
+
estimateGasFallback: AAVE_MERKL_CLAIM_ESTIMATE_FALLBACK,
|
|
4027
|
+
buildBatchMeta: (ctx) => ({
|
|
4028
|
+
destinationAddress: to,
|
|
4029
|
+
signatureText: JSON.stringify({
|
|
4030
|
+
kind: "EulerV2",
|
|
4031
|
+
name: "Merkl Distributor claim",
|
|
4032
|
+
claimLeafCount: args.claimLeafCount,
|
|
4033
|
+
chainId: args.chainId,
|
|
4034
|
+
valueWei: args.valueWei.toString(),
|
|
4035
|
+
note: "Merkl API proofs; Distributor.claim(users,tokens,amounts,proofs)."
|
|
4036
|
+
}),
|
|
4037
|
+
evm: { type: "euler_v2_merkl_distributor_claim", version: 1, chainId: String(args.chainId) },
|
|
4038
|
+
eulerV2: { step: "merkl_distributor_claim", claimLeafCount: args.claimLeafCount, gasBuildClaim: { baseGasUnits: ctx.gasLimit.toString() } }
|
|
4039
|
+
})
|
|
4040
|
+
});
|
|
4041
|
+
}
|
|
4042
|
+
async function buildEvmMultisignBodyAaveV4OneStep(args) {
|
|
4043
|
+
const firstDataNo0x = args.v.data.startsWith("0x") ? args.v.data.slice(2) : args.v.data;
|
|
4044
|
+
return buildEvmMultisignBatch({
|
|
4045
|
+
context: {
|
|
4046
|
+
chainCategory: "evm",
|
|
4047
|
+
keyGen: args.keyGen,
|
|
4048
|
+
purposeText: args.purposeText,
|
|
4049
|
+
chainId: args.chainId,
|
|
4050
|
+
rpcUrl: args.rpcUrl,
|
|
4051
|
+
executorAddress: args.executorAddress,
|
|
4052
|
+
chainDetail: args.chainDetail,
|
|
4053
|
+
useCustomGas: args.useCustomGas,
|
|
4054
|
+
customGasChainDetails: args.customGasChainDetails
|
|
4055
|
+
},
|
|
4056
|
+
steps: [
|
|
4057
|
+
{
|
|
4058
|
+
to: args.v.to,
|
|
4059
|
+
data: args.v.data,
|
|
4060
|
+
value: args.v.value,
|
|
4061
|
+
fallbackGas: args.estimateGasFallback
|
|
4062
|
+
}
|
|
4063
|
+
],
|
|
4064
|
+
purposeSuffix: args.purposeSuffix,
|
|
4065
|
+
firstMsgRawNo0x: firstDataNo0x,
|
|
4066
|
+
destinationAddress: args.v.to,
|
|
4067
|
+
buildBatchMeta: ({ gasLimit }) => args.buildBatchMeta({ gasLimit })
|
|
4068
|
+
});
|
|
4069
|
+
}
|
|
3866
4070
|
|
|
3867
4071
|
// src/protocols/evm/euler-v2/index.ts
|
|
3868
4072
|
var EULER_V2_PROTOCOL_ID = "euler-v2";
|
|
@@ -3881,11 +4085,13 @@ var eulerV2ProtocolModule = {
|
|
|
3881
4085
|
{ id: "euler-v2.vault-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Euler vault", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3882
4086
|
{ id: "euler-v2.borrow-repay", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Repay Euler borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3883
4087
|
{ id: "euler-v2.collateral-deposit", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Deposit borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3884
|
-
{ id: "euler-v2.collateral-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
4088
|
+
{ id: "euler-v2.collateral-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
4089
|
+
{ id: "euler-v2.fetch-merkl-rewards", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "List wallet-wide Merkl claimables on a chain", commonParams: [], params: {} },
|
|
4090
|
+
{ id: "euler-v2.merkl-claim", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Claim wallet-wide Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
3885
4091
|
]
|
|
3886
4092
|
};
|
|
3887
4093
|
registerProtocolModule(eulerV2ProtocolModule);
|
|
3888
4094
|
|
|
3889
|
-
export { EULER_EVAULT_CAP_UNLIMITED_WEI, EULER_EVAULT_SUPPLY_CAP_UNLIMITED_WEI, EULER_REUL_UNLOCK_GAS_FALLBACK, 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_GOLDSKY_SUBGRAPH_URL_BY_CHAIN_ID, EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS, EULER_V2_PREFER_ON_CHAIN_LEND_METRICS, EULER_V2_PROTOCOL_ID, EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS, EULER_V3_API_BASE, REUL_FULL_VEST_SEC, REUL_LOCK_DAY_SEC, buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch, buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch, buildEvmMultisignBodyEulerV2BorrowRepayBatch, buildEvmMultisignBodyEulerV2IsolatedBorrowBatch, buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch, buildEvmMultisignBodyEulerV2VaultWithdraw, clampEulerUnderlyingDecimalsForEulerUi, encodeEulerReulWithdrawToByLockTimestampsData, ensureEulerV2ChainAssetCache, estimateBorrowHumanFromLtv, eulerBorrowAndCollateralSameAsset, eulerLabelsAppendUnderlyingIfDistinct, eulerLabelsLookupLabelForVault, eulerReulUnlockAbi, eulerSameAssetApproveAmountWithBuffer, eulerSameAssetTotalCollateralPullWei, eulerSubgraphVaultCapToUnderlyingWei, eulerV2FetchEarnVaultsSummary, eulerV2FetchLendVaultsSummary, eulerV2GoldskyUrlForChain, eulerV2KeyForNodeAssetRow, eulerV2ProtocolModule, eulerV2QueryGraphQl, eulerVaultLendMetricsFromIndexerVaultState, eulerVaultMaxNewBorrowWei, eulerVaultMaxNewSupplyWei, eulerWrappedGasTokenAliasesLower, fetchCoingeckoTokenUsdByContract, fetchEulerBorrowCollateralMaxWithdrawAssetsWei, fetchEulerLabelsEarnVaultAllowlist, fetchEulerLabelsEntityNameByAddress, fetchEulerLabelsVaultNameMap, fetchEulerLendEarnVaultEffectiveMaxWithdrawWei, fetchEulerReulVestingTranches, fetchEulerV2BorrowDebtWei, fetchEulerV2BorrowOracleQuoteSnapshot, fetchEulerV2BorrowPairLtvs, fetchEulerV2ChainAssetCache, fetchEulerV2EarnOfferingsForRowAsset, fetchEulerV2IsolatedLendMarketsForRowAsset, fetchEulerV2TrackingBorrowEntries, fetchEulerV2TrackingDepositEntries, fetchEulerV3ActiveChainIds, fetchEulerV3EarnVaults, fetchEulerV3EvkVaults, fetchEulerVaultAssetDecimals, fetchEulerVaultMaxWithdrawWei, fetchEulerVaultOnChainLendMetrics, fetchEulerVaultOnChainLendMetricsForVaults, fetchEulerVaultUnderlyingMeta, flattenEulerV2BorrowCollateralRows, formatEulerRayApyPercent, formatEulerRaySupplyApyPercent, formatEulerResolvedCapOrCashForUi, loadEulerV2BorrowPositionsForOwner, loadEulerV2LendSupplyPositionsForOwner, loadEulerV2PortfolioUsdSnapshot, loadEulerV2SupportedChainIds, maxCollateralWeiCappedByBorrowLiquidity, mergeEulerV2PositionsTabRows, parseEulerTrackingBorrowEntry, planSameAssetLeveragedBorrows, resolveEulerAmountCapToSupplyWei, resolveEulerAmountCapToWei, resolveEulerWrappedNativeToken };
|
|
4095
|
+
export { EULER_EVAULT_CAP_UNLIMITED_WEI, EULER_EVAULT_SUPPLY_CAP_UNLIMITED_WEI, EULER_REUL_UNLOCK_GAS_FALLBACK, 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_GOLDSKY_SUBGRAPH_URL_BY_CHAIN_ID, EULER_V2_ISOLATED_VAULT_DEPOSIT_FALLBACK_GAS, EULER_V2_PREFER_ON_CHAIN_LEND_METRICS, EULER_V2_PROTOCOL_ID, EULER_V2_VAULT_WITHDRAW_FALLBACK_GAS, EULER_V3_API_BASE, REUL_FULL_VEST_SEC, REUL_LOCK_DAY_SEC, buildEvmMultisignBodyEulerV2BorrowCollateralDepositBatch, buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch, buildEvmMultisignBodyEulerV2BorrowRepayBatch, buildEvmMultisignBodyEulerV2IsolatedBorrowBatch, buildEvmMultisignBodyEulerV2IsolatedLendDepositBatch, buildEvmMultisignBodyEulerV2MerklDistributorClaim, buildEvmMultisignBodyEulerV2VaultWithdraw, clampEulerUnderlyingDecimalsForEulerUi, encodeEulerReulWithdrawToByLockTimestampsData, ensureEulerV2ChainAssetCache, estimateBorrowHumanFromLtv, eulerBorrowAndCollateralSameAsset, eulerLabelsAppendUnderlyingIfDistinct, eulerLabelsLookupLabelForVault, eulerReulUnlockAbi, eulerSameAssetApproveAmountWithBuffer, eulerSameAssetTotalCollateralPullWei, eulerSubgraphVaultCapToUnderlyingWei, eulerV2FetchEarnVaultsSummary, eulerV2FetchLendVaultsSummary, eulerV2FetchMerklRewardsSummary, eulerV2GoldskyUrlForChain, eulerV2KeyForNodeAssetRow, eulerV2ProtocolModule, eulerV2QueryGraphQl, eulerVaultLendMetricsFromIndexerVaultState, eulerVaultMaxNewBorrowWei, eulerVaultMaxNewSupplyWei, eulerWrappedGasTokenAliasesLower, fetchCoingeckoTokenUsdByContract, fetchEulerBorrowCollateralMaxWithdrawAssetsWei, fetchEulerLabelsEarnVaultAllowlist, fetchEulerLabelsEntityNameByAddress, fetchEulerLabelsVaultNameMap, fetchEulerLendEarnVaultEffectiveMaxWithdrawWei, fetchEulerReulVestingTranches, fetchEulerV2BorrowDebtWei, fetchEulerV2BorrowOracleQuoteSnapshot, fetchEulerV2BorrowPairLtvs, fetchEulerV2ChainAssetCache, fetchEulerV2EarnOfferingsForRowAsset, fetchEulerV2IsolatedLendMarketsForRowAsset, fetchEulerV2TrackingBorrowEntries, fetchEulerV2TrackingDepositEntries, fetchEulerV3ActiveChainIds, fetchEulerV3EarnVaults, fetchEulerV3EvkVaults, fetchEulerVaultAssetDecimals, fetchEulerVaultMaxWithdrawWei, fetchEulerVaultOnChainLendMetrics, fetchEulerVaultOnChainLendMetricsForVaults, fetchEulerVaultUnderlyingMeta, flattenEulerV2BorrowCollateralRows, formatEulerRayApyPercent, formatEulerRaySupplyApyPercent, formatEulerResolvedCapOrCashForUi, loadEulerV2BorrowPositionsForOwner, loadEulerV2LendSupplyPositionsForOwner, loadEulerV2PortfolioUsdSnapshot, loadEulerV2SupportedChainIds, maxCollateralWeiCappedByBorrowLiquidity, mergeEulerV2PositionsTabRows, parseEulerTrackingBorrowEntry, planSameAssetLeveragedBorrows, resolveEulerAmountCapToSupplyWei, resolveEulerAmountCapToWei, resolveEulerWrappedNativeToken };
|
|
3890
4096
|
//# sourceMappingURL=index.js.map
|
|
3891
4097
|
//# sourceMappingURL=index.js.map
|