@paxoslabs/amplify-sdk 0.1.1 → 0.2.0-alpha.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/CHANGELOG.md +0 -2
- package/README.md +42 -0
- package/dist/{chunk-DTFLXAZJ.js → chunk-4NQCOMCZ.js} +147 -5
- package/dist/chunk-4NQCOMCZ.js.map +1 -0
- package/dist/{chunk-KYR6BFAE.js → chunk-5VOI4WPL.js} +38 -33
- package/dist/chunk-5VOI4WPL.js.map +1 -0
- package/dist/{chunk-ZILA73XN.mjs → chunk-5Y7M43XN.mjs} +144 -4
- package/dist/chunk-5Y7M43XN.mjs.map +1 -0
- package/dist/{chunk-VIULRHK6.mjs → chunk-7PCUTZF6.mjs} +3 -3
- package/dist/{chunk-VIULRHK6.mjs.map → chunk-7PCUTZF6.mjs.map} +1 -1
- package/dist/{chunk-XXHRCCZS.mjs → chunk-AQFFMJX7.mjs} +3 -3
- package/dist/chunk-AQFFMJX7.mjs.map +1 -0
- package/dist/{chunk-REKEQLQA.mjs → chunk-BOW2QPQC.mjs} +3 -3
- package/dist/{chunk-REKEQLQA.mjs.map → chunk-BOW2QPQC.mjs.map} +1 -1
- package/dist/{chunk-HI44AMLC.mjs → chunk-E7R7TL7J.mjs} +24 -19
- package/dist/chunk-E7R7TL7J.mjs.map +1 -0
- package/dist/{chunk-CUGK4ZBJ.mjs → chunk-IMS2HBJ7.mjs} +305 -30
- package/dist/chunk-IMS2HBJ7.mjs.map +1 -0
- package/dist/{chunk-LSNRG5Z2.js → chunk-KB4EPCK2.js} +4 -4
- package/dist/{chunk-LSNRG5Z2.js.map → chunk-KB4EPCK2.js.map} +1 -1
- package/dist/{chunk-ITB7FXG4.js → chunk-OJOKPBK7.js} +3 -3
- package/dist/chunk-OJOKPBK7.js.map +1 -0
- package/dist/{chunk-B2QCI6ET.js → chunk-UMRTU75Q.js} +309 -30
- package/dist/chunk-UMRTU75Q.js.map +1 -0
- package/dist/{chunk-GS7TDQXA.js → chunk-XUS6KI3G.js} +8 -8
- package/dist/{chunk-GS7TDQXA.js.map → chunk-XUS6KI3G.js.map} +1 -1
- package/dist/core.js +16 -16
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +6 -6
- package/dist/core.mjs.map +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/display.d.ts +1 -1
- package/dist/display.js +12 -12
- package/dist/display.mjs +4 -4
- package/dist/{exchange-rate-BfPH_fQt.d.mts → exchange-rate-DCB2CY9v.d.mts} +5 -0
- package/dist/{exchange-rate-Cp1ddpw4.d.ts → exchange-rate-DOmoqut9.d.ts} +5 -0
- package/dist/index.d.mts +455 -8
- package/dist/index.d.ts +455 -8
- package/dist/index.js +402 -215
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +292 -123
- package/dist/index.mjs.map +1 -1
- package/dist/utils.js +5 -5
- package/dist/utils.mjs +2 -2
- package/package.json +2 -1
- package/dist/chunk-B2QCI6ET.js.map +0 -1
- package/dist/chunk-CUGK4ZBJ.mjs.map +0 -1
- package/dist/chunk-DTFLXAZJ.js.map +0 -1
- package/dist/chunk-HI44AMLC.mjs.map +0 -1
- package/dist/chunk-ITB7FXG4.js.map +0 -1
- package/dist/chunk-KYR6BFAE.js.map +0 -1
- package/dist/chunk-XXHRCCZS.mjs.map +0 -1
- package/dist/chunk-ZILA73XN.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { DEFAULT_SLIPPAGE_BPS } from './chunk-
|
|
2
|
-
export { YieldType } from './chunk-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { DEFAULT_SLIPPAGE_BPS } from './chunk-AQFFMJX7.mjs';
|
|
2
|
+
export { YieldType } from './chunk-AQFFMJX7.mjs';
|
|
3
|
+
import { isDepositSpendApproved } from './chunk-E7R7TL7J.mjs';
|
|
4
|
+
export { getDepositExchangeRate, getWithdrawExchangeRate, isDepositSpendApproved, isWithdrawalSpendApproved } from './chunk-E7R7TL7J.mjs';
|
|
5
|
+
import { getRateInQuoteWithAssetDecimals, getClient, erc2612Abi, BoringVaultAbi, getRateInQuoteAndSharesAndWantAssetDecimals, TellerAbi } from './chunk-5Y7M43XN.mjs';
|
|
5
6
|
import './chunk-R663BFAZ.mjs';
|
|
6
7
|
import { toChainId } from './chunk-J3662HYT.mjs';
|
|
7
|
-
import { calculateDeadline } from './chunk-
|
|
8
|
+
import { calculateDeadline } from './chunk-BOW2QPQC.mjs';
|
|
8
9
|
import { WAD } from './chunk-7RWWVUHP.mjs';
|
|
9
|
-
import { findVaultByConfig, APIError, getAssetsFromCache, DEFAULT_APPROVAL_AMOUNT, fetchSupportedAssets, ATOMIC_QUEUE_CONTRACT_ADDRESS, DEFAULT_DEADLINE } from './chunk-
|
|
10
|
-
export { APIError, fetchSupportedAssets, fetchVaults, findVaultByConfig, getAssetsFromCache, getCache, getWithdrawSupportedAssets, initAmplifySDK, initializeCache, refreshVaultCache } from './chunk-
|
|
10
|
+
import { findVaultByConfig, APIError, getAssetsFromCache, DEFAULT_APPROVAL_AMOUNT, fetchSupportedAssets, ATOMIC_QUEUE_CONTRACT_ADDRESS, DEFAULT_DEADLINE } from './chunk-IMS2HBJ7.mjs';
|
|
11
|
+
export { APIError, LogLevel, fetchSupportedAssets, fetchVaults, findVaultByConfig, getAssetsFromCache, getCache, getLogger, getWithdrawSupportedAssets, initAmplifySDK, initializeCache, refreshVaultCache, setLogLevel, setLogger } from './chunk-IMS2HBJ7.mjs';
|
|
11
12
|
import { parseUnits, erc20Abi, stringToHex, hexToSignature } from 'viem';
|
|
12
13
|
|
|
13
14
|
async function prepareApproveDepositTokenTxData({
|
|
@@ -433,56 +434,6 @@ async function prepareDepositTxData(params) {
|
|
|
433
434
|
);
|
|
434
435
|
}
|
|
435
436
|
}
|
|
436
|
-
|
|
437
|
-
// src/abi/erc2612-abi.ts
|
|
438
|
-
var erc2612Abi = [
|
|
439
|
-
// Standard ERC20 functions (subset needed for permit flow)
|
|
440
|
-
{
|
|
441
|
-
constant: true,
|
|
442
|
-
inputs: [{ name: "_owner", type: "address" }],
|
|
443
|
-
name: "nonces",
|
|
444
|
-
outputs: [{ name: "", type: "uint256" }],
|
|
445
|
-
type: "function"
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
constant: true,
|
|
449
|
-
inputs: [],
|
|
450
|
-
name: "DOMAIN_SEPARATOR",
|
|
451
|
-
outputs: [{ name: "", type: "bytes32" }],
|
|
452
|
-
type: "function"
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
constant: false,
|
|
456
|
-
inputs: [
|
|
457
|
-
{ name: "owner", type: "address" },
|
|
458
|
-
{ name: "spender", type: "address" },
|
|
459
|
-
{ name: "value", type: "uint256" },
|
|
460
|
-
{ name: "deadline", type: "uint256" },
|
|
461
|
-
{ name: "v", type: "uint8" },
|
|
462
|
-
{ name: "r", type: "bytes32" },
|
|
463
|
-
{ name: "s", type: "bytes32" }
|
|
464
|
-
],
|
|
465
|
-
name: "permit",
|
|
466
|
-
outputs: [],
|
|
467
|
-
type: "function"
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
constant: true,
|
|
471
|
-
inputs: [],
|
|
472
|
-
name: "name",
|
|
473
|
-
outputs: [{ name: "", type: "string" }],
|
|
474
|
-
type: "function"
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
constant: true,
|
|
478
|
-
inputs: [],
|
|
479
|
-
name: "version",
|
|
480
|
-
outputs: [{ name: "", type: "string" }],
|
|
481
|
-
type: "function"
|
|
482
|
-
}
|
|
483
|
-
];
|
|
484
|
-
|
|
485
|
-
// src/vaults/deposit/deposit-with-permit.ts
|
|
486
437
|
var PERMIT_TYPES = {
|
|
487
438
|
Permit: [
|
|
488
439
|
{ name: "owner", type: "address" },
|
|
@@ -499,7 +450,12 @@ async function prepareDepositPermitSignature(params) {
|
|
|
499
450
|
depositAmount,
|
|
500
451
|
recipientAddress,
|
|
501
452
|
chainId,
|
|
502
|
-
deadline
|
|
453
|
+
deadline,
|
|
454
|
+
// Optional pre-fetched data to skip RPC calls
|
|
455
|
+
nonce: prefetchedNonce,
|
|
456
|
+
decimals: prefetchedDecimals,
|
|
457
|
+
tokenName: prefetchedTokenName,
|
|
458
|
+
tokenVersion: prefetchedTokenVersion
|
|
503
459
|
} = params;
|
|
504
460
|
try {
|
|
505
461
|
const normalizedChainId = toChainId(chainId);
|
|
@@ -534,79 +490,102 @@ async function prepareDepositPermitSignature(params) {
|
|
|
534
490
|
{ endpoint: "prepareDepositPermitSignature" }
|
|
535
491
|
);
|
|
536
492
|
}
|
|
537
|
-
|
|
538
|
-
let
|
|
539
|
-
let
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
493
|
+
let resolvedTokenName;
|
|
494
|
+
let resolvedTokenVersion;
|
|
495
|
+
let resolvedNonce;
|
|
496
|
+
const hasAllPrefetchedData = prefetchedTokenName !== void 0 && prefetchedTokenVersion !== void 0 && prefetchedNonce !== void 0;
|
|
497
|
+
if (hasAllPrefetchedData) {
|
|
498
|
+
resolvedTokenName = prefetchedTokenName;
|
|
499
|
+
resolvedTokenVersion = prefetchedTokenVersion;
|
|
500
|
+
resolvedNonce = prefetchedNonce;
|
|
501
|
+
} else {
|
|
502
|
+
const client = await getClient(normalizedChainId);
|
|
503
|
+
try {
|
|
504
|
+
const [nameResult, versionResult, nonceResult] = await client.multicall(
|
|
505
|
+
{
|
|
506
|
+
contracts: [
|
|
507
|
+
{
|
|
508
|
+
address: depositToken,
|
|
509
|
+
abi: erc2612Abi,
|
|
510
|
+
functionName: "name"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
address: depositToken,
|
|
514
|
+
abi: erc2612Abi,
|
|
515
|
+
functionName: "version"
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
address: depositToken,
|
|
519
|
+
abi: erc2612Abi,
|
|
520
|
+
functionName: "nonces",
|
|
521
|
+
args: [recipientAddress]
|
|
522
|
+
}
|
|
523
|
+
]
|
|
524
|
+
}
|
|
525
|
+
);
|
|
526
|
+
if (prefetchedTokenName !== void 0) {
|
|
527
|
+
resolvedTokenName = prefetchedTokenName;
|
|
528
|
+
} else if (nameResult.status === "success") {
|
|
529
|
+
resolvedTokenName = nameResult.result;
|
|
530
|
+
} else {
|
|
531
|
+
throw new APIError(`Failed to read token name from ${depositToken}`, {
|
|
532
|
+
endpoint: "prepareDepositPermitSignature",
|
|
533
|
+
cause: nameResult.error
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
if (prefetchedTokenVersion !== void 0) {
|
|
537
|
+
resolvedTokenVersion = prefetchedTokenVersion;
|
|
538
|
+
} else if (versionResult.status === "success") {
|
|
539
|
+
resolvedTokenVersion = versionResult.result;
|
|
540
|
+
} else {
|
|
541
|
+
resolvedTokenVersion = "1";
|
|
542
|
+
}
|
|
543
|
+
if (prefetchedNonce !== void 0) {
|
|
544
|
+
resolvedNonce = prefetchedNonce;
|
|
545
|
+
} else if (nonceResult.status === "success") {
|
|
546
|
+
resolvedNonce = nonceResult.result;
|
|
547
|
+
} else {
|
|
548
|
+
throw new APIError(
|
|
549
|
+
`Token ${depositToken} does not support EIP-2612 permit. Missing required function: nonces()`,
|
|
550
|
+
{
|
|
551
|
+
endpoint: "prepareDepositPermitSignature",
|
|
552
|
+
cause: nonceResult.error
|
|
553
|
+
}
|
|
554
|
+
);
|
|
555
|
+
}
|
|
556
|
+
} catch (error) {
|
|
557
|
+
if (error instanceof APIError) {
|
|
558
|
+
throw error;
|
|
559
|
+
}
|
|
578
560
|
throw new APIError(
|
|
579
|
-
`
|
|
561
|
+
`Failed to read token metadata: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
580
562
|
{
|
|
581
563
|
endpoint: "prepareDepositPermitSignature",
|
|
582
|
-
cause:
|
|
564
|
+
cause: error
|
|
583
565
|
}
|
|
584
566
|
);
|
|
585
567
|
}
|
|
586
|
-
} catch (error) {
|
|
587
|
-
if (error instanceof APIError) {
|
|
588
|
-
throw error;
|
|
589
|
-
}
|
|
590
|
-
throw new APIError(
|
|
591
|
-
`Failed to read token metadata: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
592
|
-
{
|
|
593
|
-
endpoint: "prepareDepositPermitSignature",
|
|
594
|
-
cause: error
|
|
595
|
-
}
|
|
596
|
-
);
|
|
597
568
|
}
|
|
598
569
|
const permitDeadline = deadline ?? BigInt(Math.floor(Date.now() / 1e3) + 3600);
|
|
599
|
-
|
|
600
|
-
if (
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
});
|
|
570
|
+
let resolvedDecimals;
|
|
571
|
+
if (prefetchedDecimals !== void 0) {
|
|
572
|
+
resolvedDecimals = prefetchedDecimals;
|
|
573
|
+
} else {
|
|
574
|
+
const assets = await fetchSupportedAssets({ address: depositToken });
|
|
575
|
+
if (assets.length === 0) {
|
|
576
|
+
throw new APIError(
|
|
577
|
+
`Asset metadata not found for token ${depositToken}`,
|
|
578
|
+
{
|
|
579
|
+
endpoint: "prepareDepositPermitSignature"
|
|
580
|
+
}
|
|
581
|
+
);
|
|
582
|
+
}
|
|
583
|
+
resolvedDecimals = assets[0].decimals;
|
|
604
584
|
}
|
|
605
|
-
const
|
|
606
|
-
const value = parseUnits(depositAmount, asset.decimals);
|
|
585
|
+
const value = parseUnits(depositAmount, resolvedDecimals);
|
|
607
586
|
const domain = {
|
|
608
|
-
name:
|
|
609
|
-
version:
|
|
587
|
+
name: resolvedTokenName,
|
|
588
|
+
version: resolvedTokenVersion,
|
|
610
589
|
chainId: normalizedChainId,
|
|
611
590
|
verifyingContract: depositToken
|
|
612
591
|
};
|
|
@@ -614,7 +593,7 @@ async function prepareDepositPermitSignature(params) {
|
|
|
614
593
|
owner: recipientAddress,
|
|
615
594
|
spender: communityCodeDepositorAddress,
|
|
616
595
|
value,
|
|
617
|
-
nonce,
|
|
596
|
+
nonce: resolvedNonce,
|
|
618
597
|
deadline: permitDeadline
|
|
619
598
|
};
|
|
620
599
|
return {
|
|
@@ -810,6 +789,196 @@ async function prepareDepositWithPermitTxData(params) {
|
|
|
810
789
|
);
|
|
811
790
|
}
|
|
812
791
|
}
|
|
792
|
+
var DepositAuthMethod = {
|
|
793
|
+
PERMIT: "permit",
|
|
794
|
+
APPROVAL: "approval",
|
|
795
|
+
ALREADY_APPROVED: "already_approved"
|
|
796
|
+
};
|
|
797
|
+
async function prepareDepositAuthorization(params) {
|
|
798
|
+
const {
|
|
799
|
+
yieldType,
|
|
800
|
+
depositToken,
|
|
801
|
+
depositAmount,
|
|
802
|
+
recipientAddress,
|
|
803
|
+
chainId,
|
|
804
|
+
deadline,
|
|
805
|
+
forceMethod
|
|
806
|
+
} = params;
|
|
807
|
+
try {
|
|
808
|
+
const normalizedChainId = toChainId(chainId);
|
|
809
|
+
const vault = await findVaultByConfig({
|
|
810
|
+
assetAddress: depositToken,
|
|
811
|
+
yieldType,
|
|
812
|
+
chainId: normalizedChainId
|
|
813
|
+
});
|
|
814
|
+
if (!vault) {
|
|
815
|
+
throw new APIError(
|
|
816
|
+
`No vault found for token ${depositToken} with yield type '${yieldType}' on chain ${normalizedChainId}`,
|
|
817
|
+
{ endpoint: "prepareDepositAuthorization" }
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
const tokenInfo = await isDepositSpendApproved({
|
|
821
|
+
yieldType,
|
|
822
|
+
chainId: normalizedChainId,
|
|
823
|
+
depositAssetAddress: depositToken,
|
|
824
|
+
recipientAddress
|
|
825
|
+
});
|
|
826
|
+
if (forceMethod === "permit") {
|
|
827
|
+
const permitData = await prepareDepositPermitSignature({
|
|
828
|
+
yieldType,
|
|
829
|
+
depositToken,
|
|
830
|
+
depositAmount,
|
|
831
|
+
recipientAddress,
|
|
832
|
+
chainId: normalizedChainId,
|
|
833
|
+
deadline,
|
|
834
|
+
// Pass pre-fetched data to avoid redundant RPC calls
|
|
835
|
+
nonce: tokenInfo.nonce ?? void 0,
|
|
836
|
+
decimals: tokenInfo.decimals,
|
|
837
|
+
tokenName: tokenInfo.tokenName,
|
|
838
|
+
tokenVersion: tokenInfo.tokenVersion
|
|
839
|
+
});
|
|
840
|
+
return {
|
|
841
|
+
method: DepositAuthMethod.PERMIT,
|
|
842
|
+
permitData
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
if (forceMethod === "approval") {
|
|
846
|
+
const txData2 = await prepareApproveDepositTokenTxData({
|
|
847
|
+
yieldType,
|
|
848
|
+
depositToken,
|
|
849
|
+
approvalAmount: depositAmount,
|
|
850
|
+
chainId: normalizedChainId
|
|
851
|
+
});
|
|
852
|
+
return {
|
|
853
|
+
method: DepositAuthMethod.APPROVAL,
|
|
854
|
+
txData: txData2,
|
|
855
|
+
currentAllowance: tokenInfo.allowance,
|
|
856
|
+
currentAllowanceAsBigInt: tokenInfo.allowanceAsBigInt
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
if (tokenInfo.supportsPermit) {
|
|
860
|
+
const permitData = await prepareDepositPermitSignature({
|
|
861
|
+
yieldType,
|
|
862
|
+
depositToken,
|
|
863
|
+
depositAmount,
|
|
864
|
+
recipientAddress,
|
|
865
|
+
chainId: normalizedChainId,
|
|
866
|
+
deadline,
|
|
867
|
+
// Pass pre-fetched data to avoid redundant RPC calls
|
|
868
|
+
nonce: tokenInfo.nonce ?? void 0,
|
|
869
|
+
decimals: tokenInfo.decimals,
|
|
870
|
+
tokenName: tokenInfo.tokenName,
|
|
871
|
+
tokenVersion: tokenInfo.tokenVersion
|
|
872
|
+
});
|
|
873
|
+
return {
|
|
874
|
+
method: DepositAuthMethod.PERMIT,
|
|
875
|
+
permitData
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
const depositAmountBigInt = parseUnits(depositAmount, tokenInfo.decimals);
|
|
879
|
+
const currentAllowanceBigInt = BigInt(tokenInfo.allowanceAsBigInt);
|
|
880
|
+
if (tokenInfo.isApproved && currentAllowanceBigInt >= depositAmountBigInt) {
|
|
881
|
+
return {
|
|
882
|
+
method: DepositAuthMethod.ALREADY_APPROVED,
|
|
883
|
+
allowance: tokenInfo.allowance,
|
|
884
|
+
allowanceAsBigInt: tokenInfo.allowanceAsBigInt
|
|
885
|
+
};
|
|
886
|
+
}
|
|
887
|
+
const txData = await prepareApproveDepositTokenTxData({
|
|
888
|
+
yieldType,
|
|
889
|
+
depositToken,
|
|
890
|
+
approvalAmount: depositAmount,
|
|
891
|
+
chainId: normalizedChainId
|
|
892
|
+
});
|
|
893
|
+
return {
|
|
894
|
+
method: DepositAuthMethod.APPROVAL,
|
|
895
|
+
txData,
|
|
896
|
+
currentAllowance: tokenInfo.allowance,
|
|
897
|
+
currentAllowanceAsBigInt: tokenInfo.allowanceAsBigInt
|
|
898
|
+
};
|
|
899
|
+
} catch (error) {
|
|
900
|
+
if (error instanceof APIError) {
|
|
901
|
+
throw error;
|
|
902
|
+
}
|
|
903
|
+
throw new APIError(
|
|
904
|
+
`Failed to prepare deposit authorization: ${error instanceof Error ? error.message : String(error)}`,
|
|
905
|
+
{
|
|
906
|
+
endpoint: "prepareDepositAuthorization",
|
|
907
|
+
cause: error
|
|
908
|
+
}
|
|
909
|
+
);
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
async function prepareDeposit(params) {
|
|
913
|
+
const {
|
|
914
|
+
yieldType,
|
|
915
|
+
depositToken,
|
|
916
|
+
depositAmount,
|
|
917
|
+
recipientAddress,
|
|
918
|
+
chainId,
|
|
919
|
+
slippage,
|
|
920
|
+
partnerCode,
|
|
921
|
+
signature,
|
|
922
|
+
deadline,
|
|
923
|
+
forceMethod
|
|
924
|
+
} = params;
|
|
925
|
+
try {
|
|
926
|
+
if (forceMethod === "permit" && (!signature || deadline === void 0)) {
|
|
927
|
+
throw new APIError(
|
|
928
|
+
"Permit deposit requires both signature and deadline parameters when forceMethod is 'permit'",
|
|
929
|
+
{ endpoint: "prepareDeposit" }
|
|
930
|
+
);
|
|
931
|
+
}
|
|
932
|
+
const usePermit = forceMethod === "permit" || forceMethod !== "approval" && signature !== void 0 && deadline !== void 0;
|
|
933
|
+
if (usePermit) {
|
|
934
|
+
if (!signature || deadline === void 0) {
|
|
935
|
+
throw new APIError(
|
|
936
|
+
"Permit deposit requires both signature and deadline parameters",
|
|
937
|
+
{ endpoint: "prepareDeposit" }
|
|
938
|
+
);
|
|
939
|
+
}
|
|
940
|
+
const txData2 = await prepareDepositWithPermitTxData({
|
|
941
|
+
yieldType,
|
|
942
|
+
depositToken,
|
|
943
|
+
depositAmount,
|
|
944
|
+
recipientAddress,
|
|
945
|
+
chainId,
|
|
946
|
+
signature,
|
|
947
|
+
deadline,
|
|
948
|
+
slippage,
|
|
949
|
+
partnerCode
|
|
950
|
+
});
|
|
951
|
+
return {
|
|
952
|
+
method: DepositAuthMethod.PERMIT,
|
|
953
|
+
txData: txData2
|
|
954
|
+
};
|
|
955
|
+
}
|
|
956
|
+
const txData = await prepareDepositTxData({
|
|
957
|
+
yieldType,
|
|
958
|
+
depositToken,
|
|
959
|
+
depositAmount,
|
|
960
|
+
recipientAddress,
|
|
961
|
+
chainId,
|
|
962
|
+
slippage,
|
|
963
|
+
partnerCode
|
|
964
|
+
});
|
|
965
|
+
return {
|
|
966
|
+
method: DepositAuthMethod.APPROVAL,
|
|
967
|
+
txData
|
|
968
|
+
};
|
|
969
|
+
} catch (error) {
|
|
970
|
+
if (error instanceof APIError) {
|
|
971
|
+
throw error;
|
|
972
|
+
}
|
|
973
|
+
throw new APIError(
|
|
974
|
+
`Failed to prepare deposit: ${error instanceof Error ? error.message : String(error)}`,
|
|
975
|
+
{
|
|
976
|
+
endpoint: "prepareDeposit",
|
|
977
|
+
cause: error
|
|
978
|
+
}
|
|
979
|
+
);
|
|
980
|
+
}
|
|
981
|
+
}
|
|
813
982
|
async function prepareApproveWithdrawTxData({
|
|
814
983
|
yieldType,
|
|
815
984
|
wantAssetAddress,
|
|
@@ -1306,6 +1475,6 @@ var prepareWithdrawTxData = async ({
|
|
|
1306
1475
|
}
|
|
1307
1476
|
};
|
|
1308
1477
|
|
|
1309
|
-
export { PERMIT_TYPES, parsePermitSignature, prepareApproveDepositTokenTxData, prepareApproveWithdrawTxData, prepareBulkWithdrawTxData, prepareDepositPermitSignature, prepareDepositTxData, prepareDepositWithPermitTxData, prepareWithdrawTxData };
|
|
1478
|
+
export { DepositAuthMethod, PERMIT_TYPES, parsePermitSignature, prepareApproveDepositTokenTxData, prepareApproveWithdrawTxData, prepareBulkWithdrawTxData, prepareDeposit, prepareDepositAuthorization, prepareDepositPermitSignature, prepareDepositTxData, prepareDepositWithPermitTxData, prepareWithdrawTxData };
|
|
1310
1479
|
//# sourceMappingURL=index.mjs.map
|
|
1311
1480
|
//# sourceMappingURL=index.mjs.map
|