sushi 6.0.23 → 6.0.25

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.
Files changed (100) hide show
  1. package/_cjs/evm/config/features/sushiswap-v3.js.map +1 -1
  2. package/_cjs/evm/config/subgraphs/subgraphs/sushiswap-v2.js +0 -2
  3. package/_cjs/evm/config/subgraphs/subgraphs/sushiswap-v2.js.map +1 -1
  4. package/_cjs/evm/config/subgraphs/subgraphs/sushiswap-v3.js +0 -1
  5. package/_cjs/evm/config/subgraphs/subgraphs/sushiswap-v3.js.map +1 -1
  6. package/_cjs/evm/currency/currency.js +4 -3
  7. package/_cjs/evm/currency/currency.js.map +1 -1
  8. package/_cjs/evm/currency/native.js +10 -2
  9. package/_cjs/evm/currency/native.js.map +1 -1
  10. package/_cjs/evm/currency/token.js +6 -4
  11. package/_cjs/evm/currency/token.js.map +1 -1
  12. package/_cjs/evm/pool/sushiswap-v2/zod.js +2 -2
  13. package/_cjs/evm/pool/sushiswap-v2/zod.js.map +1 -1
  14. package/_cjs/evm/token-list/constants.js +1 -1
  15. package/_cjs/evm/token-list/constants.js.map +1 -1
  16. package/_cjs/generic/currency/serialized-currency.js +5 -4
  17. package/_cjs/generic/currency/serialized-currency.js.map +1 -1
  18. package/_cjs/mvm/currency/token.js +5 -1
  19. package/_cjs/mvm/currency/token.js.map +1 -1
  20. package/_cjs/tvm/currency/currency.js +4 -3
  21. package/_cjs/tvm/currency/currency.js.map +1 -1
  22. package/_cjs/tvm/currency/native.js +13 -5
  23. package/_cjs/tvm/currency/native.js.map +1 -1
  24. package/_cjs/tvm/currency/token.js +8 -1
  25. package/_cjs/tvm/currency/token.js.map +1 -1
  26. package/_esm/evm/config/features/sushiswap-v3.js +0 -10
  27. package/_esm/evm/config/features/sushiswap-v3.js.map +1 -1
  28. package/_esm/evm/config/subgraphs/subgraphs/sushiswap-v2.js +0 -2
  29. package/_esm/evm/config/subgraphs/subgraphs/sushiswap-v2.js.map +1 -1
  30. package/_esm/evm/config/subgraphs/subgraphs/sushiswap-v3.js +0 -5
  31. package/_esm/evm/config/subgraphs/subgraphs/sushiswap-v3.js.map +1 -1
  32. package/_esm/evm/currency/currency.js +3 -3
  33. package/_esm/evm/currency/currency.js.map +1 -1
  34. package/_esm/evm/currency/native.js +9 -2
  35. package/_esm/evm/currency/native.js.map +1 -1
  36. package/_esm/evm/currency/token.js +5 -4
  37. package/_esm/evm/currency/token.js.map +1 -1
  38. package/_esm/evm/pool/sushiswap-v2/zod.js +2 -2
  39. package/_esm/evm/pool/sushiswap-v2/zod.js.map +1 -1
  40. package/_esm/evm/token-list/constants.js +1 -1
  41. package/_esm/evm/token-list/constants.js.map +1 -1
  42. package/_esm/generic/currency/serialized-currency.js +4 -4
  43. package/_esm/generic/currency/serialized-currency.js.map +1 -1
  44. package/_esm/mvm/currency/token.js +4 -1
  45. package/_esm/mvm/currency/token.js.map +1 -1
  46. package/_esm/tvm/currency/currency.js +3 -3
  47. package/_esm/tvm/currency/currency.js.map +1 -1
  48. package/_esm/tvm/currency/native.js +12 -5
  49. package/_esm/tvm/currency/native.js.map +1 -1
  50. package/_esm/tvm/currency/token.js +7 -1
  51. package/_esm/tvm/currency/token.js.map +1 -1
  52. package/_types/evm/config/features/sushiswap-v3.d.ts.map +1 -1
  53. package/_types/evm/config/subgraphs/subgraphs/sushiswap-v2.d.ts +4 -3
  54. package/_types/evm/config/subgraphs/subgraphs/sushiswap-v2.d.ts.map +1 -1
  55. package/_types/evm/config/subgraphs/subgraphs/sushiswap-v3.d.ts +4 -3
  56. package/_types/evm/config/subgraphs/subgraphs/sushiswap-v3.d.ts.map +1 -1
  57. package/_types/evm/config/tokens/token-maps/default-bases.d.ts +42 -42
  58. package/_types/evm/config/tokens/token-maps/default-quote.d.ts +43 -43
  59. package/_types/evm/config/tokens/token-maps/short-name-to-currency.d.ts +34 -34
  60. package/_types/evm/currency/currency.d.ts +68 -30
  61. package/_types/evm/currency/currency.d.ts.map +1 -1
  62. package/_types/evm/currency/native.d.ts +42 -20
  63. package/_types/evm/currency/native.d.ts.map +1 -1
  64. package/_types/evm/currency/token.d.ts +42 -19
  65. package/_types/evm/currency/token.d.ts.map +1 -1
  66. package/_types/evm/pool/sushiswap-v2/zod.d.ts +14 -0
  67. package/_types/evm/pool/sushiswap-v2/zod.d.ts.map +1 -1
  68. package/_types/evm/token-list/constants.d.ts +1 -1
  69. package/_types/evm/token-list/constants.d.ts.map +1 -1
  70. package/_types/generic/currency/currency.d.ts +1 -1
  71. package/_types/generic/currency/currency.d.ts.map +1 -1
  72. package/_types/generic/currency/serialized-currency.d.ts +168 -74
  73. package/_types/generic/currency/serialized-currency.d.ts.map +1 -1
  74. package/_types/mvm/currency/token.d.ts +42 -19
  75. package/_types/mvm/currency/token.d.ts.map +1 -1
  76. package/_types/tvm/config/tokens/native.d.ts +1 -1
  77. package/_types/tvm/config/tokens/token-maps/default-bases.d.ts +1 -1
  78. package/_types/tvm/currency/currency.d.ts +68 -30
  79. package/_types/tvm/currency/currency.d.ts.map +1 -1
  80. package/_types/tvm/currency/native.d.ts +42 -20
  81. package/_types/tvm/currency/native.d.ts.map +1 -1
  82. package/_types/tvm/currency/token.d.ts +42 -18
  83. package/_types/tvm/currency/token.d.ts.map +1 -1
  84. package/evm/config/features/sushiswap-v3.ts +0 -10
  85. package/evm/config/subgraphs/subgraphs/sushiswap-v2.ts +19 -18
  86. package/evm/config/subgraphs/subgraphs/sushiswap-v3.ts +19 -22
  87. package/evm/currency/currency.ts +13 -6
  88. package/evm/currency/native.ts +36 -14
  89. package/evm/currency/token.ts +27 -13
  90. package/evm/pool/sushiswap-v2/zod.ts +2 -2
  91. package/evm/token-list/constants.ts +1 -1
  92. package/generic/currency/amount.test.ts +0 -1
  93. package/generic/currency/currency.test-d.ts +115 -1
  94. package/generic/currency/currency.ts +1 -1
  95. package/generic/currency/serialized-currency.ts +26 -15
  96. package/mvm/currency/token.ts +27 -11
  97. package/package.json +1 -1
  98. package/tvm/currency/currency.ts +12 -5
  99. package/tvm/currency/native.ts +40 -18
  100. package/tvm/currency/token.ts +30 -10
@@ -17,7 +17,7 @@ export class MvmToken<
17
17
  return this
18
18
  }
19
19
 
20
- public override toJSON(): SerializedMvmToken {
20
+ public override toJSON(): SerializedMvmToken<TMetadata> {
21
21
  return {
22
22
  chainId: this.chainId,
23
23
  address: this.address,
@@ -25,21 +25,37 @@ export class MvmToken<
25
25
  name: this.name,
26
26
  decimals: this.decimals,
27
27
  type: this.type,
28
+
29
+ metadata: this.metadata,
28
30
  } as const
29
31
  }
30
32
 
31
- static fromJSON(data: SerializedMvmToken): MvmToken {
33
+ static fromJSON<TMetadata extends CurrencyMetadata>(
34
+ data: Omit<SerializedMvmToken<TMetadata>, 'metadata'> & {
35
+ metadata?: TMetadata
36
+ },
37
+ ): MvmToken<TMetadata> {
32
38
  return new this(data)
33
39
  }
34
40
  }
35
41
 
36
- export const serializedMvmTokenSchema = z.object({
37
- chainId: z.number().int().refine(isMvmChainId),
38
- address: z.string().refine(isMvmAddress),
39
- symbol: z.string(),
40
- name: z.string(),
41
- decimals: z.number().int().nonnegative(),
42
- type: z.literal('token'),
43
- })
42
+ export const serializedMvmTokenSchema = <
43
+ TMetadata extends {} = CurrencyMetadata,
44
+ >({
45
+ metadata,
46
+ }: { metadata?: z.ZodType<TMetadata> } = {}) =>
47
+ z.object({
48
+ chainId: z.number().int().refine(isMvmChainId),
49
+ address: z.string().refine(isMvmAddress),
50
+ symbol: z.string(),
51
+ name: z.string(),
52
+ decimals: z.number().int().nonnegative(),
53
+ type: z.literal('token'),
54
+
55
+ metadata: (metadata ||
56
+ z.record(z.unknown()).optional().default({})) as z.ZodType<TMetadata>,
57
+ })
44
58
 
45
- export type SerializedMvmToken = z.infer<typeof serializedMvmTokenSchema>
59
+ export type SerializedMvmToken<
60
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
61
+ > = z.infer<ReturnType<typeof serializedMvmTokenSchema<TMetadata>>>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sushi",
3
3
  "description": "Sushi",
4
- "version": "6.0.23",
4
+ "version": "6.0.25",
5
5
  "type": "module",
6
6
  "main": "./_cjs/generic/index.js",
7
7
  "module": "./_esm/generic/index.js",
@@ -15,12 +15,19 @@ export type TvmCurrency<
15
15
  TMetadata extends CurrencyMetadata = Record<string, unknown>,
16
16
  > = TvmNative | TvmToken<TMetadata>
17
17
 
18
- export const serializedTvmCurrencySchema = z.discriminatedUnion('type', [
19
- serializedTvmTokenSchema,
20
- serializedTvmNativeSchema,
21
- ])
18
+ export const serializedTvmCurrencySchema = <
19
+ TMetadata extends {} = CurrencyMetadata,
20
+ >(
21
+ opts: { metadata?: z.ZodType<TMetadata> } = {},
22
+ ) =>
23
+ z.discriminatedUnion('type', [
24
+ serializedTvmTokenSchema(opts),
25
+ serializedTvmNativeSchema(opts),
26
+ ])
22
27
 
23
- export type SerializedTvmCurrency = z.infer<typeof serializedTvmCurrencySchema>
28
+ export type SerializedTvmCurrency<
29
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
30
+ > = z.infer<ReturnType<typeof serializedTvmCurrencySchema<TMetadata>>>
24
31
 
25
32
  function deserializeTvmCurrency(data: SerializedTvmToken): TvmToken
26
33
  function deserializeTvmCurrency(data: SerializedTvmNative): TvmNative
@@ -1,40 +1,62 @@
1
1
  import * as z from 'zod'
2
+ import type { CurrencyMetadata } from '~/generic/currency/currency.js'
2
3
  import { Native } from '../../generic/currency/native.js'
3
4
  import { type TvmChainId, isTvmChainId } from '../chain/chains.js'
4
5
  import { NATIVE } from '../config/index.js'
5
6
  import { WNATIVE } from '../config/tokens/wrapped-native.js'
6
- import type { TvmToken } from './token.js'
7
+ import { TvmToken } from './token.js'
7
8
 
8
- export class TvmNative extends Native<TvmChainId> {
9
- static fromChainId(chainId: TvmChainId): TvmNative {
10
- return NATIVE[chainId]
9
+ export class TvmNative<
10
+ TMetadata extends CurrencyMetadata = Record<string, unknown>,
11
+ > extends Native<TvmChainId, TMetadata> {
12
+ public override wrap(): TvmToken<TMetadata> {
13
+ return new TvmToken({
14
+ ...WNATIVE[this.chainId],
15
+ metadata: structuredClone(this.metadata),
16
+ })
11
17
  }
12
18
 
13
- public override wrap(): TvmToken {
14
- return WNATIVE[this.chainId]
15
- }
16
-
17
- public override toJSON(): SerializedTvmNative {
19
+ public override toJSON(): SerializedTvmNative<TMetadata> {
18
20
  return {
19
21
  chainId: this.chainId,
20
22
  symbol: this.symbol,
21
23
  name: this.name,
22
24
  decimals: this.decimals,
23
25
  type: this.type,
26
+
27
+ metadata: this.metadata,
24
28
  } as const
25
29
  }
26
30
 
27
- public static fromJSON(data: SerializedTvmNative): TvmNative {
31
+ static fromJSON<TMetadata extends CurrencyMetadata>(
32
+ data: Omit<SerializedTvmNative<TMetadata>, 'metadata'> & {
33
+ metadata?: TMetadata
34
+ },
35
+ ): TvmNative<TMetadata> {
28
36
  return new this(data)
29
37
  }
38
+
39
+ static fromChainId(chainId: TvmChainId): TvmNative {
40
+ return NATIVE[chainId]
41
+ }
30
42
  }
31
43
 
32
- export const serializedTvmNativeSchema = z.object({
33
- chainId: z.number().int().refine(isTvmChainId),
34
- symbol: z.string(),
35
- name: z.string(),
36
- decimals: z.number().int().nonnegative(),
37
- type: z.literal('native'),
38
- })
44
+ export const serializedTvmNativeSchema = <
45
+ TMetadata extends {} = CurrencyMetadata,
46
+ >({
47
+ metadata,
48
+ }: { metadata?: z.ZodType<TMetadata> } = {}) =>
49
+ z.object({
50
+ chainId: z.number().int().refine(isTvmChainId),
51
+ symbol: z.string(),
52
+ name: z.string(),
53
+ decimals: z.number().int().nonnegative(),
54
+ type: z.literal('native'),
55
+
56
+ metadata: (metadata ||
57
+ z.record(z.unknown()).optional().default({})) as z.ZodType<TMetadata>,
58
+ })
39
59
 
40
- export type SerializedTvmNative = z.infer<typeof serializedTvmNativeSchema>
60
+ export type SerializedTvmNative<
61
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
62
+ > = z.infer<ReturnType<typeof serializedTvmNativeSchema<TMetadata>>>
@@ -32,7 +32,7 @@ export class TvmToken<
32
32
  return this
33
33
  }
34
34
 
35
- public override toJSON(): SerializedTvmToken {
35
+ public override toJSON(): SerializedTvmToken<TMetadata> {
36
36
  return {
37
37
  chainId: this.chainId,
38
38
  address: this.address,
@@ -40,17 +40,37 @@ export class TvmToken<
40
40
  name: this.name,
41
41
  decimals: this.decimals,
42
42
  type: this.type,
43
+
44
+ metadata: this.metadata,
43
45
  } as const
44
46
  }
47
+
48
+ static fromJSON<TMetadata extends CurrencyMetadata>(
49
+ data: Omit<SerializedTvmToken<TMetadata>, 'metadata'> & {
50
+ metadata?: TMetadata
51
+ },
52
+ ): TvmToken<TMetadata> {
53
+ return new this(data)
54
+ }
45
55
  }
46
56
 
47
- export const serializedTvmTokenSchema = z.object({
48
- chainId: z.number().int().refine(isTvmChainId),
49
- address: z.string().refine(isTvmAddress),
50
- symbol: z.string(),
51
- name: z.string(),
52
- decimals: z.number().int().nonnegative(),
53
- type: z.literal('token'),
54
- })
57
+ export const serializedTvmTokenSchema = <
58
+ TMetadata extends {} = CurrencyMetadata,
59
+ >({
60
+ metadata,
61
+ }: { metadata?: z.ZodType<TMetadata> } = {}) =>
62
+ z.object({
63
+ chainId: z.number().int().refine(isTvmChainId),
64
+ address: z.string().refine(isTvmAddress),
65
+ symbol: z.string(),
66
+ name: z.string(),
67
+ decimals: z.number().int().nonnegative(),
68
+ type: z.literal('token'),
69
+
70
+ metadata: (metadata ||
71
+ z.record(z.unknown()).optional().default({})) as z.ZodType<TMetadata>,
72
+ })
55
73
 
56
- export type SerializedTvmToken = z.infer<typeof serializedTvmTokenSchema>
74
+ export type SerializedTvmToken<
75
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
76
+ > = z.infer<ReturnType<typeof serializedTvmTokenSchema<TMetadata>>>