Skip to content

Commit 41023a1

Browse files
authored
Merge branch 'main' into patch-data-streams-solana-example
2 parents 705a2eb + dda0d5f commit 41023a1

File tree

330 files changed

+22111
-9476
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

330 files changed

+22111
-9476
lines changed

.github/scripts/data/baseline.json

Lines changed: 77 additions & 1 deletion
Large diffs are not rendered by default.

jest.config.cjs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,34 @@
11
module.exports = {
2-
preset: "ts-jest",
2+
preset: "ts-jest/presets/js-with-ts-esm",
33
testEnvironment: "node",
44
transform: {
5-
"^.+\\.ts?$": "ts-jest",
5+
"^.+\\.(ts|tsx)$": [
6+
"ts-jest",
7+
{
8+
useESM: true,
9+
tsconfig: "tsconfig.json",
10+
},
11+
],
612
},
13+
extensionsToTreatAsEsm: [".ts", ".tsx"],
14+
moduleFileExtensions: ["js", "jsx", "ts", "tsx", "json", "node"],
715
moduleNameMapper: {
816
"\\.(css)$": "<rootDir>/src/__mocks__/styleMock.ts",
917
"^~/(.*)$": "<rootDir>/src/$1",
10-
"^@components$": "<rootDir>/src/components/index.ts",
18+
"^@components": "<rootDir>/src/components/index.ts",
1119
"^@components/(.*)$": "<rootDir>/src/components/$1",
12-
"^@config$": "<rootDir>/src/config",
20+
"^@config$": "<rootDir>/src/config/index.ts",
1321
"^@config/(.*)$": "<rootDir>/src/config/$1",
1422
"^@features/(.*)$": "<rootDir>/src/features/$1",
15-
"^@graphql$": "<rootDir>/src/graphql",
23+
"^@graphql$": "<rootDir>/src/graphql/index.ts",
1624
"^@graphql/(.*)$": "<rootDir>/src/graphql/$1",
1725
"^@stores/(.*)$": "<rootDir>/src/stores/$1",
18-
"^@utils$": "<rootDir>/src/utils",
26+
"^@utils$": "<rootDir>/src/utils/index.ts",
1927
"^@utils/(.*)$": "<rootDir>/src/utils/$1",
2028
"^@variables$": "<rootDir>/src/config/markdown-variables.ts",
2129
"^@abi$": "<rootDir>/src/features/abi/index.ts",
22-
"^src/(.*)$": "<rootDir>/src/$1",
2330
"\\.ya?ml$": "<rootDir>/src/__mocks__/yamlMock.ts",
2431
},
25-
transformIgnorePatterns: ["<rootDir>/node_modules/"],
26-
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
32+
transformIgnorePatterns: ["/node_modules/(?!.*\\.mjs$)"],
33+
testPathIgnorePatterns: ["/node_modules/", "src/tests/chain-api.test.ts"],
2734
}

package-lock.json

Lines changed: 2041 additions & 3708 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"lint-ts:fix": "eslint --ext ts .",
3232
"lint-solc": "solhint --max-warnings 266 'public/samples/**/*.sol'",
3333
"prepare": "husky",
34-
"test": "jest",
34+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
3535
"typecheck": "tsc --noEmit",
3636
"generate-graphql": "graphql-codegen --config ./codegen.ts"
3737
},
@@ -47,10 +47,10 @@
4747
"@astrojs/sitemap": "^3.4.0",
4848
"@astrojs/vercel": "^8.1.4",
4949
"@chainlink/components": "^0.4.18",
50-
"@chainlink/contracts": "1.3.0",
51-
"@chainlink/contracts-ccip": "1.5.1-beta.0",
50+
"@chainlink/contracts": "1.4.0",
51+
"@chainlink/contracts-ccip": "1.6.0-beta.3",
5252
"@chainlink/design-system": "^0.2.8",
53-
"@chainlink/local": "0.2.2",
53+
"@chainlink/local": "^0.2.5-beta",
5454
"@chainlink/solana-sdk": "^0.2.2",
5555
"@metamask/detect-provider": "^2.0.0",
5656
"@metamask/providers": "^20.0.0",
@@ -59,7 +59,7 @@
5959
"@openzeppelin/contracts": "^4.9.6",
6060
"astro": "^5.7.12",
6161
"bignumber.js": "^9.3.0",
62-
"chainlink-algolia-search": "^0.8.7",
62+
"chainlink-algolia-search": "^0.10.1",
6363
"clipboard": "^2.0.11",
6464
"dotenv": "^16.5.0",
6565
"ethers": "^6.14.0",
@@ -70,7 +70,7 @@
7070
"lodash": "^4.17.21",
7171
"marked": "^15.0.11",
7272
"nanostores": "^0.11.4",
73-
"pino": "^9.6.0",
73+
"pino": "^9.7.0",
7474
"preact": "^10.26.6",
7575
"react-instantsearch": "^7.15.7",
7676
"rehype-autolink-headings": "^7.1.0",
@@ -94,7 +94,7 @@
9494
"@rollup/plugin-yaml": "^4.1.2",
9595
"@types/jest": "^29.5.14",
9696
"@types/lodash": "^4.17.16",
97-
"@types/node": "^20.17.46",
97+
"@types/node": "^20.17.48",
9898
"@types/node-fetch": "^2.6.12",
9999
"@types/prismjs": "^1.26.5",
100100
"@types/react": "^19.1.3",
@@ -121,7 +121,7 @@
121121
"solhint": "^5.1.0",
122122
"solhint-plugin-chainlink-solidity": "github:smartcontractkit/chainlink-solhint-rules",
123123
"solhint-plugin-prettier": "^0.1.0",
124-
"ts-jest": "^29.2.5",
124+
"ts-jest": "^29.3.4",
125125
"tsconfig-paths": "^4.2.0",
126126
"tsx": "^4.19.4",
127127
"typescript": "^5.8.3",

public/api/ccip/v1/openapi.json

Lines changed: 63 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"info": {
44
"title": "CCIP Chains API",
55
"description": "API for retrieving CCIP chain information.\n\nTo get started quickly, you can download our [Postman Collection](/api/ccip/v1/postman-collection.json) which includes all endpoints and example requests.",
6-
"version": "1.2.0",
6+
"version": "1.3.0",
77
"contact": {
88
"name": "File issues",
99
"url": "https://github.com/smartcontractkit/documentation/issues/new/choose"
@@ -38,7 +38,7 @@
3838
"get": {
3939
"tags": ["chains"],
4040
"summary": "Retrieve CCIP chain information",
41-
"description": "Returns information about Cross-Chain Interoperability Protocol (CCIP) chains",
41+
"description": "Returns information about Cross-Chain Interoperability Protocol (CCIP) chains across different blockchain families (EVM, Solana, Aptos)",
4242
"operationId": "getChains",
4343
"parameters": [
4444
{
@@ -57,7 +57,7 @@
5757
"schema": {
5858
"type": "string"
5959
},
60-
"description": "Filter by chain ID (e.g., \"1\" for Ethereum, or \"1,56\" for Ethereum and BSC)",
60+
"description": "Filter by chain ID (e.g., \"1\" for Ethereum, \"56\" for BSC, or a Solana pubkey)",
6161
"example": "1,56"
6262
},
6363
{
@@ -103,7 +103,7 @@
103103
"timestamp": "2024-03-14T12:00:00Z",
104104
"requestId": "123e4567-e89b-12d3-a456-426614174000",
105105
"ignoredChainCount": 0,
106-
"validChainCount": 1
106+
"validChainCount": 2
107107
},
108108
"data": {
109109
"evm": {
@@ -117,7 +117,23 @@
117117
"rmn": "0x411dE17f12D1A34ecC7F45f49844626267c75e81",
118118
"registryModule": "0x13022e3e6C77524308BD56AEd716E88311b2E533",
119119
"tokenAdminRegistry": "0xb22764f98dD05c789929716D677382Df22C05Cb6",
120-
"tokenPoolFactory": "0x17D8a409fE2ceF2d3808bcB61F14aBEFfc28876e"
120+
"tokenPoolFactory": "0x17D8a409fE2ceF2d3808bcB61F14aBEFfc28876e",
121+
"chainType": "evm",
122+
"chainFamily": "evm"
123+
}
124+
},
125+
"svm": {
126+
"solana-devnet": {
127+
"chainId": "solana-devnet",
128+
"displayName": "Solana Devnet",
129+
"selector": "16015286601757825753",
130+
"internalId": "solana-devnet",
131+
"feeTokens": ["LINK", "SOL"],
132+
"router": "CCiPv7hcmEqNdMdJgmHDJmEJyCkBgLqxmcf87R1Gho6H",
133+
"rmn": "CRmNVnB7S6SqEPFG6m9dVp9fJJCjr3TC2TiAWB3RqNod",
134+
"feeQuoter": "FqbCVbS7a4ndxs9xZ8UmfL6LQsUhAJNkWxW3duJRrCWD",
135+
"chainType": "solana",
136+
"chainFamily": "svm"
121137
}
122138
}
123139
},
@@ -320,13 +336,13 @@
320336
"feeTokens",
321337
"router",
322338
"rmn",
323-
"registryModule",
324-
"tokenAdminRegistry"
339+
"chainType",
340+
"chainFamily"
325341
],
326342
"properties": {
327343
"chainId": {
328-
"type": "integer",
329-
"description": "Numeric identifier of the chain"
344+
"oneOf": [{ "type": "integer" }, { "type": "string" }],
345+
"description": "Identifier of the chain (numeric for EVM chains, string for Solana/Aptos chains)"
330346
},
331347
"displayName": {
332348
"type": "string",
@@ -349,28 +365,37 @@
349365
},
350366
"router": {
351367
"type": "string",
352-
"pattern": "^0x[a-fA-F0-9]{40}$",
353368
"description": "CCIP Router contract address"
354369
},
355370
"rmn": {
356371
"type": "string",
357-
"pattern": "^0x[a-fA-F0-9]{40}$",
358372
"description": "Risk Management Network contract address"
359373
},
374+
"chainType": {
375+
"type": "string",
376+
"enum": ["evm", "solana", "aptos"],
377+
"description": "Type of blockchain"
378+
},
379+
"chainFamily": {
380+
"type": "string",
381+
"enum": ["evm", "svm", "mvm"],
382+
"description": "Blockchain family (EVM, Solana VM, Move VM)"
383+
},
360384
"registryModule": {
361385
"type": "string",
362-
"pattern": "^0x[a-fA-F0-9]{40}$",
363-
"description": "Registry Module contract address"
386+
"description": "Registry Module contract address (EVM chains only)"
364387
},
365388
"tokenAdminRegistry": {
366389
"type": "string",
367-
"pattern": "^0x[a-fA-F0-9]{40}$",
368-
"description": "Token Admin Registry contract address"
390+
"description": "Token Admin Registry contract address (EVM chains only)"
369391
},
370392
"tokenPoolFactory": {
371393
"type": "string",
372-
"pattern": "^0x[a-fA-F0-9]{40}$",
373-
"description": "Token Pool Factory contract address"
394+
"description": "Token Pool Factory contract address (EVM chains only)"
395+
},
396+
"feeQuoter": {
397+
"type": "string",
398+
"description": "Fee Quoter address (Solana chains only)"
374399
}
375400
}
376401
},
@@ -408,16 +433,30 @@
408433
},
409434
"data": {
410435
"type": "object",
411-
"required": ["evm"],
412436
"properties": {
413437
"evm": {
414438
"type": "object",
415439
"additionalProperties": {
416440
"$ref": "#/components/schemas/ChainDetails"
417441
},
418-
"description": "Map of chain details keyed by the specified output key"
442+
"description": "EVM chain details keyed by the specified output key"
443+
},
444+
"svm": {
445+
"type": "object",
446+
"additionalProperties": {
447+
"$ref": "#/components/schemas/ChainDetails"
448+
},
449+
"description": "Solana VM chain details keyed by the specified output key"
450+
},
451+
"mvm": {
452+
"type": "object",
453+
"additionalProperties": {
454+
"$ref": "#/components/schemas/ChainDetails"
455+
},
456+
"description": "Move VM (Aptos) chain details keyed by the specified output key"
419457
}
420-
}
458+
},
459+
"description": "Chain details grouped by chain family"
421460
},
422461
"ignored": {
423462
"type": "array",
@@ -478,16 +517,15 @@
478517
"required": ["chainId", "chainName", "tokenAddress", "decimals", "poolType", "poolAddress"],
479518
"properties": {
480519
"chainId": {
481-
"type": "integer",
482-
"description": "Numeric identifier of the chain"
520+
"oneOf": [{ "type": "integer" }, { "type": "string" }],
521+
"description": "Identifier of the chain (numeric for EVM chains, string for Solana/Aptos chains)"
483522
},
484523
"chainName": {
485524
"type": "string",
486525
"description": "Human-readable name of the chain"
487526
},
488527
"tokenAddress": {
489528
"type": "string",
490-
"pattern": "^0x[a-fA-F0-9]{40}$",
491529
"description": "Token contract address on this chain"
492530
},
493531
"decimals": {
@@ -503,7 +541,6 @@
503541
},
504542
"poolAddress": {
505543
"type": "string",
506-
"pattern": "^0x[a-fA-F0-9]{40}$",
507544
"description": "Token pool contract address (if applicable)"
508545
}
509546
}
@@ -513,16 +550,15 @@
513550
"required": ["chainId", "chainName", "tokenAddress", "decimals", "poolType", "poolAddress"],
514551
"properties": {
515552
"chainId": {
516-
"type": "integer",
517-
"description": "Numeric identifier of the chain"
553+
"oneOf": [{ "type": "integer" }, { "type": "string" }],
554+
"description": "Identifier of the chain (numeric for EVM chains, string for Solana/Aptos chains)"
518555
},
519556
"chainName": {
520557
"type": "string",
521558
"description": "Human-readable name of the chain"
522559
},
523560
"tokenAddress": {
524561
"type": "string",
525-
"pattern": "^0x[a-fA-F0-9]{40}$",
526562
"description": "Token contract address on this chain"
527563
},
528564
"decimals": {
@@ -538,7 +574,6 @@
538574
},
539575
"poolAddress": {
540576
"type": "string",
541-
"pattern": "^0x[a-fA-F0-9]{40}$",
542577
"description": "Token pool contract address (if applicable)"
543578
},
544579
"name": {

0 commit comments

Comments
 (0)