Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .vscode/ltex.dictionary.en-US.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Cartesi
dApp
Rollups
Prevado
XMTP
Farcaster
onchain
Mugen
4 changes: 4 additions & 0 deletions .vscode/ltex.hiddenFalsePositives.en-US.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{"rule":"BASE_BASIS","sentence":"^\\QThis guide covers the Cartesi+Espresso integration and how to upgrade Cartesi application such that inputs can be submitted via Espresso instead of the regular base layer.\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QIntegrating Cartesi and Chronicle offers Cartesi applications access to onchain and offcahin data like, price feed without developers having to set up additional systems or intermediaries.\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QPrevado Id:\\E$"}
{"rule":"MORFOLOGIK_RULE_EN_US","sentence":"^\\QThe Devnet environment functions similarly to a mainnet.\\E$"}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Cartesi Documentation

Welcome to the official Cartesi documentation repository. This documentation is built using [Docusaurus 2.4.3](https://docusaurus.io/).
Welcome to the official Cartesi documentation repository. This documentation is built using [Docusaurus 3.6.3](https://docusaurus.io/).

## Requirements

Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,48 @@
---
id: inspect-state-http-api-for-cartesi-rollups
title: "Inspect-state HTTP API for Cartesi Rollups"
description: "API that allows the dApp frontend to make inspect-state requests to the dApp backend.
"
description: "API that allows the dApp frontend to make inspect-state requests to the dApp backend."
sidebar_label: Introduction
sidebar_position: 0
hide_title: true
custom_edit_url: null
---

import ApiLogo from "@theme/ApiLogo";
import Tabs from "@theme/Tabs";
import Heading from "@theme/Heading";
import SchemaTabs from "@theme/SchemaTabs";
import TabItem from "@theme/TabItem";
import Export from "@theme/ApiExplorer/Export";

<span className={"theme-doc-version-badge badge badge--secondary"}>
Version: 0.4.0
<span
className={"theme-doc-version-badge badge badge--secondary"}
children={"Version: 0.4.0"}
>
</span>

# Inspect-state HTTP API for Cartesi Rollups
<Heading
as={"h1"}
className={"openapi__heading"}
children={"Inspect-state HTTP API for Cartesi Rollups"}
>
</Heading>



API that allows the dApp frontend to make inspect-state requests to the dApp backend.

<div style={{ marginBottom: "var(--ifm-paragraph-margin-bottom)" }}>
<h3 style={{ marginBottom: "0.25rem" }}>License</h3>
<a href={"https://www.apache.org/licenses/LICENSE-2.0.html"}>Apache-2.0</a>

<div
style={{"marginBottom":"var(--ifm-paragraph-margin-bottom)"}}
>
<h3
style={{"marginBottom":"0.25rem"}}
>
License
</h3><a
href={"https://www.apache.org/licenses/LICENSE-2.0.html"}
>
Apache-2.0
</a>
</div>

100 changes: 59 additions & 41 deletions cartesi-rollups_versioned_docs/version-0.8/api/inspect/inspect.api.mdx

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,31 +1,40 @@
---
id: add-notice
title: "Add a new notice"
description: "The dApp backend can call this method to add a new notice when processing advance-state request.
A notice describes any changes to the internal state of the dApp that may be relevant to the blockchain.
Between calls to the finish method, the notice method can be called at least 32k times.

The returned value is the index of the notice for the current advance request.
In other words, the index counting restarts at every request.
"
sidebar_label: Add a new notice
description: "The dApp backend can call this method to add a new notice when processing advance-state request."
sidebar_label: "Add a new notice"
hide_title: true
hide_table_of_contents: true
api: {"operationId":"addNotice","description":"The dApp backend can call this method to add a new notice when processing advance-state request.\nA notice describes any changes to the internal state of the dApp that may be relevant to the blockchain.\nBetween calls to the finish method, the notice method can be called at least 32k times.\n\nThe returned value is the index of the notice for the current advance request.\nIn other words, the index counting restarts at every request.\n","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"string","description":"Payload in the Ethereum hex binary format.\nThe first two characters are '0x' followed by pairs of hexadecimal numbers that correspond to one byte.\nFor instance, '0xdeadbeef' corresponds to a payload with length 4 and bytes 222, 173, 190, 175.\nAn empty payload is represented by the string '0x'.\n","example":"0xdeadbeef"}}}}}},"responses":{"200":{"description":"Created the notice.","content":{"application/json":{"schema":{"type":"object","properties":{"index":{"type":"integer","format":"uint64","description":"Position in the Merkle tree.","example":123}}}}}},"default":{"description":"Error response.","content":{"text/plain":{"schema":{"type":"string","description":"Detailed error message.","example":"The request could not be understood by the server due to malformed syntax"}}}}},"method":"post","path":"/notice","servers":[{"url":"https://<dapp_rollup_url>"},{"url":"http://localhost:5005/rollup"}],"jsonRequestBodyExample":{"payload":"0xdeadbeef"},"info":{"title":"Cartesi Rollup HTTP API","version":"0.4.0","license":{"name":"Apache-2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"},"description":"API that the Cartesi Rollup HTTP Server implements.\n\nIn the box below, there is an example of a dApp backend that uses the Rollup HTTP API.\n\n```\nimport requests\nimport sys\n\nrollup = sys.argv[1]\n\ndef check_status_code(response):\n if response.status_code not in range(200, 300):\n print(f'Error: invalid status code {response.status_code}')\n sys.exit(1)\n return response\n\nfinish = {'status': 'accept'}\nwhile True:\n print('Sending finish')\n r = check_status_code(requests.post(rollup + '/finish', json=finish))\n if r.status_code == 202:\n print('No pending rollup request, trying again')\n continue\n\n rollup_request = r.json()\n if rollup_request['request_type'] == 'advance_state':\n print('Sending voucher')\n voucher = {\n 'address': rollup_request['data']['metadata']['msg_sender'],\n 'payload': rollup_request['data']['payload']\n }\n check_status_code(requests.post(rollup + '/voucher', json=voucher))\n\n print('Sending notice')\n notice = {'payload': rollup_request['data']['payload']}\n check_status_code(requests.post(rollup + '/notice', json=notice))\n\n print('Sending report')\n report = {'payload': rollup_request['data']['payload']}\n check_status_code(requests.post(rollup + '/report', json=report))\n\n finish['status'] = 'accept'\n\n elif rollup_request['request_type'] == 'inspect_state':\n print('Sending report per inspect request')\n report = {'payload': rollup_request['data']['payload']}\n check_status_code(requests.post(rollup + '/report', json=report))\n\n else:\n print('Throwing rollup exception')\n exception = {'payload': rollup_request['data']['payload']}\n requests.post(rollup + '/exception', json=exception)\n break\n```\n"},"postman":{"name":"Add a new notice","description":{"content":"The dApp backend can call this method to add a new notice when processing advance-state request.\nA notice describes any changes to the internal state of the dApp that may be relevant to the blockchain.\nBetween calls to the finish method, the notice method can be called at least 32k times.\n\nThe returned value is the index of the notice for the current advance request.\nIn other words, the index counting restarts at every request.\n","type":"text/plain"},"url":{"path":["notice"],"host":["{{baseUrl}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}}}}
api: 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
sidebar_class_name: "post api-method"
info_path: cartesi-rollups/api/rollup/cartesi-rollup-http-api
info_path: cartesi-rollups/_versioned_docs/version-0.8/api/rollup/cartesi-rollup-http-api
custom_edit_url: null
---

import ApiTabs from "@theme/ApiTabs";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
as={"h1"}
className={"openapi__heading"}
children={"Add a new notice"}
>
</Heading>

<MethodEndpoint
method={"post"}
path={"/notice"}
context={"endpoint"}
>

</MethodEndpoint>


## Add a new notice

The dApp backend can call this method to add a new notice when processing advance-state request.
A notice describes any changes to the internal state of the dApp that may be relevant to the blockchain.
Expand All @@ -34,16 +43,35 @@ Between calls to the finish method, the notice method can be called at least 32k
The returned value is the index of the notice for the current advance request.
In other words, the index counting restarts at every request.

<MimeTabs><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} data-collapsed={false} open={true}><summary style={{"textAlign":"left"}}><strong>Request Body</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"payload"} required={false} schemaDescription={"Payload in the Ethereum hex binary format.\nThe first two characters are '0x' followed by pairs of hexadecimal numbers that correspond to one byte.\nFor instance, '0xdeadbeef' corresponds to a payload with length 4 and bytes 222, 173, 190, 175.\nAn empty payload is represented by the string '0x'.\n"} schemaName={"string"} qualifierMessage={undefined} defaultValue={undefined}></SchemaItem></ul></details></TabItem></MimeTabs><div><ApiTabs><TabItem label={"200"} value={"200"}><div>

Created the notice.
<Heading
id={"request"}
as={"h2"}
className={"openapi-tabs__heading"}
children={"Request"}
>
</Heading>

</div><div><MimeTabs groupId={"mime-type"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs groupId={"schema-tabs"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} data-collapsed={false} open={true}><summary style={{"textAlign":"left"}}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"index"} required={false} schemaDescription={"Position in the Merkle tree."} schemaName={"uint64"} qualifierMessage={undefined} defaultValue={undefined}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n \"index\": 0\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"default"} value={"default"}><div>
<ParamsDetails
parameters={undefined}
>

</ParamsDetails>

Error response.
<RequestSchema
title={"Body"}
body={{"content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"string","description":"Payload in the Ethereum hex binary format.\nThe first two characters are '0x' followed by pairs of hexadecimal numbers that correspond to one byte.\nFor instance, '0xdeadbeef' corresponds to a payload with length 4 and bytes 222, 173, 190, 175.\nAn empty payload is represented by the string '0x'.\n","example":"0xdeadbeef","title":"Payload"}},"title":"Notice"}}}}}
>

</RequestSchema>

</div><div><MimeTabs groupId={"mime-type"}><TabItem label={"text/plain"} value={"text/plain"}><SchemaTabs groupId={"schema-tabs"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} data-collapsed={false} open={true}><summary style={{"textAlign":"left"}}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><li><div><strong>string</strong><div style={{"marginTop":"var(--ifm-table-cell-padding)"}}>
<StatusCodes
id={undefined}
label={undefined}
responses={{"200":{"description":"Created the notice.","content":{"application/json":{"schema":{"type":"object","properties":{"index":{"type":"integer","format":"uint64","description":"Position in the Merkle tree.","example":123,"title":"Index"}},"title":"IndexResponse"}}}},"default":{"description":"Error response.","content":{"text/plain":{"schema":{"type":"string","description":"Detailed error message.","example":"The request could not be understood by the server due to malformed syntax","title":"Error"}}}}}}
>

</StatusCodes>

Detailed error message.

</div></div></li></ul></details></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div>
Loading