From f55696631f5bb9df51c0ff8bb1e6686d1f894125 Mon Sep 17 00:00:00 2001 From: Snigdha Singh Date: Thu, 26 Dec 2024 22:28:11 +0100 Subject: [PATCH 1/2] update create graph mw docs --- docs/using-platform/11_middleware.md | 44 +++++++++++++--------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/docs/using-platform/11_middleware.md b/docs/using-platform/11_middleware.md index 99afc033..87abc15d 100644 --- a/docs/using-platform/11_middleware.md +++ b/docs/using-platform/11_middleware.md @@ -6,37 +6,33 @@ SettleMint offers two Middleware solutions: **The Graph Middleware (for all EVM- ## Adding a middleware -Before adding a middleware make sure that you have installed **smart contract sets** and **IPFS (decentralized)** storage +Before adding a middleware make sure that you have a **blockchain node** running. Navigate to the **application** where you want to add a middleware. Click **Middleware** in the left navigation, and then click **Add a middleware**. This opens a form. Follow these steps to add the middleware: -1. Select to which of your **smart contract sets** the middleware needs to connect, and click **Continue**. -2. Choose [Graph Middleware](#the-graph-middleware) or [Smart Contract Portal Middleware](#the-smart-contract-portal-middleware) -3. Choose a **Middleware name**. Choose one that will be easily recognizable in your dashboards. -4. Select the **storage provider** if needed. -5. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans.](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) -6. You see the **resource cost** for this middleware displayed at the bottom of the form. Click **Confirm** to add the smart contract set. +1. Choose [Graph Middleware](#the-graph-middleware) or [Smart Contract Portal Middleware](#the-smart-contract-portal-middleware) +2. Choose a **Middleware name**. Choose one that will be easily recognizable in your dashboards. +3. Select the **blockchain node** you want to connect to. This is the blockchain node that will be used to index the blockchain data. +4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans.](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +5. You see the **resource cost** for this middleware displayed at the bottom of the form. Click **Confirm** to add the smart contract set. When the middleware is deployed, click it from the list and start using it. ## The Graph Middleware -[The Graph](https://thegraph.com/en/) is a protocol for indexing and querying blockchain data from networks. It can be used with all EVM-compatible chains like Ethereum, Hyperledger Besu, Polygon, Avalanche, etc. You can run it on your own blockchain nodes (both public and permissioned) and IPFS nodes. +[The Graph](https://thegraph.com/en/) is a protocol for indexing and querying blockchain data from networks. It can be used with all EVM-compatible chains like Ethereum, Hyperledger Besu, Polygon, Avalanche, etc. You can run it on your own blockchain nodes (both public and permissioned). -Using the Graph protocol, you can create **subgraphs** that define which blockchain data will be indexed. These subgraphs are **defined in the smart contract set** and deployed to the middleware. The middleware will then use these subgraphs to correctly index your smart contracts and expose a developer-friendly and efficient **GraphQL API**, allowing you to query the data you need. +Using the Graph protocol, you can create **subgraphs** that define which blockchain data will be indexed. The middleware will then use these subgraphs to correctly index your smart contracts and expose a developer-friendly and efficient **GraphQL API**, allowing you to query the data you need. -The middleware is fully preconfigured and integrated with the smart contract sets. We have some prebuild subgraph indexing modules, but you can build your own modules if you have a custom smart contract set. +We have some prebuilt subgraph indexing modules included in the smart contract set IDE, and you can build your own modules if you have a custom smart contract set. :::warning Warning Before you start, make sure you are running: - An EVM-compatible network (Ethereum, Polygon, Hyperleder Besu, Avalanche, etc.) -- A smart contract set with a deployed smart contract -- An IPFS node -- A private key ::: @@ -44,7 +40,7 @@ When the middleware is deployed, follow these steps to start using it: ### Define and deploy a subgraph -Navigate to the **smart contract set** that you connected to the middleware, go the **details** and open the **IDE**. Here you will define the subgraph to set the indexing specifications, and deploy it so it can be loaded into the middleware. +Navigate to the **smart contract set** which you want to index, go the **details** and open the **IDE**. Here you will define the subgraph to set the indexing specifications, and deploy it so it can be loaded into the middleware. There are instructions included in the IDE to help you. #### Subgraph raw configuration @@ -161,25 +157,25 @@ Standard Webhooks has built [SDKs and useful tools](https://www.standardwebhooks An example using Typescript, [Elysia](https://elysiajs.com/) and [standard webhooks](https://www.standardwebhooks.com/). ```ts -import { Elysia, t } from 'elysia'; -import { Webhook } from 'standardwebhooks'; +import { Elysia, t } from "elysia"; +import { Webhook } from "standardwebhooks"; async function webhookConsumerBootstrap(secret: string) { const webhookConsumer = new Elysia().post( - '/scp-listener', + "/scp-listener", ({ headers, body }) => { try { const wh = new Webhook(btoa(secret)); const verifiedPayload = wh.verify(JSON.stringify(body.payload), { - 'webhook-id': headers['btp-portal-event-id']!, - 'webhook-signature': headers['btp-portal-event-signature']!, - 'webhook-timestamp': headers['btp-portal-event-timestamp']!, + "webhook-id": headers["btp-portal-event-id"]!, + "webhook-signature": headers["btp-portal-event-signature"]!, + "webhook-timestamp": headers["btp-portal-event-timestamp"]!, }); console.log( `Received a webhook event: ${JSON.stringify(verifiedPayload)}` ); } catch (err) { - console.error('Webhook payload invalid', err); + console.error("Webhook payload invalid", err); throw err; } }, @@ -206,7 +202,7 @@ async function webhookConsumerBootstrap(secret: string) { webhookConsumerBootstrap(process.env.WEBHOOK_SECRET!) .then((app) => app.listen(process.env.PORT || 5555)) .catch((error: Error) => { - console.error('Failed to start webhook consumer', error); + console.error("Failed to start webhook consumer", error); process.exit(1); }); ``` @@ -218,7 +214,7 @@ The websocket endpoint exposes functionality to get real time updates on process The url can be copied from the Connect tab. ```ts -import type { TransactionReceipt } from 'viem'; +import type { TransactionReceipt } from "viem"; // Should include an api key (eg wss://smart-contract-portal-middleware.settlemint.com/sm_pat_.../ws) const webSocketHost = process.env.WS_URL!; @@ -242,7 +238,7 @@ export async function waitForTransactionReceipt(transactionHash: string) { webSocket.onerror = reject; webSocket.onclose = () => { if (!isResolved) { - reject(new Error('Nothing received from the WebSocket')); + reject(new Error("Nothing received from the WebSocket")); } }; if (webSocket.readyState === WebSocket.OPEN) { From 3473b8eb3ee33ac2ce64e6876f1f30315f112581 Mon Sep 17 00:00:00 2001 From: Snigdha Singh Date: Thu, 26 Dec 2024 22:38:56 +0100 Subject: [PATCH 2/2] fix typo --- docs/using-platform/11_middleware.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/using-platform/11_middleware.md b/docs/using-platform/11_middleware.md index 87abc15d..3cadf6ee 100644 --- a/docs/using-platform/11_middleware.md +++ b/docs/using-platform/11_middleware.md @@ -32,7 +32,7 @@ We have some prebuilt subgraph indexing modules included in the smart contract s Before you start, make sure you are running: -- An EVM-compatible network (Ethereum, Polygon, Hyperleder Besu, Avalanche, etc.) +- An EVM-compatible network (Ethereum, Polygon, Hyperledger Besu, Avalanche, etc.) ::: @@ -113,7 +113,7 @@ Benefits of using the smart contract portal: Before you start, make sure you are running: -- An EVM-compatible network (Ethereum, Polygon, Hyperleder Besu, Avalanche, etc.) +- An EVM-compatible network (Ethereum, Polygon, Hyperledger Besu, Avalanche, etc.) - A private key :::