sushi 6.6.9 → 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,8 +17,8 @@ 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 MvmChainId ? MvmToken<Metadata> : TChainId extends SvmChainId ? SvmToken<Metadata> : TChainId extends StellarChainId ? StellarToken<Metadata> : never;
21
- export type CurrencyFor<TChainId extends ChainId, Metadata extends CurrencyMetadata = CurrencyMetadata> = TChainId extends EvmChainId ? EvmCurrency<Metadata> : TChainId extends MvmChainId ? MvmToken<Metadata> : TChainId extends SvmChainId ? SvmCurrency<Metadata> : TChainId extends StellarChainId ? StellarCurrency<Metadata> : never;
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
+ 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;
24
24
  export type AddressFor<TChainId extends ChainId> = TChainId extends EvmChainId ? EvmAddress : TChainId extends MvmChainId ? MvmAddress : TChainId extends SvmChainId ? SvmAddress : TChainId extends StellarChainId ? StellarAddress : never;
@@ -1 +1 @@
1
- {"version":3,"file":"for-chain.d.ts","sourceRoot":"","sources":["../../../generic/types/for-chain.ts"],"names":[],"mappings":"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"}
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', () => {
@@ -101,6 +116,22 @@ describe('generic/types/for-chain.ts types', () => {
101
116
  >()
102
117
  })
103
118
 
119
+ it('should be assignable to CurrencyFor for a generic native chain id', () => {
120
+ // Regression guard: this only holds because CurrencyFor's branch order
121
+ // matches NativeFor's, letting TypeScript relate the two conditional
122
+ // types for an unresolved generic `T`. Concrete-type checks above pass
123
+ // regardless of order, so they don't cover this case. The constraint
124
+ // `A extends B` fails to compile if NativeFor<T> is not assignable to
125
+ // CurrencyFor<T>.
126
+ type AssertAssignable<_A extends B, B> = true
127
+ type _Guard<T extends NativeChainId> = AssertAssignable<
128
+ NativeFor<T, Metadata>,
129
+ CurrencyFor<T, Metadata>
130
+ >
131
+
132
+ expectTypeOf<_Guard<NativeChainId>>().toEqualTypeOf<true>()
133
+ })
134
+
104
135
  it('should reject token-only chain families', () => {
105
136
  type NativeForMvm = NativeFor<
106
137
  // @ts-expect-error MVM is intentionally excluded from NativeChainId.
@@ -30,15 +30,20 @@ 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 MvmChainId
39
- ? MvmToken<Metadata>
40
- : TChainId extends SvmChainId
41
- ? SvmToken<Metadata>
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
@@ -48,10 +53,10 @@ export type CurrencyFor<
48
53
  Metadata extends CurrencyMetadata = CurrencyMetadata,
49
54
  > = TChainId extends EvmChainId
50
55
  ? EvmCurrency<Metadata>
51
- : TChainId extends MvmChainId
52
- ? MvmToken<Metadata>
53
- : TChainId extends SvmChainId
54
- ? SvmCurrency<Metadata>
56
+ : TChainId extends SvmChainId
57
+ ? SvmCurrency<Metadata>
58
+ : TChainId extends MvmChainId
59
+ ? MvmToken<Metadata>
55
60
  : TChainId extends StellarChainId
56
61
  ? StellarCurrency<Metadata>
57
62
  : never
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sushi",
3
3
  "description": "Sushi",
4
- "version": "6.6.9",
4
+ "version": "6.6.11",
5
5
  "type": "module",
6
6
  "main": "./_cjs/generic/index.js",
7
7
  "module": "./_esm/generic/index.js",