sushi 6.3.0 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_cjs/evm/api/quote.js +60 -27
- package/_cjs/evm/api/quote.js.map +1 -1
- package/_cjs/evm/api/swap.js +53 -20
- package/_cjs/evm/api/swap.js.map +1 -1
- package/_cjs/evm/currency/currency.js +35 -2
- package/_cjs/evm/currency/currency.js.map +1 -1
- package/_cjs/generic/chain/chains.js +4 -2
- package/_cjs/generic/chain/chains.js.map +1 -1
- package/_cjs/generic/currency/serialized-currency.js +2 -0
- package/_cjs/generic/currency/serialized-currency.js.map +1 -1
- package/_cjs/svm/chain/chains.js +54 -0
- package/_cjs/svm/chain/chains.js.map +1 -0
- package/_cjs/svm/chain/define-chain.js +13 -0
- package/_cjs/svm/chain/define-chain.js.map +1 -0
- package/_cjs/svm/chain/index.js +19 -0
- package/_cjs/svm/chain/index.js.map +1 -0
- package/_cjs/svm/config/index.js +19 -0
- package/_cjs/svm/config/index.js.map +1 -0
- package/_cjs/svm/config/simple-constants.js +6 -0
- package/_cjs/svm/config/simple-constants.js.map +1 -0
- package/_cjs/svm/config/tokens/index.js +19 -0
- package/_cjs/svm/config/tokens/index.js.map +1 -0
- package/_cjs/svm/config/tokens/token-maps/default-bases.js +21 -0
- package/_cjs/svm/config/tokens/token-maps/default-bases.js.map +1 -0
- package/_cjs/svm/config/tokens/token-maps/default-quote.js +13 -0
- package/_cjs/svm/config/tokens/token-maps/default-quote.js.map +1 -0
- package/_cjs/svm/config/tokens/token-maps/index.js +20 -0
- package/_cjs/svm/config/tokens/token-maps/index.js.map +1 -0
- package/_cjs/svm/config/tokens/token-maps/stables.js +20 -0
- package/_cjs/svm/config/tokens/token-maps/stables.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/USDC.js +18 -0
- package/_cjs/svm/config/tokens/tokens/USDC.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/USDT.js +18 -0
- package/_cjs/svm/config/tokens/tokens/USDT.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/WBTC.js +18 -0
- package/_cjs/svm/config/tokens/tokens/WBTC.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/WETH.js +18 -0
- package/_cjs/svm/config/tokens/tokens/WETH.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/WSOL.js +18 -0
- package/_cjs/svm/config/tokens/tokens/WSOL.js.map +1 -0
- package/_cjs/svm/config/tokens/tokens/index.js +22 -0
- package/_cjs/svm/config/tokens/tokens/index.js.map +1 -0
- package/_cjs/svm/config/tokens/wrapped-native.js +12 -0
- package/_cjs/svm/config/tokens/wrapped-native.js.map +1 -0
- package/_cjs/svm/currency/currency.js +17 -0
- package/_cjs/svm/currency/currency.js.map +1 -0
- package/_cjs/svm/currency/deserialize-currency.js +14 -0
- package/_cjs/svm/currency/deserialize-currency.js.map +1 -0
- package/_cjs/svm/currency/index.js +22 -0
- package/_cjs/svm/currency/index.js.map +1 -0
- package/_cjs/svm/currency/native.js +90 -0
- package/_cjs/svm/currency/native.js.map +1 -0
- package/_cjs/svm/currency/token.js +88 -0
- package/_cjs/svm/currency/token.js.map +1 -0
- package/_cjs/svm/currency/unwrap-token.js +15 -0
- package/_cjs/svm/currency/unwrap-token.js.map +1 -0
- package/_cjs/svm/index.js +20 -0
- package/_cjs/svm/index.js.map +1 -0
- package/_esm/evm/api/quote.js +1 -1
- package/_esm/evm/api/quote.js.map +1 -1
- package/_esm/evm/api/swap.js +1 -1
- package/_esm/evm/api/swap.js.map +1 -1
- package/_esm/evm/currency/currency.js +1 -1
- package/_esm/evm/currency/currency.js.map +1 -1
- package/_esm/generic/chain/chains.js +2 -0
- package/_esm/generic/chain/chains.js.map +1 -1
- package/_esm/generic/currency/serialized-currency.js +2 -0
- package/_esm/generic/currency/serialized-currency.js.map +1 -1
- package/_esm/svm/chain/chains.js +46 -0
- package/_esm/svm/chain/chains.js.map +1 -0
- package/_esm/svm/chain/define-chain.js +10 -0
- package/_esm/svm/chain/define-chain.js.map +1 -0
- package/_esm/svm/chain/index.js +3 -0
- package/_esm/svm/chain/index.js.map +1 -0
- package/_esm/svm/config/index.js +3 -0
- package/_esm/svm/config/index.js.map +1 -0
- package/_esm/svm/config/simple-constants.js +3 -0
- package/_esm/svm/config/simple-constants.js.map +1 -0
- package/_esm/svm/config/tokens/index.js +3 -0
- package/_esm/svm/config/tokens/index.js.map +1 -0
- package/_esm/svm/config/tokens/token-maps/default-bases.js +18 -0
- package/_esm/svm/config/tokens/token-maps/default-bases.js.map +1 -0
- package/_esm/svm/config/tokens/token-maps/default-quote.js +10 -0
- package/_esm/svm/config/tokens/token-maps/default-quote.js.map +1 -0
- package/_esm/svm/config/tokens/token-maps/index.js +4 -0
- package/_esm/svm/config/tokens/token-maps/index.js.map +1 -0
- package/_esm/svm/config/tokens/token-maps/stables.js +16 -0
- package/_esm/svm/config/tokens/token-maps/stables.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/USDC.js +15 -0
- package/_esm/svm/config/tokens/tokens/USDC.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/USDT.js +15 -0
- package/_esm/svm/config/tokens/tokens/USDT.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/WBTC.js +15 -0
- package/_esm/svm/config/tokens/tokens/WBTC.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/WETH.js +15 -0
- package/_esm/svm/config/tokens/tokens/WETH.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/WSOL.js +15 -0
- package/_esm/svm/config/tokens/tokens/WSOL.js.map +1 -0
- package/_esm/svm/config/tokens/tokens/index.js +6 -0
- package/_esm/svm/config/tokens/tokens/index.js.map +1 -0
- package/_esm/svm/config/tokens/wrapped-native.js +9 -0
- package/_esm/svm/config/tokens/wrapped-native.js.map +1 -0
- package/_esm/svm/currency/currency.js +16 -0
- package/_esm/svm/currency/currency.js.map +1 -0
- package/_esm/svm/currency/deserialize-currency.js +12 -0
- package/_esm/svm/currency/deserialize-currency.js.map +1 -0
- package/_esm/svm/currency/index.js +6 -0
- package/_esm/svm/currency/index.js.map +1 -0
- package/_esm/svm/currency/native.js +52 -0
- package/_esm/svm/currency/native.js.map +1 -0
- package/_esm/svm/currency/token.js +49 -0
- package/_esm/svm/currency/token.js.map +1 -0
- package/_esm/svm/currency/unwrap-token.js +12 -0
- package/_esm/svm/currency/unwrap-token.js.map +1 -0
- package/_esm/svm/index.js +4 -0
- package/_esm/svm/index.js.map +1 -0
- package/_types/evm/api/quote.d.ts +1 -1
- package/_types/evm/api/quote.d.ts.map +1 -1
- package/_types/evm/api/swap.d.ts +1 -1
- package/_types/evm/api/swap.d.ts.map +1 -1
- package/_types/evm/currency/currency.d.ts +1 -1
- package/_types/evm/currency/currency.d.ts.map +1 -1
- package/_types/generic/chain/chains.d.ts +25 -1
- package/_types/generic/chain/chains.d.ts.map +1 -1
- package/_types/generic/chain/interface.d.ts +2 -1
- package/_types/generic/chain/interface.d.ts.map +1 -1
- package/_types/generic/currency/serialized-currency.d.ts +20 -2
- package/_types/generic/currency/serialized-currency.d.ts.map +1 -1
- package/_types/svm/chain/chains.d.ts +42 -0
- package/_types/svm/chain/chains.d.ts.map +1 -0
- package/_types/svm/chain/define-chain.d.ts +22 -0
- package/_types/svm/chain/define-chain.d.ts.map +1 -0
- package/_types/svm/chain/index.d.ts +3 -0
- package/_types/svm/chain/index.d.ts.map +1 -0
- package/_types/svm/config/index.d.ts +3 -0
- package/_types/svm/config/index.d.ts.map +1 -0
- package/_types/svm/config/simple-constants.d.ts +2 -0
- package/_types/svm/config/simple-constants.d.ts.map +1 -0
- package/_types/svm/config/tokens/index.d.ts +3 -0
- package/_types/svm/config/tokens/index.d.ts.map +1 -0
- package/_types/svm/config/tokens/token-maps/default-bases.d.ts +5 -0
- package/_types/svm/config/tokens/token-maps/default-bases.d.ts.map +1 -0
- package/_types/svm/config/tokens/token-maps/default-quote.d.ts +8 -0
- package/_types/svm/config/tokens/token-maps/default-quote.d.ts.map +1 -0
- package/_types/svm/config/tokens/token-maps/index.d.ts +4 -0
- package/_types/svm/config/tokens/token-maps/index.d.ts.map +1 -0
- package/_types/svm/config/tokens/token-maps/stables.d.ts +7 -0
- package/_types/svm/config/tokens/token-maps/stables.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/USDC.d.ts +8 -0
- package/_types/svm/config/tokens/tokens/USDC.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/USDT.d.ts +8 -0
- package/_types/svm/config/tokens/tokens/USDT.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/WBTC.d.ts +8 -0
- package/_types/svm/config/tokens/tokens/WBTC.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/WETH.d.ts +8 -0
- package/_types/svm/config/tokens/tokens/WETH.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/WSOL.d.ts +8 -0
- package/_types/svm/config/tokens/tokens/WSOL.d.ts.map +1 -0
- package/_types/svm/config/tokens/tokens/index.d.ts +6 -0
- package/_types/svm/config/tokens/tokens/index.d.ts.map +1 -0
- package/_types/svm/config/tokens/wrapped-native.d.ts +7 -0
- package/_types/svm/config/tokens/wrapped-native.d.ts.map +1 -0
- package/_types/svm/currency/currency.d.ts +30 -0
- package/_types/svm/currency/currency.d.ts.map +1 -0
- package/_types/svm/currency/deserialize-currency.d.ts +6 -0
- package/_types/svm/currency/deserialize-currency.d.ts.map +1 -0
- package/_types/svm/currency/index.d.ts +6 -0
- package/_types/svm/currency/index.d.ts.map +1 -0
- package/_types/svm/currency/native.d.ts +25 -0
- package/_types/svm/currency/native.d.ts.map +1 -0
- package/_types/svm/currency/token.d.ts +31 -0
- package/_types/svm/currency/token.d.ts.map +1 -0
- package/_types/svm/currency/unwrap-token.d.ts +3 -0
- package/_types/svm/currency/unwrap-token.d.ts.map +1 -0
- package/_types/svm/index.d.ts +4 -0
- package/_types/svm/index.d.ts.map +1 -0
- package/evm/api/quote.ts +1 -1
- package/evm/api/swap.ts +1 -1
- package/evm/currency/currency.ts +1 -1
- package/generic/chain/chains.test.ts +7 -0
- package/generic/chain/chains.ts +2 -0
- package/generic/chain/interface.ts +2 -0
- package/generic/currency/currency.test-d.ts +56 -1
- package/generic/currency/serialized-currency.ts +7 -0
- package/package.json +18 -1
- package/svm/chain/chains.ts +93 -0
- package/svm/chain/define-chain.ts +50 -0
- package/svm/chain/index.ts +2 -0
- package/svm/config/index.ts +2 -0
- package/svm/config/simple-constants.ts +3 -0
- package/svm/config/tokens/index.ts +2 -0
- package/svm/config/tokens/token-maps/default-bases.ts +19 -0
- package/svm/config/tokens/token-maps/default-quote.ts +14 -0
- package/svm/config/tokens/token-maps/index.ts +3 -0
- package/svm/config/tokens/token-maps/stables.ts +22 -0
- package/svm/config/tokens/tokens/USDC.ts +18 -0
- package/svm/config/tokens/tokens/USDT.ts +18 -0
- package/svm/config/tokens/tokens/WBTC.ts +18 -0
- package/svm/config/tokens/tokens/WETH.ts +18 -0
- package/svm/config/tokens/tokens/WSOL.ts +18 -0
- package/svm/config/tokens/tokens/index.ts +5 -0
- package/svm/config/tokens/wrapped-native.ts +10 -0
- package/svm/currency/currency.ts +31 -0
- package/svm/currency/deserialize-currency.ts +17 -0
- package/svm/currency/index.ts +5 -0
- package/svm/currency/native.ts +81 -0
- package/svm/currency/token.ts +89 -0
- package/svm/currency/unwrap-token.ts +15 -0
- package/svm/index.ts +3 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as z from 'zod'
|
|
2
|
+
import type { CurrencyMetadata } from '~/generic/currency/currency.js'
|
|
3
|
+
import { Native } from '../../generic/currency/native.js'
|
|
4
|
+
import {
|
|
5
|
+
getSvmChainById,
|
|
6
|
+
isSvmChainId,
|
|
7
|
+
type SvmChainId,
|
|
8
|
+
} from '../chain/chains.js'
|
|
9
|
+
import { SVM_WNATIVE } from '../config/index.js'
|
|
10
|
+
import { SvmToken } from './token.js'
|
|
11
|
+
|
|
12
|
+
export class SvmNative<
|
|
13
|
+
TMetadata extends CurrencyMetadata = Record<string, unknown>,
|
|
14
|
+
> extends Native<SvmChainId, TMetadata> {
|
|
15
|
+
public override wrap(): SvmToken<TMetadata> {
|
|
16
|
+
return new SvmToken({
|
|
17
|
+
...SVM_WNATIVE[this.chainId],
|
|
18
|
+
metadata: structuredClone(this.metadata),
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public override toJSON(): SerializedSvmNative<TMetadata> {
|
|
23
|
+
return {
|
|
24
|
+
chainId: this.chainId,
|
|
25
|
+
symbol: this.symbol,
|
|
26
|
+
name: this.name,
|
|
27
|
+
decimals: this.decimals,
|
|
28
|
+
type: this.type,
|
|
29
|
+
|
|
30
|
+
metadata: this.metadata,
|
|
31
|
+
} as const
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static fromJSON<TMetadata extends CurrencyMetadata>(
|
|
35
|
+
data: Omit<SerializedSvmNative<TMetadata>, 'metadata'> & {
|
|
36
|
+
metadata?: TMetadata
|
|
37
|
+
},
|
|
38
|
+
): SvmNative<TMetadata> {
|
|
39
|
+
return new this(data)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static fromChainId(chainId: SvmChainId): SvmNative {
|
|
43
|
+
const chain = getSvmChainById(chainId)
|
|
44
|
+
|
|
45
|
+
return new SvmNative({
|
|
46
|
+
chainId,
|
|
47
|
+
symbol: chain.nativeCurrency.symbol,
|
|
48
|
+
name: chain.nativeCurrency.name,
|
|
49
|
+
decimals: chain.nativeCurrency.decimals,
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const serializedSvmNativeSchema = <
|
|
55
|
+
TMetadata extends {} = CurrencyMetadata,
|
|
56
|
+
>({
|
|
57
|
+
metadata,
|
|
58
|
+
}: {
|
|
59
|
+
metadata?: z.ZodType<TMetadata>
|
|
60
|
+
} = {}) =>
|
|
61
|
+
z.object({
|
|
62
|
+
chainId: z
|
|
63
|
+
.number()
|
|
64
|
+
.int()
|
|
65
|
+
.refine(isSvmChainId)
|
|
66
|
+
.transform((chainId) => chainId as SvmChainId),
|
|
67
|
+
symbol: z.string(),
|
|
68
|
+
name: z.string(),
|
|
69
|
+
decimals: z.number().int().nonnegative(),
|
|
70
|
+
type: z.literal('native'),
|
|
71
|
+
|
|
72
|
+
metadata: (metadata ||
|
|
73
|
+
z
|
|
74
|
+
.record(z.string(), z.unknown())
|
|
75
|
+
.optional()
|
|
76
|
+
.default({})) as z.ZodType<TMetadata>,
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
export type SerializedSvmNative<
|
|
80
|
+
TMetadata extends CurrencyMetadata = CurrencyMetadata,
|
|
81
|
+
> = z.infer<ReturnType<typeof serializedSvmNativeSchema<TMetadata>>>
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isAddress as isSvmAddress,
|
|
3
|
+
type Address as SvmAddress,
|
|
4
|
+
address as svmAddress,
|
|
5
|
+
} from '@solana/addresses'
|
|
6
|
+
import * as z from 'zod'
|
|
7
|
+
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
8
|
+
import { Token } from '../../generic/currency/token.js'
|
|
9
|
+
import { isSvmChainId, type SvmChainId } from '../chain/chains.js'
|
|
10
|
+
|
|
11
|
+
export { type SvmAddress, svmAddress, isSvmAddress }
|
|
12
|
+
|
|
13
|
+
export type SvmTokenOrigin = 'native' | 'native-bridge'
|
|
14
|
+
|
|
15
|
+
export class SvmToken<
|
|
16
|
+
TMetadata extends CurrencyMetadata = Record<string, unknown>,
|
|
17
|
+
> extends Token<SvmChainId, SvmAddress, TMetadata> {
|
|
18
|
+
public readonly origin: SvmTokenOrigin | undefined
|
|
19
|
+
|
|
20
|
+
constructor({
|
|
21
|
+
origin,
|
|
22
|
+
...rest
|
|
23
|
+
}: {
|
|
24
|
+
origin?: SvmTokenOrigin | undefined
|
|
25
|
+
} & ConstructorParameters<
|
|
26
|
+
typeof Token<SvmChainId, SvmAddress, TMetadata>
|
|
27
|
+
>[0]) {
|
|
28
|
+
super({ ...rest })
|
|
29
|
+
this.origin = origin
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public override wrap(): SvmToken<TMetadata> {
|
|
33
|
+
return this
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public override toJSON(): SerializedSvmToken<TMetadata> {
|
|
37
|
+
return {
|
|
38
|
+
chainId: this.chainId,
|
|
39
|
+
address: this.address,
|
|
40
|
+
symbol: this.symbol,
|
|
41
|
+
name: this.name,
|
|
42
|
+
decimals: this.decimals,
|
|
43
|
+
type: this.type,
|
|
44
|
+
|
|
45
|
+
metadata: this.metadata,
|
|
46
|
+
} as const
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static fromJSON<TMetadata extends CurrencyMetadata>(
|
|
50
|
+
data: Omit<SerializedSvmToken<TMetadata>, 'metadata'> & {
|
|
51
|
+
metadata?: TMetadata
|
|
52
|
+
},
|
|
53
|
+
): SvmToken<TMetadata> {
|
|
54
|
+
return new this(data)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const serializedSvmTokenSchema = <
|
|
59
|
+
TMetadata extends {} = CurrencyMetadata,
|
|
60
|
+
>({
|
|
61
|
+
metadata,
|
|
62
|
+
}: {
|
|
63
|
+
metadata?: z.ZodType<TMetadata>
|
|
64
|
+
} = {}) =>
|
|
65
|
+
z.object({
|
|
66
|
+
chainId: z
|
|
67
|
+
.number()
|
|
68
|
+
.int()
|
|
69
|
+
.refine(isSvmChainId)
|
|
70
|
+
.transform((chainId) => chainId as SvmChainId),
|
|
71
|
+
address: z
|
|
72
|
+
.string()
|
|
73
|
+
.refine(isSvmAddress)
|
|
74
|
+
.transform((address) => address as SvmAddress),
|
|
75
|
+
symbol: z.string(),
|
|
76
|
+
name: z.string(),
|
|
77
|
+
decimals: z.number().int().nonnegative(),
|
|
78
|
+
type: z.literal('token'),
|
|
79
|
+
|
|
80
|
+
metadata: (metadata ||
|
|
81
|
+
z
|
|
82
|
+
.record(z.string(), z.unknown())
|
|
83
|
+
.optional()
|
|
84
|
+
.default({})) as z.ZodType<TMetadata>,
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
export type SerializedSvmToken<
|
|
88
|
+
TMetadata extends CurrencyMetadata = CurrencyMetadata,
|
|
89
|
+
> = z.infer<ReturnType<typeof serializedSvmTokenSchema<TMetadata>>>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SVM_WNATIVE_ADDRESS } from '../config/index.js'
|
|
2
|
+
import type { SvmCurrency } from './currency.js'
|
|
3
|
+
import { SvmNative } from './native.js'
|
|
4
|
+
|
|
5
|
+
export function unwrapSvmToken(currency: SvmCurrency): SvmCurrency {
|
|
6
|
+
if (currency.type === 'native') {
|
|
7
|
+
return currency
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (currency.address === SVM_WNATIVE_ADDRESS[currency.chainId]) {
|
|
11
|
+
return SvmNative.fromChainId(currency.chainId)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return currency
|
|
15
|
+
}
|
package/svm/index.ts
ADDED