@sodax/sdk 0.0.1-rc.6 → 0.0.1-rc.8
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/README.md +3 -1
- package/dist/index.cjs +11147 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +6831 -0
- package/dist/index.d.ts +6830 -9
- package/dist/index.mjs +10991 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +20 -6
- package/dist/abis/asset-manager.abi.d.ts +0 -418
- package/dist/abis/asset-manager.abi.d.ts.map +0 -1
- package/dist/abis/asset-manager.abi.js +0 -542
- package/dist/abis/asset-manager.abi.js.map +0 -1
- package/dist/abis/connection.abi.d.ts +0 -72
- package/dist/abis/connection.abi.d.ts.map +0 -1
- package/dist/abis/connection.abi.js +0 -92
- package/dist/abis/connection.abi.js.map +0 -1
- package/dist/abis/erc20.abi.d.ts +0 -236
- package/dist/abis/erc20.abi.d.ts.map +0 -1
- package/dist/abis/erc20.abi.js +0 -311
- package/dist/abis/erc20.abi.js.map +0 -1
- package/dist/abis/index.d.ts +0 -10
- package/dist/abis/index.d.ts.map +0 -1
- package/dist/abis/index.js +0 -10
- package/dist/abis/index.js.map +0 -1
- package/dist/abis/intents.abi.d.ts +0 -901
- package/dist/abis/intents.abi.d.ts.map +0 -1
- package/dist/abis/intents.abi.js +0 -1158
- package/dist/abis/intents.abi.js.map +0 -1
- package/dist/abis/pool.abi.d.ts +0 -626
- package/dist/abis/pool.abi.d.ts.map +0 -1
- package/dist/abis/pool.abi.js +0 -812
- package/dist/abis/pool.abi.js.map +0 -1
- package/dist/abis/spokeAssetManager.abi.d.ts +0 -169
- package/dist/abis/spokeAssetManager.abi.d.ts.map +0 -1
- package/dist/abis/spokeAssetManager.abi.js +0 -217
- package/dist/abis/spokeAssetManager.abi.js.map +0 -1
- package/dist/abis/uiPoolData.abi.d.ts +0 -369
- package/dist/abis/uiPoolData.abi.d.ts.map +0 -1
- package/dist/abis/uiPoolData.abi.js +0 -476
- package/dist/abis/uiPoolData.abi.js.map +0 -1
- package/dist/abis/vaultToken.abi.d.ts +0 -816
- package/dist/abis/vaultToken.abi.d.ts.map +0 -1
- package/dist/abis/vaultToken.abi.js +0 -1062
- package/dist/abis/vaultToken.abi.js.map +0 -1
- package/dist/abis/walletFactory.abi.d.ts +0 -20
- package/dist/abis/walletFactory.abi.d.ts.map +0 -1
- package/dist/abis/walletFactory.abi.js +0 -27
- package/dist/abis/walletFactory.abi.js.map +0 -1
- package/dist/constants.d.ts +0 -550
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -1196
- package/dist/constants.js.map +0 -1
- package/dist/constants.test.d.ts +0 -2
- package/dist/constants.test.d.ts.map +0 -1
- package/dist/constants.test.js +0 -129
- package/dist/constants.test.js.map +0 -1
- package/dist/entities/Providers.d.ts +0 -54
- package/dist/entities/Providers.d.ts.map +0 -1
- package/dist/entities/Providers.js +0 -51
- package/dist/entities/Providers.js.map +0 -1
- package/dist/entities/Sodax.d.ts +0 -23
- package/dist/entities/Sodax.d.ts.map +0 -1
- package/dist/entities/Sodax.js +0 -29
- package/dist/entities/Sodax.js.map +0 -1
- package/dist/entities/Sodax.test.d.ts +0 -2
- package/dist/entities/Sodax.test.d.ts.map +0 -1
- package/dist/entities/Sodax.test.js +0 -392
- package/dist/entities/Sodax.test.js.map +0 -1
- package/dist/entities/cosmos/CW20Token.d.ts +0 -39
- package/dist/entities/cosmos/CW20Token.d.ts.map +0 -1
- package/dist/entities/cosmos/CW20Token.js +0 -65
- package/dist/entities/cosmos/CW20Token.js.map +0 -1
- package/dist/entities/cosmos/CWSpokeProvider.d.ts +0 -92
- package/dist/entities/cosmos/CWSpokeProvider.d.ts.map +0 -1
- package/dist/entities/cosmos/CWSpokeProvider.js +0 -143
- package/dist/entities/cosmos/CWSpokeProvider.js.map +0 -1
- package/dist/entities/cosmos/CosmosWalletProvider.d.ts +0 -28
- package/dist/entities/cosmos/CosmosWalletProvider.d.ts.map +0 -1
- package/dist/entities/cosmos/CosmosWalletProvider.js +0 -102
- package/dist/entities/cosmos/CosmosWalletProvider.js.map +0 -1
- package/dist/entities/cosmos/InjectiveWalletProvider.d.ts +0 -25
- package/dist/entities/cosmos/InjectiveWalletProvider.d.ts.map +0 -1
- package/dist/entities/cosmos/InjectiveWalletProvider.js +0 -76
- package/dist/entities/cosmos/InjectiveWalletProvider.js.map +0 -1
- package/dist/entities/icon/HanaWalletConnector.d.ts +0 -36
- package/dist/entities/icon/HanaWalletConnector.d.ts.map +0 -1
- package/dist/entities/icon/HanaWalletConnector.js +0 -92
- package/dist/entities/icon/HanaWalletConnector.js.map +0 -1
- package/dist/entities/icon/IconSpokeProvider.d.ts +0 -10
- package/dist/entities/icon/IconSpokeProvider.d.ts.map +0 -1
- package/dist/entities/icon/IconSpokeProvider.js +0 -12
- package/dist/entities/icon/IconSpokeProvider.js.map +0 -1
- package/dist/entities/icon/index.d.ts +0 -4
- package/dist/entities/icon/index.d.ts.map +0 -1
- package/dist/entities/icon/index.js +0 -4
- package/dist/entities/icon/index.js.map +0 -1
- package/dist/entities/icon/utils.d.ts +0 -3
- package/dist/entities/icon/utils.d.ts.map +0 -1
- package/dist/entities/icon/utils.js +0 -4
- package/dist/entities/icon/utils.js.map +0 -1
- package/dist/entities/index.d.ts +0 -7
- package/dist/entities/index.d.ts.map +0 -1
- package/dist/entities/index.js +0 -7
- package/dist/entities/index.js.map +0 -1
- package/dist/entities/solana/Configs.d.ts +0 -38
- package/dist/entities/solana/Configs.d.ts.map +0 -1
- package/dist/entities/solana/Configs.js +0 -149
- package/dist/entities/solana/Configs.js.map +0 -1
- package/dist/entities/solana/SolanaSpokeProvider.d.ts +0 -9
- package/dist/entities/solana/SolanaSpokeProvider.d.ts.map +0 -1
- package/dist/entities/solana/SolanaSpokeProvider.js +0 -9
- package/dist/entities/solana/SolanaSpokeProvider.js.map +0 -1
- package/dist/entities/solana/SolanaWalletProvider.d.ts +0 -20
- package/dist/entities/solana/SolanaWalletProvider.d.ts.map +0 -1
- package/dist/entities/solana/SolanaWalletProvider.js +0 -53
- package/dist/entities/solana/SolanaWalletProvider.js.map +0 -1
- package/dist/entities/solana/index.d.ts +0 -4
- package/dist/entities/solana/index.d.ts.map +0 -1
- package/dist/entities/solana/index.js +0 -4
- package/dist/entities/solana/index.js.map +0 -1
- package/dist/entities/solana/pda/pda.d.ts +0 -45
- package/dist/entities/solana/pda/pda.d.ts.map +0 -1
- package/dist/entities/solana/pda/pda.js +0 -44
- package/dist/entities/solana/pda/pda.js.map +0 -1
- package/dist/entities/solana/types/asset_manager.d.ts +0 -919
- package/dist/entities/solana/types/asset_manager.d.ts.map +0 -1
- package/dist/entities/solana/types/asset_manager.js +0 -2
- package/dist/entities/solana/types/asset_manager.js.map +0 -1
- package/dist/entities/solana/types/connection.d.ts +0 -446
- package/dist/entities/solana/types/connection.d.ts.map +0 -1
- package/dist/entities/solana/types/connection.js +0 -2
- package/dist/entities/solana/types/connection.js.map +0 -1
- package/dist/entities/solana/types/rate_limit_contract.d.ts +0 -348
- package/dist/entities/solana/types/rate_limit_contract.d.ts.map +0 -1
- package/dist/entities/solana/types/rate_limit_contract.js +0 -2
- package/dist/entities/solana/types/rate_limit_contract.js.map +0 -1
- package/dist/entities/solana/utils/utils.d.ts +0 -6
- package/dist/entities/solana/utils/utils.d.ts.map +0 -1
- package/dist/entities/solana/utils/utils.js +0 -18
- package/dist/entities/solana/utils/utils.js.map +0 -1
- package/dist/entities/stellar/StellarSpokeProvider.d.ts +0 -17
- package/dist/entities/stellar/StellarSpokeProvider.d.ts.map +0 -1
- package/dist/entities/stellar/StellarSpokeProvider.js +0 -125
- package/dist/entities/stellar/StellarSpokeProvider.js.map +0 -1
- package/dist/entities/sui/SuiSpokeProvider.d.ts +0 -35
- package/dist/entities/sui/SuiSpokeProvider.d.ts.map +0 -1
- package/dist/entities/sui/SuiSpokeProvider.js +0 -145
- package/dist/entities/sui/SuiSpokeProvider.js.map +0 -1
- package/dist/errors.d.ts +0 -2
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -2
- package/dist/errors.js.map +0 -1
- package/dist/guards.d.ts +0 -25
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -110
- package/dist/guards.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -10
- package/dist/index.js.map +0 -1
- package/dist/services/hub/EvmAssetManagerService.d.ts +0 -61
- package/dist/services/hub/EvmAssetManagerService.d.ts.map +0 -1
- package/dist/services/hub/EvmAssetManagerService.js +0 -103
- package/dist/services/hub/EvmAssetManagerService.js.map +0 -1
- package/dist/services/hub/EvmVaultTokenService.d.ts +0 -81
- package/dist/services/hub/EvmVaultTokenService.d.ts.map +0 -1
- package/dist/services/hub/EvmVaultTokenService.js +0 -161
- package/dist/services/hub/EvmVaultTokenService.js.map +0 -1
- package/dist/services/hub/EvmWalletAbstraction.d.ts +0 -9
- package/dist/services/hub/EvmWalletAbstraction.d.ts.map +0 -1
- package/dist/services/hub/EvmWalletAbstraction.js +0 -14
- package/dist/services/hub/EvmWalletAbstraction.js.map +0 -1
- package/dist/services/hub/index.d.ts +0 -4
- package/dist/services/hub/index.d.ts.map +0 -1
- package/dist/services/hub/index.js +0 -4
- package/dist/services/hub/index.js.map +0 -1
- package/dist/services/index.d.ts +0 -7
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -7
- package/dist/services/index.js.map +0 -1
- package/dist/services/intentRelay/IntentRelayApiService.d.ts +0 -112
- package/dist/services/intentRelay/IntentRelayApiService.d.ts.map +0 -1
- package/dist/services/intentRelay/IntentRelayApiService.js +0 -160
- package/dist/services/intentRelay/IntentRelayApiService.js.map +0 -1
- package/dist/services/intentRelay/IntentRelayApiService.test.d.ts +0 -2
- package/dist/services/intentRelay/IntentRelayApiService.test.d.ts.map +0 -1
- package/dist/services/intentRelay/IntentRelayApiService.test.js +0 -134
- package/dist/services/intentRelay/IntentRelayApiService.test.js.map +0 -1
- package/dist/services/intentRelay/index.d.ts +0 -2
- package/dist/services/intentRelay/index.d.ts.map +0 -1
- package/dist/services/intentRelay/index.js +0 -2
- package/dist/services/intentRelay/index.js.map +0 -1
- package/dist/services/moneyMarket/MoneyMarketService.d.ts +0 -525
- package/dist/services/moneyMarket/MoneyMarketService.d.ts.map +0 -1
- package/dist/services/moneyMarket/MoneyMarketService.js +0 -814
- package/dist/services/moneyMarket/MoneyMarketService.js.map +0 -1
- package/dist/services/moneyMarket/MoneyMarketService.test.d.ts +0 -2
- package/dist/services/moneyMarket/MoneyMarketService.test.d.ts.map +0 -1
- package/dist/services/moneyMarket/MoneyMarketService.test.js +0 -262
- package/dist/services/moneyMarket/MoneyMarketService.test.js.map +0 -1
- package/dist/services/moneyMarket/index.d.ts +0 -2
- package/dist/services/moneyMarket/index.d.ts.map +0 -1
- package/dist/services/moneyMarket/index.js +0 -2
- package/dist/services/moneyMarket/index.js.map +0 -1
- package/dist/services/shared/Erc20Service.d.ts +0 -42
- package/dist/services/shared/Erc20Service.d.ts.map +0 -1
- package/dist/services/shared/Erc20Service.js +0 -108
- package/dist/services/shared/Erc20Service.js.map +0 -1
- package/dist/services/shared/index.d.ts +0 -2
- package/dist/services/shared/index.d.ts.map +0 -1
- package/dist/services/shared/index.js +0 -2
- package/dist/services/shared/index.js.map +0 -1
- package/dist/services/solver/EvmSolverService.d.ts +0 -125
- package/dist/services/solver/EvmSolverService.d.ts.map +0 -1
- package/dist/services/solver/EvmSolverService.js +0 -166
- package/dist/services/solver/EvmSolverService.js.map +0 -1
- package/dist/services/solver/SolverApiService.d.ts +0 -40
- package/dist/services/solver/SolverApiService.d.ts.map +0 -1
- package/dist/services/solver/SolverApiService.js +0 -157
- package/dist/services/solver/SolverApiService.js.map +0 -1
- package/dist/services/solver/SolverApiService.test.d.ts +0 -2
- package/dist/services/solver/SolverApiService.test.d.ts.map +0 -1
- package/dist/services/solver/SolverApiService.test.js +0 -181
- package/dist/services/solver/SolverApiService.test.js.map +0 -1
- package/dist/services/solver/SolverService.d.ts +0 -295
- package/dist/services/solver/SolverService.d.ts.map +0 -1
- package/dist/services/solver/SolverService.js +0 -429
- package/dist/services/solver/SolverService.js.map +0 -1
- package/dist/services/solver/SolverService.test.d.ts +0 -2
- package/dist/services/solver/SolverService.test.d.ts.map +0 -1
- package/dist/services/solver/SolverService.test.js +0 -439
- package/dist/services/solver/SolverService.test.js.map +0 -1
- package/dist/services/solver/index.d.ts +0 -3
- package/dist/services/solver/index.d.ts.map +0 -1
- package/dist/services/solver/index.js +0 -3
- package/dist/services/solver/index.js.map +0 -1
- package/dist/services/spoke/CWSpokeService.d.ts +0 -67
- package/dist/services/spoke/CWSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/CWSpokeService.js +0 -75
- package/dist/services/spoke/CWSpokeService.js.map +0 -1
- package/dist/services/spoke/EvmSpokeService.d.ts +0 -62
- package/dist/services/spoke/EvmSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/EvmSpokeService.js +0 -120
- package/dist/services/spoke/EvmSpokeService.js.map +0 -1
- package/dist/services/spoke/IconSpokeService.d.ts +0 -56
- package/dist/services/spoke/IconSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/IconSpokeService.js +0 -124
- package/dist/services/spoke/IconSpokeService.js.map +0 -1
- package/dist/services/spoke/SolanaSpokeService.d.ts +0 -46
- package/dist/services/spoke/SolanaSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/SolanaSpokeService.js +0 -156
- package/dist/services/spoke/SolanaSpokeService.js.map +0 -1
- package/dist/services/spoke/SpokeService.d.ts +0 -34
- package/dist/services/spoke/SpokeService.d.ts.map +0 -1
- package/dist/services/spoke/SpokeService.js +0 -101
- package/dist/services/spoke/SpokeService.js.map +0 -1
- package/dist/services/spoke/StellarSpokeService.d.ts +0 -35
- package/dist/services/spoke/StellarSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/StellarSpokeService.js +0 -39
- package/dist/services/spoke/StellarSpokeService.js.map +0 -1
- package/dist/services/spoke/SuiSpokeService.d.ts +0 -69
- package/dist/services/spoke/SuiSpokeService.d.ts.map +0 -1
- package/dist/services/spoke/SuiSpokeService.js +0 -73
- package/dist/services/spoke/SuiSpokeService.js.map +0 -1
- package/dist/services/spoke/index.d.ts +0 -3
- package/dist/services/spoke/index.d.ts.map +0 -1
- package/dist/services/spoke/index.js +0 -3
- package/dist/services/spoke/index.js.map +0 -1
- package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts +0 -2
- package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts.map +0 -1
- package/dist/tests/services/hub/EvmAssetManagerService.test.js +0 -138
- package/dist/tests/services/hub/EvmAssetManagerService.test.js.map +0 -1
- package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts +0 -2
- package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts.map +0 -1
- package/dist/tests/services/hub/EvmMoneyMarketService.test.js +0 -121
- package/dist/tests/services/hub/EvmMoneyMarketService.test.js.map +0 -1
- package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts +0 -2
- package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts.map +0 -1
- package/dist/tests/services/hub/EvmVaultTokenService.test.js +0 -98
- package/dist/tests/services/hub/EvmVaultTokenService.test.js.map +0 -1
- package/dist/tests/services/spoke/EvmSpokeService.test.d.ts +0 -2
- package/dist/tests/services/spoke/EvmSpokeService.test.d.ts.map +0 -1
- package/dist/tests/services/spoke/EvmSpokeService.test.js +0 -198
- package/dist/tests/services/spoke/EvmSpokeService.test.js.map +0 -1
- package/dist/types.d.ts +0 -352
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -30
- package/dist/types.js.map +0 -1
- package/dist/utils/evm-utils.d.ts +0 -10
- package/dist/utils/evm-utils.d.ts.map +0 -1
- package/dist/utils/evm-utils.js +0 -15
- package/dist/utils/evm-utils.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/shared-utils.d.ts +0 -20
- package/dist/utils/shared-utils.d.ts.map +0 -1
- package/dist/utils/shared-utils.js +0 -69
- package/dist/utils/shared-utils.js.map +0 -1
- package/dist/utils/shared-utils.test.d.ts +0 -2
- package/dist/utils/shared-utils.test.d.ts.map +0 -1
- package/dist/utils/shared-utils.test.js +0 -63
- package/dist/utils/shared-utils.test.js.map +0 -1
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { EvmHubProvider, EvmSpokeProvider, IntentErrorCode, SolverService, getHubAssetInfo, getHubChainConfig, getIntentRelayChainId, spokeChainConfig, } from '../../index.js';
|
|
3
|
-
import * as IntentRelayApiService from '../intentRelay/IntentRelayApiService.js';
|
|
4
|
-
import { EvmWalletAbstraction } from '../hub/EvmWalletAbstraction.js';
|
|
5
|
-
import { EvmSolverService } from './EvmSolverService.js';
|
|
6
|
-
import { ARBITRUM_MAINNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, SONIC_MAINNET_CHAIN_ID } from '@sodax/types';
|
|
7
|
-
describe('SolverService', () => {
|
|
8
|
-
const mockIntentsContract = '0x0987654321098765432109876543210987654321';
|
|
9
|
-
const bscEthToken = '0x2170Ed0880ac9A755fd29B2688956BD959F933F8';
|
|
10
|
-
const arbWbtcToken = '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f';
|
|
11
|
-
const mockSolverConfig = {
|
|
12
|
-
intentsContract: mockIntentsContract,
|
|
13
|
-
solverApiEndpoint: 'https://staging-new-world.iconblockchain.xyz',
|
|
14
|
-
};
|
|
15
|
-
const mockHubConfig = {
|
|
16
|
-
hubRpcUrl: 'https://rpc.soniclabs.com',
|
|
17
|
-
chainConfig: getHubChainConfig(SONIC_MAINNET_CHAIN_ID),
|
|
18
|
-
};
|
|
19
|
-
const mockHubProvider = new EvmHubProvider(mockHubConfig);
|
|
20
|
-
const mockQuoteRequest = {
|
|
21
|
-
token_src: bscEthToken,
|
|
22
|
-
token_dst: arbWbtcToken,
|
|
23
|
-
token_src_blockchain_id: BSC_MAINNET_CHAIN_ID,
|
|
24
|
-
token_dst_blockchain_id: ARBITRUM_MAINNET_CHAIN_ID,
|
|
25
|
-
amount: 1000n,
|
|
26
|
-
quote_type: 'exact_input',
|
|
27
|
-
};
|
|
28
|
-
const mockExecutionRequest = {
|
|
29
|
-
intent_tx_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
|
|
30
|
-
};
|
|
31
|
-
const mockStatusRequest = {
|
|
32
|
-
intent_tx_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
|
|
33
|
-
};
|
|
34
|
-
const feeAmount = 1000n; // 1000 of input token
|
|
35
|
-
const feePercentage = 100; // 1% fee
|
|
36
|
-
const solverService = new SolverService(mockSolverConfig, mockHubProvider);
|
|
37
|
-
const solverServiceWithPercentageFee = new SolverService({
|
|
38
|
-
...mockSolverConfig,
|
|
39
|
-
partnerFee: {
|
|
40
|
-
address: '0x0000000000000000000000000000000000000000',
|
|
41
|
-
percentage: feePercentage,
|
|
42
|
-
},
|
|
43
|
-
}, mockHubProvider);
|
|
44
|
-
const solverServiceWithAmountFee = new SolverService({
|
|
45
|
-
...mockSolverConfig,
|
|
46
|
-
partnerFee: {
|
|
47
|
-
address: '0x0000000000000000000000000000000000000000',
|
|
48
|
-
amount: feeAmount,
|
|
49
|
-
},
|
|
50
|
-
}, mockHubProvider);
|
|
51
|
-
const mockEvmWalletProvider = {
|
|
52
|
-
sendTransaction: vi.fn(),
|
|
53
|
-
getWalletAddress: vi.fn().mockResolvedValue('0x9999999999999999999999999999999999999999'),
|
|
54
|
-
getWalletAddressBytes: vi.fn().mockResolvedValue('0x9999999999999999999999999999999999999999'),
|
|
55
|
-
waitForTransactionReceipt: vi.fn(),
|
|
56
|
-
};
|
|
57
|
-
const mockFee = {
|
|
58
|
-
address: '0x0000000000000000000000000000000000000000',
|
|
59
|
-
amount: feeAmount,
|
|
60
|
-
};
|
|
61
|
-
const mockBscSpokeProvider = new EvmSpokeProvider(mockEvmWalletProvider, spokeChainConfig[BSC_MAINNET_CHAIN_ID]);
|
|
62
|
-
const mockCreatorHubWalletAddress = '0x1234567890123456789012345678901234567890';
|
|
63
|
-
const mockPacketData = {
|
|
64
|
-
src_chain_id: Number(getIntentRelayChainId(BSC_MAINNET_CHAIN_ID)), // BSC chain ID
|
|
65
|
-
src_tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
66
|
-
src_address: '0x1234567890123456789012345678901234567890',
|
|
67
|
-
status: 'executed',
|
|
68
|
-
dst_chain_id: Number(getIntentRelayChainId(ARBITRUM_MAINNET_CHAIN_ID)), // Arbitrum chain ID
|
|
69
|
-
conn_sn: 1,
|
|
70
|
-
dst_address: '0x1234567890123456789012345678901234567890',
|
|
71
|
-
dst_tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
72
|
-
signatures: ['0x1234567890123456789012345678901234567890'],
|
|
73
|
-
payload: '0x',
|
|
74
|
-
};
|
|
75
|
-
// Helper function to create mock intent params with resolved addresses
|
|
76
|
-
const createMockIntentParams = async () => {
|
|
77
|
-
const srcAddress = await mockEvmWalletProvider.getWalletAddressBytes();
|
|
78
|
-
const dstAddress = await mockEvmWalletProvider.getWalletAddressBytes();
|
|
79
|
-
return {
|
|
80
|
-
inputToken: bscEthToken,
|
|
81
|
-
outputToken: arbWbtcToken,
|
|
82
|
-
inputAmount: BigInt(1000000),
|
|
83
|
-
minOutputAmount: BigInt(900000),
|
|
84
|
-
deadline: BigInt(0),
|
|
85
|
-
allowPartialFill: false,
|
|
86
|
-
srcChain: BSC_MAINNET_CHAIN_ID,
|
|
87
|
-
dstChain: ARBITRUM_MAINNET_CHAIN_ID,
|
|
88
|
-
srcAddress,
|
|
89
|
-
dstAddress,
|
|
90
|
-
solver: '0x0000000000000000000000000000000000000000',
|
|
91
|
-
data: '0x',
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
// Helper function to create mock intent with resolved addresses
|
|
95
|
-
const createMockIntent = async (params) => {
|
|
96
|
-
const creator = await mockBscSpokeProvider.walletProvider.getWalletAddress();
|
|
97
|
-
const srcAddress = await mockEvmWalletProvider.getWalletAddressBytes();
|
|
98
|
-
const dstAddress = await mockEvmWalletProvider.getWalletAddressBytes();
|
|
99
|
-
return {
|
|
100
|
-
intentId: BigInt(1),
|
|
101
|
-
creator: creator,
|
|
102
|
-
inputToken: getHubAssetInfo(params.srcChain, params.inputToken)?.asset ?? '0x',
|
|
103
|
-
outputToken: getHubAssetInfo(params.dstChain, params.outputToken)?.asset ?? '0x',
|
|
104
|
-
inputAmount: params.inputAmount,
|
|
105
|
-
minOutputAmount: params.minOutputAmount,
|
|
106
|
-
deadline: params.deadline,
|
|
107
|
-
allowPartialFill: params.allowPartialFill,
|
|
108
|
-
srcChain: getIntentRelayChainId(params.srcChain),
|
|
109
|
-
dstChain: getIntentRelayChainId(params.dstChain),
|
|
110
|
-
srcAddress,
|
|
111
|
-
dstAddress,
|
|
112
|
-
solver: params.solver,
|
|
113
|
-
data: params.data,
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
afterEach(() => {
|
|
117
|
-
vi.clearAllMocks();
|
|
118
|
-
vi.restoreAllMocks();
|
|
119
|
-
});
|
|
120
|
-
describe('getQuote', () => {
|
|
121
|
-
it('should return a successful quote response', async () => {
|
|
122
|
-
// Mock fetch response
|
|
123
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
124
|
-
ok: true,
|
|
125
|
-
json: async () => ({
|
|
126
|
-
quoted_amount: '950',
|
|
127
|
-
uuid: 'a0dd7652-b360-4123-ab2d-78cfbcd20c6b',
|
|
128
|
-
}),
|
|
129
|
-
});
|
|
130
|
-
const result = await solverService.getQuote(mockQuoteRequest);
|
|
131
|
-
expect(result.ok).toBe(true);
|
|
132
|
-
if (result.ok) {
|
|
133
|
-
expect(result.value).toBeDefined();
|
|
134
|
-
expect(result.value.quoted_amount).toBe(950n);
|
|
135
|
-
}
|
|
136
|
-
expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/quote`, expect.objectContaining({
|
|
137
|
-
method: 'POST',
|
|
138
|
-
headers: { 'Content-Type': 'application/json' },
|
|
139
|
-
body: expect.any(String),
|
|
140
|
-
}));
|
|
141
|
-
});
|
|
142
|
-
it('should handle API error responses', async () => {
|
|
143
|
-
// Mock fetch error response
|
|
144
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
145
|
-
ok: false,
|
|
146
|
-
json: async () => ({
|
|
147
|
-
detail: {
|
|
148
|
-
code: IntentErrorCode.NO_PATH_FOUND,
|
|
149
|
-
message: 'Invalid request parameters',
|
|
150
|
-
},
|
|
151
|
-
}),
|
|
152
|
-
});
|
|
153
|
-
const result = await solverService.getQuote(mockQuoteRequest);
|
|
154
|
-
expect(result.ok).toBe(false);
|
|
155
|
-
if (!result.ok) {
|
|
156
|
-
expect(result.error).toBeDefined();
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
it('should handle network errors', async () => {
|
|
160
|
-
// Mock fetch throwing an error
|
|
161
|
-
global.fetch = vi.fn().mockRejectedValueOnce(new Error('Network error'));
|
|
162
|
-
const result = await solverService.getQuote(mockQuoteRequest);
|
|
163
|
-
expect(result.ok).toBe(false);
|
|
164
|
-
if (!result.ok) {
|
|
165
|
-
expect(result.error).toBeDefined();
|
|
166
|
-
expect(result.error.detail.code).toBe(IntentErrorCode.UNKNOWN);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
describe('getFee', () => {
|
|
171
|
-
it('should calculate fee correctly for given input amount', async () => {
|
|
172
|
-
const inputAmount = 1000n;
|
|
173
|
-
const expectedFee = 10n; // Assuming 1% fee
|
|
174
|
-
const result = await solverServiceWithPercentageFee.getFee(inputAmount);
|
|
175
|
-
expect(result).toBe(expectedFee);
|
|
176
|
-
});
|
|
177
|
-
it('should handle zero input amount', async () => {
|
|
178
|
-
const inputAmount = 0n;
|
|
179
|
-
await expect(solverServiceWithPercentageFee.getFee(inputAmount)).rejects.toThrow();
|
|
180
|
-
});
|
|
181
|
-
it('should handle very large input amount', async () => {
|
|
182
|
-
const inputAmount = 2n ** 128n - 1n;
|
|
183
|
-
const result = await solverServiceWithPercentageFee.getFee(inputAmount);
|
|
184
|
-
expect(result).toBeDefined();
|
|
185
|
-
expect(typeof result).toBe('bigint');
|
|
186
|
-
expect(result).toBeGreaterThan(0n);
|
|
187
|
-
});
|
|
188
|
-
it('should handle negative input amount', async () => {
|
|
189
|
-
const inputAmount = -1000n;
|
|
190
|
-
await expect(solverServiceWithPercentageFee.getFee(inputAmount)).rejects.toThrow();
|
|
191
|
-
});
|
|
192
|
-
it('should handle undefined input amount', async () => {
|
|
193
|
-
// @ts-expect-error Testing invalid input
|
|
194
|
-
await expect(solverServiceWithPercentageFee.getFee(undefined)).rejects.toThrow();
|
|
195
|
-
});
|
|
196
|
-
it('should handle null input amount', async () => {
|
|
197
|
-
// @ts-expect-error Testing invalid input
|
|
198
|
-
await expect(solverServiceWithPercentageFee.getFee(null)).rejects.toThrow();
|
|
199
|
-
});
|
|
200
|
-
it('should handle fee amount', async () => {
|
|
201
|
-
const inputAmount = 1000n;
|
|
202
|
-
const result = await solverServiceWithAmountFee.getFee(inputAmount);
|
|
203
|
-
expect(result).toBe(feeAmount);
|
|
204
|
-
});
|
|
205
|
-
it('should handle undefined input amount', async () => {
|
|
206
|
-
// @ts-expect-error Testing invalid input
|
|
207
|
-
await expect(solverServiceWithAmountFee.getFee(undefined)).rejects.toThrow();
|
|
208
|
-
});
|
|
209
|
-
it('should handle null input amount', async () => {
|
|
210
|
-
// @ts-expect-error Testing invalid input
|
|
211
|
-
await expect(solverServiceWithAmountFee.getFee(null)).rejects.toThrow();
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
describe('postExecution', () => {
|
|
215
|
-
it('should return a successful post execution response', async () => {
|
|
216
|
-
// Mock fetch response
|
|
217
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
218
|
-
ok: true,
|
|
219
|
-
json: async () => ({
|
|
220
|
-
answer: 'OK',
|
|
221
|
-
intent_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
|
|
222
|
-
}),
|
|
223
|
-
});
|
|
224
|
-
const result = await solverService.postExecution(mockExecutionRequest);
|
|
225
|
-
expect(result.ok).toBe(true);
|
|
226
|
-
if (result.ok) {
|
|
227
|
-
expect(result.value).toBeDefined();
|
|
228
|
-
expect(result.value.intent_hash).toBeDefined();
|
|
229
|
-
expect(result.value.answer).toBe('OK');
|
|
230
|
-
}
|
|
231
|
-
expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/execute`, expect.objectContaining({
|
|
232
|
-
method: 'POST',
|
|
233
|
-
headers: { 'Content-Type': 'application/json' },
|
|
234
|
-
body: expect.any(String),
|
|
235
|
-
}));
|
|
236
|
-
});
|
|
237
|
-
it('should handle API error responses', async () => {
|
|
238
|
-
// Mock fetch error response
|
|
239
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
240
|
-
ok: false,
|
|
241
|
-
json: async () => ({
|
|
242
|
-
detail: {
|
|
243
|
-
code: IntentErrorCode.QUOTE_NOT_FOUND,
|
|
244
|
-
message: 'Execution failed',
|
|
245
|
-
},
|
|
246
|
-
}),
|
|
247
|
-
});
|
|
248
|
-
const result = await solverService.postExecution(mockExecutionRequest);
|
|
249
|
-
expect(result.ok).toBe(false);
|
|
250
|
-
if (!result.ok) {
|
|
251
|
-
expect(result.error).toBeDefined();
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
describe('getStatus', () => {
|
|
256
|
-
it('should return a successful status response', async () => {
|
|
257
|
-
// Mock fetch response
|
|
258
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
259
|
-
ok: true,
|
|
260
|
-
json: async () => ({
|
|
261
|
-
status: 3,
|
|
262
|
-
intent_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
|
|
263
|
-
}),
|
|
264
|
-
});
|
|
265
|
-
const result = await solverService.getStatus(mockStatusRequest);
|
|
266
|
-
expect(result.ok).toBe(true);
|
|
267
|
-
if (result.ok) {
|
|
268
|
-
expect(result.value).toBeDefined();
|
|
269
|
-
expect(result.value.status).toBe(3);
|
|
270
|
-
}
|
|
271
|
-
expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/status`, expect.objectContaining({
|
|
272
|
-
method: 'POST',
|
|
273
|
-
headers: { 'Content-Type': 'application/json' },
|
|
274
|
-
body: expect.any(String),
|
|
275
|
-
}));
|
|
276
|
-
});
|
|
277
|
-
it('should handle API error responses', async () => {
|
|
278
|
-
// Mock fetch error response
|
|
279
|
-
global.fetch = vi.fn().mockResolvedValueOnce({
|
|
280
|
-
ok: false,
|
|
281
|
-
json: async () => ({
|
|
282
|
-
detail: {
|
|
283
|
-
code: IntentErrorCode.NO_PATH_FOUND,
|
|
284
|
-
message: 'Intent not found',
|
|
285
|
-
},
|
|
286
|
-
}),
|
|
287
|
-
});
|
|
288
|
-
const result = await solverService.getStatus(mockStatusRequest);
|
|
289
|
-
expect(result.ok).toBe(false);
|
|
290
|
-
if (!result.ok) {
|
|
291
|
-
expect(result.error).toBeDefined();
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
});
|
|
295
|
-
describe('createAndSubmitIntent', () => {
|
|
296
|
-
it('should successfully create and submit an intent', async () => {
|
|
297
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
298
|
-
const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
|
|
299
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
300
|
-
const mockIntentWithFee = { ...mockIntent, feeAmount };
|
|
301
|
-
vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
|
|
302
|
-
ok: true,
|
|
303
|
-
value: [mockTxHash, mockIntentWithFee],
|
|
304
|
-
});
|
|
305
|
-
vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockCreatorHubWalletAddress);
|
|
306
|
-
vi.spyOn(IntentRelayApiService, 'submitTransaction').mockResolvedValueOnce({
|
|
307
|
-
success: true,
|
|
308
|
-
message: 'Transaction submitted successfully',
|
|
309
|
-
});
|
|
310
|
-
vi.spyOn(IntentRelayApiService, 'waitUntilIntentExecuted').mockResolvedValueOnce({
|
|
311
|
-
ok: true,
|
|
312
|
-
value: mockPacketData,
|
|
313
|
-
});
|
|
314
|
-
vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
|
|
315
|
-
ok: true,
|
|
316
|
-
value: {
|
|
317
|
-
answer: 'OK',
|
|
318
|
-
intent_hash: mockTxHash,
|
|
319
|
-
},
|
|
320
|
-
});
|
|
321
|
-
const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
|
|
322
|
-
expect(result.ok).toBe(true);
|
|
323
|
-
if (result.ok) {
|
|
324
|
-
expect(result.value).toBeDefined();
|
|
325
|
-
expect(result.value[0]).toBeDefined();
|
|
326
|
-
expect(result.value[1]).toEqual(mockIntentWithFee);
|
|
327
|
-
}
|
|
328
|
-
expect(solverService['createIntent']).toHaveBeenCalledWith(mockCreateIntentParams, mockBscSpokeProvider, mockFee, false);
|
|
329
|
-
expect(solverService['postExecution']).toHaveBeenCalledWith({
|
|
330
|
-
intent_tx_hash: mockTxHash,
|
|
331
|
-
});
|
|
332
|
-
expect(IntentRelayApiService.submitTransaction).toHaveBeenCalled();
|
|
333
|
-
});
|
|
334
|
-
it('should handle postExecution error', async () => {
|
|
335
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
336
|
-
vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
|
|
337
|
-
ok: false,
|
|
338
|
-
error: {
|
|
339
|
-
detail: {
|
|
340
|
-
code: IntentErrorCode.UNKNOWN,
|
|
341
|
-
message: 'Post execution failed',
|
|
342
|
-
},
|
|
343
|
-
},
|
|
344
|
-
});
|
|
345
|
-
const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
|
|
346
|
-
expect(result.ok).toBe(false);
|
|
347
|
-
if (!result.ok) {
|
|
348
|
-
expect(result.error).toBeDefined();
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
it('should handle submitTransaction error', async () => {
|
|
352
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
353
|
-
const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
|
|
354
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
355
|
-
vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
|
|
356
|
-
ok: true,
|
|
357
|
-
value: [mockTxHash, { ...mockIntent, feeAmount: feeAmount }],
|
|
358
|
-
});
|
|
359
|
-
vi.spyOn(IntentRelayApiService, 'submitTransaction').mockResolvedValueOnce({
|
|
360
|
-
success: false,
|
|
361
|
-
message: 'Transaction submission failed',
|
|
362
|
-
});
|
|
363
|
-
vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
|
|
364
|
-
ok: true,
|
|
365
|
-
value: {
|
|
366
|
-
answer: 'OK',
|
|
367
|
-
intent_hash: mockTxHash,
|
|
368
|
-
},
|
|
369
|
-
});
|
|
370
|
-
const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
|
|
371
|
-
expect(result.ok).toBe(false);
|
|
372
|
-
if (!result.ok) {
|
|
373
|
-
expect(result.error).toEqual({
|
|
374
|
-
code: 'SUBMIT_TX_FAILED',
|
|
375
|
-
data: {
|
|
376
|
-
apiUrl: 'https://xcall-relay.nw.iconblockchain.xyz',
|
|
377
|
-
payload: {
|
|
378
|
-
action: 'submit',
|
|
379
|
-
params: {
|
|
380
|
-
chain_id: '4',
|
|
381
|
-
tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
|
|
382
|
-
},
|
|
383
|
-
},
|
|
384
|
-
},
|
|
385
|
-
});
|
|
386
|
-
}
|
|
387
|
-
});
|
|
388
|
-
});
|
|
389
|
-
describe('createIntent', () => {
|
|
390
|
-
it('should successfully create an intent for EVM chain', async () => {
|
|
391
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
392
|
-
const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
|
|
393
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
394
|
-
const mockIntentWithFee = { ...mockIntent, feeAmount };
|
|
395
|
-
vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
|
|
396
|
-
ok: true,
|
|
397
|
-
value: [mockTxHash, mockIntentWithFee],
|
|
398
|
-
});
|
|
399
|
-
vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockCreatorHubWalletAddress);
|
|
400
|
-
const result = await solverService.createIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee, false);
|
|
401
|
-
expect(result.ok).toBe(true);
|
|
402
|
-
if (result.ok) {
|
|
403
|
-
const [txHash, resultingIntent] = result.value;
|
|
404
|
-
expect(txHash).toBe(mockTxHash);
|
|
405
|
-
expect(resultingIntent).toEqual(mockIntentWithFee);
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
describe('cancelIntent', () => {
|
|
410
|
-
it('should successfully cancel an intent for EVM chain', async () => {
|
|
411
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
412
|
-
const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
|
|
413
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
414
|
-
vi.spyOn(solverService, 'cancelIntent').mockResolvedValueOnce(mockTxHash);
|
|
415
|
-
const result = await solverService.cancelIntent(mockIntent, mockBscSpokeProvider, false);
|
|
416
|
-
expect(result).toBe(mockTxHash);
|
|
417
|
-
});
|
|
418
|
-
});
|
|
419
|
-
describe('getIntent', () => {
|
|
420
|
-
it('should successfully get an intent for EVM chain', async () => {
|
|
421
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
422
|
-
const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
|
|
423
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
424
|
-
vi.spyOn(EvmSolverService, 'getIntent').mockResolvedValueOnce(mockIntent);
|
|
425
|
-
const result = await solverService.getIntent(mockTxHash);
|
|
426
|
-
expect(result).toEqual(mockIntent);
|
|
427
|
-
});
|
|
428
|
-
});
|
|
429
|
-
describe('getIntentHash', () => {
|
|
430
|
-
it('should successfully get an intent hash', async () => {
|
|
431
|
-
const mockCreateIntentParams = await createMockIntentParams();
|
|
432
|
-
const mockIntent = await createMockIntent(mockCreateIntentParams);
|
|
433
|
-
vi.spyOn(solverService, 'getIntentHash').mockReturnValueOnce('0x8196c6646c0d811b2ff19ffdf61533ad2d73d724fcd69c77ec243a908364a35e');
|
|
434
|
-
const result = solverService.getIntentHash(mockIntent);
|
|
435
|
-
expect(result).toBe('0x8196c6646c0d811b2ff19ffdf61533ad2d73d724fcd69c77ec243a908364a35e');
|
|
436
|
-
});
|
|
437
|
-
});
|
|
438
|
-
});
|
|
439
|
-
//# sourceMappingURL=SolverService.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SolverService.test.js","sourceRoot":"","sources":["../../../src/services/solver/SolverService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/solver/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/solver/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { type Address, type Hex } from 'viem';
|
|
2
|
-
import { CWSpokeProvider } from '../../entities/cosmos/CWSpokeProvider.js';
|
|
3
|
-
import type { EvmHubProvider } from '../../entities/index.js';
|
|
4
|
-
import { type HubAddress, type PromiseCWTxReturnType } from '../../index.js';
|
|
5
|
-
export type CWSpokeDepositParams = {
|
|
6
|
-
from: string;
|
|
7
|
-
to?: HubAddress;
|
|
8
|
-
token: string;
|
|
9
|
-
amount: bigint;
|
|
10
|
-
data: Hex;
|
|
11
|
-
};
|
|
12
|
-
export type TransferToHubParams = {
|
|
13
|
-
token: string;
|
|
14
|
-
recipient: Address;
|
|
15
|
-
amount: string;
|
|
16
|
-
data: Hex;
|
|
17
|
-
};
|
|
18
|
-
export declare class CWSpokeService {
|
|
19
|
-
private constructor();
|
|
20
|
-
/**
|
|
21
|
-
* Deposit tokens to the spoke chain.
|
|
22
|
-
* @param {CWSpokeDepositParams} params - The parameters for the deposit, including the user's address, token address, amount, and additional data.
|
|
23
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
24
|
-
* @param {EvmHubProvider} hubProvider - The provider for the hub chain.
|
|
25
|
-
* @param {boolean} raw - The return type raw or just transaction hash
|
|
26
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
27
|
-
*/
|
|
28
|
-
static deposit<R extends boolean = false>(params: CWSpokeDepositParams, spokeProvider: CWSpokeProvider, hubProvider: EvmHubProvider, raw?: R): PromiseCWTxReturnType<R>;
|
|
29
|
-
/**
|
|
30
|
-
* Get the balance of the token in the spoke chain.
|
|
31
|
-
* @param {Address} token - The address of the token to get the balance of.
|
|
32
|
-
* @param {CWSpokeProvider} spokeProvider - The spoke provider.
|
|
33
|
-
* @returns {Promise<bigint>} The balance of the token.
|
|
34
|
-
*/
|
|
35
|
-
static getDeposit(token: String, spokeProvider: CWSpokeProvider): Promise<bigint>;
|
|
36
|
-
/**
|
|
37
|
-
* Calls a contract on the spoke chain using the user's wallet.
|
|
38
|
-
* @param {HubAddress} from - The address of the user on the hub chain.
|
|
39
|
-
* @param {Hex} payload - The payload to send to the contract.
|
|
40
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
41
|
-
* @param {EvmHubProvider} hubProvider - The provider for the hub chain.
|
|
42
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
43
|
-
*/
|
|
44
|
-
static callWallet<R extends boolean = false>(from: HubAddress, payload: Hex, spokeProvider: CWSpokeProvider, hubProvider: EvmHubProvider, raw?: R): PromiseCWTxReturnType<R>;
|
|
45
|
-
/**
|
|
46
|
-
* Transfers tokens to the hub chain.
|
|
47
|
-
* @param {TransferToHubParams} params - The parameters for the transfer, including:
|
|
48
|
-
* - {string} token: The address of the token to transfer (use address(0) for native token).
|
|
49
|
-
* - {Uint8Array} recipient: The recipient address on the hub chain.
|
|
50
|
-
* - {string} amount: The amount to transfer.
|
|
51
|
-
* - {Uint8Array} [data=new Uint8Array([])]: Additional data for the transfer.
|
|
52
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
53
|
-
* @param {boolean} raw - The return type raw or just transaction hash
|
|
54
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
55
|
-
*/
|
|
56
|
-
private static transfer;
|
|
57
|
-
/**
|
|
58
|
-
* Sends a message to the hub chain.
|
|
59
|
-
* @param {bigint} dstChainId - The chain ID of the hub chain.
|
|
60
|
-
* @param {Address} dstAddress - The address on the hub chain.
|
|
61
|
-
* @param {Hex} payload - The payload to send.
|
|
62
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
63
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
64
|
-
*/
|
|
65
|
-
private static call;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=CWSpokeService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CWSpokeService.d.ts","sourceRoot":"","sources":["../../../src/services/spoke/CWSpokeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAS,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAyB,MAAM,gBAAgB,CAAC;AAGpG,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO;IAEP;;;;;;;OAOG;WACiB,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACnD,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,cAAc,EAC3B,GAAG,CAAC,EAAE,CAAC,GACN,qBAAqB,CAAC,CAAC,CAAC;IAqB3B;;;;;OAKG;WACiB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9F;;;;;;;OAOG;WACiB,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACtD,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,EACZ,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,cAAc,EAC3B,GAAG,CAAC,EAAE,CAAC,GACN,qBAAqB,CAAC,CAAC,CAAC;IAK3B;;;;;;;;;;OAUG;mBACkB,QAAQ;IAS7B;;;;;;;OAOG;mBACkB,IAAI;CAU1B"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { toHex } from 'viem';
|
|
2
|
-
import { CWSpokeProvider } from '../../entities/cosmos/CWSpokeProvider.js';
|
|
3
|
-
import { getIntentRelayChainId } from '../../index.js';
|
|
4
|
-
import { EvmWalletAbstraction } from '../hub/index.js';
|
|
5
|
-
export class CWSpokeService {
|
|
6
|
-
constructor() { }
|
|
7
|
-
/**
|
|
8
|
-
* Deposit tokens to the spoke chain.
|
|
9
|
-
* @param {CWSpokeDepositParams} params - The parameters for the deposit, including the user's address, token address, amount, and additional data.
|
|
10
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
11
|
-
* @param {EvmHubProvider} hubProvider - The provider for the hub chain.
|
|
12
|
-
* @param {boolean} raw - The return type raw or just transaction hash
|
|
13
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
14
|
-
*/
|
|
15
|
-
static async deposit(params, spokeProvider, hubProvider, raw) {
|
|
16
|
-
const userWallet = params.to ??
|
|
17
|
-
(await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, toHex(Buffer.from(params.from, 'utf-8')), hubProvider));
|
|
18
|
-
return CWSpokeService.transfer({
|
|
19
|
-
token: params.token,
|
|
20
|
-
recipient: userWallet,
|
|
21
|
-
amount: params.amount.toString(),
|
|
22
|
-
data: params.data,
|
|
23
|
-
}, spokeProvider, raw);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get the balance of the token in the spoke chain.
|
|
27
|
-
* @param {Address} token - The address of the token to get the balance of.
|
|
28
|
-
* @param {CWSpokeProvider} spokeProvider - The spoke provider.
|
|
29
|
-
* @returns {Promise<bigint>} The balance of the token.
|
|
30
|
-
*/
|
|
31
|
-
static async getDeposit(token, spokeProvider) {
|
|
32
|
-
const bal = await spokeProvider.getBalance(token);
|
|
33
|
-
return BigInt(bal);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Calls a contract on the spoke chain using the user's wallet.
|
|
37
|
-
* @param {HubAddress} from - The address of the user on the hub chain.
|
|
38
|
-
* @param {Hex} payload - The payload to send to the contract.
|
|
39
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
40
|
-
* @param {EvmHubProvider} hubProvider - The provider for the hub chain.
|
|
41
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
42
|
-
*/
|
|
43
|
-
static async callWallet(from, payload, spokeProvider, hubProvider, raw) {
|
|
44
|
-
const relayId = getIntentRelayChainId(hubProvider.chainConfig.chain.id);
|
|
45
|
-
return CWSpokeService.call(BigInt(relayId), from, payload, spokeProvider, raw);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Transfers tokens to the hub chain.
|
|
49
|
-
* @param {TransferToHubParams} params - The parameters for the transfer, including:
|
|
50
|
-
* - {string} token: The address of the token to transfer (use address(0) for native token).
|
|
51
|
-
* - {Uint8Array} recipient: The recipient address on the hub chain.
|
|
52
|
-
* - {string} amount: The amount to transfer.
|
|
53
|
-
* - {Uint8Array} [data=new Uint8Array([])]: Additional data for the transfer.
|
|
54
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
55
|
-
* @param {boolean} raw - The return type raw or just transaction hash
|
|
56
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
57
|
-
*/
|
|
58
|
-
static async transfer({ token, recipient, amount, data = '0x' }, spokeProvider, raw) {
|
|
59
|
-
const sender = await spokeProvider.walletProvider.getWalletAddress();
|
|
60
|
-
return CWSpokeProvider.deposit(sender, token, recipient, amount, data, spokeProvider, raw);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Sends a message to the hub chain.
|
|
64
|
-
* @param {bigint} dstChainId - The chain ID of the hub chain.
|
|
65
|
-
* @param {Address} dstAddress - The address on the hub chain.
|
|
66
|
-
* @param {Hex} payload - The payload to send.
|
|
67
|
-
* @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
|
|
68
|
-
* @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
|
|
69
|
-
*/
|
|
70
|
-
static async call(dstChainId, dstAddress, payload, spokeProvider, raw) {
|
|
71
|
-
const sender = await spokeProvider.walletProvider.getWalletAddress();
|
|
72
|
-
return spokeProvider.send_message(sender, dstChainId.toString(), dstAddress, payload, raw);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=CWSpokeService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CWSpokeService.js","sourceRoot":"","sources":["../../../src/services/spoke/CWSpokeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAA+C,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAiBvD,MAAM,OAAO,cAAc;IACzB,gBAAuB,CAAC;IAExB;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CACzB,MAA4B,EAC5B,aAA8B,EAC9B,WAA2B,EAC3B,GAAO;QAEP,MAAM,UAAU,GACd,MAAM,CAAC,EAAE;YACT,CAAC,MAAM,oBAAoB,CAAC,uBAAuB,CACjD,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACxC,WAAW,CACZ,CAAC,CAAC;QAEL,OAAO,cAAc,CAAC,QAAQ,CAC5B;YACE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,EACD,aAAa,EACb,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,aAA8B;QAC1E,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAC5B,IAAgB,EAChB,OAAY,EACZ,aAA8B,EAC9B,WAA2B,EAC3B,GAAO;QAEP,MAAM,OAAO,GAAG,qBAAqB,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;OAUG;IACK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC3B,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAuB,EAC9D,aAA8B,EAC9B,GAAO;QAEP,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACrE,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,IAAI,CACvB,UAAkB,EAClB,UAAe,EACf,OAAY,EACZ,aAA8B,EAC9B,GAAO;QAEP,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACrE,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;CACF"}
|