@yodlpay/tokenlists 1.1.3 → 1.1.5

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.
@@ -0,0 +1,265 @@
1
+ {
2
+ "name": "Yodl Token Overrides",
3
+ "timestamp": "2026-02-03T15:48:55.930Z",
4
+ "version": {
5
+ "major": 2,
6
+ "minor": 0,
7
+ "patch": 0
8
+ },
9
+ "overrides": {
10
+ "MAGIC": {
11
+ "_deleted": true
12
+ },
13
+ "LINK": {
14
+ "_deleted": true
15
+ },
16
+ "RAIN": {
17
+ "_deleted": true
18
+ },
19
+ "DOT": {
20
+ "_deleted": true
21
+ },
22
+ "UNI": {
23
+ "_deleted": true
24
+ },
25
+ "AAVE": {
26
+ "_deleted": true
27
+ },
28
+ "SYRUPUSDC": {
29
+ "_deleted": true
30
+ },
31
+ "CAKE": {
32
+ "_deleted": true
33
+ },
34
+ "GHO": {
35
+ "_deleted": true
36
+ },
37
+ "CRV": {
38
+ "_deleted": true
39
+ },
40
+ "ZRO": {
41
+ "_deleted": true
42
+ },
43
+ "LDO": {
44
+ "_deleted": true
45
+ },
46
+ "ETHFI": {
47
+ "_deleted": true
48
+ },
49
+ "GRT": {
50
+ "_deleted": true
51
+ },
52
+ "PENDLE": {
53
+ "_deleted": true
54
+ },
55
+ "COMP": {
56
+ "_deleted": true
57
+ },
58
+ "VSN": {
59
+ "_deleted": true
60
+ },
61
+ "LPT": {
62
+ "_deleted": true
63
+ },
64
+ "W": {
65
+ "_deleted": true
66
+ },
67
+ "RSR": {
68
+ "_deleted": true
69
+ },
70
+ "ATH": {
71
+ "_deleted": true
72
+ },
73
+ "YFI": {
74
+ "_deleted": true
75
+ },
76
+ "AXL": {
77
+ "_deleted": true
78
+ },
79
+ "SUSHI": {
80
+ "_deleted": true
81
+ },
82
+ "BICO": {
83
+ "_deleted": true
84
+ },
85
+ "STG": {
86
+ "_deleted": true
87
+ },
88
+ "VANA": {
89
+ "_deleted": true
90
+ },
91
+ "TRB": {
92
+ "_deleted": true
93
+ },
94
+ "APEX": {
95
+ "_deleted": true
96
+ },
97
+ "ANIME": {
98
+ "_deleted": true
99
+ },
100
+ "HYPER": {
101
+ "_deleted": true
102
+ },
103
+ "DF": {
104
+ "_deleted": true
105
+ },
106
+ "ICP": {
107
+ "_deleted": true
108
+ },
109
+ "ENA": {
110
+ "_deleted": true
111
+ },
112
+ "MORPHO": {
113
+ "_deleted": true
114
+ },
115
+ "VIRTUAL": {
116
+ "_deleted": true
117
+ },
118
+ "AERO": {
119
+ "_deleted": true
120
+ },
121
+ "SYRUP": {
122
+ "_deleted": true
123
+ },
124
+ "RIVER": {
125
+ "_deleted": true
126
+ },
127
+ "SAND": {
128
+ "_deleted": true
129
+ },
130
+ "XCN": {
131
+ "_deleted": true
132
+ },
133
+ "TRAC": {
134
+ "_deleted": true
135
+ },
136
+ "1INCH": {
137
+ "_deleted": true
138
+ },
139
+ "EIGEN": {
140
+ "_deleted": true
141
+ },
142
+ "RIBBIT": {
143
+ "_deleted": true
144
+ },
145
+ "BEAM": {
146
+ "_deleted": true
147
+ },
148
+ "ZEN": {
149
+ "_deleted": true
150
+ },
151
+ "SNX": {
152
+ "_deleted": true
153
+ },
154
+ "AWE": {
155
+ "_deleted": true
156
+ },
157
+ "ZORA": {
158
+ "_deleted": true
159
+ },
160
+ "HOME": {
161
+ "_deleted": true
162
+ },
163
+ "SUPER": {
164
+ "_deleted": true
165
+ },
166
+ "BRETT": {
167
+ "_deleted": true
168
+ },
169
+ "TOSHI": {
170
+ "_deleted": true
171
+ },
172
+ "MOVE": {
173
+ "_deleted": true
174
+ },
175
+ "KAITO": {
176
+ "_deleted": true
177
+ },
178
+ "WMTX": {
179
+ "_deleted": true
180
+ },
181
+ "RED": {
182
+ "_deleted": true
183
+ },
184
+ "AVNT": {
185
+ "_deleted": true
186
+ },
187
+ "BNKR": {
188
+ "_deleted": true
189
+ },
190
+ "BIO": {
191
+ "_deleted": true
192
+ },
193
+ "GPS": {
194
+ "_deleted": true
195
+ },
196
+ "PLAY": {
197
+ "_deleted": true
198
+ },
199
+ "NEIRO": {
200
+ "_deleted": true
201
+ },
202
+ "PRIME": {
203
+ "_deleted": true
204
+ },
205
+ "ACU": {
206
+ "_deleted": true
207
+ },
208
+ "SURGE": {
209
+ "_deleted": true
210
+ },
211
+ "YGG": {
212
+ "_deleted": true
213
+ },
214
+ "CLANKER": {
215
+ "_deleted": true
216
+ },
217
+ "POKT": {
218
+ "_deleted": true
219
+ },
220
+ "MOLT": {
221
+ "_deleted": true
222
+ },
223
+ "AIXBT": {
224
+ "_deleted": true
225
+ },
226
+ "CHECK": {
227
+ "_deleted": true
228
+ },
229
+ "F": {
230
+ "_deleted": true
231
+ },
232
+ "ELSA": {
233
+ "_deleted": true
234
+ },
235
+ "PARTI": {
236
+ "_deleted": true
237
+ },
238
+ "CLAWD": {
239
+ "_deleted": true
240
+ },
241
+ "PROMPT": {
242
+ "_deleted": true
243
+ },
244
+ "RECALL": {
245
+ "_deleted": true
246
+ },
247
+ "CLAWNCH": {
248
+ "_deleted": true
249
+ },
250
+ "WCT": {
251
+ "_deleted": true
252
+ },
253
+ "TOWNS": {
254
+ "_deleted": true
255
+ },
256
+ "SOL": {
257
+ "_deleted": true
258
+ },
259
+ "USDT": {
260
+ "extensions": {
261
+ "peggedTo": "USD"
262
+ }
263
+ }
264
+ }
265
+ }
@@ -0,0 +1,329 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://uniswap.org/tokenlist.schema.json",
4
+ "title": "Uniswap Token List",
5
+ "description": "Schema for lists of tokens compatible with the Uniswap Interface",
6
+ "definitions": {
7
+ "Version": {
8
+ "type": "object",
9
+ "description": "The version of the list, used in change detection",
10
+ "examples": [
11
+ {
12
+ "major": 1,
13
+ "minor": 0,
14
+ "patch": 0
15
+ }
16
+ ],
17
+ "additionalProperties": false,
18
+ "properties": {
19
+ "major": {
20
+ "type": "integer",
21
+ "description": "The major version of the list. Must be incremented when tokens are removed from the list or token addresses are changed.",
22
+ "minimum": 0,
23
+ "examples": [1, 2]
24
+ },
25
+ "minor": {
26
+ "type": "integer",
27
+ "description": "The minor version of the list. Must be incremented when tokens are added to the list.",
28
+ "minimum": 0,
29
+ "examples": [0, 1]
30
+ },
31
+ "patch": {
32
+ "type": "integer",
33
+ "description": "The patch version of the list. Must be incremented for any changes to the list.",
34
+ "minimum": 0,
35
+ "examples": [0, 1]
36
+ }
37
+ },
38
+ "required": ["major", "minor", "patch"]
39
+ },
40
+ "TagIdentifier": {
41
+ "type": "string",
42
+ "description": "The unique identifier of a tag",
43
+ "minLength": 1,
44
+ "maxLength": 10,
45
+ "pattern": "^[\\w]+$",
46
+ "examples": ["compound", "stablecoin"]
47
+ },
48
+ "ExtensionIdentifier": {
49
+ "type": "string",
50
+ "description": "The name of a token extension property",
51
+ "minLength": 1,
52
+ "maxLength": 40,
53
+ "pattern": "^[\\w]+$",
54
+ "examples": ["color", "is_fee_on_transfer", "aliases"]
55
+ },
56
+ "ExtensionMap": {
57
+ "type": "object",
58
+ "description": "An object containing any arbitrary or vendor-specific token metadata",
59
+ "maxProperties": 10,
60
+ "propertyNames": {
61
+ "$ref": "#/definitions/ExtensionIdentifier"
62
+ },
63
+ "additionalProperties": {
64
+ "$ref": "#/definitions/ExtensionValue"
65
+ },
66
+ "examples": [
67
+ {
68
+ "color": "#000000",
69
+ "is_verified_by_me": true
70
+ },
71
+ {
72
+ "x-bridged-addresses-by-chain": {
73
+ "1": {
74
+ "bridgeAddress": "0x4200000000000000000000000000000000000010",
75
+ "tokenAddress": "0x4200000000000000000000000000000000000010"
76
+ }
77
+ }
78
+ }
79
+ ]
80
+ },
81
+ "ExtensionPrimitiveValue": {
82
+ "anyOf": [
83
+ {
84
+ "type": "string",
85
+ "minLength": 1,
86
+ "maxLength": 100,
87
+ "examples": ["#00000"]
88
+ },
89
+ {
90
+ "type": "boolean",
91
+ "examples": [true]
92
+ },
93
+ {
94
+ "type": "number",
95
+ "examples": [15]
96
+ },
97
+ {
98
+ "type": "null"
99
+ }
100
+ ]
101
+ },
102
+ "ExtensionValue": {
103
+ "anyOf": [
104
+ {
105
+ "$ref": "#/definitions/ExtensionPrimitiveValue"
106
+ },
107
+ {
108
+ "type": "object",
109
+ "maxProperties": 10,
110
+ "propertyNames": {
111
+ "$ref": "#/definitions/ExtensionIdentifier"
112
+ },
113
+ "additionalProperties": {
114
+ "$ref": "#/definitions/ExtensionValueInner0"
115
+ }
116
+ }
117
+ ]
118
+ },
119
+ "ExtensionValueInner0": {
120
+ "anyOf": [
121
+ {
122
+ "$ref": "#/definitions/ExtensionPrimitiveValue"
123
+ },
124
+ {
125
+ "type": "object",
126
+ "maxProperties": 10,
127
+ "propertyNames": {
128
+ "$ref": "#/definitions/ExtensionIdentifier"
129
+ },
130
+ "additionalProperties": {
131
+ "$ref": "#/definitions/ExtensionValueInner1"
132
+ }
133
+ }
134
+ ]
135
+ },
136
+ "ExtensionValueInner1": {
137
+ "anyOf": [
138
+ {
139
+ "$ref": "#/definitions/ExtensionPrimitiveValue"
140
+ }
141
+ ]
142
+ },
143
+ "TagDefinition": {
144
+ "type": "object",
145
+ "description": "Definition of a tag that can be associated with a token via its identifier",
146
+ "additionalProperties": false,
147
+ "properties": {
148
+ "name": {
149
+ "type": "string",
150
+ "description": "The name of the tag",
151
+ "pattern": "^[ \\w]+$",
152
+ "minLength": 1,
153
+ "maxLength": 20
154
+ },
155
+ "description": {
156
+ "type": "string",
157
+ "description": "A user-friendly description of the tag",
158
+ "pattern": "^[ \\w\\.,:]+$",
159
+ "minLength": 1,
160
+ "maxLength": 200
161
+ }
162
+ },
163
+ "required": ["name", "description"],
164
+ "examples": [
165
+ {
166
+ "name": "Stablecoin",
167
+ "description": "A token with value pegged to another asset"
168
+ }
169
+ ]
170
+ },
171
+ "TokenInfo": {
172
+ "type": "object",
173
+ "description": "Metadata for a single token in a token list",
174
+ "additionalProperties": false,
175
+ "properties": {
176
+ "chainId": {
177
+ "type": "integer",
178
+ "description": "The chain ID of the Ethereum network where this token is deployed",
179
+ "minimum": 1,
180
+ "examples": [1, 42]
181
+ },
182
+ "address": {
183
+ "type": "string",
184
+ "description": "The checksummed address of the token on the specified chain ID",
185
+ "pattern": "^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$",
186
+ "examples": ["0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "So11111111111111111111111111111111111111112"]
187
+ },
188
+ "decimals": {
189
+ "type": "integer",
190
+ "description": "The number of decimals for the token balance",
191
+ "minimum": 0,
192
+ "maximum": 255,
193
+ "examples": [18]
194
+ },
195
+ "name": {
196
+ "type": "string",
197
+ "description": "The name of the token",
198
+ "minLength": 0,
199
+ "maxLength": 60,
200
+ "anyOf": [
201
+ {
202
+ "const": ""
203
+ },
204
+ {
205
+ "pattern": "^[ \\S+]+$"
206
+ }
207
+ ],
208
+ "examples": ["USD Coin"]
209
+ },
210
+ "symbol": {
211
+ "type": "string",
212
+ "description": "The symbol for the token",
213
+ "minLength": 0,
214
+ "maxLength": 20,
215
+ "examples": ["USDC"]
216
+ },
217
+ "logoURI": {
218
+ "type": "string",
219
+ "description": "A URI to the token logo asset; if not set, interface will attempt to find a logo based on the token address; suggest SVG or PNG of size 64x64",
220
+ "examples": ["ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM"]
221
+ },
222
+ "tags": {
223
+ "type": "array",
224
+ "description": "An array of tag identifiers associated with the token; tags are defined at the list level",
225
+ "items": {
226
+ "$ref": "#/definitions/TagIdentifier"
227
+ },
228
+ "maxItems": 10,
229
+ "examples": ["stablecoin", "compound"]
230
+ },
231
+ "extensions": {
232
+ "$ref": "#/definitions/ExtensionMap"
233
+ }
234
+ },
235
+ "required": ["chainId", "address", "decimals", "name", "symbol"]
236
+ }
237
+ },
238
+ "type": "object",
239
+ "properties": {
240
+ "name": {
241
+ "type": "string",
242
+ "description": "The name of the token list",
243
+ "minLength": 1,
244
+ "maxLength": 30,
245
+ "pattern": "^[\\w ]+$",
246
+ "examples": ["My Token List"]
247
+ },
248
+ "timestamp": {
249
+ "type": "string",
250
+ "format": "date-time",
251
+ "description": "The timestamp of this list version; i.e. when this immutable version of the list was created"
252
+ },
253
+ "version": {
254
+ "$ref": "#/definitions/Version"
255
+ },
256
+ "tokens": {
257
+ "type": "array",
258
+ "description": "The list of tokens included in the list",
259
+ "items": {
260
+ "$ref": "#/definitions/TokenInfo"
261
+ },
262
+ "minItems": 1,
263
+ "maxItems": 10000
264
+ },
265
+ "tokenMap": {
266
+ "type": "object",
267
+ "description": "A mapping of key 'chainId_tokenAddress' to its corresponding token object",
268
+ "minProperties": 1,
269
+ "maxProperties": 10000,
270
+ "propertyNames": {
271
+ "type": "string"
272
+ },
273
+ "additionalProperties": {
274
+ "$ref": "#/definitions/TokenInfo"
275
+ },
276
+ "examples": [
277
+ {
278
+ "4_0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": {
279
+ "name": "Uniswap",
280
+ "address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
281
+ "symbol": "UNI",
282
+ "decimals": 18,
283
+ "chainId": 4,
284
+ "logoURI": "ipfs://QmXttGpZrECX5qCyXbBQiqgQNytVGeZW5Anewvh2jc4psg"
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ "keywords": {
290
+ "type": "array",
291
+ "description": "Keywords associated with the contents of the list; may be used in list discoverability",
292
+ "items": {
293
+ "type": "string",
294
+ "description": "A keyword to describe the contents of the list",
295
+ "minLength": 1,
296
+ "maxLength": 20,
297
+ "pattern": "^[\\w ]+$",
298
+ "examples": ["compound", "lending", "personal tokens"]
299
+ },
300
+ "maxItems": 20,
301
+ "uniqueItems": true
302
+ },
303
+ "tags": {
304
+ "type": "object",
305
+ "description": "A mapping of tag identifiers to their name and description",
306
+ "propertyNames": {
307
+ "$ref": "#/definitions/TagIdentifier"
308
+ },
309
+ "additionalProperties": {
310
+ "$ref": "#/definitions/TagDefinition"
311
+ },
312
+ "maxProperties": 20,
313
+ "examples": [
314
+ {
315
+ "stablecoin": {
316
+ "name": "Stablecoin",
317
+ "description": "A token with value pegged to another asset"
318
+ }
319
+ }
320
+ ]
321
+ },
322
+ "logoURI": {
323
+ "type": "string",
324
+ "description": "A URI for the logo of the token list; prefer SVG or PNG of size 256x256",
325
+ "examples": ["ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM"]
326
+ }
327
+ },
328
+ "required": ["name", "timestamp", "version", "tokens"]
329
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yodlpay/tokenlists",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "Tokenlist typings, schema and lists.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,18 +15,23 @@
15
15
  "files": [
16
16
  "dist"
17
17
  ],
18
- "repository": "https://github.com/yodlpay/tokenlists.git",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/yodlpay/tokenlists"
21
+ },
19
22
  "author": "YodlPay",
20
23
  "scripts": {
21
24
  "start": "tsdx watch",
22
25
  "build": "tsdx build",
23
- "postbuild": "mkdir -p dist/tokens && cp src/tokens/tokenlist-*.json src/tokens/stablecoin-registry.json dist/tokens/",
26
+ "postbuild": "mkdir -p dist/tokens && cp src/tokens/tokenlist-*.json src/tokens/tokenlist.schema.json dist/tokens/",
24
27
  "lint": "tsdx lint src",
25
28
  "format": "prettier --write \"src/**/*.{ts,tsx,json,md}\"",
26
29
  "test": "jest",
27
30
  "typecheck": "tsc --noEmit -p ./tsconfig.json",
28
- "update:tokens": "tsx scripts/update.ts && tsx src/update/fetch-stablecoins.ts",
31
+ "validate:schema": "tsx scripts/validate-schema.ts",
32
+ "update:tokens": "tsx scripts/update.ts",
29
33
  "update:logos": "tsx scripts/download-logos.ts && tsx scripts/upload-logos.ts",
34
+ "tool:tokens": "tsx tools/token-manager/server.ts",
30
35
  "prepublishOnly": "npm run test && npm run build"
31
36
  },
32
37
  "license": "MIT",
@@ -40,28 +45,32 @@
40
45
  "trailingComma": "es5"
41
46
  },
42
47
  "devDependencies": {
43
- "@vercel/blob": "^2.0.0",
48
+ "@hono/node-server": "^1.19.9",
44
49
  "@semantic-release/changelog": "^6.0.3",
45
- "@types/sharp": "^0.32.0",
46
50
  "@semantic-release/git": "^10.0.1",
47
51
  "@types/cli-progress": "^3.11.6",
48
52
  "@types/jest": "^30.0.0",
49
- "@types/node": "^25.0.10",
53
+ "@types/node": "^25.2.0",
54
+ "@types/sharp": "^0.32.0",
55
+ "@vercel/blob": "^2.0.1",
56
+ "ajv": "^8.17.1",
57
+ "ajv-formats": "^3.0.1",
50
58
  "bunchee": "^6.9.4",
51
59
  "cli-progress": "^3.12.0",
52
60
  "consola": "^3.4.2",
53
61
  "dotenv": "^17.2.3",
62
+ "hono": "^4.11.7",
54
63
  "jest": "30",
55
64
  "jest-fetch-mock": "^3.0.3",
65
+ "p-limit": "^7.3.0",
56
66
  "prettier": "^3.8.1",
57
- "semantic-release": "^25.0.2",
67
+ "semantic-release": "25.0.3",
68
+ "sharp": "^0.34.5",
58
69
  "ts-jest": "^29.4.6",
59
70
  "tsdx": "^2.0.0",
60
71
  "tslib": "^2.8.1",
61
72
  "tsx": "^4.21.0",
62
73
  "typescript": "^5.9.3",
63
- "viem": "^2.45.0",
64
- "sharp": "^0.34.5",
65
- "p-limit": "^7.2.0"
74
+ "viem": "^2.45.1"
66
75
  }
67
76
  }