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.* +