@eulerxyz/euler-v2-sdk 0.1.0-beta
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/LICENSE +21 -0
- package/README.md +115 -0
- package/dist/src/entities/Account.d.ts +242 -0
- package/dist/src/entities/Account.js +509 -0
- package/dist/src/entities/Account.js.map +1 -0
- package/dist/src/entities/ERC4626Vault.d.ts +56 -0
- package/dist/src/entities/ERC4626Vault.js +94 -0
- package/dist/src/entities/ERC4626Vault.js.map +1 -0
- package/dist/src/entities/EVault.d.ts +159 -0
- package/dist/src/entities/EVault.js +224 -0
- package/dist/src/entities/EVault.js.map +1 -0
- package/dist/src/entities/EulerEarn.d.ts +69 -0
- package/dist/src/entities/EulerEarn.js +89 -0
- package/dist/src/entities/EulerEarn.js.map +1 -0
- package/dist/src/entities/EulerLabels.d.ts +53 -0
- package/dist/src/entities/EulerLabels.js +2 -0
- package/dist/src/entities/EulerLabels.js.map +1 -0
- package/dist/src/entities/SecuritizeCollateralVault.d.ts +16 -0
- package/dist/src/entities/SecuritizeCollateralVault.js +22 -0
- package/dist/src/entities/SecuritizeCollateralVault.js.map +1 -0
- package/dist/src/entities/Wallet.d.ts +27 -0
- package/dist/src/entities/Wallet.js +21 -0
- package/dist/src/entities/Wallet.js.map +1 -0
- package/dist/src/index.d.ts +43 -0
- package/dist/src/index.js +46 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/plugins/batchSimulation.d.ts +34 -0
- package/dist/src/plugins/batchSimulation.js +83 -0
- package/dist/src/plugins/batchSimulation.js.map +1 -0
- package/dist/src/plugins/index.d.ts +4 -0
- package/dist/src/plugins/index.js +5 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/keyring/index.d.ts +1 -0
- package/dist/src/plugins/keyring/index.js +2 -0
- package/dist/src/plugins/keyring/index.js.map +1 -0
- package/dist/src/plugins/keyring/keyringPlugin.d.ts +41 -0
- package/dist/src/plugins/keyring/keyringPlugin.js +182 -0
- package/dist/src/plugins/keyring/keyringPlugin.js.map +1 -0
- package/dist/src/plugins/pyth/index.d.ts +1 -0
- package/dist/src/plugins/pyth/index.js +2 -0
- package/dist/src/plugins/pyth/index.js.map +1 -0
- package/dist/src/plugins/pyth/pythPlugin.d.ts +29 -0
- package/dist/src/plugins/pyth/pythPlugin.js +190 -0
- package/dist/src/plugins/pyth/pythPlugin.js.map +1 -0
- package/dist/src/plugins/types.d.ts +39 -0
- package/dist/src/plugins/types.js +16 -0
- package/dist/src/plugins/types.js.map +1 -0
- package/dist/src/sdk/buildSDK.d.ts +77 -0
- package/dist/src/sdk/buildSDK.js +366 -0
- package/dist/src/sdk/buildSDK.js.map +1 -0
- package/dist/src/sdk/defaultConfig.d.ts +26 -0
- package/dist/src/sdk/defaultConfig.js +68 -0
- package/dist/src/sdk/defaultConfig.js.map +1 -0
- package/dist/src/sdk/sdk.d.ts +73 -0
- package/dist/src/sdk/sdk.js +67 -0
- package/dist/src/sdk/sdk.js.map +1 -0
- package/dist/src/services/abiService/abiService.d.ts +13 -0
- package/dist/src/services/abiService/abiService.js +25 -0
- package/dist/src/services/abiService/abiService.js.map +1 -0
- package/dist/src/services/abiService/index.d.ts +2 -0
- package/dist/src/services/abiService/index.js +2 -0
- package/dist/src/services/abiService/index.js.map +1 -0
- package/dist/src/services/accountService/accountService.d.ts +44 -0
- package/dist/src/services/accountService/accountService.js +193 -0
- package/dist/src/services/accountService/accountService.js.map +1 -0
- package/dist/src/services/accountService/accountServiceConfig.d.ts +15 -0
- package/dist/src/services/accountService/accountServiceConfig.js +2 -0
- package/dist/src/services/accountService/accountServiceConfig.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.d.ts +960 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.js +1230 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/abis/accountLensAbi.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.d.ts +17 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js +158 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountInfoConverter.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.d.ts +48 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.js +2 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountLensTypes.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.d.ts +210 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js +287 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountOnchainAdapter.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.d.ts +22 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.js +80 -0
- package/dist/src/services/accountService/adapters/accountOnchainAdapter/accountVaultsSubgraphAdapter.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountOutputNormalization.d.ts +8 -0
- package/dist/src/services/accountService/adapters/accountOutputNormalization.js +50 -0
- package/dist/src/services/accountService/adapters/accountOutputNormalization.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.d.ts +62 -0
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js +287 -0
- package/dist/src/services/accountService/adapters/accountV3Adapter/accountV3Adapter.js.map +1 -0
- package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.d.ts +1 -0
- package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.js +2 -0
- package/dist/src/services/accountService/adapters/accountVaultsSubgraphAdapter/accountVaultsSubgraphAdapter.js.map +1 -0
- package/dist/src/services/accountService/index.d.ts +5 -0
- package/dist/src/services/accountService/index.js +4 -0
- package/dist/src/services/accountService/index.js.map +1 -0
- package/dist/src/services/deploymentService/deploymentService.d.ts +116 -0
- package/dist/src/services/deploymentService/deploymentService.js +44 -0
- package/dist/src/services/deploymentService/deploymentService.js.map +1 -0
- package/dist/src/services/deploymentService/index.d.ts +2 -0
- package/dist/src/services/deploymentService/index.js +2 -0
- package/dist/src/services/deploymentService/index.js.map +1 -0
- package/dist/src/services/eulerLabelsService/eulerLabelsService.d.ts +54 -0
- package/dist/src/services/eulerLabelsService/eulerLabelsService.js +178 -0
- package/dist/src/services/eulerLabelsService/eulerLabelsService.js.map +1 -0
- package/dist/src/services/eulerLabelsService/index.d.ts +2 -0
- package/dist/src/services/eulerLabelsService/index.js +2 -0
- package/dist/src/services/eulerLabelsService/index.js.map +1 -0
- package/dist/src/services/executionService/abis/eVaultAbi.d.ts +1948 -0
- package/dist/src/services/executionService/abis/eVaultAbi.js +2517 -0
- package/dist/src/services/executionService/abis/eVaultAbi.js.map +1 -0
- package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.d.ts +1070 -0
- package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.js +1387 -0
- package/dist/src/services/executionService/abis/ethereumVaultConnectorAbi.js.map +1 -0
- package/dist/src/services/executionService/abis/permit2PermitAbi.d.ts +52 -0
- package/dist/src/services/executionService/abis/permit2PermitAbi.js +36 -0
- package/dist/src/services/executionService/abis/permit2PermitAbi.js.map +1 -0
- package/dist/src/services/executionService/abis/swapVerifierAbi.d.ts +139 -0
- package/dist/src/services/executionService/abis/swapVerifierAbi.js +70 -0
- package/dist/src/services/executionService/abis/swapVerifierAbi.js.map +1 -0
- package/dist/src/services/executionService/abis/swapperAbi.d.ts +270 -0
- package/dist/src/services/executionService/abis/swapperAbi.js +152 -0
- package/dist/src/services/executionService/abis/swapperAbi.js.map +1 -0
- package/dist/src/services/executionService/executionService.d.ts +619 -0
- package/dist/src/services/executionService/executionService.js +2037 -0
- package/dist/src/services/executionService/executionService.js.map +1 -0
- package/dist/src/services/executionService/executionServiceTypes.d.ts +423 -0
- package/dist/src/services/executionService/executionServiceTypes.js +14 -0
- package/dist/src/services/executionService/executionServiceTypes.js.map +1 -0
- package/dist/src/services/executionService/index.d.ts +7 -0
- package/dist/src/services/executionService/index.js +7 -0
- package/dist/src/services/executionService/index.js.map +1 -0
- package/dist/src/services/feeFlowService/feeFlowService.d.ts +22 -0
- package/dist/src/services/feeFlowService/feeFlowService.js +239 -0
- package/dist/src/services/feeFlowService/feeFlowService.js.map +1 -0
- package/dist/src/services/feeFlowService/feeFlowServiceTypes.d.ts +42 -0
- package/dist/src/services/feeFlowService/feeFlowServiceTypes.js +2 -0
- package/dist/src/services/feeFlowService/feeFlowServiceTypes.js.map +1 -0
- package/dist/src/services/feeFlowService/index.d.ts +2 -0
- package/dist/src/services/feeFlowService/index.js +2 -0
- package/dist/src/services/feeFlowService/index.js.map +1 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.d.ts +2 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.js +2 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/index.js.map +1 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.d.ts +21 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.js +125 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3Adapter.js.map +1 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.d.ts +30 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.js +2 -0
- package/dist/src/services/intrinsicApyService/adapters/intrinsicApyV3Adapter/intrinsicApyV3AdapterTypes.js.map +1 -0
- package/dist/src/services/intrinsicApyService/index.d.ts +4 -0
- package/dist/src/services/intrinsicApyService/index.js +3 -0
- package/dist/src/services/intrinsicApyService/index.js.map +1 -0
- package/dist/src/services/intrinsicApyService/intrinsicApyService.d.ts +28 -0
- package/dist/src/services/intrinsicApyService/intrinsicApyService.js +42 -0
- package/dist/src/services/intrinsicApyService/intrinsicApyService.js.map +1 -0
- package/dist/src/services/oracleAdapterService/index.d.ts +1 -0
- package/dist/src/services/oracleAdapterService/index.js +2 -0
- package/dist/src/services/oracleAdapterService/index.js.map +1 -0
- package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +40 -0
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js +65 -0
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -0
- package/dist/src/services/priceService/backendClient.d.ts +70 -0
- package/dist/src/services/priceService/backendClient.js +108 -0
- package/dist/src/services/priceService/backendClient.js.map +1 -0
- package/dist/src/services/priceService/index.d.ts +2 -0
- package/dist/src/services/priceService/index.js +3 -0
- package/dist/src/services/priceService/index.js.map +1 -0
- package/dist/src/services/priceService/priceService.d.ts +133 -0
- package/dist/src/services/priceService/priceService.js +499 -0
- package/dist/src/services/priceService/priceService.js.map +1 -0
- package/dist/src/services/priceService/utilsLensPriceAbi.d.ts +60 -0
- package/dist/src/services/priceService/utilsLensPriceAbi.js +31 -0
- package/dist/src/services/priceService/utilsLensPriceAbi.js.map +1 -0
- package/dist/src/services/providerService/index.d.ts +2 -0
- package/dist/src/services/providerService/index.js +2 -0
- package/dist/src/services/providerService/index.js.map +1 -0
- package/dist/src/services/providerService/providerService.d.ts +11 -0
- package/dist/src/services/providerService/providerService.js +61 -0
- package/dist/src/services/providerService/providerService.js.map +1 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.d.ts +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.js +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/index.js.map +1 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.d.ts +48 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js +391 -0
- package/dist/src/services/rewardsService/adapters/rewardsDirectAdapter/rewardsDirectAdapter.js.map +1 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.d.ts +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.js +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/index.js.map +1 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.d.ts +23 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js +296 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3Adapter.js.map +1 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.d.ts +110 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.js +2 -0
- package/dist/src/services/rewardsService/adapters/rewardsV3Adapter/rewardsV3AdapterTypes.js.map +1 -0
- package/dist/src/services/rewardsService/index.d.ts +5 -0
- package/dist/src/services/rewardsService/index.js +4 -0
- package/dist/src/services/rewardsService/index.js.map +1 -0
- package/dist/src/services/rewardsService/rewardsService.d.ts +34 -0
- package/dist/src/services/rewardsService/rewardsService.js +298 -0
- package/dist/src/services/rewardsService/rewardsService.js.map +1 -0
- package/dist/src/services/rewardsService/rewardsServiceTypes.d.ts +270 -0
- package/dist/src/services/rewardsService/rewardsServiceTypes.js +2 -0
- package/dist/src/services/rewardsService/rewardsServiceTypes.js.map +1 -0
- package/dist/src/services/simulationService/index.d.ts +2 -0
- package/dist/src/services/simulationService/index.js +2 -0
- package/dist/src/services/simulationService/index.js.map +1 -0
- package/dist/src/services/simulationService/simulationService.d.ts +88 -0
- package/dist/src/services/simulationService/simulationService.js +497 -0
- package/dist/src/services/simulationService/simulationService.js.map +1 -0
- package/dist/src/services/swapService/index.d.ts +3 -0
- package/dist/src/services/swapService/index.js +3 -0
- package/dist/src/services/swapService/index.js.map +1 -0
- package/dist/src/services/swapService/swapService.d.ts +121 -0
- package/dist/src/services/swapService/swapService.js +329 -0
- package/dist/src/services/swapService/swapService.js.map +1 -0
- package/dist/src/services/swapService/swapServiceTypes.d.ts +130 -0
- package/dist/src/services/swapService/swapServiceTypes.js +16 -0
- package/dist/src/services/swapService/swapServiceTypes.js.map +1 -0
- package/dist/src/services/swapService/swapVerifierAbi.d.ts +139 -0
- package/dist/src/services/swapService/swapVerifierAbi.js +178 -0
- package/dist/src/services/swapService/swapVerifierAbi.js.map +1 -0
- package/dist/src/services/tokenlistService/index.d.ts +3 -0
- package/dist/src/services/tokenlistService/index.js +2 -0
- package/dist/src/services/tokenlistService/index.js.map +1 -0
- package/dist/src/services/tokenlistService/tokenlistService.d.ts +31 -0
- package/dist/src/services/tokenlistService/tokenlistService.js +56 -0
- package/dist/src/services/tokenlistService/tokenlistService.js.map +1 -0
- package/dist/src/services/tokenlistService/tokenlistServiceTypes.d.ts +33 -0
- package/dist/src/services/tokenlistService/tokenlistServiceTypes.js +2 -0
- package/dist/src/services/tokenlistService/tokenlistServiceTypes.js.map +1 -0
- package/dist/src/services/vaults/IVaultService.d.ts +47 -0
- package/dist/src/services/vaults/IVaultService.js +2 -0
- package/dist/src/services/vaults/IVaultService.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.d.ts +1280 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.js +1640 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/abis/vaultLensAbi.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.d.ts +97 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.js +9 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultLensTypes.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.d.ts +141 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js +189 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/eVaultOnchainAdapter.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.d.ts +10 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js +454 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultOnchainAdapter/vaultInfoConverter.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.d.ts +25 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js +214 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3Adapter.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.d.ts +5 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js +795 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterConversions.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.d.ts +146 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.js +2 -0
- package/dist/src/services/vaults/eVaultService/adapters/eVaultV3Adapter/eVaultV3AdapterTypes.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/eVaultService.d.ts +74 -0
- package/dist/src/services/vaults/eVaultService/eVaultService.js +362 -0
- package/dist/src/services/vaults/eVaultService/eVaultService.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.d.ts +15 -0
- package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.js +2 -0
- package/dist/src/services/vaults/eVaultService/eVaultServiceConfig.js.map +1 -0
- package/dist/src/services/vaults/eVaultService/index.d.ts +5 -0
- package/dist/src/services/vaults/eVaultService/index.js +4 -0
- package/dist/src/services/vaults/eVaultService/index.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.d.ts +468 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.js +600 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/abis/eulerEarnVaultLensAbi.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.d.ts +10 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js +151 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnInfoConverter.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.d.ts +55 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.js +2 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnLensTypes.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.d.ts +109 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js +238 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnOnchainAdapter.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.d.ts +100 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js +373 -0
- package/dist/src/services/vaults/eulerEarnService/adapters/eulerEarnV3Adapter.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.d.ts +77 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js +298 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnService.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.d.ts +13 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.js +2 -0
- package/dist/src/services/vaults/eulerEarnService/eulerEarnServiceConfig.js.map +1 -0
- package/dist/src/services/vaults/eulerEarnService/index.d.ts +5 -0
- package/dist/src/services/vaults/eulerEarnService/index.js +4 -0
- package/dist/src/services/vaults/eulerEarnService/index.js.map +1 -0
- package/dist/src/services/vaults/index.d.ts +1 -0
- package/dist/src/services/vaults/index.js +2 -0
- package/dist/src/services/vaults/index.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.d.ts +22 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.js +18 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/erc4626EvcCollateralSecuritizeAbi.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.d.ts +64 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.js +30 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/abis/utilsLensAbi.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.d.ts +4 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js +53 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultInfoConverter.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.d.ts +16 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.js +2 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultLensTypes.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.d.ts +37 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js +113 -0
- package/dist/src/services/vaults/securitizeVaultService/adapters/securitizeVaultOnchainAdapter.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/index.d.ts +2 -0
- package/dist/src/services/vaults/securitizeVaultService/index.js +3 -0
- package/dist/src/services/vaults/securitizeVaultService/index.js.map +1 -0
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.d.ts +52 -0
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js +190 -0
- package/dist/src/services/vaults/securitizeVaultService/securitizeVaultService.js.map +1 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.d.ts +29 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.js +2 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/IVaultTypeAdapter.js.map +1 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.d.ts +18 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.js +82 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeSubgraphAdapter.js.map +1 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.d.ts +35 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.js +154 -0
- package/dist/src/services/vaults/vaultMetaService/adapters/VaultTypeV3Adapter.js.map +1 -0
- package/dist/src/services/vaults/vaultMetaService/index.d.ts +4 -0
- package/dist/src/services/vaults/vaultMetaService/index.js +4 -0
- package/dist/src/services/vaults/vaultMetaService/index.js.map +1 -0
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.d.ts +71 -0
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js +283 -0
- package/dist/src/services/vaults/vaultMetaService/vaultMetaService.js.map +1 -0
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.d.ts +20 -0
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.js +222 -0
- package/dist/src/services/walletService/adapters/walletOnchainAdapter.js.map +1 -0
- package/dist/src/services/walletService/index.d.ts +3 -0
- package/dist/src/services/walletService/index.js +2 -0
- package/dist/src/services/walletService/index.js.map +1 -0
- package/dist/src/services/walletService/walletService.d.ts +19 -0
- package/dist/src/services/walletService/walletService.js +37 -0
- package/dist/src/services/walletService/walletService.js.map +1 -0
- package/dist/src/utils/accountComputations.d.ts +96 -0
- package/dist/src/utils/accountComputations.js +297 -0
- package/dist/src/utils/accountComputations.js.map +1 -0
- package/dist/src/utils/batch.d.ts +2 -0
- package/dist/src/utils/batch.js +51 -0
- package/dist/src/utils/batch.js.map +1 -0
- package/dist/src/utils/buildQuery.d.ts +19 -0
- package/dist/src/utils/buildQuery.js +72 -0
- package/dist/src/utils/buildQuery.js.map +1 -0
- package/dist/src/utils/callBundler.d.ts +32 -0
- package/dist/src/utils/callBundler.js +93 -0
- package/dist/src/utils/callBundler.js.map +1 -0
- package/dist/src/utils/decodeSmartContractErrors.d.ts +13 -0
- package/dist/src/utils/decodeSmartContractErrors.js +311 -0
- package/dist/src/utils/decodeSmartContractErrors.js.map +1 -0
- package/dist/src/utils/entityDiagnostics.d.ts +28 -0
- package/dist/src/utils/entityDiagnostics.js +72 -0
- package/dist/src/utils/entityDiagnostics.js.map +1 -0
- package/dist/src/utils/eulerErrorSelectors.d.ts +226 -0
- package/dist/src/utils/eulerErrorSelectors.js +227 -0
- package/dist/src/utils/eulerErrorSelectors.js.map +1 -0
- package/dist/src/utils/irm.d.ts +60 -0
- package/dist/src/utils/irm.js +213 -0
- package/dist/src/utils/irm.js.map +1 -0
- package/dist/src/utils/normalization.d.ts +30 -0
- package/dist/src/utils/normalization.js +79 -0
- package/dist/src/utils/normalization.js.map +1 -0
- package/dist/src/utils/oracle.d.ts +107 -0
- package/dist/src/utils/oracle.js +437 -0
- package/dist/src/utils/oracle.js.map +1 -0
- package/dist/src/utils/parsing.d.ts +29 -0
- package/dist/src/utils/parsing.js +199 -0
- package/dist/src/utils/parsing.js.map +1 -0
- package/dist/src/utils/queryNames.d.ts +28 -0
- package/dist/src/utils/queryNames.js +2 -0
- package/dist/src/utils/queryNames.js.map +1 -0
- package/dist/src/utils/stateOverrides/accessList.d.ts +14 -0
- package/dist/src/utils/stateOverrides/accessList.js +24 -0
- package/dist/src/utils/stateOverrides/accessList.js.map +1 -0
- package/dist/src/utils/stateOverrides/approvalOverrides.d.ts +20 -0
- package/dist/src/utils/stateOverrides/approvalOverrides.js +111 -0
- package/dist/src/utils/stateOverrides/approvalOverrides.js.map +1 -0
- package/dist/src/utils/stateOverrides/balanceOverrides.d.ts +13 -0
- package/dist/src/utils/stateOverrides/balanceOverrides.js +145 -0
- package/dist/src/utils/stateOverrides/balanceOverrides.js.map +1 -0
- package/dist/src/utils/stateOverrides/getStateOverrides.d.ts +31 -0
- package/dist/src/utils/stateOverrides/getStateOverrides.js +86 -0
- package/dist/src/utils/stateOverrides/getStateOverrides.js.map +1 -0
- package/dist/src/utils/stateOverrides/index.d.ts +4 -0
- package/dist/src/utils/stateOverrides/index.js +5 -0
- package/dist/src/utils/stateOverrides/index.js.map +1 -0
- package/dist/src/utils/stateOverrides/mergeStateOverrides.d.ts +6 -0
- package/dist/src/utils/stateOverrides/mergeStateOverrides.js +40 -0
- package/dist/src/utils/stateOverrides/mergeStateOverrides.js.map +1 -0
- package/dist/src/utils/stateOverrides/types.d.ts +5 -0
- package/dist/src/utils/stateOverrides/types.js +2 -0
- package/dist/src/utils/stateOverrides/types.js.map +1 -0
- package/dist/src/utils/subAccounts.d.ts +6 -0
- package/dist/src/utils/subAccounts.js +24 -0
- package/dist/src/utils/subAccounts.js.map +1 -0
- package/dist/src/utils/types.d.ts +20 -0
- package/dist/src/utils/types.js +8 -0
- package/dist/src/utils/types.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { SwapQuote, SwapQuoteRequest, SwapsApiResponse, SwapProvidersApiResponse, GetRepayQuoteArgs, GetDepositQuoteArgs } from "./swapServiceTypes.js";
|
|
2
|
+
import { type BuildQueryFn } from "../../utils/buildQuery.js";
|
|
3
|
+
export interface SwapServiceConfig {
|
|
4
|
+
swapApiUrl: string;
|
|
5
|
+
defaultDeadline?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ISwapService {
|
|
8
|
+
/** Fetches raw swap quotes from the API. Prefer fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows. */
|
|
9
|
+
fetchSwapQuotes(args: SwapQuoteRequest): Promise<SwapQuote[]>;
|
|
10
|
+
/** Fetches swap quotes for repaying debt by swapping collateral (withdraw → swap → repay). */
|
|
11
|
+
fetchRepayQuotes(args: GetRepayQuoteArgs): Promise<SwapQuote[]>;
|
|
12
|
+
/** Fetches swap quotes for swapping collateral between vaults (withdraw → swap → deposit). */
|
|
13
|
+
fetchDepositQuote(args: GetDepositQuoteArgs): Promise<SwapQuote[]>;
|
|
14
|
+
/** Fetches available swap providers for a given chain. */
|
|
15
|
+
fetchProviders(chainId: number): Promise<string[]>;
|
|
16
|
+
}
|
|
17
|
+
export declare class SwapService implements ISwapService {
|
|
18
|
+
private readonly config;
|
|
19
|
+
constructor(config: SwapServiceConfig, buildQuery?: BuildQueryFn);
|
|
20
|
+
querySwapQuotes: (url: string) => Promise<SwapsApiResponse>;
|
|
21
|
+
setQuerySwapQuotes(fn: typeof this.querySwapQuotes): void;
|
|
22
|
+
querySwapProviders: (url: string) => Promise<SwapProvidersApiResponse>;
|
|
23
|
+
setQuerySwapProviders(fn: typeof this.querySwapProviders): void;
|
|
24
|
+
/**
|
|
25
|
+
* Fetches swap quotes from the swap API for a given token pair and amount.
|
|
26
|
+
* Validates verifier data for each quote. Use fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows.
|
|
27
|
+
*
|
|
28
|
+
* @param request - Swap quote request
|
|
29
|
+
* @param request.chainId - Chain ID
|
|
30
|
+
* @param request.tokenIn - Token to sell (input)
|
|
31
|
+
* @param request.tokenOut - Token to buy (output); must differ from tokenIn
|
|
32
|
+
* @param request.accountIn - Sub-account providing the input (e.g. withdrawing from vaultIn)
|
|
33
|
+
* @param request.accountOut - Sub-account receiving the output (e.g. repay target or collateral receiver)
|
|
34
|
+
* @param request.amount - Exact-in: amount to sell; exact-out: amount to buy; exact-out repay: estimated amount to buy
|
|
35
|
+
* @param request.vaultIn - Vault to withdraw from (for returning unused input)
|
|
36
|
+
* @param request.receiver - Vault that receives the swap output (e.g. liability vault for repay, destination vault for deposit)
|
|
37
|
+
* @param request.origin - EOA sending the transaction (required, cannot be zero address)
|
|
38
|
+
* @param request.slippage - Slippage in percent (e.g. 1 = 1%); must be between 0 and 50
|
|
39
|
+
* @param request.swapperMode - EXACT_IN (0), EXACT_OUT (1), or TARGET_DEBT (2) for repay
|
|
40
|
+
* @param request.isRepay - If true, quote is for repaying debt (verify type debtMax)
|
|
41
|
+
* @param request.targetDebt - Target debt after repay (used when swapperMode is TARGET_DEBT)
|
|
42
|
+
* @param request.currentDebt - Current debt of the account (required when isRepay is true)
|
|
43
|
+
* @param request.deadline - Quote deadline timestamp in seconds (defaults to config defaultDeadline from now)
|
|
44
|
+
* @param request.dustAccount - Account receiving dust from over-swap repays (defaults to origin)
|
|
45
|
+
* @param request.provider - Optional preselected provider (see fetchProviders)
|
|
46
|
+
* @returns Promise of array of swap quotes (amounts, swap calldata, verifier calldata). Throws if tokenIn === tokenOut, origin is zero, or API/verifier validation fails.
|
|
47
|
+
*/
|
|
48
|
+
fetchSwapQuotes(request: SwapQuoteRequest): Promise<SwapQuote[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Fetches available swap providers for a given chain.
|
|
51
|
+
* The result is static per chain and can be cached for a long time.
|
|
52
|
+
*
|
|
53
|
+
* @param chainId - Chain ID
|
|
54
|
+
* @returns Promise of array of provider name strings
|
|
55
|
+
*/
|
|
56
|
+
fetchProviders(chainId: number): Promise<string[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Builds request parameters for the swap API
|
|
59
|
+
*/
|
|
60
|
+
private buildRequestParams;
|
|
61
|
+
/**
|
|
62
|
+
* Validates that the verifier data matches what we expect
|
|
63
|
+
* This is a security measure to ensure the swap payload hasn't been tampered with
|
|
64
|
+
*/
|
|
65
|
+
private validateVerifierData;
|
|
66
|
+
/**
|
|
67
|
+
* Fetches swap quotes for repaying debt by swapping collateral (e.g. withdraw collateral → swap → repay).
|
|
68
|
+
* Delegates to fetchSwapQuotes with isRepay true. fromAsset and liabilityAsset must differ.
|
|
69
|
+
*
|
|
70
|
+
* @param args - Repay quote arguments
|
|
71
|
+
* @param args.chainId - Chain ID
|
|
72
|
+
* @param args.fromVault - Vault to withdraw collateral from (source of swap input)
|
|
73
|
+
* @param args.fromAsset - Underlying asset of fromVault (tokenIn for the swap)
|
|
74
|
+
* @param args.fromAccount - Sub-account that holds the collateral in fromVault
|
|
75
|
+
* @param args.liabilityVault - Vault to repay debt to (receiver of swap output)
|
|
76
|
+
* @param args.liabilityAsset - Underlying asset of liabilityVault (tokenOut for the swap)
|
|
77
|
+
* @param args.currentDebt - Current debt of the account being repaid (must be > 0)
|
|
78
|
+
* @param args.toAccount - Sub-account whose debt is repaid (accountOut)
|
|
79
|
+
* @param args.origin - EOA sending the transaction
|
|
80
|
+
* @param args.swapperMode - EXACT_IN (sell fixed collateral amount) or TARGET_DEBT (repay toward target debt)
|
|
81
|
+
* @param args.slippage - Slippage in percent (0–50)
|
|
82
|
+
* @param args.collateralAmount - In EXACT_IN mode: amount of collateral to sell; required in EXACT_IN
|
|
83
|
+
* @param args.liabilityAmount - In TARGET_DEBT mode: amount of debt to repay; set to currentDebt for full repay
|
|
84
|
+
* @param args.deadline - Quote deadline timestamp in seconds (optional)
|
|
85
|
+
* @returns Promise of array of swap quotes for repay (verify type debtMax). Throws if currentDebt <= 0, fromAsset === liabilityAsset, or no quotes.
|
|
86
|
+
*/
|
|
87
|
+
fetchRepayQuotes(args: GetRepayQuoteArgs): Promise<SwapQuote[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Fetches swap quotes for swapping one asset to another and depositing into a destination vault.
|
|
90
|
+
* Delegates to fetchSwapQuotes with isRepay false and EXACT_IN mode.
|
|
91
|
+
*
|
|
92
|
+
* The swapped output tokens are always deposited into `toVault` for `toAccount` (verify type skimMin).
|
|
93
|
+
* Use `fetchSwapQuotes` directly with `transferOutputToReceiver` if you need to transfer output
|
|
94
|
+
* tokens to an address instead of depositing into a vault.
|
|
95
|
+
*
|
|
96
|
+
* `unusedInputReceiver` can redirect leftover input tokens to a wallet address instead of
|
|
97
|
+
* depositing them back into `fromVault` for `fromAccount`. When set, `fromVault` and
|
|
98
|
+
* `fromAccount` should be zero address.
|
|
99
|
+
*
|
|
100
|
+
* `skipSweepDepositOut` leaves the output tokens in the Swapper contract instead of depositing.
|
|
101
|
+
* Useful when the Swapper is the receiver and further processing is needed.
|
|
102
|
+
*
|
|
103
|
+
* @param args - Deposit/collateral-swap quote arguments
|
|
104
|
+
* @param args.chainId - Chain ID
|
|
105
|
+
* @param args.fromVault - Vault to withdraw collateral from (source). Use zero address when `unusedInputReceiver` is set.
|
|
106
|
+
* @param args.toVault - Vault to deposit swapped tokens into (destination, receiver)
|
|
107
|
+
* @param args.fromAccount - Sub-account that holds the collateral in fromVault. Use zero address when `unusedInputReceiver` is set.
|
|
108
|
+
* @param args.toAccount - Sub-account that will hold the new collateral in toVault
|
|
109
|
+
* @param args.fromAsset - Underlying asset of fromVault (tokenIn)
|
|
110
|
+
* @param args.toAsset - Underlying asset of toVault (tokenOut)
|
|
111
|
+
* @param args.amount - Amount of fromAsset to swap (exact-in)
|
|
112
|
+
* @param args.origin - EOA sending the transaction
|
|
113
|
+
* @param args.slippage - Slippage in percent (0–50)
|
|
114
|
+
* @param args.deadline - Quote deadline timestamp in seconds (optional)
|
|
115
|
+
* @param args.unusedInputReceiver - Address to receive unused input tokens instead of depositing back to fromVault/fromAccount (optional)
|
|
116
|
+
* @param args.skipSweepDepositOut - If true, output tokens are left in the Swapper (no deposit of output). (optional)
|
|
117
|
+
* @returns Promise of array of swap quotes (verify type skimMin). Throws if slippage invalid or no quotes.
|
|
118
|
+
*/
|
|
119
|
+
fetchDepositQuote(args: GetDepositQuoteArgs): Promise<SwapQuote[]>;
|
|
120
|
+
private validateSlippage;
|
|
121
|
+
}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { encodeFunctionData, getAddress } from "viem";
|
|
2
|
+
import { SwapperMode } from "./swapServiceTypes.js";
|
|
3
|
+
import { swapVerifierAbi } from "./swapVerifierAbi.js";
|
|
4
|
+
import { applyBuildQuery } from "../../utils/buildQuery.js";
|
|
5
|
+
const DEFAULT_DEADLINE = 1800; // 30 minutes
|
|
6
|
+
const MAX_SLIPPAGE = 50;
|
|
7
|
+
export class SwapService {
|
|
8
|
+
config;
|
|
9
|
+
constructor(config, buildQuery) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
if (!config.swapApiUrl) {
|
|
12
|
+
throw new Error("Swap API URL is required");
|
|
13
|
+
}
|
|
14
|
+
if (buildQuery)
|
|
15
|
+
applyBuildQuery(this, buildQuery);
|
|
16
|
+
}
|
|
17
|
+
querySwapQuotes = async (url) => {
|
|
18
|
+
const response = await fetch(url);
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
const errorText = await response.text();
|
|
21
|
+
throw new Error(`Swap API request failed: ${response.status} ${errorText}`);
|
|
22
|
+
}
|
|
23
|
+
return response.json();
|
|
24
|
+
};
|
|
25
|
+
setQuerySwapQuotes(fn) {
|
|
26
|
+
this.querySwapQuotes = fn;
|
|
27
|
+
}
|
|
28
|
+
querySwapProviders = async (url) => {
|
|
29
|
+
const response = await fetch(url);
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
const errorText = await response.text();
|
|
32
|
+
throw new Error(`Swap API providers request failed: ${response.status} ${errorText}`);
|
|
33
|
+
}
|
|
34
|
+
return response.json();
|
|
35
|
+
};
|
|
36
|
+
setQuerySwapProviders(fn) {
|
|
37
|
+
this.querySwapProviders = fn;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Fetches swap quotes from the swap API for a given token pair and amount.
|
|
41
|
+
* Validates verifier data for each quote. Use fetchRepayQuotes or fetchDepositQuote for repay/collateral-swap flows.
|
|
42
|
+
*
|
|
43
|
+
* @param request - Swap quote request
|
|
44
|
+
* @param request.chainId - Chain ID
|
|
45
|
+
* @param request.tokenIn - Token to sell (input)
|
|
46
|
+
* @param request.tokenOut - Token to buy (output); must differ from tokenIn
|
|
47
|
+
* @param request.accountIn - Sub-account providing the input (e.g. withdrawing from vaultIn)
|
|
48
|
+
* @param request.accountOut - Sub-account receiving the output (e.g. repay target or collateral receiver)
|
|
49
|
+
* @param request.amount - Exact-in: amount to sell; exact-out: amount to buy; exact-out repay: estimated amount to buy
|
|
50
|
+
* @param request.vaultIn - Vault to withdraw from (for returning unused input)
|
|
51
|
+
* @param request.receiver - Vault that receives the swap output (e.g. liability vault for repay, destination vault for deposit)
|
|
52
|
+
* @param request.origin - EOA sending the transaction (required, cannot be zero address)
|
|
53
|
+
* @param request.slippage - Slippage in percent (e.g. 1 = 1%); must be between 0 and 50
|
|
54
|
+
* @param request.swapperMode - EXACT_IN (0), EXACT_OUT (1), or TARGET_DEBT (2) for repay
|
|
55
|
+
* @param request.isRepay - If true, quote is for repaying debt (verify type debtMax)
|
|
56
|
+
* @param request.targetDebt - Target debt after repay (used when swapperMode is TARGET_DEBT)
|
|
57
|
+
* @param request.currentDebt - Current debt of the account (required when isRepay is true)
|
|
58
|
+
* @param request.deadline - Quote deadline timestamp in seconds (defaults to config defaultDeadline from now)
|
|
59
|
+
* @param request.dustAccount - Account receiving dust from over-swap repays (defaults to origin)
|
|
60
|
+
* @param request.provider - Optional preselected provider (see fetchProviders)
|
|
61
|
+
* @returns Promise of array of swap quotes (amounts, swap calldata, verifier calldata). Throws if tokenIn === tokenOut, origin is zero, or API/verifier validation fails.
|
|
62
|
+
*/
|
|
63
|
+
async fetchSwapQuotes(request) {
|
|
64
|
+
if (request.tokenIn === request.tokenOut) {
|
|
65
|
+
throw new Error("Token in and token out cannot be the same");
|
|
66
|
+
}
|
|
67
|
+
if (!request.origin ||
|
|
68
|
+
request.origin === "0x0000000000000000000000000000000000000000") {
|
|
69
|
+
throw new Error("origin must be provided for swap repay");
|
|
70
|
+
}
|
|
71
|
+
const params = this.buildRequestParams(request);
|
|
72
|
+
const searchParams = new URLSearchParams(params);
|
|
73
|
+
const jsonData = await this.querySwapQuotes(`${this.config.swapApiUrl}/swaps?${searchParams.toString()}`);
|
|
74
|
+
if (!jsonData.success) {
|
|
75
|
+
throw new Error("Swap API returned unsuccessful response");
|
|
76
|
+
}
|
|
77
|
+
// Validate verifier data for each quote
|
|
78
|
+
for (const quote of jsonData.data) {
|
|
79
|
+
this.validateVerifierData(request, quote);
|
|
80
|
+
}
|
|
81
|
+
return jsonData.data;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Fetches available swap providers for a given chain.
|
|
85
|
+
* The result is static per chain and can be cached for a long time.
|
|
86
|
+
*
|
|
87
|
+
* @param chainId - Chain ID
|
|
88
|
+
* @returns Promise of array of provider name strings
|
|
89
|
+
*/
|
|
90
|
+
async fetchProviders(chainId) {
|
|
91
|
+
const params = new URLSearchParams({ chainId: chainId.toString() });
|
|
92
|
+
const jsonData = await this.querySwapProviders(`${this.config.swapApiUrl}/providers?${params.toString()}`);
|
|
93
|
+
if (!jsonData.success) {
|
|
94
|
+
throw new Error("Swap API providers returned unsuccessful response");
|
|
95
|
+
}
|
|
96
|
+
return jsonData.data;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Builds request parameters for the swap API
|
|
100
|
+
*/
|
|
101
|
+
buildRequestParams(request) {
|
|
102
|
+
const deadline = request.deadline ||
|
|
103
|
+
Math.floor(Date.now() / 1000) +
|
|
104
|
+
(this.config.defaultDeadline || DEFAULT_DEADLINE);
|
|
105
|
+
const params = {
|
|
106
|
+
chainId: request.chainId.toString(),
|
|
107
|
+
tokenIn: getAddress(request.tokenIn),
|
|
108
|
+
tokenOut: getAddress(request.tokenOut),
|
|
109
|
+
amount: request.amount.toString(),
|
|
110
|
+
targetDebt: request.targetDebt.toString() || "0",
|
|
111
|
+
currentDebt: request.currentDebt.toString() || "0",
|
|
112
|
+
receiver: getAddress(request.receiver),
|
|
113
|
+
vaultIn: getAddress(request.vaultIn),
|
|
114
|
+
origin: getAddress(request.origin),
|
|
115
|
+
accountIn: getAddress(request.accountIn),
|
|
116
|
+
accountOut: getAddress(request.accountOut),
|
|
117
|
+
slippage: request.slippage.toString() || "0",
|
|
118
|
+
deadline: deadline.toString(),
|
|
119
|
+
swapperMode: request.swapperMode.toString() || SwapperMode.EXACT_IN.toString(),
|
|
120
|
+
dustAccount: request.dustAccount
|
|
121
|
+
? getAddress(request.dustAccount)
|
|
122
|
+
: getAddress(request.origin),
|
|
123
|
+
isRepay: request.isRepay ? "true" : "false",
|
|
124
|
+
};
|
|
125
|
+
if (request.provider) {
|
|
126
|
+
params.provider = request.provider;
|
|
127
|
+
}
|
|
128
|
+
if (request.unusedInputReceiver) {
|
|
129
|
+
params.unusedInputReceiver = getAddress(request.unusedInputReceiver);
|
|
130
|
+
}
|
|
131
|
+
if (request.transferOutputToReceiver) {
|
|
132
|
+
params.transferOutputToReceiver = "true";
|
|
133
|
+
}
|
|
134
|
+
if (request.skipSweepDepositOut) {
|
|
135
|
+
params.skipSweepDepositOut = "true";
|
|
136
|
+
}
|
|
137
|
+
return params;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Validates that the verifier data matches what we expect
|
|
141
|
+
* This is a security measure to ensure the swap payload hasn't been tampered with
|
|
142
|
+
*/
|
|
143
|
+
validateVerifierData(request, quote) {
|
|
144
|
+
if (!request.receiver || !request.accountOut) {
|
|
145
|
+
throw new Error("Missing swap params for verification");
|
|
146
|
+
}
|
|
147
|
+
let functionName;
|
|
148
|
+
let amount;
|
|
149
|
+
let firstArg; // vault or asset depending on verification type
|
|
150
|
+
let secondArg; // receiver or account depending on verification type
|
|
151
|
+
const adjustForInterest = (debtAmount) => (debtAmount * 10001n) / 10000n;
|
|
152
|
+
if (request.isRepay) {
|
|
153
|
+
functionName = "verifyDebtMax";
|
|
154
|
+
firstArg = request.receiver;
|
|
155
|
+
secondArg = request.accountOut;
|
|
156
|
+
if (request.swapperMode === SwapperMode.TARGET_DEBT) {
|
|
157
|
+
amount = request.targetDebt || 0n;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
amount = (request.currentDebt || 0n) - BigInt(quote.amountOutMin);
|
|
161
|
+
if (amount < 0n)
|
|
162
|
+
amount = 0n;
|
|
163
|
+
amount = adjustForInterest(amount);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (request.transferOutputToReceiver) {
|
|
167
|
+
functionName = "verifyAmountMinAndTransfer";
|
|
168
|
+
firstArg = request.tokenOut;
|
|
169
|
+
secondArg = request.receiver;
|
|
170
|
+
amount = BigInt(quote.amountOutMin);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
functionName = "verifyAmountMinAndSkim";
|
|
174
|
+
firstArg = request.receiver;
|
|
175
|
+
secondArg = request.accountOut;
|
|
176
|
+
amount = BigInt(quote.amountOutMin);
|
|
177
|
+
}
|
|
178
|
+
const deadline = request.deadline ||
|
|
179
|
+
Math.floor(Date.now() / 1000) +
|
|
180
|
+
(this.config.defaultDeadline || DEFAULT_DEADLINE);
|
|
181
|
+
const expectedVerifierData = encodeFunctionData({
|
|
182
|
+
abi: swapVerifierAbi,
|
|
183
|
+
functionName,
|
|
184
|
+
args: [firstArg, secondArg, amount, BigInt(deadline)],
|
|
185
|
+
});
|
|
186
|
+
if (quote.verify.verifierData !== expectedVerifierData) {
|
|
187
|
+
throw new Error("SwapVerifier data mismatch");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Fetches swap quotes for repaying debt by swapping collateral (e.g. withdraw collateral → swap → repay).
|
|
192
|
+
* Delegates to fetchSwapQuotes with isRepay true. fromAsset and liabilityAsset must differ.
|
|
193
|
+
*
|
|
194
|
+
* @param args - Repay quote arguments
|
|
195
|
+
* @param args.chainId - Chain ID
|
|
196
|
+
* @param args.fromVault - Vault to withdraw collateral from (source of swap input)
|
|
197
|
+
* @param args.fromAsset - Underlying asset of fromVault (tokenIn for the swap)
|
|
198
|
+
* @param args.fromAccount - Sub-account that holds the collateral in fromVault
|
|
199
|
+
* @param args.liabilityVault - Vault to repay debt to (receiver of swap output)
|
|
200
|
+
* @param args.liabilityAsset - Underlying asset of liabilityVault (tokenOut for the swap)
|
|
201
|
+
* @param args.currentDebt - Current debt of the account being repaid (must be > 0)
|
|
202
|
+
* @param args.toAccount - Sub-account whose debt is repaid (accountOut)
|
|
203
|
+
* @param args.origin - EOA sending the transaction
|
|
204
|
+
* @param args.swapperMode - EXACT_IN (sell fixed collateral amount) or TARGET_DEBT (repay toward target debt)
|
|
205
|
+
* @param args.slippage - Slippage in percent (0–50)
|
|
206
|
+
* @param args.collateralAmount - In EXACT_IN mode: amount of collateral to sell; required in EXACT_IN
|
|
207
|
+
* @param args.liabilityAmount - In TARGET_DEBT mode: amount of debt to repay; set to currentDebt for full repay
|
|
208
|
+
* @param args.deadline - Quote deadline timestamp in seconds (optional)
|
|
209
|
+
* @returns Promise of array of swap quotes for repay (verify type debtMax). Throws if currentDebt <= 0, fromAsset === liabilityAsset, or no quotes.
|
|
210
|
+
*/
|
|
211
|
+
async fetchRepayQuotes(args) {
|
|
212
|
+
const { chainId, fromVault, fromAsset, fromAccount, liabilityVault, liabilityAsset, liabilityAmount, currentDebt, toAccount, origin, swapperMode, slippage, collateralAmount, deadline, } = args;
|
|
213
|
+
if (currentDebt <= 0n) {
|
|
214
|
+
throw new Error("currentDebt must be provided for swap repay");
|
|
215
|
+
}
|
|
216
|
+
if (fromAsset === liabilityAsset) {
|
|
217
|
+
throw new Error("Swap repay requires different from and liability assets");
|
|
218
|
+
}
|
|
219
|
+
this.validateSlippage(slippage);
|
|
220
|
+
let amount;
|
|
221
|
+
let targetDebt = 0n;
|
|
222
|
+
if (swapperMode === SwapperMode.EXACT_IN) {
|
|
223
|
+
if (collateralAmount === undefined) {
|
|
224
|
+
throw new Error("collateralAmount must be provided for exact-in swap repay");
|
|
225
|
+
}
|
|
226
|
+
amount = collateralAmount;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
if (liabilityAmount === undefined) {
|
|
230
|
+
throw new Error("liabilityAmount must be provided for target-debt swap repay");
|
|
231
|
+
}
|
|
232
|
+
// TODO add to docs or change api, liabilityAmount is ignored if isMax is true
|
|
233
|
+
targetDebt =
|
|
234
|
+
currentDebt === liabilityAmount ? 0n : currentDebt - liabilityAmount;
|
|
235
|
+
amount =
|
|
236
|
+
currentDebt === liabilityAmount
|
|
237
|
+
? currentDebt - targetDebt
|
|
238
|
+
: liabilityAmount;
|
|
239
|
+
}
|
|
240
|
+
const quotes = await this.fetchSwapQuotes({
|
|
241
|
+
chainId,
|
|
242
|
+
tokenIn: fromAsset,
|
|
243
|
+
tokenOut: liabilityAsset,
|
|
244
|
+
accountIn: fromAccount,
|
|
245
|
+
accountOut: toAccount,
|
|
246
|
+
amount,
|
|
247
|
+
vaultIn: fromVault,
|
|
248
|
+
receiver: liabilityVault,
|
|
249
|
+
origin,
|
|
250
|
+
slippage,
|
|
251
|
+
swapperMode,
|
|
252
|
+
isRepay: true,
|
|
253
|
+
targetDebt,
|
|
254
|
+
currentDebt,
|
|
255
|
+
deadline: deadline ?? 0,
|
|
256
|
+
unusedInputReceiver: args.unusedInputReceiver,
|
|
257
|
+
provider: args.provider,
|
|
258
|
+
});
|
|
259
|
+
if (quotes.length === 0) {
|
|
260
|
+
throw new Error("No swap quotes available");
|
|
261
|
+
}
|
|
262
|
+
return quotes;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Fetches swap quotes for swapping one asset to another and depositing into a destination vault.
|
|
266
|
+
* Delegates to fetchSwapQuotes with isRepay false and EXACT_IN mode.
|
|
267
|
+
*
|
|
268
|
+
* The swapped output tokens are always deposited into `toVault` for `toAccount` (verify type skimMin).
|
|
269
|
+
* Use `fetchSwapQuotes` directly with `transferOutputToReceiver` if you need to transfer output
|
|
270
|
+
* tokens to an address instead of depositing into a vault.
|
|
271
|
+
*
|
|
272
|
+
* `unusedInputReceiver` can redirect leftover input tokens to a wallet address instead of
|
|
273
|
+
* depositing them back into `fromVault` for `fromAccount`. When set, `fromVault` and
|
|
274
|
+
* `fromAccount` should be zero address.
|
|
275
|
+
*
|
|
276
|
+
* `skipSweepDepositOut` leaves the output tokens in the Swapper contract instead of depositing.
|
|
277
|
+
* Useful when the Swapper is the receiver and further processing is needed.
|
|
278
|
+
*
|
|
279
|
+
* @param args - Deposit/collateral-swap quote arguments
|
|
280
|
+
* @param args.chainId - Chain ID
|
|
281
|
+
* @param args.fromVault - Vault to withdraw collateral from (source). Use zero address when `unusedInputReceiver` is set.
|
|
282
|
+
* @param args.toVault - Vault to deposit swapped tokens into (destination, receiver)
|
|
283
|
+
* @param args.fromAccount - Sub-account that holds the collateral in fromVault. Use zero address when `unusedInputReceiver` is set.
|
|
284
|
+
* @param args.toAccount - Sub-account that will hold the new collateral in toVault
|
|
285
|
+
* @param args.fromAsset - Underlying asset of fromVault (tokenIn)
|
|
286
|
+
* @param args.toAsset - Underlying asset of toVault (tokenOut)
|
|
287
|
+
* @param args.amount - Amount of fromAsset to swap (exact-in)
|
|
288
|
+
* @param args.origin - EOA sending the transaction
|
|
289
|
+
* @param args.slippage - Slippage in percent (0–50)
|
|
290
|
+
* @param args.deadline - Quote deadline timestamp in seconds (optional)
|
|
291
|
+
* @param args.unusedInputReceiver - Address to receive unused input tokens instead of depositing back to fromVault/fromAccount (optional)
|
|
292
|
+
* @param args.skipSweepDepositOut - If true, output tokens are left in the Swapper (no deposit of output). (optional)
|
|
293
|
+
* @returns Promise of array of swap quotes (verify type skimMin). Throws if slippage invalid or no quotes.
|
|
294
|
+
*/
|
|
295
|
+
async fetchDepositQuote(args) {
|
|
296
|
+
const { chainId, fromVault, toVault, fromAccount, toAccount, fromAsset, toAsset, amount, origin, slippage, deadline, } = args;
|
|
297
|
+
this.validateSlippage(slippage);
|
|
298
|
+
const quotes = await this.fetchSwapQuotes({
|
|
299
|
+
chainId,
|
|
300
|
+
tokenIn: fromAsset,
|
|
301
|
+
tokenOut: toAsset,
|
|
302
|
+
accountIn: fromAccount,
|
|
303
|
+
accountOut: toAccount,
|
|
304
|
+
amount,
|
|
305
|
+
vaultIn: fromVault,
|
|
306
|
+
receiver: toVault,
|
|
307
|
+
origin,
|
|
308
|
+
slippage,
|
|
309
|
+
swapperMode: SwapperMode.EXACT_IN,
|
|
310
|
+
isRepay: false,
|
|
311
|
+
targetDebt: 0n,
|
|
312
|
+
currentDebt: 0n,
|
|
313
|
+
deadline: deadline ?? 0,
|
|
314
|
+
unusedInputReceiver: args.unusedInputReceiver,
|
|
315
|
+
skipSweepDepositOut: args.skipSweepDepositOut,
|
|
316
|
+
provider: args.provider,
|
|
317
|
+
});
|
|
318
|
+
if (quotes.length === 0) {
|
|
319
|
+
throw new Error("No swap quotes available");
|
|
320
|
+
}
|
|
321
|
+
return quotes;
|
|
322
|
+
}
|
|
323
|
+
validateSlippage(slippage) {
|
|
324
|
+
if (slippage === undefined || slippage > MAX_SLIPPAGE || slippage < 0) {
|
|
325
|
+
throw new Error("Valid slippage between 0 and 50% must be provided for swap");
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=swapService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapService.js","sourceRoot":"","sources":["../../../../src/services/swapService/swapService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { Address, Hex } from "viem";
|
|
2
|
+
export declare enum SwapperMode {
|
|
3
|
+
EXACT_IN = 0,
|
|
4
|
+
EXACT_OUT = 1,
|
|
5
|
+
TARGET_DEBT = 2
|
|
6
|
+
}
|
|
7
|
+
export declare enum SwapVerificationType {
|
|
8
|
+
SkimMin = "skimMin",
|
|
9
|
+
DebtMax = "debtMax",
|
|
10
|
+
TransferMin = "transferMin"
|
|
11
|
+
}
|
|
12
|
+
export interface SwapQuoteRequest {
|
|
13
|
+
chainId: number;
|
|
14
|
+
tokenIn: Address;
|
|
15
|
+
tokenOut: Address;
|
|
16
|
+
accountIn: Address;
|
|
17
|
+
accountOut: Address;
|
|
18
|
+
amount: bigint;
|
|
19
|
+
vaultIn: Address;
|
|
20
|
+
receiver: Address;
|
|
21
|
+
origin: Address;
|
|
22
|
+
slippage: number;
|
|
23
|
+
swapperMode: SwapperMode;
|
|
24
|
+
isRepay: boolean;
|
|
25
|
+
targetDebt: bigint;
|
|
26
|
+
currentDebt: bigint;
|
|
27
|
+
deadline: number;
|
|
28
|
+
dustAccount?: Address;
|
|
29
|
+
unusedInputReceiver?: Address;
|
|
30
|
+
transferOutputToReceiver?: boolean;
|
|
31
|
+
skipSweepDepositOut?: boolean;
|
|
32
|
+
provider?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface SwapQuote {
|
|
35
|
+
amountIn: string;
|
|
36
|
+
amountInMax: string;
|
|
37
|
+
amountOut: string;
|
|
38
|
+
amountOutMin: string;
|
|
39
|
+
accountIn: Address;
|
|
40
|
+
accountOut: Address;
|
|
41
|
+
vaultIn: Address;
|
|
42
|
+
receiver: Address;
|
|
43
|
+
tokenIn: {
|
|
44
|
+
address: Address;
|
|
45
|
+
chainId: number;
|
|
46
|
+
decimals: number;
|
|
47
|
+
logoURI: string;
|
|
48
|
+
name: string;
|
|
49
|
+
symbol: string;
|
|
50
|
+
meta?: unknown;
|
|
51
|
+
};
|
|
52
|
+
tokenOut: {
|
|
53
|
+
address: Address;
|
|
54
|
+
chainId: number;
|
|
55
|
+
decimals: number;
|
|
56
|
+
logoURI: string;
|
|
57
|
+
name: string;
|
|
58
|
+
symbol: string;
|
|
59
|
+
meta?: unknown;
|
|
60
|
+
};
|
|
61
|
+
slippage: number;
|
|
62
|
+
swap: SwapperData;
|
|
63
|
+
verify: SwapVerifierData;
|
|
64
|
+
route: SwapRouteHop[];
|
|
65
|
+
transferOutputToReceiver?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface GetRepayQuoteArgs {
|
|
68
|
+
chainId: number;
|
|
69
|
+
fromVault: Address;
|
|
70
|
+
fromAsset: Address;
|
|
71
|
+
fromAccount: Address;
|
|
72
|
+
liabilityVault: Address;
|
|
73
|
+
liabilityAsset: Address;
|
|
74
|
+
currentDebt: bigint;
|
|
75
|
+
toAccount: Address;
|
|
76
|
+
origin: Address;
|
|
77
|
+
swapperMode: SwapperMode;
|
|
78
|
+
slippage: number;
|
|
79
|
+
liabilityAmount?: bigint;
|
|
80
|
+
collateralAmount?: bigint;
|
|
81
|
+
deadline?: number;
|
|
82
|
+
unusedInputReceiver?: Address;
|
|
83
|
+
provider?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface GetDepositQuoteArgs {
|
|
86
|
+
chainId: number;
|
|
87
|
+
fromVault: Address;
|
|
88
|
+
toVault: Address;
|
|
89
|
+
fromAccount: Address;
|
|
90
|
+
toAccount: Address;
|
|
91
|
+
fromAsset: Address;
|
|
92
|
+
toAsset: Address;
|
|
93
|
+
amount: bigint;
|
|
94
|
+
origin: Address;
|
|
95
|
+
slippage: number;
|
|
96
|
+
deadline?: number;
|
|
97
|
+
unusedInputReceiver?: Address;
|
|
98
|
+
skipSweepDepositOut?: boolean;
|
|
99
|
+
provider?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface SwapperData {
|
|
102
|
+
swapperAddress: Address;
|
|
103
|
+
swapperData: Hex;
|
|
104
|
+
multicallItems: MulticallItem[];
|
|
105
|
+
}
|
|
106
|
+
export interface MulticallItem {
|
|
107
|
+
functionName: string;
|
|
108
|
+
args: unknown[];
|
|
109
|
+
data: Hex;
|
|
110
|
+
}
|
|
111
|
+
export interface SwapRouteHop {
|
|
112
|
+
providerName: string;
|
|
113
|
+
}
|
|
114
|
+
export interface SwapVerifierData {
|
|
115
|
+
verifierAddress: Address;
|
|
116
|
+
verifierData: Hex;
|
|
117
|
+
type: SwapVerificationType;
|
|
118
|
+
vault: Address;
|
|
119
|
+
account: Address;
|
|
120
|
+
amount: string;
|
|
121
|
+
deadline: number;
|
|
122
|
+
}
|
|
123
|
+
export interface SwapsApiResponse {
|
|
124
|
+
success: boolean;
|
|
125
|
+
data: SwapQuote[];
|
|
126
|
+
}
|
|
127
|
+
export interface SwapProvidersApiResponse {
|
|
128
|
+
success: boolean;
|
|
129
|
+
data: string[];
|
|
130
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export var SwapperMode;
|
|
2
|
+
(function (SwapperMode) {
|
|
3
|
+
// 0 - exact input swap
|
|
4
|
+
SwapperMode[SwapperMode["EXACT_IN"] = 0] = "EXACT_IN";
|
|
5
|
+
// 1 - exact output swap
|
|
6
|
+
SwapperMode[SwapperMode["EXACT_OUT"] = 1] = "EXACT_OUT";
|
|
7
|
+
// 2 - exact output swap and repay, targeting a debt amount of an account
|
|
8
|
+
SwapperMode[SwapperMode["TARGET_DEBT"] = 2] = "TARGET_DEBT";
|
|
9
|
+
})(SwapperMode || (SwapperMode = {}));
|
|
10
|
+
export var SwapVerificationType;
|
|
11
|
+
(function (SwapVerificationType) {
|
|
12
|
+
SwapVerificationType["SkimMin"] = "skimMin";
|
|
13
|
+
SwapVerificationType["DebtMax"] = "debtMax";
|
|
14
|
+
SwapVerificationType["TransferMin"] = "transferMin";
|
|
15
|
+
})(SwapVerificationType || (SwapVerificationType = {}));
|
|
16
|
+
//# sourceMappingURL=swapServiceTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapServiceTypes.js","sourceRoot":"","sources":["../../../../src/services/swapService/swapServiceTypes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACtB,uBAAuB;IACvB,qDAAY,CAAA;IACZ,wBAAwB;IACxB,uDAAa,CAAA;IACb,yEAAyE;IACzE,2DAAe,CAAA;AAChB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;IACnB,mDAA2B,CAAA;AAC5B,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}
|