Skip to content

Commit e66fe0c

Browse files
authored
update part4 w/ new consuemr (#3271)
1 parent 87c9d14 commit e66fe0c

File tree

10 files changed

+125
-117
lines changed

10 files changed

+125
-117
lines changed

reports/llms-report.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
{
2-
"startedAt": "2025-12-09T18:04:32.521Z",
2+
"startedAt": "2025-12-09T18:45:48.237Z",
33
"siteBase": "https://docs.chain.link",
44
"sections": [
55
{
66
"section": "cre-go",
77
"pagesProcessed": 83,
88
"outputPath": "src/content/cre/llms-full-go.txt",
9-
"bytes": 655973,
10-
"prevBytes": 651615,
11-
"deltaBytes": 4358
9+
"bytes": 656030,
10+
"prevBytes": 656030,
11+
"deltaBytes": 0
1212
},
1313
{
1414
"section": "cre-ts",
1515
"pagesProcessed": 78,
1616
"outputPath": "src/content/cre/llms-full-ts.txt",
17-
"bytes": 611476,
18-
"prevBytes": 607118,
19-
"deltaBytes": 4358
17+
"bytes": 612048,
18+
"prevBytes": 611515,
19+
"deltaBytes": 533
2020
},
2121
{
2222
"section": "vrf",
@@ -87,8 +87,8 @@
8787
"pagesProcessed": 12,
8888
"outputPath": "src/content/resources/llms-full.txt",
8989
"bytes": 339715,
90-
"prevBytes": 338205,
91-
"deltaBytes": 1510
90+
"prevBytes": 339715,
91+
"deltaBytes": 0
9292
},
9393
{
9494
"section": "architecture-overview",
@@ -123,5 +123,5 @@
123123
"deltaBytes": 0
124124
}
125125
],
126-
"finishedAt": "2025-12-09T18:04:37.177Z"
126+
"finishedAt": "2025-12-09T18:45:52.560Z"
127127
}

src/content/cre/getting-started/conclusion.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Want to dive deeper into specific concepts from the Getting Started guide? Use t
103103

104104
- **[EVM Client Overview](/cre/guides/workflow/using-evm-client/overview)** - Introduction to smart contract interactions
105105
- **[Onchain Read Guide](/cre/guides/workflow/using-evm-client/onchain-read)** - Reading from a smart contract
106-
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write)** - Complete write patterns and report generation
106+
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write/overview)** - Complete write patterns and report generation
107107

108108
**Configuration & Secrets**
109109

src/content/cre/getting-started/part-4-writing-onchain-go.mdx

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pageId: "getting-started-part-4"
77
metadata:
88
description: "Getting started Part 4 (Go): write verified workflow results onchain to smart contracts and complete your first end-to-end workflow."
99
datePublished: "2025-11-04"
10-
lastModified: "2025-11-04"
10+
lastModified: "2025-12-09"
1111
---
1212

1313
import { Aside } from "@components"
@@ -103,7 +103,7 @@ contract CalculatorConsumer is ReceiverTemplate {
103103
}
104104
```
105105

106-
The contract is already deployed for you on Sepolia at the following address: <a href="https://sepolia.etherscan.io/address/0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54#code" target="_blank" rel="noopener noreferrer">`0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54`</a>. You will use this address in your configuration file.
106+
The contract is already deployed for you on Sepolia at the following address: <a href="https://sepolia.etherscan.io/address/0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52#code" target="_blank" rel="noopener noreferrer">`0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52`</a>. You will use this address in your configuration file.
107107

108108
## Step 2: Generate the consumer contract binding
109109

@@ -143,7 +143,7 @@ Add the `CalculatorConsumer` contract address to your `config.staging.json`:
143143
"evms": [
144144
{
145145
"storageAddress": "0xa17CF997C28FF154eDBae1422e6a50BeF23927F4",
146-
"calculatorConsumerAddress": "0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54",
146+
"calculatorConsumerAddress": "0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52",
147147
"chainName": "ethereum-testnet-sepolia",
148148
"gasLimit": 500000
149149
}
@@ -207,34 +207,34 @@ Your workflow will now show the complete end-to-end execution, including the fin
207207

208208
```bash
209209
Workflow compiled
210-
2025-11-03T22:48:41Z [SIMULATION] Simulator Initialized
211-
212-
2025-11-03T22:48:41Z [SIMULATION] Running trigger [email protected]
213-
2025-11-03T22:48:41Z [USER LOG] msg="Successfully fetched offchain value" result=56
214-
2025-11-03T22:48:41Z [USER LOG] msg="Successfully read onchain value" result=22
215-
2025-11-03T22:48:41Z [USER LOG] msg="Final calculated result" result=78
216-
2025-11-03T22:48:41Z [USER LOG] msg="Updating calculator result" consumerAddress=0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54
217-
2025-11-03T22:48:41Z [USER LOG] msg="Writing report to consumer contract" offchainValue=56 onchainValue=22 finalResult=78
218-
2025-11-03T22:48:41Z [USER LOG] msg="Waiting for write report response"
219-
2025-11-03T22:48:48Z [USER LOG] msg="Write report transaction succeeded" txHash=0x86a26f848c83f37b8eace8123ec275a0af9d21b23b1fbba9cc7664b7e474314f
220-
2025-11-03T22:48:48Z [USER LOG] msg="View transaction at" url=https://sepolia.etherscan.io/tx/0x86a26f848c83f37b8eace8123ec275a0af9d21b23b1fbba9cc7664b7e474314f
221-
2025-11-03T22:48:48Z [USER LOG] msg="Workflow finished successfully!" result="&{OffchainValue:+56 OnchainValue:+22 FinalResult:+78 TxHash:0x86a26f848c83f37b8eace8123ec275a0af9d21b23b1fbba9cc7664b7e474314f}"
210+
2025-12-09T13:36:10Z [SIMULATION] Simulator Initialized
211+
212+
2025-12-09T13:36:10Z [SIMULATION] Running trigger [email protected]
213+
2025-12-09T13:36:10Z [USER LOG] msg="Successfully fetched offchain value" result=77
214+
2025-12-09T13:36:10Z [USER LOG] msg="Successfully read onchain value" result=22
215+
2025-12-09T13:36:10Z [USER LOG] msg="Final calculated result" result=99
216+
2025-12-09T13:36:10Z [USER LOG] msg="Updating calculator result" consumerAddress=0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52
217+
2025-12-09T13:36:10Z [USER LOG] msg="Writing report to consumer contract" offchainValue=77 onchainValue=22 finalResult=99
218+
2025-12-09T13:36:10Z [USER LOG] msg="Waiting for write report response"
219+
2025-12-09T13:36:36Z [USER LOG] msg="Write report transaction succeeded" txHash=0xaf3a4bf742bac76361c0eb4bc4ea58290049a3d97e991fb80bf0a8f17719527c
220+
2025-12-09T13:36:36Z [USER LOG] msg="View transaction at" url=https://sepolia.etherscan.io/tx/0xaf3a4bf742bac76361c0eb4bc4ea58290049a3d97e991fb80bf0a8f17719527c
221+
2025-12-09T13:36:36Z [USER LOG] msg="Workflow finished successfully!" result="&{OffchainValue:+77 OnchainValue:+22 FinalResult:+99 TxHash:0xaf3a4bf742bac76361c0eb4bc4ea58290049a3d97e991fb80bf0a8f17719527c}"
222222

223223
Workflow Simulation Result:
224224
{
225-
"FinalResult": 78,
226-
"OffchainValue": 56,
225+
"FinalResult": 99,
226+
"OffchainValue": 77,
227227
"OnchainValue": 22,
228-
"TxHash": "0x86a26f848c83f37b8eace8123ec275a0af9d21b23b1fbba9cc7664b7e474314f"
228+
"TxHash": "0xaf3a4bf742bac76361c0eb4bc4ea58290049a3d97e991fb80bf0a8f17719527c"
229229
}
230230

231-
2025-11-03T22:48:48Z [SIMULATION] Execution finished signal received
232-
2025-11-03T22:48:48Z [SIMULATION] Skipping WorkflowEngineV2
231+
2025-12-09T13:36:36Z [SIMULATION] Execution finished signal received
232+
2025-12-09T13:36:36Z [SIMULATION] Skipping WorkflowEngineV2
233233
```
234234

235-
- **`[USER LOG]`**: You can see all of your `logger.Info()` calls showing the complete workflow execution, including the offchain value (`result=56`), onchain value (`result=22`), final calculation (`result=78`), and the transaction hash.
235+
- **`[USER LOG]`**: You can see all of your `logger.Info()` calls showing the complete workflow execution, including the offchain value (`result=77`), onchain value (`result=22`), final calculation (`result=99`), and the transaction hash.
236236
- **`[SIMULATION]`**: These are system-level messages from the simulator showing its internal state.
237-
- **`Workflow Simulation Result`**: This is the final return value of your workflow. The `MyResult` struct contains all the values (56 + 22 = 78) and the transaction hash confirming the write operation succeeded.
237+
- **`Workflow Simulation Result`**: This is the final return value of your workflow. The `MyResult` struct contains all the values (77 + 22 = 99) and the transaction hash confirming the write operation succeeded.
238238

239239
## Step 7: Verify the result onchain
240240

@@ -250,21 +250,21 @@ Click the URL (or copy and paste it into your browser) to see the full details o
250250

251251
**What are you seeing on a blockchain explorer?**
252252

253-
You'll notice the transaction's `to` address is not the `CalculatorConsumer` contract you intended to call. Instead, it's to a **Forwarder** contract. Your workflow sends a secure report to the Forwarder, which then verifies the request and makes the final call to the `CalculatorConsumer` on your workflow's behalf. To learn more, see the [Onchain Write guide](/cre/guides/workflow/using-evm-client/onchain-write).
253+
You'll notice the transaction's `to` address is not the `CalculatorConsumer` contract you intended to call. Instead, it's to a **Forwarder** contract. Your workflow sends a secure report to the Forwarder, which then verifies the request and makes the final call to the `CalculatorConsumer` on your workflow's behalf. To learn more, see the [Onchain Write guide](/cre/guides/workflow/using-evm-client/onchain-write/overview).
254254

255255
### **2. Check the contract state**
256256

257257
While your wallet interacted with the Forwarder, the `CalculatorConsumer` contract's state was still updated. You can verify this change directly on Etherscan:
258258

259-
- Navigate to the `CalculatorConsumer` contract address: <a href="https://sepolia.etherscan.io/address/0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54#readContract" target="_blank" rel="noopener noreferrer">`0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54`</a>.
259+
- Navigate to the `CalculatorConsumer` contract address: <a href="https://sepolia.etherscan.io/address/0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52#readContract" target="_blank" rel="noopener noreferrer">`0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52`</a>.
260260
- Expand the `latestResult` function and click **Query**. The values should match the `finalResult`, `offchainValue`, and `onchainValue` from your workflow logs.
261261

262262
This completes the end-to-end loop: triggering a workflow, fetching data, reading onchain state, and verifiably writing the result back to a public blockchain.
263263

264264
To learn more about implementing consumer contracts and the secure write process, see these guides:
265265

266266
- **[Building Consumer Contracts](/cre/guides/workflow/using-evm-client/onchain-write/building-consumer-contracts)**: Learn how to create your own secure consumer contracts with proper validation.
267-
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write)**: Dive deeper into the write patterns.
267+
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write/overview-go)**: Dive deeper into the write patterns.
268268

269269
## Next steps
270270

src/content/cre/getting-started/part-4-writing-onchain-ts.mdx

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pageId: "getting-started-part-4"
77
metadata:
88
description: "Getting started Part 4 (TypeScript): write verified workflow results onchain to smart contracts and complete your first end-to-end workflow."
99
datePublished: "2025-11-04"
10-
lastModified: "2025-11-04"
10+
lastModified: "2025-12-09"
1111
---
1212

1313
import { Aside } from "@components"
@@ -103,7 +103,7 @@ contract CalculatorConsumer is ReceiverTemplate {
103103
}
104104
```
105105

106-
The contract is already deployed for you on Sepolia at the following address: <a href="https://sepolia.etherscan.io/address/0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54#code" target="_blank" rel="noopener noreferrer">`0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54`</a>. You will use this address in your configuration file.
106+
The contract is already deployed for you on Sepolia at the following address: <a href="https://sepolia.etherscan.io/address/0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52#code" target="_blank" rel="noopener noreferrer">`0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52`</a>. You will use this address in your configuration file.
107107

108108
## Step 2: Update your workflow configuration
109109

@@ -116,7 +116,7 @@ Add the `CalculatorConsumer` contract address to your `config.staging.json`:
116116
"evms": [
117117
{
118118
"storageAddress": "0xa17CF997C28FF154eDBae1422e6a50BeF23927F4",
119-
"calculatorConsumerAddress": "0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54",
119+
"calculatorConsumerAddress": "0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52",
120120
"chainName": "ethereum-testnet-sepolia",
121121
"gasLimit": "500000"
122122
}
@@ -208,31 +208,35 @@ Your workflow will now show the complete end-to-end execution, including the fin
208208

209209
```bash
210210
Workflow compiled
211-
2025-11-03T19:09:22Z [SIMULATION] Simulator Initialized
212-
213-
2025-11-03T19:09:22Z [SIMULATION] Running trigger [email protected]
214-
2025-11-03T19:09:22Z [USER LOG] Successfully fetched offchain value: 39
215-
2025-11-03T19:09:22Z [USER LOG] Successfully read onchain value: 22
216-
2025-11-03T19:09:22Z [USER LOG] Final calculated result: 61
217-
2025-11-03T19:09:22Z [USER LOG] Updating calculator result for consumer: 0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54
218-
2025-11-03T19:09:22Z [USER LOG] Writing report to consumer contract - offchainValue: 39, onchainValue: 22, finalResult: 61
219-
2025-11-03T19:09:25Z [USER LOG] Waiting for write report response
220-
2025-11-03T19:09:25Z [USER LOG] Write report transaction succeeded: 0xcc99cf4fcdc1262162762f747eeb660b52cc117754c953fdb72842414fcecdc4
221-
2025-11-03T19:09:25Z [USER LOG] View transaction at https://sepolia.etherscan.io/tx/0xcc99cf4fcdc1262162762f747eeb660b52cc117754c953fdb72842414fcecdc4
222-
2025-11-03T19:09:25Z [USER LOG] Workflow finished successfully! offchainValue: 39, onchainValue: 22, finalResult: 61, txHash: 0xcc99cf4fcdc1262162762f747eeb660b52cc117754c953fdb72842414fcecdc4
211+
2025-12-09T13:31:18Z [SIMULATION] Simulator Initialized
212+
213+
2025-12-09T13:31:18Z [SIMULATION] Running trigger [email protected]
214+
2025-12-09T13:31:18Z [USER LOG] Successfully fetched offchain value: 62
215+
2025-12-09T13:31:18Z [USER LOG] Successfully read onchain value: 22
216+
2025-12-09T13:31:18Z [USER LOG] Final calculated result: 84
217+
2025-12-09T13:31:18Z [USER LOG] Updating calculator result for consumer: 0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52
218+
2025-12-09T13:31:18Z [USER LOG] Writing report to consumer contract - offchainValue: 62, onchainValue: 22, finalResult: 84
219+
2025-12-09T13:31:48Z [USER LOG] Waiting for write report response
220+
2025-12-09T13:31:48Z [USER LOG] Write report transaction succeeded: 0x7e2e58613f4d8414826d2e6164e42b110fefb97137a1065ac69d1c3decd259f2
221+
2025-12-09T13:31:48Z [USER LOG] View transaction at https://sepolia.etherscan.io/tx/0x7e2e58613f4d8414826d2e6164e42b110fefb97137a1065ac69d1c3decd259f2
222+
2025-12-09T13:31:48Z [USER LOG] Workflow finished successfully! offchainValue: 62, onchainValue: 22, finalResult: 84, txHash: 0x7e2e58613f4d8414826d2e6164e42b110fefb97137a1065ac69d1c3decd259f2
223223

224224
Workflow Simulation Result:
225225
{
226-
"finalResult": 61,
227-
"offchainValue": 39,
226+
"finalResult": 84,
227+
"offchainValue": 62,
228228
"onchainValue": 22,
229-
"txHash": "0xcc99cf4fcdc1262162762f747eeb660b52cc117754c953fdb72842414fcecdc4"
229+
"txHash": "0x7e2e58613f4d8414826d2e6164e42b110fefb97137a1065ac69d1c3decd259f2"
230230
}
231231

232-
2025-11-03T19:09:25Z [SIMULATION] Execution finished signal received
233-
2025-11-03T19:09:25Z [SIMULATION] Skipping WorkflowEngineV2
232+
2025-12-09T13:31:48Z [SIMULATION] Execution finished signal received
233+
2025-12-09T13:31:48Z [SIMULATION] Skipping WorkflowEngineV2
234234
```
235235

236+
- **`[USER LOG]`**: You can see all of your `logger.info()` calls showing the complete workflow execution, including the offchain value (`62`), onchain value (`22`), final calculation (`84`), and the transaction hash.
237+
- **`[SIMULATION]`**: These are system-level messages from the simulator showing its internal state.
238+
- **`Workflow Simulation Result`**: This is the final return value of your workflow. The `MyResult` object contains all the values (62 + 22 = 84) and the transaction hash confirming the write operation succeeded.
239+
236240
## Step 5: Verify the result onchain
237241

238242
### **1. Check the Transaction**
@@ -247,21 +251,21 @@ Click the URL (or copy and paste it into your browser) to see the full details o
247251

248252
**What are you seeing on a blockchain explorer?**
249253

250-
You'll notice the transaction's `to` address is not the `CalculatorConsumer` contract you intended to call. Instead, it's to a **Forwarder** contract. Your workflow sends a secure report to the Forwarder, which then verifies the request and makes the final call to the `CalculatorConsumer` on your workflow's behalf. To learn more, see the [Onchain Write guide](/cre/guides/workflow/using-evm-client/onchain-write).
254+
You'll notice the transaction's `to` address is not the `CalculatorConsumer` contract you intended to call. Instead, it's to a **Forwarder** contract. Your workflow sends a secure report to the Forwarder, which then verifies the request and makes the final call to the `CalculatorConsumer` on your workflow's behalf. To learn more, see the [Onchain Write guide](/cre/guides/workflow/using-evm-client/onchain-write/overview).
251255

252256
### **2. Check the contract state**
253257

254258
While your wallet interacted with the Forwarder, the `CalculatorConsumer` contract's state was still updated. You can verify this change directly on Etherscan:
255259

256-
- Navigate to the `CalculatorConsumer` contract address: <a href="https://sepolia.etherscan.io/address/0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54#readContract" target="_blank" rel="noopener noreferrer">`0xF3abEAa889e46c6C5b9A0bD818cE54Cc4eAF8A54`</a>.
260+
- Navigate to the `CalculatorConsumer` contract address: <a href="https://sepolia.etherscan.io/address/0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52#readContract" target="_blank" rel="noopener noreferrer">`0x10785f51B1Fccd94b7e386FDc83b9d50C71C0e52`</a>.
257261
- Expand the `latestResult` function and click **Query**. The values should match the `finalResult`, `offchainValue`, and `onchainValue` from your workflow logs.
258262

259263
This completes the end-to-end loop: triggering a workflow, fetching data, reading onchain state, and verifiably writing the result back to a public blockchain.
260264

261265
To learn more about implementing consumer contracts and the secure write process, see these guides:
262266

263267
- **[Building Consumer Contracts](/cre/guides/workflow/using-evm-client/onchain-write/building-consumer-contracts)**: Learn how to create your own secure consumer contracts with proper validation.
264-
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write)**: Dive deeper into the write patterns.
268+
- **[Onchain Write Guide](/cre/guides/workflow/using-evm-client/onchain-write/overview-ts)**: Dive deeper into the write patterns.
265269

266270
## Next steps
267271

src/content/cre/guides/workflow/using-evm-client/generating-bindings.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,4 +403,4 @@ This generated test file demonstrates real-world patterns for testing complex wo
403403

404404
## Where to go next
405405

406-
Now that you know how to generate bindings, you can use them to [read data from](/cre/guides/workflow/using-evm-client/onchain-read) or [write data to](/cre/guides/workflow/using-evm-client/onchain-write) your contracts, or [trigger workflows from events](/cre/guides/workflow/using-triggers/evm-log-trigger).
406+
Now that you know how to generate bindings, you can use them to [read data from](/cre/guides/workflow/using-evm-client/onchain-read) or [write data to](/cre/guides/workflow/using-evm-client/onchain-write/overview) your contracts, or [trigger workflows from events](/cre/guides/workflow/using-triggers/evm-log-trigger).

src/content/cre/guides/workflow/using-evm-client/onchain-read-ts.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,6 @@ This pattern provides better organization, reusability, and type safety across y
377377

378378
## Next steps
379379

380-
- Learn how to [write data to contracts](/cre/guides/workflow/using-evm-client/onchain-write)
380+
- Learn how to [write data to contracts](/cre/guides/workflow/using-evm-client/onchain-write/overview)
381381
- Explore the [EVM Client SDK Reference](/cre/reference/sdk/evm-client-ts) for all available methods
382382
- See [Part 3](/cre/getting-started/part-3-reading-onchain-value) and [Part 4](/cre/getting-started/part-4-writing-onchain) of the Getting Started guide for more examples

src/content/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ func main() {
250250

251251
## Learn more
252252

253-
- **[Onchain Write Overview](/cre/guides/workflow/using-evm-client/onchain-write)**: Understand all onchain write approaches
253+
- **[Onchain Write Overview](/cre/guides/workflow/using-evm-client/onchain-write/overview)**: Understand all onchain write approaches
254254
- **[Submitting Reports Onchain](/cre/guides/workflow/using-evm-client/onchain-write/submitting-reports-onchain)**: Submit your generated report to the blockchain
255255
- **[Generating Reports: Structs](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-structs)**: Manually encode and generate reports for struct data
256256
- **[Building Consumer Contracts](/cre/guides/workflow/using-evm-client/onchain-write/building-consumer-contracts)**: Create contracts that can receive your reports

0 commit comments

Comments
 (0)