@shogun-sdk/intents-sdk 1.2.5 → 1.2.6-test
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 -19
- package/dist/esm/chains.js +3 -0
- package/dist/esm/chains.js.map +1 -1
- package/dist/esm/constants.js +9 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/core/evm/chain-provider.js +2 -1
- package/dist/esm/core/evm/chain-provider.js.map +1 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js +1 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js.map +1 -1
- package/dist/esm/core/evm/permit2-signature-transfer.js +15 -0
- package/dist/esm/core/evm/permit2-signature-transfer.js.map +1 -0
- package/dist/esm/core/evm/single-chain-dca-order.js +1 -1
- package/dist/esm/core/evm/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/evm/single-chain-limit-order.js +1 -1
- package/dist/esm/core/evm/single-chain-limit-order.js.map +1 -1
- package/dist/esm/core/solana/dca/single-chain-dca-order.js +3 -2
- package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/solana/dca/single-chain-limit-order.js +3 -2
- package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +1 -1
- package/dist/esm/core/solana/utils.js +14 -4
- package/dist/esm/core/solana/utils.js.map +1 -1
- package/dist/esm/core/sui/single-chain-dca-order.js +2 -1
- package/dist/esm/core/sui/single-chain-dca-order.js.map +1 -1
- package/dist/esm/core/sui/single-chain-limit-order.js +2 -1
- package/dist/esm/core/sui/single-chain-limit-order.js.map +1 -1
- package/dist/esm/index.js +6 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/token-list.js +2 -0
- package/dist/esm/types/token-list.js.map +1 -0
- package/dist/esm/utils/defillama.js +1 -0
- package/dist/esm/utils/defillama.js.map +1 -1
- package/dist/esm/utils/quote/aggregator.js +158 -42
- package/dist/esm/utils/quote/aggregator.js.map +1 -1
- package/dist/esm/utils/quote/paraswap.js +1 -0
- package/dist/esm/utils/quote/paraswap.js.map +1 -1
- package/dist/esm/utils/quote/pumpfun/estimations.js +169 -0
- package/dist/esm/utils/quote/pumpfun/estimations.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/estimations_amm.js +130 -0
- package/dist/esm/utils/quote/pumpfun/estimations_amm.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/index.js +198 -0
- package/dist/esm/utils/quote/pumpfun/index.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/models.js +70 -0
- package/dist/esm/utils/quote/pumpfun/models.js.map +1 -0
- package/dist/esm/utils/quote/pumpfun/utils.js +269 -0
- package/dist/esm/utils/quote/pumpfun/utils.js.map +1 -0
- package/dist/esm/utils/quote/raydium.js +336 -0
- package/dist/esm/utils/quote/raydium.js.map +1 -0
- package/dist/esm/utils/quote/stablecoins-tokens.js +1 -0
- package/dist/esm/utils/quote/stablecoins-tokens.js.map +1 -1
- package/dist/esm/utils/quote/utils.js +8 -0
- package/dist/esm/utils/quote/utils.js.map +1 -0
- package/dist/esm/utils/tokens/index.js +37 -0
- package/dist/esm/utils/tokens/index.js.map +1 -0
- package/dist/types/chains.d.ts +4 -2
- package/dist/types/chains.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/core/evm/chain-provider.d.ts.map +1 -1
- package/dist/types/core/evm/permit2-signature-transfer.d.ts +3 -0
- package/dist/types/core/evm/permit2-signature-transfer.d.ts.map +1 -0
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +1 -2
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +1 -1
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +1 -2
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +1 -1
- package/dist/types/core/solana/utils.d.ts +2 -0
- package/dist/types/core/solana/utils.d.ts.map +1 -1
- package/dist/types/core/sui/single-chain-dca-order.d.ts.map +1 -1
- package/dist/types/core/sui/single-chain-limit-order.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/token-list.d.ts +30 -0
- package/dist/types/types/token-list.d.ts.map +1 -0
- package/dist/types/utils/defillama.d.ts +1 -0
- package/dist/types/utils/defillama.d.ts.map +1 -1
- package/dist/types/utils/quote/aggregator.d.ts +42 -5
- package/dist/types/utils/quote/aggregator.d.ts.map +1 -1
- package/dist/types/utils/quote/paraswap.d.ts.map +1 -1
- package/dist/types/utils/quote/pumpfun/estimations.d.ts +30 -0
- package/dist/types/utils/quote/pumpfun/estimations.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/estimations_amm.d.ts +49 -0
- package/dist/types/utils/quote/pumpfun/estimations_amm.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/index.d.ts +10 -0
- package/dist/types/utils/quote/pumpfun/index.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/models.d.ts +94 -0
- package/dist/types/utils/quote/pumpfun/models.d.ts.map +1 -0
- package/dist/types/utils/quote/pumpfun/utils.d.ts +50 -0
- package/dist/types/utils/quote/pumpfun/utils.d.ts.map +1 -0
- package/dist/types/utils/quote/raydium.d.ts +98 -0
- package/dist/types/utils/quote/raydium.d.ts.map +1 -0
- package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +1 -1
- package/dist/types/utils/quote/utils.d.ts +5 -0
- package/dist/types/utils/quote/utils.d.ts.map +1 -0
- package/dist/types/utils/tokens/index.d.ts +20 -0
- package/dist/types/utils/tokens/index.d.ts.map +1 -0
- package/package.json +20 -18
- package/src/chains.ts +3 -0
- package/src/constants.ts +12 -2
- package/src/core/evm/chain-provider.ts +2 -1
- package/src/core/evm/cross-chain-limit-order.ts +1 -1
- package/src/core/evm/permit2-signature-transfer.ts +15 -0
- package/src/core/evm/single-chain-dca-order.ts +1 -1
- package/src/core/evm/single-chain-limit-order.ts +1 -1
- package/src/core/solana/dca/single-chain-dca-order.ts +3 -3
- package/src/core/solana/dca/single-chain-limit-order.ts +3 -2
- package/src/core/solana/utils.ts +24 -12
- package/src/core/sui/single-chain-dca-order.ts +2 -2
- package/src/core/sui/single-chain-limit-order.ts +2 -2
- package/src/index.ts +14 -4
- package/src/types/token-list.ts +35 -0
- package/src/utils/defillama.ts +1 -0
- package/src/utils/quote/aggregator.ts +210 -55
- package/src/utils/quote/paraswap.ts +1 -0
- package/src/utils/quote/pumpfun/estimations.ts +206 -0
- package/src/utils/quote/pumpfun/estimations_amm.ts +165 -0
- package/src/utils/quote/pumpfun/index.ts +266 -0
- package/src/utils/quote/pumpfun/models.ts +163 -0
- package/src/utils/quote/pumpfun/utils.ts +343 -0
- package/src/utils/quote/raydium.ts +506 -0
- package/src/utils/quote/stablecoins-tokens.ts +1 -0
- package/src/utils/quote/utils.ts +8 -0
- package/src/utils/tokens/index.ts +38 -0
package/src/constants.ts
CHANGED
|
@@ -15,6 +15,7 @@ export const PERMIT2_ADDRESS: Record<SupportedEvmChain, EvmAddress> = {
|
|
|
15
15
|
[ChainID.Optimism]: '0x000000000022d473030f116ddee9f6b43ac78ba3' as EvmAddress,
|
|
16
16
|
[ChainID.Base]: '0x000000000022d473030f116ddee9f6b43ac78ba3' as EvmAddress,
|
|
17
17
|
[ChainID.Hyperliquid]: '0x000000000022d473030f116ddee9f6b43ac78ba3' as EvmAddress,
|
|
18
|
+
[ChainID.BSC]: '0x000000000022d473030f116ddee9f6b43ac78ba3' as EvmAddress,
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
// Production guard addresses
|
|
@@ -26,6 +27,7 @@ export const PROD_CROSS_CHAIN_GUARD_ADDRESSES: Record<SupportedChain, SolanaAddr
|
|
|
26
27
|
[ChainID.Solana]:
|
|
27
28
|
'AiTqNSZe6Nxs2myiUX1cP6YfiER3v2pWuMYMSLYcrpyo' as SolanaAddress<'AiTqNSZe6Nxs2myiUX1cP6YfiER3v2pWuMYMSLYcrpyo'>,
|
|
28
29
|
[ChainID.Sui]: '0x70d005df81d0fd7f7a7aaf87fa8676bff427f7202897b373bbf3d5bf0a8792de',
|
|
30
|
+
[ChainID.BSC]: '0x338E91366F825A906646adD722755c40b02D7234' as EvmAddress,
|
|
29
31
|
};
|
|
30
32
|
|
|
31
33
|
// Test guard addresses
|
|
@@ -37,6 +39,7 @@ export const TEST_CROSS_CHAIN_GUARD_ADDRESSES: Record<SupportedChain, SolanaAddr
|
|
|
37
39
|
[ChainID.Solana]:
|
|
38
40
|
'97XuksD34dyU3qyPDNwQ8qfPw1zHoUa7xVxBVdojSJ7E' as SolanaAddress<'97XuksD34dyU3qyPDNwQ8qfPw1zHoUa7xVxBVdojSJ7E'>,
|
|
39
41
|
[ChainID.Sui]: '0x47f2934f621483bc485feeb78972dd2fb25840074e296fffb9e64f9bde6d2ff1',
|
|
42
|
+
[ChainID.BSC]: '0x41E46ea2a85E49c28A0cE313B4F7a6AEC1AfD852' as EvmAddress,
|
|
40
43
|
};
|
|
41
44
|
|
|
42
45
|
// Prod guard addresses
|
|
@@ -50,7 +53,8 @@ export const PROD_SINGLE_CHAIN_GUARD_ADDRESSES: Record<
|
|
|
50
53
|
[ChainID.Hyperliquid]: '0x618ee9b6829261108d811b91581e00da192b0b75' as EvmAddress,
|
|
51
54
|
[ChainID.Solana]:
|
|
52
55
|
'CwWkajHjBCWMKZdwR5D1P5M6Fgf9dAyxqZ1qDZgZGo1e' as SolanaAddress<'CwWkajHjBCWMKZdwR5D1P5M6Fgf9dAyxqZ1qDZgZGo1e'>,
|
|
53
|
-
|
|
56
|
+
[ChainID.BSC]: '0xA69c47F93Ccc5BcCdc4b3c71646F61Fa5baa3323' as EvmAddress,
|
|
57
|
+
};
|
|
54
58
|
|
|
55
59
|
// Test guard addresses
|
|
56
60
|
export const TEST_SINGLE_CHAIN_GUARD_ADDRESSES: Record<
|
|
@@ -63,13 +67,15 @@ export const TEST_SINGLE_CHAIN_GUARD_ADDRESSES: Record<
|
|
|
63
67
|
[ChainID.Hyperliquid]: '0x6a2f41f905035fa89b7329c0661061b580b1eb92' as EvmAddress,
|
|
64
68
|
[ChainID.Solana]:
|
|
65
69
|
'4wi5wsgSs9q9WV55s9AvKWTdeMNPcDXhzcbx5SoRRFcg' as SolanaAddress<'4wi5wsgSs9q9WV55s9AvKWTdeMNPcDXhzcbx5SoRRFcg'>,
|
|
66
|
-
|
|
70
|
+
[ChainID.BSC]: '0xBc68262535d2a8D42bA80c9bbF5299DfbfEc0040' as EvmAddress,
|
|
71
|
+
};
|
|
67
72
|
|
|
68
73
|
export const PROD_DCA_SINGLE_CHAIN_GUARD_ADDRESSES: Record<SupportedEvmChain, EvmAddress> = {
|
|
69
74
|
[ChainID.Arbitrum]: '0x0000000000000000000000000000000000000000' as EvmAddress,
|
|
70
75
|
[ChainID.Optimism]: '0x0000000000000000000000000000000000000000' as EvmAddress,
|
|
71
76
|
[ChainID.Base]: '0x1ab119e95a87ff59a57eba6dec6599aff8b2d7e4' as EvmAddress,
|
|
72
77
|
[ChainID.Hyperliquid]: '0x490911e5236f68ba921cbecc4b82b5e01b745731' as EvmAddress,
|
|
78
|
+
[ChainID.BSC]: '0x12052867995d5fb757f5ea8EC49eb99ee502C1e8' as EvmAddress,
|
|
73
79
|
};
|
|
74
80
|
|
|
75
81
|
// Test guard addresses
|
|
@@ -78,6 +84,7 @@ export const TEST_DCA_SINGLE_CHAIN_GUARD_ADDRESSES: Record<SupportedEvmChain, Ev
|
|
|
78
84
|
[ChainID.Optimism]: '0x0000000000000000000000000000000000000000' as EvmAddress,
|
|
79
85
|
[ChainID.Base]: '0x79fd6a458066396c8938823049b6e614ce6b71f2' as EvmAddress,
|
|
80
86
|
[ChainID.Hyperliquid]: '0x5156e6c7b7a1c60ed4d6b2175f88f1f6875c78d8' as EvmAddress,
|
|
87
|
+
[ChainID.BSC]: '0x25c283094f9EDA9F1455a1ecbEEf10c69311D962' as EvmAddress,
|
|
81
88
|
};
|
|
82
89
|
|
|
83
90
|
export const CROSS_CHAIN_GUARD_ADDRESSES = useProdConfig
|
|
@@ -140,6 +147,7 @@ export const WRAPPED_ETH_ADDRESSES: Record<SupportedEvmChain, EvmAddress> = {
|
|
|
140
147
|
[ChainID.Optimism]: '0x4200000000000000000000000000000000000006' as EvmAddress,
|
|
141
148
|
[ChainID.Base]: '0x4200000000000000000000000000000000000006' as EvmAddress,
|
|
142
149
|
[ChainID.Hyperliquid]: '0x5555555555555555555555555555555555555555' as EvmAddress,
|
|
150
|
+
[ChainID.BSC]: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c' as EvmAddress,
|
|
143
151
|
};
|
|
144
152
|
|
|
145
153
|
export const NATIVE_SUI_TOKEN_ADDRESS = '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI';
|
|
@@ -149,3 +157,5 @@ export function isNativeEvmToken(tokenAddress: string): boolean {
|
|
|
149
157
|
|
|
150
158
|
return NATIVE_EVM_ETH_ADDRESSES.some((addr) => addr.toLowerCase() === normalizedAddress);
|
|
151
159
|
}
|
|
160
|
+
|
|
161
|
+
export const TOKEN_SEARCH_API_BASE_URL = 'https://token-search-api.vercel.app';
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type WalletClient,
|
|
13
13
|
} from 'viem';
|
|
14
14
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
15
|
-
import { arbitrum, base, optimism } from 'viem/chains';
|
|
15
|
+
import { arbitrum, base, optimism, bsc } from 'viem/chains';
|
|
16
16
|
import { ChainID, type SupportedEvmChain } from '../../chains.js';
|
|
17
17
|
import type { EVMConfig } from '../../config.js';
|
|
18
18
|
import { ERC20ABI } from './abi/erc20.js';
|
|
@@ -26,6 +26,7 @@ export const chainIdToProviderChainMap: Record<SupportedEvmChain, Chain> = {
|
|
|
26
26
|
[ChainID.Optimism]: optimism,
|
|
27
27
|
[ChainID.Base]: base,
|
|
28
28
|
[ChainID.Hyperliquid]: hyperEVM,
|
|
29
|
+
[ChainID.BSC]: bsc,
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
export class ChainProvider {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ethers, type TypedDataField, type AddressLike, type BigNumberish } from "ethers";
|
|
2
|
-
import { SignatureTransfer } from "
|
|
2
|
+
import { SignatureTransfer } from "./permit2-signature-transfer.js";
|
|
3
3
|
|
|
4
4
|
export const OrderInfoType: Record<string, TypedDataField[]> = {
|
|
5
5
|
OrderInfo: [
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
let SignatureTransfer: any
|
|
2
|
+
|
|
3
|
+
// Only use createRequire in Node (never in browsers)
|
|
4
|
+
if (typeof process !== "undefined" && process.versions?.node) {
|
|
5
|
+
const { createRequire } = await import("module")
|
|
6
|
+
const require = createRequire(import.meta.url)
|
|
7
|
+
const pkg = require("@uniswap/permit2-sdk")
|
|
8
|
+
SignatureTransfer = pkg.SignatureTransfer
|
|
9
|
+
} else {
|
|
10
|
+
// Fallback for Vite / Vue / browser builds
|
|
11
|
+
const pkg = await import("@uniswap/permit2-sdk")
|
|
12
|
+
SignatureTransfer = (pkg as any).SignatureTransfer
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { SignatureTransfer }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ethers, type TypedDataField, type AddressLike, type BigNumberish, type BytesLike } from "ethers";
|
|
2
|
-
import { SignatureTransfer } from "
|
|
2
|
+
import { SignatureTransfer } from "./permit2-signature-transfer.js";
|
|
3
3
|
import { TransferDataType, type TransferDataStruct } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export const SingleChainDcaOrderType: Record<string, TypedDataField[]> = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ethers, type TypedDataField, type AddressLike, type BigNumberish, type BytesLike } from "ethers";
|
|
2
|
-
import { SignatureTransfer } from "
|
|
2
|
+
import { SignatureTransfer } from "./permit2-signature-transfer.js";
|
|
3
3
|
import { TransferDataType, type TransferDataStruct } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export const SingleChainLimitOrderType: Record<string, TypedDataField[]> = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BN } from "
|
|
1
|
+
import { BN } from "bn.js";
|
|
2
2
|
import { PublicKey } from "@solana/web3.js";
|
|
3
|
-
import { keccak256 } from "js-sha3";
|
|
4
3
|
import type { ExtraTransfer } from "./single-chain-limit-order.js";
|
|
5
|
-
|
|
4
|
+
import pkg from "js-sha3";
|
|
5
|
+
const { keccak256 } = pkg;
|
|
6
6
|
/**
|
|
7
7
|
* Generate secret number and prepare secret hash for single chain DCA orders
|
|
8
8
|
* @param tokenOut Token OUT Pubkey
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BN } from "
|
|
1
|
+
import { BN } from "bn.js";
|
|
2
2
|
import { PublicKey } from "@solana/web3.js";
|
|
3
|
-
import
|
|
3
|
+
import pkg from "js-sha3";
|
|
4
|
+
const { keccak256 } = pkg;
|
|
4
5
|
|
|
5
6
|
export type ExtraTransfer = {
|
|
6
7
|
token: PublicKey;
|
package/src/core/solana/utils.ts
CHANGED
|
@@ -5,28 +5,40 @@ import sha3 from 'js-sha3';
|
|
|
5
5
|
import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
|
|
6
6
|
|
|
7
7
|
export function genSecretHashAndNumber(order: SingleChainOrder | DcaSingleChainOrder): {
|
|
8
|
-
secretHash: number[]
|
|
9
|
-
secretNumber: string
|
|
8
|
+
secretHash: number[]
|
|
9
|
+
secretNumber: string
|
|
10
10
|
} {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const rawTokenOut = new PublicKey(order.tokenOut)
|
|
12
|
+
const tokenOut = formatTokenPubkey(rawTokenOut)
|
|
13
|
+
const receiver = new PublicKey(order.destinationAddress)
|
|
13
14
|
|
|
14
|
-
const extraTransfers = order.extraTransfers ?? []
|
|
15
|
-
const secretNumber = new BN(crypto.getRandomValues(new Uint8Array(8)))
|
|
15
|
+
const extraTransfers = order.extraTransfers ?? []
|
|
16
|
+
const secretNumber = new BN(crypto.getRandomValues(new Uint8Array(8)))
|
|
16
17
|
|
|
17
18
|
const fullArray = [
|
|
18
19
|
...tokenOut.toBuffer(),
|
|
19
20
|
...receiver.toBuffer(),
|
|
20
21
|
...Buffer.concat(
|
|
21
22
|
extraTransfers.map((t) =>
|
|
22
|
-
Buffer.concat([
|
|
23
|
+
Buffer.concat([
|
|
24
|
+
new PublicKey(t.token).toBuffer(),
|
|
25
|
+
new PublicKey(t.receiver).toBuffer(),
|
|
26
|
+
]),
|
|
23
27
|
),
|
|
24
28
|
),
|
|
25
|
-
...secretNumber.toArrayLike(Buffer,
|
|
26
|
-
]
|
|
29
|
+
...secretNumber.toArrayLike(Buffer, "le", 8),
|
|
30
|
+
]
|
|
27
31
|
|
|
28
|
-
const value = sha3.keccak256(Uint8Array.from(fullArray))
|
|
29
|
-
const secretHash = [...Uint8Array.from(Buffer.from(value,
|
|
32
|
+
const value = sha3.keccak256(Uint8Array.from(fullArray))
|
|
33
|
+
const secretHash = [...Uint8Array.from(Buffer.from(value, "hex"))]
|
|
30
34
|
|
|
31
|
-
return { secretHash, secretNumber: secretNumber.toString() }
|
|
35
|
+
return { secretHash, secretNumber: secretNumber.toString() }
|
|
32
36
|
}
|
|
37
|
+
|
|
38
|
+
export function formatTokenPubkey(token: PublicKey) {
|
|
39
|
+
if (token.equals(new PublicKey("So11111111111111111111111111111111111111111"))) {
|
|
40
|
+
return PublicKey.default
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return token;
|
|
44
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { bcs, fromHex } from '@mysten/bcs';
|
|
2
|
-
import { keccak256 } from "js-sha3";
|
|
3
2
|
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId } from "@mysten/sui/utils";
|
|
4
3
|
import { Transaction } from '@mysten/sui/transactions';
|
|
5
4
|
import { ValidationError } from '../../errors/index.js';
|
|
6
5
|
import { createSuiClient } from './client.js';
|
|
7
6
|
import { SUI_PACKAGE_ID, SUI_GUARD_COLLATERAL_TYPE, SUI_GUARD_STABLECOIN_TYPE, NATIVE_SUI_TOKEN_ADDRESS } from '../../constants.js';
|
|
8
7
|
import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
|
|
9
|
-
|
|
8
|
+
import pkg from "js-sha3";
|
|
9
|
+
const { keccak256 } = pkg;
|
|
10
10
|
/**
|
|
11
11
|
* Generates secret hash based on types, addresses and secret number for single chain DCA orders
|
|
12
12
|
* @param coinOutType Type tag of Coin OUT
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { bcs, fromHex } from '@mysten/bcs';
|
|
2
|
-
import { keccak256 } from "js-sha3";
|
|
3
2
|
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId } from "@mysten/sui/utils";
|
|
4
3
|
import { Transaction } from '@mysten/sui/transactions';
|
|
5
4
|
import { ValidationError } from '../../errors/index.js';
|
|
6
5
|
import { createSuiClient } from './client.js';
|
|
7
6
|
import { SUI_PACKAGE_ID, SUI_GUARD_COLLATERAL_TYPE, SUI_GUARD_STABLECOIN_TYPE, NATIVE_SUI_TOKEN_ADDRESS } from '../../constants.js';
|
|
8
7
|
import type { SingleChainOrder } from '../orders/single-chain.js';
|
|
9
|
-
|
|
8
|
+
import pkg from "js-sha3";
|
|
9
|
+
const { keccak256 } = pkg;
|
|
10
10
|
/**
|
|
11
11
|
* Generates random U64 number
|
|
12
12
|
*/
|
package/src/index.ts
CHANGED
|
@@ -42,6 +42,7 @@ export { getSolanaOrdersWithLockedFunds } from './core/solana/inspect.js';
|
|
|
42
42
|
export {
|
|
43
43
|
getSolanaCrossChainOrderInstructions,
|
|
44
44
|
getSolanaSingleChainOrderInstructions,
|
|
45
|
+
type SolanaOrderInstructionResult
|
|
45
46
|
} from './core/solana/order-instructions.js';
|
|
46
47
|
export {
|
|
47
48
|
cancelCrossChainOrderInstructionsAsBytes,
|
|
@@ -50,7 +51,11 @@ export {
|
|
|
50
51
|
export { getSuiOrderTransaction } from './core/sui/order-transaction.js';
|
|
51
52
|
export { getSuiCancelCrossChainOrder } from './core/sui/cancel.js';
|
|
52
53
|
export { getDcaSecretHash, getSuiSingleChainDcaOrderTransaction } from './core/sui/single-chain-dca-order.js';
|
|
53
|
-
export {
|
|
54
|
+
export {
|
|
55
|
+
getSecretHash,
|
|
56
|
+
getRandomU64Number as getSuiRandomU64Number,
|
|
57
|
+
getSuiSingleChainLimitOrderTransaction,
|
|
58
|
+
} from './core/sui/single-chain-limit-order.js';
|
|
54
59
|
export { generateExecutionDetailsHash } from './utils/generate-execution-details-hash.js';
|
|
55
60
|
export {
|
|
56
61
|
createSuiSingleChainLimitOrderIntentRequest,
|
|
@@ -63,7 +68,7 @@ export {
|
|
|
63
68
|
type CreateSuiCrossChainOrderIntentParams,
|
|
64
69
|
} from './core/sui/intent-helpers.js';
|
|
65
70
|
|
|
66
|
-
export * from './constants.js'
|
|
71
|
+
export * from './constants.js';
|
|
67
72
|
|
|
68
73
|
export { getSolanaDcaSingleChainOrderInstructions } from './core/solana/dca/create-order.js';
|
|
69
74
|
|
|
@@ -74,8 +79,12 @@ export { QuoteProvider, type IntentsQuoteParams, type QuoteResponse } from './ut
|
|
|
74
79
|
|
|
75
80
|
export { CROSS_CHAIN_GUARD_ADDRESSES, SINGLE_CHAIN_GUARD_ADDRESSES, PERMIT2_ADDRESS } from './constants.js';
|
|
76
81
|
|
|
77
|
-
export { prepareDcaSecretData
|
|
78
|
-
export { prepareSecretData } from './core/solana/dca/single-chain-limit-order.js'
|
|
82
|
+
export { prepareDcaSecretData } from './core/solana/dca/single-chain-dca-order.js';
|
|
83
|
+
export { prepareSecretData } from './core/solana/dca/single-chain-limit-order.js';
|
|
84
|
+
|
|
85
|
+
// Token List and Search Helper
|
|
86
|
+
export { getTokenList } from './utils/tokens/index.js';
|
|
87
|
+
export { type TokenSearchParams, type TokenInfo, type TokenSearchResponse } from './types/token-list.js';
|
|
79
88
|
|
|
80
89
|
// EVM Intent Helpers
|
|
81
90
|
export {
|
|
@@ -106,3 +115,4 @@ export {
|
|
|
106
115
|
type CreateSolanaSingleChainDcaOrderIntentParams,
|
|
107
116
|
type CreateSolanaCrossChainOrderIntentParams,
|
|
108
117
|
} from './core/solana/intent-helpers.js';
|
|
118
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface TokenSearchParams {
|
|
2
|
+
/** Optional: search phrase (symbol, token name, or address) */
|
|
3
|
+
q?: string;
|
|
4
|
+
|
|
5
|
+
/** Optional: Chain ID filter (e.g. 8453 = Base, 42161 = Arbitrum, 7565164 = Solana, 101 = Sui) */
|
|
6
|
+
networkId?: number;
|
|
7
|
+
|
|
8
|
+
/** Optional: page number for pagination (default = 1) */
|
|
9
|
+
page?: number;
|
|
10
|
+
|
|
11
|
+
/** Optional: number of results per page (default = 20) */
|
|
12
|
+
limit?: number;
|
|
13
|
+
|
|
14
|
+
/** Optional: Abort signal to cancel requests (useful in UI search inputs) */
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Normalized token shape returned by the API */
|
|
19
|
+
export interface TokenInfo {
|
|
20
|
+
address: string;
|
|
21
|
+
symbol: string;
|
|
22
|
+
name: string;
|
|
23
|
+
chainId: number;
|
|
24
|
+
decimals: number;
|
|
25
|
+
image?: string;
|
|
26
|
+
isVerified?: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Paginated API response */
|
|
30
|
+
export interface TokenSearchResponse {
|
|
31
|
+
count: number;
|
|
32
|
+
page: number;
|
|
33
|
+
limit: number;
|
|
34
|
+
results: TokenInfo[];
|
|
35
|
+
}
|