sushi 6.6.10 → 6.6.11
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.
|
@@ -17,7 +17,7 @@ import type { SvmAddress, SvmToken, SvmTxHash } from '../../svm/currency/token.j
|
|
|
17
17
|
import type { SvmID } from '../../svm/types/id.js';
|
|
18
18
|
import type { ChainId } from '../chain/chains.js';
|
|
19
19
|
import type { CurrencyMetadata } from '../currency/currency.js';
|
|
20
|
-
export type TokenFor<TChainId extends ChainId, Metadata extends CurrencyMetadata = CurrencyMetadata> = TChainId extends EvmChainId ? EvmToken<Metadata> : TChainId extends
|
|
20
|
+
export type TokenFor<TChainId extends ChainId, Metadata extends CurrencyMetadata = CurrencyMetadata> = TChainId extends EvmChainId ? EvmToken<Metadata> : TChainId extends SvmChainId ? SvmToken<Metadata> : TChainId extends MvmChainId ? MvmToken<Metadata> : TChainId extends StellarChainId ? StellarToken<Metadata> : never;
|
|
21
21
|
export type CurrencyFor<TChainId extends ChainId, Metadata extends CurrencyMetadata = CurrencyMetadata> = TChainId extends EvmChainId ? EvmCurrency<Metadata> : TChainId extends SvmChainId ? SvmCurrency<Metadata> : TChainId extends MvmChainId ? MvmToken<Metadata> : TChainId extends StellarChainId ? StellarCurrency<Metadata> : never;
|
|
22
22
|
export type NativeChainId = EvmChainId | SvmChainId;
|
|
23
23
|
export type NativeFor<TChainId extends NativeChainId, Metadata extends CurrencyMetadata = CurrencyMetadata> = TChainId extends EvmChainId ? EvmNative<Metadata> : TChainId extends SvmChainId ? SvmNative<Metadata> : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-chain.d.ts","sourceRoot":"","sources":["../../../generic/types/for-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACV,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"for-chain.d.ts","sourceRoot":"","sources":["../../../generic/types/for-chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import type { SvmNative } from '../../svm/currency/native.js'
|
|
|
15
15
|
import type { SvmToken } from '../../svm/currency/token.js'
|
|
16
16
|
import type { SvmChainId } from '../../svm/index.js'
|
|
17
17
|
import type { SvmID } from '../../svm/types/id.js'
|
|
18
|
+
import type { ChainId } from '../chain/chains.js'
|
|
18
19
|
import type {
|
|
19
20
|
CurrencyFor,
|
|
20
21
|
IDFor,
|
|
@@ -73,6 +74,20 @@ describe('generic/types/for-chain.ts types', () => {
|
|
|
73
74
|
CurrencyFor<EvmChainId | SvmChainId, Metadata>
|
|
74
75
|
>().toEqualTypeOf<EvmCurrency<Metadata> | SvmCurrency<Metadata>>()
|
|
75
76
|
})
|
|
77
|
+
|
|
78
|
+
it('should accept TokenFor for a generic chain id', () => {
|
|
79
|
+
// Regression guard: holds only because TokenFor's branch order matches
|
|
80
|
+
// CurrencyFor's, letting TypeScript relate the two conditional types for
|
|
81
|
+
// an unresolved generic `T`. The constraint `A extends B` fails to
|
|
82
|
+
// compile if TokenFor<T> is not assignable to CurrencyFor<T>.
|
|
83
|
+
type AssertAssignable<_A extends B, B> = true
|
|
84
|
+
type _Guard<T extends ChainId> = AssertAssignable<
|
|
85
|
+
TokenFor<T, Metadata>,
|
|
86
|
+
CurrencyFor<T, Metadata>
|
|
87
|
+
>
|
|
88
|
+
|
|
89
|
+
expectTypeOf<_Guard<ChainId>>().toEqualTypeOf<true>()
|
|
90
|
+
})
|
|
76
91
|
})
|
|
77
92
|
|
|
78
93
|
describe('NativeFor', () => {
|
|
@@ -30,23 +30,24 @@ import type { SvmID } from '../../svm/types/id.js'
|
|
|
30
30
|
import type { ChainId } from '../chain/chains.js'
|
|
31
31
|
import type { CurrencyMetadata } from '../currency/currency.js'
|
|
32
32
|
|
|
33
|
+
// Branch order (Evm, Svm, Mvm, Stellar) is kept identical across `TokenFor`,
|
|
34
|
+
// `NativeFor` and `CurrencyFor` so TypeScript can relate the conditional types
|
|
35
|
+
// branch-by-branch and prove `TokenFor<T>`/`NativeFor<T>` are assignable to
|
|
36
|
+
// `CurrencyFor<T>` for a generic `T`. The chain families are disjoint, so the
|
|
37
|
+
// order has no effect on the resolved type — only on relatability.
|
|
33
38
|
export type TokenFor<
|
|
34
39
|
TChainId extends ChainId,
|
|
35
40
|
Metadata extends CurrencyMetadata = CurrencyMetadata,
|
|
36
41
|
> = TChainId extends EvmChainId
|
|
37
42
|
? EvmToken<Metadata>
|
|
38
|
-
: TChainId extends
|
|
39
|
-
?
|
|
40
|
-
: TChainId extends
|
|
41
|
-
?
|
|
43
|
+
: TChainId extends SvmChainId
|
|
44
|
+
? SvmToken<Metadata>
|
|
45
|
+
: TChainId extends MvmChainId
|
|
46
|
+
? MvmToken<Metadata>
|
|
42
47
|
: TChainId extends StellarChainId
|
|
43
48
|
? StellarToken<Metadata>
|
|
44
49
|
: never
|
|
45
50
|
|
|
46
|
-
// Branch order matches `NativeFor` (Evm, then Svm) so TypeScript can relate the
|
|
47
|
-
// two conditional types and prove `NativeFor<T>` is assignable to
|
|
48
|
-
// `CurrencyFor<T>` for a generic `T`. The chain families are disjoint, so the
|
|
49
|
-
// order has no effect on the resolved type.
|
|
50
51
|
export type CurrencyFor<
|
|
51
52
|
TChainId extends ChainId,
|
|
52
53
|
Metadata extends CurrencyMetadata = CurrencyMetadata,
|