@paxoslabs/amplify-sdk 0.0.1-alpha.1

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 (80) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/LICENSE +28 -0
  3. package/README.md +533 -0
  4. package/dist/amplify-sdk-api-B5hBTGrB.d.ts +258 -0
  5. package/dist/amplify-sdk-api-DPrRhynk.d.mts +258 -0
  6. package/dist/chunk-3I3PYX2F.js +45 -0
  7. package/dist/chunk-3I3PYX2F.js.map +1 -0
  8. package/dist/chunk-7RWWVUHP.mjs +39 -0
  9. package/dist/chunk-7RWWVUHP.mjs.map +1 -0
  10. package/dist/chunk-AFWUOS3M.js +15 -0
  11. package/dist/chunk-AFWUOS3M.js.map +1 -0
  12. package/dist/chunk-BDXS57YH.js +828 -0
  13. package/dist/chunk-BDXS57YH.js.map +1 -0
  14. package/dist/chunk-FYNPQXCR.mjs +46 -0
  15. package/dist/chunk-FYNPQXCR.mjs.map +1 -0
  16. package/dist/chunk-GE2VQUPP.mjs +228 -0
  17. package/dist/chunk-GE2VQUPP.mjs.map +1 -0
  18. package/dist/chunk-ICKDAKVS.js +16 -0
  19. package/dist/chunk-ICKDAKVS.js.map +1 -0
  20. package/dist/chunk-ISO6Z7LD.mjs +809 -0
  21. package/dist/chunk-ISO6Z7LD.mjs.map +1 -0
  22. package/dist/chunk-ITB7FXG4.js +14 -0
  23. package/dist/chunk-ITB7FXG4.js.map +1 -0
  24. package/dist/chunk-J3662HYT.mjs +29 -0
  25. package/dist/chunk-J3662HYT.mjs.map +1 -0
  26. package/dist/chunk-JLXNOGZB.js +2061 -0
  27. package/dist/chunk-JLXNOGZB.js.map +1 -0
  28. package/dist/chunk-O5P6SP2O.js +233 -0
  29. package/dist/chunk-O5P6SP2O.js.map +1 -0
  30. package/dist/chunk-R663BFAZ.mjs +14 -0
  31. package/dist/chunk-R663BFAZ.mjs.map +1 -0
  32. package/dist/chunk-RUIAH5HY.js +32 -0
  33. package/dist/chunk-RUIAH5HY.js.map +1 -0
  34. package/dist/chunk-SIR2TCAR.mjs +13 -0
  35. package/dist/chunk-SIR2TCAR.mjs.map +1 -0
  36. package/dist/chunk-XXHRCCZS.mjs +11 -0
  37. package/dist/chunk-XXHRCCZS.mjs.map +1 -0
  38. package/dist/chunk-ZSFIOWWT.js +49 -0
  39. package/dist/chunk-ZSFIOWWT.js.map +1 -0
  40. package/dist/chunk-ZZBZIDZP.mjs +2050 -0
  41. package/dist/chunk-ZZBZIDZP.mjs.map +1 -0
  42. package/dist/config-B-u3VqEX.d.mts +21 -0
  43. package/dist/config-B-u3VqEX.d.ts +21 -0
  44. package/dist/config-BQynVNDC.d.mts +101 -0
  45. package/dist/config-BQynVNDC.d.ts +101 -0
  46. package/dist/core.d.mts +152 -0
  47. package/dist/core.d.ts +152 -0
  48. package/dist/core.js +187 -0
  49. package/dist/core.js.map +1 -0
  50. package/dist/core.mjs +150 -0
  51. package/dist/core.mjs.map +1 -0
  52. package/dist/display.d.mts +25 -0
  53. package/dist/display.d.ts +25 -0
  54. package/dist/display.js +124 -0
  55. package/dist/display.js.map +1 -0
  56. package/dist/display.mjs +105 -0
  57. package/dist/display.mjs.map +1 -0
  58. package/dist/exchange-rate-CRA_CMaX.d.mts +65 -0
  59. package/dist/exchange-rate-D3_FVgqa.d.ts +65 -0
  60. package/dist/index.d.mts +3236 -0
  61. package/dist/index.d.ts +3236 -0
  62. package/dist/index.js +1115 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/index.mjs +1047 -0
  65. package/dist/index.mjs.map +1 -0
  66. package/dist/utils.d.mts +111 -0
  67. package/dist/utils.d.ts +111 -0
  68. package/dist/utils.js +51 -0
  69. package/dist/utils.js.map +1 -0
  70. package/dist/utils.mjs +17 -0
  71. package/dist/utils.mjs.map +1 -0
  72. package/dist/vault-config-BNzhv3QV.d.ts +15 -0
  73. package/dist/vault-config-BjSE7oL8.d.mts +15 -0
  74. package/dist/vaults.d.mts +6 -0
  75. package/dist/vaults.d.ts +6 -0
  76. package/dist/vaults.js +13 -0
  77. package/dist/vaults.js.map +1 -0
  78. package/dist/vaults.mjs +4 -0
  79. package/dist/vaults.mjs.map +1 -0
  80. package/package.json +142 -0
@@ -0,0 +1,13 @@
1
+ import { DEFAULT_DEADLINE } from './chunk-ISO6Z7LD.mjs';
2
+
3
+ // src/utils/time.ts
4
+ var calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {
5
+ const daysInSeconds = daysFromNow * 24 * 60 * 60;
6
+ const currentTimeStamp = Math.floor(Date.now() / 1e3);
7
+ const deadline = currentTimeStamp + daysInSeconds;
8
+ return BigInt(deadline);
9
+ };
10
+
11
+ export { calculateDeadline };
12
+ //# sourceMappingURL=chunk-SIR2TCAR.mjs.map
13
+ //# sourceMappingURL=chunk-SIR2TCAR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/time.ts"],"names":[],"mappings":";;;AAoBO,IAAM,iBAAA,GAAoB,CAAC,WAAA,GAAc,gBAAA,KAAqB;AAEnE,EAAA,MAAM,aAAA,GAAgB,WAAA,GAAc,EAAA,GAAK,EAAA,GAAK,EAAA;AAG9C,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AAGrD,EAAA,MAAM,WAAW,gBAAA,GAAmB,aAAA;AAEpC,EAAA,OAAO,OAAO,QAAQ,CAAA;AACxB","file":"chunk-SIR2TCAR.mjs","sourcesContent":["/**\n * @fileoverview Utility functions for time-related operations\n */\n\nimport { DEFAULT_DEADLINE } from \"../constants\";\n\n/**\n * Calculates a deadline timestamp in seconds from the current time\n *\n * @param {number} [daysFromNow=DEFAULT_DEADLINE] - Number of days from now to set the deadline\n * @returns {number} Unix timestamp in seconds representing the deadline\n *\n * @example\n * // Returns a timestamp 3 days from now (in seconds)\n * const threeDay = calculateDeadline();\n *\n * @example\n * // Returns a timestamp 7 days from now (in seconds)\n * const weekDeadline = calculateDeadline(7);\n */\nexport const calculateDeadline = (daysFromNow = DEFAULT_DEADLINE) => {\n // Get days in seconds\n const daysInSeconds = daysFromNow * 24 * 60 * 60;\n\n // Get current timestamp in seconds\n const currentTimeStamp = Math.floor(Date.now() / 1000);\n\n // Calculate deadline (current time + 3 days in seconds)\n const deadline = currentTimeStamp + daysInSeconds;\n\n return BigInt(deadline);\n};\n"]}
@@ -0,0 +1,11 @@
1
+ // src/constants/config.ts
2
+ var YieldType = {
3
+ PRIME: "PRIME",
4
+ TBILL: "TBILL",
5
+ LENDING: "LENDING"
6
+ };
7
+ var DEFAULT_SLIPPAGE_BPS = 5;
8
+
9
+ export { DEFAULT_SLIPPAGE_BPS, YieldType };
10
+ //# sourceMappingURL=chunk-XXHRCCZS.mjs.map
11
+ //# sourceMappingURL=chunk-XXHRCCZS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants/config.ts"],"names":[],"mappings":";AAeO,IAAM,SAAA,GAAY;AAAA,EACvB,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS;AACX;AAwDO,IAAM,oBAAA,GAAuB","file":"chunk-XXHRCCZS.mjs","sourcesContent":["/**\n * SDK Configuration Constants\n *\n * Global constants for supported chains, yield types, tokens, and defaults.\n * Centralized configuration for address book integration and permit deposits.\n */\n\nimport type { Address } from \"viem\";\n\n/**\n * Yield Type identifiers\n *\n * Use as const values: YieldType.PRIME, YieldType.TBILL, YieldType.LENDING\n * Use as type annotation: yieldType: YieldType\n */\nexport const YieldType = {\n PRIME: \"PRIME\",\n TBILL: \"TBILL\",\n LENDING: \"LENDING\",\n} as const;\n\nexport type YieldType = (typeof YieldType)[keyof typeof YieldType];\n\n/**\n * Supported Yield Types\n *\n * Yield products offered by Nucleus.\n */\nexport const SUPPORTED_YIELD_TYPES: readonly YieldType[] = [\n \"PRIME\",\n \"TBILL\",\n \"LENDING\",\n];\n\n/**\n * Token Allow List for Permit Deposits\n *\n * @returns Token allow list for permit deposits\n */\nexport const TOKEN_ALLOW_LIST_BY_CHAIN_FOR_PERMIT_DEPOSITS = {\n 1: [\n {\n symbol: \"USDC\",\n address: \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n supportsPermit: true,\n },\n {\n symbol: \"USDG\",\n address: \"0xe343167631d89b6ffc58b88d6b7fb0228795491d\",\n supportsPermit: true,\n },\n ],\n} as const;\n\n/**\n * Permit Types\n *\n * @returns Permit types\n */\nexport const PERMIT_TYPES = {\n Permit: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n} as const;\n\n/**\n * Default Slippage: 50 basis points (0.5%)\n *\n * Conservative default for deposit transactions.\n * Can be overridden per transaction.\n */\nexport const DEFAULT_SLIPPAGE_BPS = 5;\n\n/**\n * Maximum Slippage: 10000 basis points (100%)\n *\n * Safeguard against accidental extreme slippage.\n */\nexport const MAX_SLIPPAGE_BPS = 10000;\n\n/**\n * Minimum Slippage: 0 basis points (0%)\n *\n * Minimum enforced slippage in basis points.\n */\nexport const MIN_SLIPPAGE_BPS = 0;\n\n/**\n * Permit Configuration Defaults\n *\n * Default settings for ERC2612 permit-based approvals.\n */\nexport const PERMIT_CONFIG = {\n /** Default deadline: 1 hour from signature */\n defaultDeadlineSeconds: 3600,\n /** Minimum deadline: 5 minutes (time to submit transaction) */\n minDeadlineSeconds: 300,\n /** Maximum deadline: 24 hours (limits signature validity) */\n maxDeadlineSeconds: 86400,\n /** Cache permit support checks for 24 hours */\n cachePermitSupport: true,\n /** Permit support cache TTL: 24 hours */\n permitSupportCacheTTL: 86400000,\n} as const;\n\n/**\n * Address Book Cache Configuration\n *\n * Default settings for address book query caching.\n */\nexport const ADDRESS_BOOK_CACHE_CONFIG = {\n /** Cache TTL: 1 hour */\n defaultTTL: 3600000,\n /** Auto-refresh cache on errors */\n autoRefreshOnError: true,\n /** Maximum cache size: 1000 entries */\n maxCacheSize: 1000,\n} as const;\n\n/**\n * Deposit Configuration Defaults\n *\n * Default settings for deposit transaction preparation.\n */\nexport const DEPOSIT_CONFIG = {\n /** Default slippage in basis points */\n defaultSlippageBps: DEFAULT_SLIPPAGE_BPS,\n /** Maximum allowed slippage */\n maxSlippageBps: MAX_SLIPPAGE_BPS,\n /** Require approval check before deposit */\n requireApprovalCheck: true,\n /** Don't auto-approve without user confirmation */\n autoApprove: false,\n} as const;\n\n/**\n * Gas Estimation Defaults\n *\n * Default gas limits for different operations.\n */\nexport const GAS_CONFIG = {\n /** Gas limit for approve transaction */\n approveGasLimit: 100000n,\n /** Gas limit for permit deposit transaction */\n permitDepositGasLimit: 500000n,\n /** Gas limit for standard deposit + approve */\n standardDepositGasLimit: 600000n,\n} as const;\n\n/**\n * Performance Targets\n *\n * Expected performance characteristics for monitoring.\n */\nexport const PERFORMANCE_TARGETS = {\n /** Address book queries should complete in <50ms */\n addressBookQueryMs: 50,\n /** Permit signature generation should complete in <100ms */\n permitSignatureMs: 100,\n /** Transaction preparation should complete in <200ms */\n transactionPreparationMs: 200,\n} as const;\n\n/**\n * Error Codes\n *\n * Standardized error codes for programmatic error handling.\n */\nexport const ERROR_CODES = {\n // Address Book Errors\n VAULT_NOT_FOUND: \"VAULT_NOT_FOUND\",\n CHAIN_NOT_SUPPORTED: \"CHAIN_NOT_SUPPORTED\",\n TOKEN_NOT_SUPPORTED: \"TOKEN_NOT_SUPPORTED\",\n YIELD_TYPE_NOT_SUPPORTED: \"YIELD_TYPE_NOT_SUPPORTED\",\n ADDRESS_BOOK_DATA_ERROR: \"ADDRESS_BOOK_DATA_ERROR\",\n ADDRESS_BOOK_CACHE_ERROR: \"ADDRESS_BOOK_CACHE_ERROR\",\n\n // Permit Errors\n PERMIT_NOT_SUPPORTED: \"PERMIT_NOT_SUPPORTED\",\n PERMIT_SIGNATURE_ERROR: \"PERMIT_SIGNATURE_ERROR\",\n INVALID_DEADLINE: \"INVALID_DEADLINE\",\n NONCE_ERROR: \"NONCE_ERROR\",\n DOMAIN_SEPARATOR_ERROR: \"DOMAIN_SEPARATOR_ERROR\",\n INVALID_PERMIT_SIGNATURE: \"INVALID_PERMIT_SIGNATURE\",\n\n // Deposit Errors\n INVALID_DEPOSIT_AMOUNT: \"INVALID_DEPOSIT_AMOUNT\",\n INVALID_SLIPPAGE: \"INVALID_SLIPPAGE\",\n INSUFFICIENT_APPROVAL: \"INSUFFICIENT_APPROVAL\",\n INVALID_USER_ADDRESS: \"INVALID_USER_ADDRESS\",\n DEPOSIT_VALIDATION_ERROR: \"DEPOSIT_VALIDATION_ERROR\",\n TRANSACTION_PREPARATION_ERROR: \"TRANSACTION_PREPARATION_ERROR\",\n\n // CommunityCodeDepositor Errors\n INVALID_DEPOSITOR_ADDRESS: \"INVALID_DEPOSITOR_ADDRESS\",\n DEPOSITOR_CONTRACT_ERROR: \"DEPOSITOR_CONTRACT_ERROR\",\n} as const;\n\n/**\n * Type for error codes\n */\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n/**\n * Helper: Check if yield type is supported\n *\n * @param yieldType - Yield product type\n * @returns true if yield type is in the supported list\n */\nexport function isSupportedYieldType(\n yieldType: string\n): yieldType is YieldType {\n return SUPPORTED_YIELD_TYPES.includes(yieldType as YieldType);\n}\n\n/**\n * Helper: Get permit version for token\n *\n * @param symbol - Stablecoin symbol\n * @returns Permit version (\"1\" or \"2\") or undefined if not supported\n */\nexport function getTokenAllowListByChainForPermitDeposits(\n chainId: number,\n depositTokenAddress: Address\n) {\n const tokens =\n TOKEN_ALLOW_LIST_BY_CHAIN_FOR_PERMIT_DEPOSITS[\n chainId as keyof typeof TOKEN_ALLOW_LIST_BY_CHAIN_FOR_PERMIT_DEPOSITS\n ];\n if (!tokens) {\n return null;\n }\n\n return tokens.find(\n (t: { address: string; supportsPermit: boolean }) =>\n t.address.toLowerCase() === depositTokenAddress.toLowerCase()\n );\n}\n"]}
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ var chunkJLXNOGZB_js = require('./chunk-JLXNOGZB.js');
4
+ require('viem');
5
+
6
+ var getPausedStates = async ({
7
+ accountantAddress,
8
+ tellerAddress,
9
+ chainId
10
+ }) => {
11
+ const client = await chunkJLXNOGZB_js.getClient(chainId);
12
+ const results = await client.multicall({
13
+ contracts: [
14
+ {
15
+ abi: chunkJLXNOGZB_js.TellerAbi,
16
+ address: tellerAddress,
17
+ functionName: "isPaused"
18
+ },
19
+ {
20
+ abi: chunkJLXNOGZB_js.AccountantAbi,
21
+ address: accountantAddress,
22
+ functionName: "accountantState"
23
+ }
24
+ ]
25
+ });
26
+ return results;
27
+ };
28
+
29
+ // src/api/teller.ts
30
+ var getPreviewFee = async ({
31
+ shareAmount,
32
+ bridgeData,
33
+ contractAddress,
34
+ chainId
35
+ }) => {
36
+ const client = await chunkJLXNOGZB_js.getClient(chainId);
37
+ const rate = await client.readContract({
38
+ abi: chunkJLXNOGZB_js.TellerAbi,
39
+ address: contractAddress,
40
+ functionName: "previewFee",
41
+ args: [shareAmount, bridgeData]
42
+ });
43
+ return rate;
44
+ };
45
+
46
+ exports.getPausedStates = getPausedStates;
47
+ exports.getPreviewFee = getPreviewFee;
48
+ //# sourceMappingURL=chunk-ZSFIOWWT.js.map
49
+ //# sourceMappingURL=chunk-ZSFIOWWT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/multi-call.ts","../src/api/teller.ts"],"names":["getClient","TellerAbi","AccountantAbi"],"mappings":";;;;;AA2CA,IAAM,kBAAkB,OAAO;AAAA,EAC7B,iBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAyB;AACvB,EAAA,MAAM,MAAA,GAAS,MAAMA,0BAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,SAAA,CAAU;AAAA,IACrC,SAAA,EAAW;AAAA,MACT;AAAA,QACE,GAAA,EAAKC,0BAAA;AAAA,QACL,OAAA,EAAS,aAAA;AAAA,QACT,YAAA,EAAc;AAAA,OAChB;AAAA,MACA;AAAA,QACE,GAAA,EAAKC,8BAAA;AAAA,QACL,OAAA,EAAS,iBAAA;AAAA,QACT,YAAA,EAAc;AAAA;AAChB;AACF,GACD,CAAA;AACD,EAAA,OAAO,OAAA;AACT;;;ACjCA,IAAM,gBAAgB,OAAO;AAAA,EAC3B,WAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAA2C;AACzC,EAAA,MAAM,MAAA,GAAS,MAAMF,0BAAA,CAAU,OAAO,CAAA;AAEtC,EAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,IACrC,GAAA,EAAKC,0BAAA;AAAA,IACL,OAAA,EAAS,eAAA;AAAA,IACT,YAAA,EAAc,YAAA;AAAA,IACd,IAAA,EAAM,CAAC,WAAA,EAAa,UAAU;AAAA,GAC/B,CAAA;AAED,EAAA,OAAO,IAAA;AACT","file":"chunk-ZSFIOWWT.js","sourcesContent":["import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\ntype RateInQuoteWithAssetDecimalsProps = {\n assetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\nconst getRateInQuoteWithAssetDecimals = async ({\n assetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: assetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [assetAddress],\n },\n ],\n });\n return results;\n};\n\ntype PausedStatusProps = {\n accountantAddress: Address;\n tellerAddress: Address;\n chainId: ChainId;\n};\n\nconst getPausedStates = async ({\n accountantAddress,\n tellerAddress,\n chainId,\n}: PausedStatusProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: TellerAbi,\n address: tellerAddress,\n functionName: \"isPaused\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"accountantState\",\n },\n ],\n });\n return results;\n};\n\nexport { getPausedStates, getRateInQuoteWithAssetDecimals };\n","/**\n * @fileoverview Functions for interacting with the Teller contract\n */\nimport type { Address } from \"viem\";\nimport { TellerAbi } from \"../abi/teller-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"./vault-config\";\n\n/**\n * Arguments required by the bridge contract for cross-chain transfers\n * @interface BridgeData\n * @property {number} chainSelector - Unique identifier for the destination chain\n * @property {Address} destinationChainReceiver - Address that will receive the bridged tokens\n * @property {Address} bridgeFeeToken - Token used to pay the bridge fee\n * @property {bigint} messageGas - Amount of gas allocated for the cross-chain message\n * @property {`0x${string}`} data - Additional data required for the bridge operation (hex encoded)\n */\nexport type BridgeData = {\n chainSelector: number;\n destinationChainReceiver: Address;\n bridgeFeeToken: Address;\n messageGas: bigint;\n data: `0x${string}`;\n};\n\ntype GetPreviewFeeProps = {\n shareAmount: bigint;\n bridgeData: BridgeData;\n contractAddress: Address;\n chainId: ChainId;\n};\n\nconst getPreviewFee = async ({\n shareAmount,\n bridgeData,\n contractAddress,\n chainId,\n}: GetPreviewFeeProps): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const rate = await client.readContract({\n abi: TellerAbi,\n address: contractAddress,\n functionName: \"previewFee\",\n args: [shareAmount, bridgeData],\n });\n\n return rate;\n};\n\nexport { getPreviewFee };\n"]}