sushi 6.0.22 → 6.0.24

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/types/sushi-pool/protocol.js +1 -0
  15. package/_cjs/evm/types/sushi-pool/protocol.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/types/sushi-pool/protocol.js +1 -0
  41. package/_esm/evm/types/sushi-pool/protocol.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/types/sushi-pool/protocol.d.ts +2 -0
  69. package/_types/evm/types/sushi-pool/protocol.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/types/sushi-pool/protocol.ts +2 -0
  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
@@ -8,21 +8,32 @@ import {
8
8
  type serializedTvmNativeSchema,
9
9
  type serializedTvmTokenSchema,
10
10
  } from '../../tvm/index.js'
11
+ import type { CurrencyMetadata } from './currency.js'
11
12
 
12
- export type SerializedCurrencySchema =
13
- | typeof serializedEvmTokenSchema
14
- | typeof serializedEvmNativeSchema
15
- | typeof serializedEvmCurrencySchema
16
- | typeof serializedMvmTokenSchema
17
- | typeof serializedTvmTokenSchema
18
- | typeof serializedTvmNativeSchema
19
- | typeof serializedTvmCurrencySchema
20
- | typeof serializedCurrencySchema
13
+ export type SerializedCurrencySchema<
14
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
15
+ > = ReturnType<
16
+ | typeof serializedEvmTokenSchema<TMetadata>
17
+ | typeof serializedEvmNativeSchema<TMetadata>
18
+ | typeof serializedEvmCurrencySchema<TMetadata>
19
+ | typeof serializedMvmTokenSchema<TMetadata>
20
+ | typeof serializedTvmTokenSchema<TMetadata>
21
+ | typeof serializedTvmNativeSchema<TMetadata>
22
+ | typeof serializedTvmCurrencySchema<TMetadata>
23
+ | typeof serializedCurrencySchema<TMetadata>
24
+ >
21
25
 
22
- export const serializedCurrencySchema = z.union([
23
- serializedEvmCurrencySchema,
24
- serializedMvmTokenSchema,
25
- serializedTvmCurrencySchema,
26
- ])
26
+ export const serializedCurrencySchema = <
27
+ TMetadata extends {} = CurrencyMetadata,
28
+ >(
29
+ opts: { metadata?: z.ZodType<TMetadata> } = {},
30
+ ) =>
31
+ z.union([
32
+ serializedEvmCurrencySchema(opts),
33
+ serializedMvmTokenSchema(opts),
34
+ serializedTvmCurrencySchema(opts),
35
+ ])
27
36
 
28
- export type SerializedCurrency = z.infer<typeof serializedCurrencySchema>
37
+ export type SerializedCurrency<
38
+ TMetadata extends CurrencyMetadata = CurrencyMetadata,
39
+ > = z.infer<ReturnType<typeof serializedCurrencySchema<TMetadata>>>
@@ -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.22",
4
+ "version": "6.0.24",
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>>>