You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values.mdx
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@ metadata:
11
11
12
12
import { Aside } from"@components"
13
13
14
-
This guide shows how to manually generate a **CRE report** containing a single value (like `uint256`, `address`, or `bool`). A CRE reportis a DON-signed package from `runtime.GenerateReport()` / `runtime.report()`: your encoded data plus workflow metadata and signatures.
14
+
This guide shows how to manually generate a **[CRE report](/cre/key-terms#report-cre-report)** containing a single value (like `uint256`, `address`, or `bool`). See [Key Terms: Report](/cre/key-terms#report-cre-report) for the full definition; in short, it is a DON-signed package from [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) / [`runtime.report()`](/cre/reference/sdk/core-ts#runtime-and-noderuntime) with your encoded data, workflow metadata, and signatures.
15
15
16
-
This guide covers **creating** the signed report (`GenerateReport()` / `runtime.report()`). **Delivering** it is a separate step: see the table below.
16
+
This guide covers **creating** the signed report ([`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) / [`runtime.report()`](/cre/reference/sdk/core-ts#runtime-and-noderuntime)). **Delivering** it is a separate step: see the table below.
17
17
18
18
**Use this approach when:**
19
19
@@ -31,12 +31,12 @@ This guide covers **creating** the signed report (`GenerateReport()` / `runtime.
31
31
Manually generating a report for a single value involves two main steps:
32
32
33
33
1.**ABI-encode the value** into bytes using the `go-ethereum/accounts/abi` package
34
-
1.**Generate a cryptographically signed report** using `runtime.GenerateReport()`
34
+
1.**Generate a cryptographically signed report** using [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values)
35
35
36
-
| After `GenerateReport()` / `report()`| Guide | Who verifies? |
|`http.Client``SendReport()`|[Submitting Reports via HTTP](/cre/guides/workflow/using-http-client/submitting-reports-http)| Receiver: [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain) or your API |
36
+
| After [`GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) / [`report()`](/cre/reference/sdk/core-ts#runtime-and-noderuntime)| Guide | Who verifies? |
|[`SendReport()`](/cre/reference/sdk/http-client-go#sendrequestersendreport) / [`sendReport()`](/cre/reference/sdk/http-client-ts#using-sendreport)|[Submitting Reports via HTTP](/cre/guides/workflow/using-http-client/submitting-reports-http)| Receiver: [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain) or your API |
40
40
41
41
See [API Interactions: CRE reports over HTTP](/cre/guides/workflow/using-http-client#cre-reports-over-http) for the sender → receiver mental model.
Copy file name to clipboardExpand all lines: src/content/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-structs.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ metadata:
11
11
12
12
import { Aside } from"@components"
13
13
14
-
This guide shows how to generate a **CRE report** containing a struct with multiple fields. A CRE report is a DON-signed package from `runtime.GenerateReport()`. After generation, deliver it [onchain](/cre/guides/workflow/using-evm-client/onchain-write/submitting-reports-onchain) or via [HTTP](/cre/guides/workflow/using-http-client/submitting-reports-http); HTTP receivers should [verify offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain). See [API Interactions: CRE reports over HTTP](/cre/guides/workflow/using-http-client#cre-reports-over-http).
14
+
This guide shows how to generate a **[CRE report](/cre/key-terms#report-cre-report)** containing a struct with multiple fields. See [Key Terms: Report](/cre/key-terms#report-cre-report) for the full definition. After generation, deliver it [onchain](/cre/guides/workflow/using-evm-client/onchain-write/submitting-reports-onchain) or via [HTTP](/cre/guides/workflow/using-http-client/submitting-reports-http); HTTP receivers should [verify offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain). See [API Interactions: CRE reports over HTTP](/cre/guides/workflow/using-http-client#cre-reports-over-http).
15
15
16
16
There are two encoding approaches depending on whether you have generated bindings for your contract.
Copy file name to clipboardExpand all lines: src/content/cre/guides/workflow/using-http-client/index.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ The CRE SDK provides an HTTP client that allows your workflows to interact with
32
32
33
33
## CRE reports over HTTP
34
34
35
-
A **CRE report** is a DON-signed package your workflow creates with `runtime.report()` (TypeScript) or `runtime.GenerateReport()` (Go). It contains your encoded payload, workflow metadata, and cryptographic signatures.
35
+
A **[CRE report](/cre/key-terms#report-cre-report)** is a DON-signed package your workflow creates with [`runtime.report()`](/cre/reference/sdk/core-ts#runtime-and-noderuntime) (TypeScript) or [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) (Go). It bundles your encoded payload, workflow metadata, report context, and cryptographic signatures from the DON. See [Key Terms: Report](/cre/key-terms#report-cre-report) for the full definition, including how onchain delivery differs from HTTP.
Copy file name to clipboardExpand all lines: src/content/cre/guides/workflow/using-http-client/submitting-reports-http-go.mdx
+21-15Lines changed: 21 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ This guide is for the **sender** side: a CRE workflow that **creates** a signed
16
16
17
17
**What you'll learn:**
18
18
19
-
- How to use `SendReport` to submit reports via HTTP
19
+
- How to use [`SendReport()`](/cre/reference/sdk/http-client-go#sendrequestersendreport) to submit reports via HTTP
20
20
- How to write transformation functions for different API formats
21
21
- Best practices for report submission and deduplication
22
22
@@ -25,27 +25,33 @@ This guide is for the **sender** side: a CRE workflow that **creates** a signed
25
25
This guide covers HTTP submission. For submitting reports to smart contracts, see [Submitting Reports Onchain](/cre/guides/workflow/using-evm-client/onchain-write/submitting-reports-onchain).
26
26
</Aside>
27
27
28
+
## What is a CRE report?
29
+
30
+
A **[CRE report](/cre/key-terms#report-cre-report)** is the signed output your workflow DON produces when you call [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values). It packages your encoded data (the payload you computed in the callback), fixed workflow metadata, a report context (config digest and sequence number), and ECDSA signatures from DON nodes.
31
+
32
+
This guide covers the **sender** path: create the report in your workflow, then POST it to an HTTP endpoint. The receiver must verify those signatures before trusting the data. See [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain-go) on the receiver side.
| What is the report? |Output of `runtime.GenerateReport()` after your workflow DON reaches consensus: encoded payload + metadata + signatures.|
33
-
| Where does it come from? |**Inside this workflow:** after your logic runs (fetch data, compute, encode). There is no separate "get report" step. |
34
-
| What does this guide cover? | Steps 3–4 below: `GenerateReport()`, then `SendReport()` to your API. Steps 1–2 (trigger and your callback logic) are prerequisites, not the focus here.|
35
-
| Who verifies it? | The **receiver:** your HTTP service or a separate CRE workflow. See [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain-go). |
| What is the report? |A [CRE report](/cre/key-terms#report-cre-report): output of [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) after DON consensus (encoded payload + metadata + signatures). |
39
+
| Where does it come from? |**Inside this workflow:** after your logic runs (fetch data, compute, encode). There is no separate "get report" step. |
40
+
| What does this guide cover? | Steps 3–4 below: [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values), then [`SendReport()`](/cre/reference/sdk/http-client-go#sendrequestersendreport) to your API. Steps 1–2 (trigger and your callback logic) are prerequisites, not the focus here. |
41
+
| Who verifies it? | The **receiver:** your HTTP service or a separate CRE workflow. See [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain-go). |
36
42
37
43
**Sender flow in one workflow execution:**
38
44
39
45
1. Trigger fires (cron, HTTP, …).
40
46
2. Your callback runs (API calls, encoding, etc.).
41
-
3.`runtime.GenerateReport()`: DON produces a signed `sdk.ReportResponse`.
42
-
4.`SendReport()`: format and POST to your URL.
47
+
3.[`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values): DON produces a signed `sdk.ReportResponse`.
48
+
4.[`SendReport()`](/cre/reference/sdk/http-client-go#sendrequestersendreport): format and POST to your URL.
43
49
44
50
## Prerequisites
45
51
46
52
- Familiarity with [making POST requests](/cre/guides/workflow/using-http-client/post-request)
47
53
- Understanding of [generating reports](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values)
48
-
- A generated report from `runtime.GenerateReport()`
54
+
- A generated report from [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values)
49
55
50
56
{/* prettier-ignore */}
51
57
<Asidetype="caution"title="Redirects are not supported">
1.`formatReportSimple` transforms the report into an HTTP request that your API understands
100
-
1.`sendRequester.SendReport()` calls your transformation function and sends the request
106
+
1.[`sendRequester.SendReport()`](/cre/reference/sdk/http-client-go#sendrequestersendreport) calls your transformation function and sends the request
101
107
1. The SDK handles consensus and returns the result
102
108
103
109
The rest of this guide explains how this works and shows different formatting patterns for various API requirements.
@@ -106,7 +112,7 @@ The rest of this guide explains how this works and shows different formatting pa
106
112
107
113
### The report structure
108
114
109
-
When you call `runtime.GenerateReport()`, the SDK creates a `sdk.ReportResponse` containing:
115
+
After [consensus](/cre/key-terms#consensus), [`runtime.GenerateReport()`](/cre/guides/workflow/using-evm-client/onchain-write/generating-reports-single-values) returns a `sdk.ReportResponse`: the wire-format view of a [CRE report](/cre/key-terms#report-cre-report). It contains:
<Asidetype="caution"title="Signature verification is your responsibility">
653
-
Unlike onchain submissions (where the `KeystoneForwarder` contract verifies signatures), **HTTP submissions require you to verify signatures** before trusting the report data. Use `cre.ParseReport()` in a receiver workflow or implement equivalent checks in your API. See [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain-go).
659
+
Unlike onchain submissions (where the `KeystoneForwarder` contract verifies signatures), **HTTP submissions require you to verify signatures** before trusting the report data. Use [`cre.ParseReport()`](/cre/reference/sdk/core-go#creparsereport) in a receiver workflow or implement equivalent checks in your API. See [Verifying CRE Reports Offchain](/cre/guides/workflow/using-http-client/verifying-reports-offchain-go).
0 commit comments