diff --git a/docs/rpc_nodes.md b/docs/rpc_nodes.md
index 343ac4fa70..faa5c164e5 100644
--- a/docs/rpc_nodes.md
+++ b/docs/rpc_nodes.md
@@ -23,21 +23,24 @@ values={[
| Provider | Net | URL | Header |
|------------------|--------------|------------------------------------------|---------------------------------------------------------------------------------|
-| ECAD Labs | Mainnet | https://mainnet.tezos.ecadinfra.com | [Check](https://mainnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
-| ECAD Labs | Ghostnet | https://ghostnet.tezos.ecadinfra.com | [Check](https://ghostnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
-| SmartPy | Mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) |
-| SmartPy | Ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) |
-| Tezos Foundation | Mainnet | https://rpc.tzbeta.net/ | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) |
-| Tezos Foundation | Ghostnet | https://rpc.ghostnet.teztnets.com/ | [Check](https://rpc.ghostnet.teztnets.com/chains/main/blocks/head/header) |
-| Tezos Foundation | Parisnet | https://rpc.pariscnet.teztnets.com/ | [Check](https://rpc.pariscnet.teztnets.com/chains/main/blocks/head/header) |
-| Tezos Foundation | Quebecnet | https://rpc.quebecnet.teztnets.com/ | [Check](https://rpc.quebecnet.teztnets.com/chains/main/blocks/head/header) |
-| Tzkt | Mainnet | https://rpc.tzkt.io/mainnet/ | [Check](https://rpc.tzkt.io/mainnet/chains/main/blocks/head/header) |
-| Tzkt | Ghostnet | https://rpc.tzkt.io/ghostnet | [Check](https://rpc.tzkt.io/ghostnet/chains/main/blocks/head/header) |
-| Tzkt | Parisnet | https://rpc.tzkt.io/parisnet | [Check](https://rpc.tzkt.io/parisnet/chains/main/blocks/head/header) |
-| Tzkt | Quebecnet | https://rpc.tzkt.io/quebecnet | [Check](https://rpc.tzkt.io/quebecnet/chains/main/blocks/head/header) |
-
-https://api.mainnet.tzkt.io/
-*If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.*
+| ECAD Infra | mainnet | https://mainnet.tezos.ecadinfra.com | [Check](https://mainnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
+| ECAD Infra | ghostnet | https://ghostnet.tezos.ecadinfra.com | [Check](https://ghostnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
+| SmartPy | mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) |
+| SmartPy | ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) |
+| Tezos Foundation | mainnet | https://rpc.tzbeta.net | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) |
+| Tezos Foundation | ghostnet | https://rpc.ghostnet.teztnets.com | [Check](https://rpc.ghostnet.teztnets.com/chains/main/blocks/head/header) |
+| Tezos Foundation | parisnet | https://rpc.pariscnet.teztnets.com | [Check](https://rpc.pariscnet.teztnets.com/chains/main/blocks/head/header) |
+| Tezos Foundation | quebecnet | https://rpc.quebecnet.teztnets.com | [Check](https://rpc.quebecnet.teztnets.com/chains/main/blocks/head/header) |
+| TzKT | mainnet | https://rpc.tzkt.io/mainnet | [Check](https://rpc.tzkt.io/mainnet/chains/main/blocks/head/header) |
+| TzKT | ghostnet | https://rpc.tzkt.io/ghostnet | [Check](https://rpc.tzkt.io/ghostnet/chains/main/blocks/head/header) |
+| TzKT | parisnet | https://rpc.tzkt.io/parisnet | [Check](https://rpc.tzkt.io/parisnet/chains/main/blocks/head/header) |
+| TzKT | quebecnet | https://rpc.tzkt.io/quebecnet | [Check](https://rpc.tzkt.io/quebecnet/chains/main/blocks/head/header) |
+
+
+*- You can also find a machine readable list in [rpc_nodes.json](https://taquito.io/docs/rpc_nodes.json).*
+
+*- If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.*
+
diff --git a/example/convert-rpc-json-to-md.ts b/example/convert-rpc-json-to-md.ts
new file mode 100644
index 0000000000..ca710b205f
--- /dev/null
+++ b/example/convert-rpc-json-to-md.ts
@@ -0,0 +1,29 @@
+const path = require('path');
+const rpcData: RpcType = require(path.resolve(__dirname, '../website/static/docs/rpc_nodes.json'));
+
+type Provider = {id: string, name: string, website: string, status_page: string};
+type RpcEndpoint = {provider: string, url: string, net: string}
+type RpcType = {providers: Provider[], rpc_endpoints: RpcEndpoint[]};
+
+// Create a mapping of provider IDs to their names
+const providers = rpcData.providers.reduce((providerMapping: Record, provider) => {
+ providerMapping[provider.id] = provider.name;
+ return providerMapping;
+}, {});
+
+// Generate the markdown table header
+let markdownTable = "| Provider | Net | URL | Header |\n";
+markdownTable += "|------------------|--------------|------------------------------------------|---------------------------------------------------------------------------------|\n";
+
+// Iterate over each RPC endpoint and generate the table rows
+rpcData.rpc_endpoints.forEach(endpoint => {
+ const providerName = providers[endpoint.provider] || "Unknown Provider";
+ const url = endpoint.url;
+ const net = endpoint.net;
+ const headerUrl = `${url}/chains/main/blocks/head/header`;
+ const row = `| ${providerName.padEnd(16)} | ${net.padEnd(12)} | ${url.padEnd(40)} | [Check](${headerUrl}) |\n`;
+ markdownTable += row;
+});
+
+// Output the generated markdown table
+console.log(markdownTable);
\ No newline at end of file
diff --git a/website/package-lock.json b/website/package-lock.json
index 0001fa08ab..b4f40016b2 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -36,14 +36,14 @@
"@taquito/wallet-connect": "file:../packages/taquito-wallet-connect",
"abort-controller": "^3.0.0",
"algoliasearch": "^4.23.2",
- "axios": "^0.28.0",
+ "axios": "^0.29.0",
"buffer": "^6.0.3",
"classnames": "^2.3.2",
"clipboard": "^2.0.11",
"clsx": "^1.2.1",
"docusaurus-plugin-dotenv": "^1.0.1",
"docusaurus-plugin-sass": "^0.2.5",
- "dotenv": "^16.3.2",
+ "dotenv": "^16.4.7",
"file-loader": "^6.2.0",
"firebase": "^10.14.1",
"html-react-parser": "^3.0.16",
@@ -8856,12 +8856,11 @@
}
},
"node_modules/axios": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz",
- "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==",
- "license": "MIT",
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.29.0.tgz",
+ "integrity": "sha512-Kjsq1xisgO5DjjNQwZFsy0gpcU1P2j36dZeQDXVhpIU26GVgkDUnROaHLSuluhMqtDE7aKA2hbKXG5yu5DN8Tg==",
"dependencies": {
- "follow-redirects": "^1.15.0",
+ "follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -12249,10 +12248,9 @@
}
},
"node_modules/dotenv": {
- "version": "16.4.5",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
- "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
- "license": "BSD-2-Clause",
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
"engines": {
"node": ">=12"
},
@@ -23964,6 +23962,16 @@
"node": ">=10.0.0"
}
},
+ "node_modules/wait-on/node_modules/axios": {
+ "version": "0.28.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz",
+ "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/walk-up-path": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
diff --git a/website/package.json b/website/package.json
index 58b132b263..e9ace3d893 100644
--- a/website/package.json
+++ b/website/package.json
@@ -43,14 +43,14 @@
"@taquito/wallet-connect": "file:../packages/taquito-wallet-connect",
"abort-controller": "^3.0.0",
"algoliasearch": "^4.23.2",
- "axios": "^0.28.0",
+ "axios": "^0.29.0",
"buffer": "^6.0.3",
"classnames": "^2.3.2",
"clipboard": "^2.0.11",
"clsx": "^1.2.1",
"docusaurus-plugin-dotenv": "^1.0.1",
"docusaurus-plugin-sass": "^0.2.5",
- "dotenv": "^16.3.2",
+ "dotenv": "^16.4.7",
"file-loader": "^6.2.0",
"firebase": "^10.14.1",
"html-react-parser": "^3.0.16",
diff --git a/website/static/docs/rpc_nodes.json b/website/static/docs/rpc_nodes.json
new file mode 100644
index 0000000000..5126a03a44
--- /dev/null
+++ b/website/static/docs/rpc_nodes.json
@@ -0,0 +1,90 @@
+{
+ "providers": [
+ {
+ "id": "ecadinfra",
+ "name": "ECAD Infra",
+ "website": "https://www.ecadinfra.com/",
+ "status_page": ""
+ },
+ {
+ "id": "smartpy",
+ "name": "SmartPy",
+ "website": "https://smartpy.io",
+ "status_page": ""
+ },
+ {
+ "id": "tezosfoundation",
+ "name": "Tezos Foundation",
+ "website": "https://tezos.foundation",
+ "status_page": ""
+ },
+ {
+ "id": "tzkt",
+ "name": "TzKT",
+ "website": "https://tzkt.io",
+ "status_page": ""
+ }
+ ],
+ "rpc_endpoints": [
+ {
+ "net": "mainnet",
+ "url": "https://mainnet.tezos.ecadinfra.com",
+ "provider": "ecadinfra"
+ },
+ {
+ "net": "ghostnet",
+ "url": "https://ghostnet.tezos.ecadinfra.com",
+ "provider": "ecadinfra"
+ },
+ {
+ "net": "mainnet",
+ "url": "https://mainnet.smartpy.io",
+ "provider": "smartpy"
+ },
+ {
+ "net": "ghostnet",
+ "url": "https://ghostnet.smartpy.io",
+ "provider": "smartpy"
+ },
+ {
+ "net": "mainnet",
+ "url": "https://rpc.tzbeta.net",
+ "provider": "tezosfoundation"
+ },
+ {
+ "net": "ghostnet",
+ "url": "https://rpc.ghostnet.teztnets.com",
+ "provider": "tezosfoundation"
+ },
+ {
+ "net": "parisnet",
+ "url": "https://rpc.pariscnet.teztnets.com",
+ "provider": "tezosfoundation"
+ },
+ {
+ "net": "quebecnet",
+ "url": "https://rpc.quebecnet.teztnets.com",
+ "provider": "tezosfoundation"
+ },
+ {
+ "net": "mainnet",
+ "url": "https://rpc.tzkt.io/mainnet",
+ "provider": "tzkt"
+ },
+ {
+ "net": "ghostnet",
+ "url": "https://rpc.tzkt.io/ghostnet",
+ "provider": "tzkt"
+ },
+ {
+ "net": "parisnet",
+ "url": "https://rpc.tzkt.io/parisnet",
+ "provider": "tzkt"
+ },
+ {
+ "net": "quebecnet",
+ "url": "https://rpc.tzkt.io/quebecnet",
+ "provider": "tzkt"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/website/versioned_docs/version-21.0.0/rpc_nodes.md b/website/versioned_docs/version-21.0.0/rpc_nodes.md
index 343ac4fa70..faa5c164e5 100644
--- a/website/versioned_docs/version-21.0.0/rpc_nodes.md
+++ b/website/versioned_docs/version-21.0.0/rpc_nodes.md
@@ -23,21 +23,24 @@ values={[
| Provider | Net | URL | Header |
|------------------|--------------|------------------------------------------|---------------------------------------------------------------------------------|
-| ECAD Labs | Mainnet | https://mainnet.tezos.ecadinfra.com | [Check](https://mainnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
-| ECAD Labs | Ghostnet | https://ghostnet.tezos.ecadinfra.com | [Check](https://ghostnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
-| SmartPy | Mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) |
-| SmartPy | Ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) |
-| Tezos Foundation | Mainnet | https://rpc.tzbeta.net/ | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) |
-| Tezos Foundation | Ghostnet | https://rpc.ghostnet.teztnets.com/ | [Check](https://rpc.ghostnet.teztnets.com/chains/main/blocks/head/header) |
-| Tezos Foundation | Parisnet | https://rpc.pariscnet.teztnets.com/ | [Check](https://rpc.pariscnet.teztnets.com/chains/main/blocks/head/header) |
-| Tezos Foundation | Quebecnet | https://rpc.quebecnet.teztnets.com/ | [Check](https://rpc.quebecnet.teztnets.com/chains/main/blocks/head/header) |
-| Tzkt | Mainnet | https://rpc.tzkt.io/mainnet/ | [Check](https://rpc.tzkt.io/mainnet/chains/main/blocks/head/header) |
-| Tzkt | Ghostnet | https://rpc.tzkt.io/ghostnet | [Check](https://rpc.tzkt.io/ghostnet/chains/main/blocks/head/header) |
-| Tzkt | Parisnet | https://rpc.tzkt.io/parisnet | [Check](https://rpc.tzkt.io/parisnet/chains/main/blocks/head/header) |
-| Tzkt | Quebecnet | https://rpc.tzkt.io/quebecnet | [Check](https://rpc.tzkt.io/quebecnet/chains/main/blocks/head/header) |
-
-https://api.mainnet.tzkt.io/
-*If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.*
+| ECAD Infra | mainnet | https://mainnet.tezos.ecadinfra.com | [Check](https://mainnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
+| ECAD Infra | ghostnet | https://ghostnet.tezos.ecadinfra.com | [Check](https://ghostnet.tezos.ecadinfra.com/chains/main/blocks/head/header) |
+| SmartPy | mainnet | https://mainnet.smartpy.io | [Check](https://mainnet.smartpy.io/chains/main/blocks/head/header) |
+| SmartPy | ghostnet | https://ghostnet.smartpy.io | [Check](https://ghostnet.smartpy.io/chains/main/blocks/head/header) |
+| Tezos Foundation | mainnet | https://rpc.tzbeta.net | [Check](https://rpc.tzbeta.net/chains/main/blocks/head/header) |
+| Tezos Foundation | ghostnet | https://rpc.ghostnet.teztnets.com | [Check](https://rpc.ghostnet.teztnets.com/chains/main/blocks/head/header) |
+| Tezos Foundation | parisnet | https://rpc.pariscnet.teztnets.com | [Check](https://rpc.pariscnet.teztnets.com/chains/main/blocks/head/header) |
+| Tezos Foundation | quebecnet | https://rpc.quebecnet.teztnets.com | [Check](https://rpc.quebecnet.teztnets.com/chains/main/blocks/head/header) |
+| TzKT | mainnet | https://rpc.tzkt.io/mainnet | [Check](https://rpc.tzkt.io/mainnet/chains/main/blocks/head/header) |
+| TzKT | ghostnet | https://rpc.tzkt.io/ghostnet | [Check](https://rpc.tzkt.io/ghostnet/chains/main/blocks/head/header) |
+| TzKT | parisnet | https://rpc.tzkt.io/parisnet | [Check](https://rpc.tzkt.io/parisnet/chains/main/blocks/head/header) |
+| TzKT | quebecnet | https://rpc.tzkt.io/quebecnet | [Check](https://rpc.tzkt.io/quebecnet/chains/main/blocks/head/header) |
+
+
+*- You can also find a machine readable list in [rpc_nodes.json](https://taquito.io/docs/rpc_nodes.json).*
+
+*- If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.*
+