diff --git a/404.html b/404.html index 62d0dbc88..45a225dcd 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | Starknet Devnet - + diff --git a/assets/js/a5ad27b1.45ba4134.js b/assets/js/a5ad27b1.660fa43f.js similarity index 60% rename from assets/js/a5ad27b1.45ba4134.js rename to assets/js/a5ad27b1.660fa43f.js index 8442b8f93..0464e3d31 100644 --- a/assets/js/a5ad27b1.45ba4134.js +++ b/assets/js/a5ad27b1.660fa43f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5120],{6989:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var d=t(4848),r=t(8453);const s={},i="Dump, load, restart",o={id:"dump-load-restart",title:"Dump, load, restart",description:"Dumping",source:"@site/docs/dump-load-restart.md",sourceDirName:".",slug:"/dump-load-restart",permalink:"/starknet-devnet-rs/docs/next/dump-load-restart",draft:!1,unlisted:!1,editUrl:"https://github.com/0xSpaceShard/starknet-devnet-rs/blob/master/website/docs/dump-load-restart.md",tags:[],version:"current",frontMatter:{},sidebar:"docSidebar",previous:{title:"Blocks",permalink:"/starknet-devnet-rs/docs/next/blocks"},next:{title:"Examples",permalink:"/starknet-devnet-rs/docs/next/examples"}},a={},c=[{value:"Dumping",id:"dumping",level:2},{value:"Dumping on request",id:"dumping-on-request",level:3},{value:"Loading",id:"loading",level:2},{value:"Loading disclaimer",id:"loading-disclaimer",level:3},{value:"Restarting",id:"restarting",level:2},{value:"Docker",id:"docker",level:2}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.h1,{id:"dump-load-restart",children:"Dump, load, restart"}),"\n",(0,d.jsx)(n.h2,{id:"dumping",children:"Dumping"}),"\n",(0,d.jsx)(n.p,{children:"To preserve your Devnet instance for future use, these are the options:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"Dumping on exit (handles Ctrl+C, i.e. SIGINT; doesn't handle SIGKILL):"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on exit --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"Dumping after each block:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on block --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Dumping on request, which requires providing ",(0,d.jsx)(n.code,{children:"--dump-on request"})," on startup. You can also dump on request if you specified any of the other ",(0,d.jsx)(n.code,{children:"--dump-on"})," modes."]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"dumping-on-request",children:"Dumping on request"}),"\n",(0,d.jsxs)(n.p,{children:["You can request dumping by sending ",(0,d.jsx)(n.code,{children:"POST"})," to ",(0,d.jsx)(n.code,{children:"/dump"})," or via JSON-RPC. An optional file path can be provided in the request or on startup via ",(0,d.jsx)(n.code,{children:"--dump-path "})," (the HTTP request parameter takes precedence). If no dumping path is specified, the dump is included in the response body. This means that if you request dumping via ",(0,d.jsx)(n.a,{href:"https://curl.se/",children:(0,d.jsx)(n.code,{children:"curl"})}),", it will be printed to STDOUT, which you can then redirect to a destination of your choice."]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on [--dump-path ]\n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"No body parameters:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"POST /dump\n"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_dump"\n}\n'})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"With a custom path:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'POST /dump\n{\n // optional; defaults to the path specified via CLI if defined\n "path": \n}\n'})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_dump",\n "params": {\n // optional; defaults to the path specified via CLI if defined\n "path": \n }\n}\n'})}),"\n",(0,d.jsx)(n.h2,{id:"loading",children:"Loading"}),"\n",(0,d.jsx)(n.p,{children:"To load a preserved Devnet instance, the options are:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Loading on startup (note the argument name is not ",(0,d.jsx)(n.code,{children:"--load-path"})," as it was in Devnet-py):"]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Loading on request, which replaces the current state with the one in the provided file. It can be done by sending ",(0,d.jsx)(n.code,{children:"POST"})," to ",(0,d.jsx)(n.code,{children:"/load"})," or via JSON-RPC:"]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'POST /load\n{ "path": }\n'})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_load",\n "params": {\n "path": \n }\n}\n'})}),"\n",(0,d.jsx)(n.h3,{id:"loading-disclaimer",children:"Loading disclaimer"}),"\n",(0,d.jsxs)(n.p,{children:["Currently, dumping produces a list of received transactions that is stored on disk. Conversely, loading is implemented as the re-execution of transactions from a dump. This means that timestamps of ",(0,d.jsx)(n.code,{children:"StarknetBlock"})," will be different on each load."]}),"\n",(0,d.jsx)(n.p,{children:"Dumping and loading are not guaranteed to work across versions. I.e. if you dumped one version of Devnet, do not expect it to be loadable with a different version."}),"\n",(0,d.jsxs)(n.p,{children:["If you dumped a Devnet utilizing one class for account predeployment (e.g. ",(0,d.jsx)(n.code,{children:"--account-class cairo0"}),"), you should use the same option when loading. The same applies for dumping a Devnet in ",(0,d.jsx)(n.code,{children:"--block-generation-on demand"})," mode."]}),"\n",(0,d.jsx)(n.h2,{id:"restarting",children:"Restarting"}),"\n",(0,d.jsxs)(n.p,{children:["Devnet can be restarted by making a ",(0,d.jsx)(n.code,{children:"POST /restart"})," request (no body required) or ",(0,d.jsx)(n.code,{children:"JSON-RPC"})," request with method name ",(0,d.jsx)(n.code,{children:"devnet_restart"}),". All of the deployed contracts (including predeployed), blocks and storage updates will be restarted to the original state, without the transactions and requests that may have been loaded from a dump file on startup."]}),"\n",(0,d.jsx)(n.h2,{id:"docker",children:"Docker"}),"\n",(0,d.jsx)(n.p,{children:"To enable dumping and loading with dockerized Devnet, you must bind the container path to the path on your host machine."}),"\n",(0,d.jsx)(n.p,{children:"This example:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Relies on ",(0,d.jsx)(n.a,{href:"https://docs.docker.com/storage/bind-mounts/",children:"Docker bind mount"}),"; try ",(0,d.jsx)(n.a,{href:"https://docs.docker.com/storage/volumes/",children:"Docker volume"})," instead."]}),"\n",(0,d.jsxs)(n.li,{children:["Assumes that ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir"})," exists. If unsure, use absolute paths."]}),"\n",(0,d.jsxs)(n.li,{children:["Assumes you are listening on ",(0,d.jsx)(n.code,{children:"127.0.0.1:5050"}),"."]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["If there is ",(0,d.jsx)(n.code,{children:"mydump"})," inside ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir"}),", you can load it with:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"docker run \\\n -p 127.0.0.1:5050:5050 \\\n --mount type=bind,source=/path/to/dumpdir,target=/path/to/dumpdir \\\n shardlabs/starknet-devnet-rs \\\n --dump-path /path/to/dumpdir/mydump\n"})}),"\n",(0,d.jsxs)(n.p,{children:["To dump to ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir/mydump"})," on Devnet shutdown, run:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"docker run \\\n -p 127.0.0.1:5050:5050 \\\n --mount type=bind,source=/path/to/dumpdir,target=/path/to/dumpdir \\\n shardlabs/starknet-devnet-rs \\\n --dump-on exit --dump-path /path/to/dumpdir/mydump\n"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>o});var d=t(6540);const r={},s=d.createContext(r);function i(e){const n=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5120],{6989:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var d=t(4848),r=t(8453);const s={},i="Dump, load, restart",o={id:"dump-load-restart",title:"Dump, load, restart",description:"Dumping",source:"@site/docs/dump-load-restart.md",sourceDirName:".",slug:"/dump-load-restart",permalink:"/starknet-devnet-rs/docs/next/dump-load-restart",draft:!1,unlisted:!1,editUrl:"https://github.com/0xSpaceShard/starknet-devnet-rs/blob/master/website/docs/dump-load-restart.md",tags:[],version:"current",frontMatter:{},sidebar:"docSidebar",previous:{title:"Blocks",permalink:"/starknet-devnet-rs/docs/next/blocks"},next:{title:"Examples",permalink:"/starknet-devnet-rs/docs/next/examples"}},a={},c=[{value:"Dumping",id:"dumping",level:2},{value:"Dumping on request",id:"dumping-on-request",level:3},{value:"Loading",id:"loading",level:2},{value:"Loading disclaimer",id:"loading-disclaimer",level:3},{value:"Restarting",id:"restarting",level:2},{value:"Docker",id:"docker",level:2}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.h1,{id:"dump-load-restart",children:"Dump, load, restart"}),"\n",(0,d.jsx)(n.h2,{id:"dumping",children:"Dumping"}),"\n",(0,d.jsx)(n.p,{children:"To preserve your Devnet instance for future use, these are the options:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"Dumping on exit (handles Ctrl+C, i.e. SIGINT; doesn't handle SIGKILL):"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on exit --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"Dumping after each block:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on block --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Dumping on request, which requires providing ",(0,d.jsx)(n.code,{children:"--dump-on request"})," on startup. You can also dump on request if you specified any of the other ",(0,d.jsx)(n.code,{children:"--dump-on"})," modes."]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"dumping-on-request",children:"Dumping on request"}),"\n",(0,d.jsxs)(n.p,{children:["You can request dumping by sending ",(0,d.jsx)(n.code,{children:"POST"})," to ",(0,d.jsx)(n.code,{children:"/dump"})," or via JSON-RPC. An optional file path can be provided in the request or on startup via ",(0,d.jsx)(n.code,{children:"--dump-path "})," (the HTTP request parameter takes precedence). If no dumping path is specified, the dump is included in the response body. This means that if you request dumping via ",(0,d.jsx)(n.a,{href:"https://curl.se/",children:(0,d.jsx)(n.code,{children:"curl"})}),", it will be printed to STDOUT, which you can then redirect to a destination of your choice."]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-on [--dump-path ]\n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"No body parameters:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"POST /dump\n"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_dump"\n}\n'})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:"With a custom path:"}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'POST /dump\n{\n // optional; defaults to the path specified via CLI if defined\n "path": \n}\n'})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_dump",\n "params": {\n // optional; defaults to the path specified via CLI if defined\n "path": \n }\n}\n'})}),"\n",(0,d.jsx)(n.h2,{id:"loading",children:"Loading"}),"\n",(0,d.jsx)(n.p,{children:"To load a preserved Devnet instance, the options are:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Loading on startup (note the argument name is not ",(0,d.jsx)(n.code,{children:"--load-path"})," as it was in Devnet-py):"]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"$ starknet-devnet --dump-path \n"})}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Loading on request, which replaces the current state with the one in the provided file. It can be done by sending ",(0,d.jsx)(n.code,{children:"POST"})," to ",(0,d.jsx)(n.code,{children:"/load"})," or via JSON-RPC:"]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'POST /load\n{ "path": }\n'})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_load",\n "params": {\n "path": \n }\n}\n'})}),"\n",(0,d.jsx)(n.h3,{id:"loading-disclaimer",children:"Loading disclaimer"}),"\n",(0,d.jsxs)(n.p,{children:["Currently, dumping produces a list of reproducible Devnet actions (state-changing requests and transactions). Conversely, loading is implemented as the re-execution of transactions from a dump. This means that timestamps of ",(0,d.jsx)(n.code,{children:"StarknetBlock"})," will be different on each load. This is due to the nature of Devnet's dependencies, which prevent Devnet's state from being serialized."]}),"\n",(0,d.jsx)(n.p,{children:"Dumping and loading are not guaranteed to work across versions. I.e. if you dumped one version of Devnet, do not expect it to be loadable with a different version."}),"\n",(0,d.jsxs)(n.p,{children:["If you dumped a Devnet utilizing one class for account predeployment (e.g. ",(0,d.jsx)(n.code,{children:"--account-class cairo0"}),"), you should use the same option when loading. The same applies for dumping a Devnet in ",(0,d.jsx)(n.code,{children:"--block-generation-on demand"})," mode."]}),"\n",(0,d.jsx)(n.h2,{id:"restarting",children:"Restarting"}),"\n",(0,d.jsxs)(n.p,{children:["Devnet can be restarted by making a ",(0,d.jsx)(n.code,{children:"POST /restart"})," request (no body required) or ",(0,d.jsx)(n.code,{children:"JSON-RPC"})," request with method name ",(0,d.jsx)(n.code,{children:"devnet_restart"}),". All of the deployed contracts (including predeployed), blocks and storage updates will be restarted to the original state, without the transactions and requests that may have been loaded from a dump file on startup."]}),"\n",(0,d.jsx)(n.h2,{id:"docker",children:"Docker"}),"\n",(0,d.jsx)(n.p,{children:"To enable dumping and loading with dockerized Devnet, you must bind the container path to the path on your host machine."}),"\n",(0,d.jsx)(n.p,{children:"This example:"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["Relies on ",(0,d.jsx)(n.a,{href:"https://docs.docker.com/storage/bind-mounts/",children:"Docker bind mount"}),"; try ",(0,d.jsx)(n.a,{href:"https://docs.docker.com/storage/volumes/",children:"Docker volume"})," instead."]}),"\n",(0,d.jsxs)(n.li,{children:["Assumes that ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir"})," exists. If unsure, use absolute paths."]}),"\n",(0,d.jsxs)(n.li,{children:["Assumes you are listening on ",(0,d.jsx)(n.code,{children:"127.0.0.1:5050"}),"."]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["If there is ",(0,d.jsx)(n.code,{children:"mydump"})," inside ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir"}),", you can load it with:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"docker run \\\n -p 127.0.0.1:5050:5050 \\\n --mount type=bind,source=/path/to/dumpdir,target=/path/to/dumpdir \\\n shardlabs/starknet-devnet-rs \\\n --dump-path /path/to/dumpdir/mydump\n"})}),"\n",(0,d.jsxs)(n.p,{children:["To dump to ",(0,d.jsx)(n.code,{children:"/path/to/dumpdir/mydump"})," on Devnet shutdown, run:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{children:"docker run \\\n -p 127.0.0.1:5050:5050 \\\n --mount type=bind,source=/path/to/dumpdir,target=/path/to/dumpdir \\\n shardlabs/starknet-devnet-rs \\\n --dump-on exit --dump-path /path/to/dumpdir/mydump\n"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>o});var d=t(6540);const r={},s=d.createContext(r);function i(e){const n=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bca784a7.09d406cb.js b/assets/js/bca784a7.09d406cb.js new file mode 100644 index 000000000..e7a1f7311 --- /dev/null +++ b/assets/js/bca784a7.09d406cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8626],{5787:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var s=t(4848),a=t(8453);const r={},o="L1-L2 interaction via Postman",d={id:"postman",title:"L1-L2 interaction via Postman",description:"Postman is a Starknet utility that allows testing L1-L2 interaction. It is unrelated to the Postman API platform. Ensure you have an L1 node and a Devnet (L2 node) running, load a messaging contract, and flush the queue to transmit the messages to their destinations. The functionality relies on two internal message queues: one for L1->L2 messages, another for L2->L1 messages.",source:"@site/docs/postman.md",sourceDirName:".",slug:"/postman",permalink:"/starknet-devnet-rs/docs/next/postman",draft:!1,unlisted:!1,editUrl:"https://github.com/0xSpaceShard/starknet-devnet-rs/blob/master/website/docs/postman.md",tags:[],version:"current",frontMatter:{},sidebar:"docSidebar",previous:{title:"Lite mode",permalink:"/starknet-devnet-rs/docs/next/lite"},next:{title:"Predeployed contracts",permalink:"/starknet-devnet-rs/docs/next/predeployed"}},i={},c=[{value:"Load",id:"load",level:2},{value:"Flush",id:"flush",level:2},{value:"Disclaimer",id:"disclaimer",level:2},{value:"Mock transactions",id:"mock-transactions",level:2},{value:"L1->L2",id:"l1-l2",level:3},{value:"L2->L1",id:"l2-l1",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"l1-l2-interaction-via-postman",children:"L1-L2 interaction via Postman"}),"\n",(0,s.jsxs)(n.p,{children:["Postman is a Starknet utility that allows testing L1-L2 interaction. It is ",(0,s.jsx)(n.strong,{children:"unrelated"})," to the ",(0,s.jsx)(n.a,{href:"https://www.postman.com/",children:"Postman API platform"}),". Ensure you have an L1 node and a Devnet (L2 node) running, ",(0,s.jsx)(n.a,{href:"#load",children:"load"})," a messaging contract, and ",(0,s.jsx)(n.a,{href:"#flush",children:"flush"})," the queue to transmit the messages to their destinations. The functionality relies on two internal message queues: one for L1->L2 messages, another for L2->L1 messages."]}),"\n",(0,s.jsxs)(n.p,{children:["You can use ",(0,s.jsx)(n.a,{href:"https://github.com/0xSpaceShard/starknet-devnet-js",children:(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"starknet-devnet-js"})})})," to perform these actions, as witnessed in ",(0,s.jsx)(n.a,{href:"https://github.com/0xSpaceShard/starknet-devnet-js/blob/master/test/l1-l2-postman.test.ts",children:(0,s.jsx)(n.strong,{children:"this example"})}),", or directly send requests to the endpoints specified below."]}),"\n",(0,s.jsx)(n.h2,{id:"load",children:"Load"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POST /postman/load_l1_messaging_contract\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "network_url": "http://localhost:8545",\n "address": "0x123...def"\n}\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanLoad",\n "params": {\n "network_url": "http://localhost:8545",\n "address": "0x123...def"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Loads a ",(0,s.jsx)(n.code,{children:"MockStarknetMessaging"})," contract. The ",(0,s.jsx)(n.code,{children:"address"})," parameter is optional; if provided, the ",(0,s.jsx)(n.code,{children:"MockStarknetMessaging"})," contract will be fetched from that address, otherwise a new one will be deployed."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"network_url"})," is the URL of the JSON-RPC API of the L1 node you've run locally or that already exists; possibilities include, and are not limited to:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/foundry-rs/foundry/tree/master/crates/anvil",children:(0,s.jsx)(n.strong,{children:"Anvil"})})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://sepolia.etherscan.io/",children:(0,s.jsx)(n.strong,{children:"Sepolia testnet"})})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://www.npmjs.com/package/ganache",children:(0,s.jsx)(n.strong,{children:"Ganache"})})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/ethereum/go-ethereum#docker-quick-start",children:(0,s.jsx)(n.strong,{children:"Geth"})})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hardhat.org/hardhat-network/#running-stand-alone-in-order-to-support-wallets-and-other-software",children:(0,s.jsx)(n.strong,{children:"Hardhat node"})})}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{title:"Dumping and Loading",type:"info",children:(0,s.jsxs)(n.p,{children:["Loading a messaging contract is a dumpable event, meaning that, if you've enabled dumping, a messaging-contract-loading event will be dumped. Keep in mind that, if you rely on Devnet deploying a new contract, i.e. if you don't specify a contract address of an already deployed messaging contract, a new contract will be deployed at a new address on each loading of the dump. Read more about dumping ",(0,s.jsx)(n.a,{href:"./dump-load-restart#dumping",children:"here"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"flush",children:"Flush"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POST /postman/flush\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanFlush"\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Goes through the newly enqueued messages since the last flush, consuming and sending them from L1 to L2 and from L2 to L1. Use it for end-to-end testing. Requires no body. Optionally, set the ",(0,s.jsx)(n.code,{children:"dry_run"})," boolean flag to just see the result of flushing, without actually triggering it:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POST /postman/flush\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'{ "dry_run": true }\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanFlush",\n "params": {\n "dry_run": true\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["A running L1 node is required if ",(0,s.jsx)(n.code,{children:"dry_run"})," is not set."]}),"\n",(0,s.jsx)(n.admonition,{title:"Dumping and Loading",type:"info",children:(0,s.jsxs)(n.p,{children:["Flushing is not dumpable, meaning that, if you've enabled dumping, a flushing event will not itself be re-executed on loading. This is because it produces L2 messaging events that are themselves dumped. No L1-side actions are dumped, you need to take care of those yourself. Read more about dumping ",(0,s.jsx)(n.a,{href:"./dump-load-restart#dumping",children:"here"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"disclaimer",children:"Disclaimer"}),"\n",(0,s.jsxs)(n.p,{children:["This method of L1-L2 communication testing differs from how Starknet mainnet and testnets work. Taking ",(0,s.jsx)(n.a,{href:"https://github.com/MikeSpa/starknet-test/blob/6a68d033cd7ddb5df937154f860f1c06174e6860/L1L2Example.sol#L46",children:(0,s.jsx)(n.strong,{children:"L1L2Example.sol"})})," (originally from Starknet documentation, no longer available there):"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-solidity",children:"constructor(IStarknetCore starknetCore_) public {\n starknetCore = starknetCore_;\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The constructor takes an ",(0,s.jsx)(n.code,{children:"IStarknetCore"})," contract as argument, however for Devnet's L1-L2 communication testing, this has to be replaced with the logic in ",(0,s.jsx)(n.a,{href:"https://github.com/starkware-libs/cairo-lang/blob/master/src/starkware/starknet/testing/MockStarknetMessaging.sol",children:(0,s.jsx)(n.strong,{children:"MockStarknetMessaging.sol"})}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-solidity",children:"constructor(MockStarknetMessaging mockStarknetMessaging_) public {\n starknetCore = mockStarknetMessaging_;\n}\n"})}),"\n",(0,s.jsx)(n.h2,{id:"mock-transactions",children:"Mock transactions"}),"\n",(0,s.jsx)(n.h3,{id:"l1-l2",children:"L1->L2"}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["A running L1 node is ",(0,s.jsx)(n.strong,{children:"not"})," required for this operation."]})}),"\n",(0,s.jsxs)(n.p,{children:["Sends a mock transactions to L2, as if coming from L1, without the need for running L1. The deployed L2 contract address ",(0,s.jsx)(n.code,{children:"l2_contract_address"})," and ",(0,s.jsx)(n.code,{children:"entry_point_selector"})," must be valid, otherwise a new block will not be created."]}),"\n",(0,s.jsxs)(n.p,{children:["Normally ",(0,s.jsx)(n.code,{children:"nonce"})," is calculated by the L1 Starknet contract and it is used in L1 and L2. In this case, it needs to be provided manually."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POST /postman/send_message_to_l2\n"})}),"\n",(0,s.jsx)(n.p,{children:"Request:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'{\n "l2_contract_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "entry_point_selector": "0xC73F681176FC7B3F9693986FD7B14581E8D540519E27400E88B8713932BE01",\n "l1_contract_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": [\n "0x1",\n "0x2"\n ],\n "paid_fee_on_l1": "0x123456abcdef",\n "nonce":"0x0"\n}\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanSendMessageToL2",\n "params": {\n "l2_contract_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "entry_point_selector": "0xC73F681176FC7B3F9693986FD7B14581E8D540519E27400E88B8713932BE01",\n "l1_contract_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": [\n "0x1",\n "0x2"\n ],\n "paid_fee_on_l1": "0x123456abcdef",\n "nonce":"0x0"\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Response:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'{ "transaction_hash": "0x0548c761a9fd5512782998b2da6f44c42bf78fb88c3794eea330a91c9abb10bb" }\n'})}),"\n",(0,s.jsx)(n.h3,{id:"l2-l1",children:"L2->L1"}),"\n",(0,s.jsxs)(n.p,{children:["Sends a mock transaction from L2 to L1. The deployed L2 contract address ",(0,s.jsx)(n.code,{children:"from_address"})," and ",(0,s.jsx)(n.code,{children:"to_address"})," must be valid."]}),"\n",(0,s.jsx)(n.p,{children:"It is a mock message, but only in the sense that you are mocking an L2 contract's action, which would normally be triggered by invoking the contract via a transaction. So keep in mind the following:"}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsx)(n.p,{children:"A running L1 node is required for this operation."})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"POST /postman/consume_message_from_l2\n"})}),"\n",(0,s.jsx)(n.p,{children:"Request:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'{\n "from_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "to_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": ["0x0", "0x1", "0x3e8"],\n}\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanConsumeMessageFromL2",\n "params": {\n "from_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "to_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": ["0x0", "0x1", "0x3e8"],\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Response:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'{"message_hash": "0xae14f241131b524ac8d043d9cb4934253ac5c5589afef19f0d761816a9c7e26d"}\n'})})]})}function h(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>d});var s=t(6540);const a={},r=s.createContext(a);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bca784a7.6d0a4228.js b/assets/js/bca784a7.6d0a4228.js deleted file mode 100644 index 346729475..000000000 --- a/assets/js/bca784a7.6d0a4228.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8626],{5787:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var t=s(4848),r=s(8453);const a={},o="L1-L2 interaction via Postman",d={id:"postman",title:"L1-L2 interaction via Postman",description:"Postman is a Starknet utility that allows testing L1-L2 interaction. It is unrelated to the Postman API platform. Ensure you have an L1 node and a Devnet (L2 node) running, load a messaging contract, and flush the queue to transmit the messages to their destinations. The functionality relies on two internal message queues: one for L1->L2 messages, another for L2->L1 messages.",source:"@site/docs/postman.md",sourceDirName:".",slug:"/postman",permalink:"/starknet-devnet-rs/docs/next/postman",draft:!1,unlisted:!1,editUrl:"https://github.com/0xSpaceShard/starknet-devnet-rs/blob/master/website/docs/postman.md",tags:[],version:"current",frontMatter:{},sidebar:"docSidebar",previous:{title:"Lite mode",permalink:"/starknet-devnet-rs/docs/next/lite"},next:{title:"Predeployed contracts",permalink:"/starknet-devnet-rs/docs/next/predeployed"}},i={},c=[{value:"Load",id:"load",level:2},{value:"Flush",id:"flush",level:2},{value:"Disclaimer",id:"disclaimer",level:2},{value:"Mock transactions",id:"mock-transactions",level:2},{value:"L1->L2",id:"l1-l2",level:3},{value:"L2->L1",id:"l2-l1",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"l1-l2-interaction-via-postman",children:"L1-L2 interaction via Postman"}),"\n",(0,t.jsxs)(n.p,{children:["Postman is a Starknet utility that allows testing L1-L2 interaction. It is ",(0,t.jsx)(n.strong,{children:"unrelated"})," to the ",(0,t.jsx)(n.a,{href:"https://www.postman.com/",children:"Postman API platform"}),". Ensure you have an L1 node and a Devnet (L2 node) running, ",(0,t.jsx)(n.a,{href:"#load",children:"load"})," a messaging contract, and ",(0,t.jsx)(n.a,{href:"#flush",children:"flush"})," the queue to transmit the messages to their destinations. The functionality relies on two internal message queues: one for L1->L2 messages, another for L2->L1 messages."]}),"\n",(0,t.jsxs)(n.p,{children:["You can use ",(0,t.jsx)(n.a,{href:"https://github.com/0xSpaceShard/starknet-devnet-js",children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"starknet-devnet-js"})})})," to perform these actions, as witnessed in ",(0,t.jsx)(n.a,{href:"https://github.com/0xSpaceShard/starknet-devnet-js/blob/master/test/l1-l2-postman.test.ts",children:(0,t.jsx)(n.strong,{children:"this example"})}),", or directly send requests to the endpoints specified below."]}),"\n",(0,t.jsx)(n.h2,{id:"load",children:"Load"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"POST /postman/load_l1_messaging_contract\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'{\n "network_url": "http://localhost:8545",\n "address": "0x123...def"\n}\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanLoad",\n "params": {\n "network_url": "http://localhost:8545",\n "address": "0x123...def"\n }\n}\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Loads a ",(0,t.jsx)(n.code,{children:"MockStarknetMessaging"})," contract. The ",(0,t.jsx)(n.code,{children:"address"})," parameter is optional; if provided, the ",(0,t.jsx)(n.code,{children:"MockStarknetMessaging"})," contract will be fetched from that address, otherwise a new one will be deployed."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"network_url"})," is the URL of the JSON-RPC API of the L1 node you've run locally or that already exists; possibilities include, and are not limited to:"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/foundry-rs/foundry/tree/master/crates/anvil",children:(0,t.jsx)(n.strong,{children:"Anvil"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://sepolia.etherscan.io/",children:(0,t.jsx)(n.strong,{children:"Sepolia testnet"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/ganache",children:(0,t.jsx)(n.strong,{children:"Ganache"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/ethereum/go-ethereum#docker-quick-start",children:(0,t.jsx)(n.strong,{children:"Geth"})})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://hardhat.org/hardhat-network/#running-stand-alone-in-order-to-support-wallets-and-other-software",children:(0,t.jsx)(n.strong,{children:"Hardhat node"})})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"flush",children:"Flush"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"POST /postman/flush\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanFlush"\n}\n'})}),"\n",(0,t.jsxs)(n.p,{children:["Goes through the newly enqueued messages since the last flush, consuming and sending them from L1 to L2 and from L2 to L1. Use it for end-to-end testing. Requires no body. Optionally, set the ",(0,t.jsx)(n.code,{children:"dry_run"})," boolean flag to just see the result of flushing, without actually triggering it:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"POST /postman/flush\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'{ "dry_run": true }\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanFlush",\n "params": {\n "dry_run": true\n }\n}\n'})}),"\n",(0,t.jsxs)(n.p,{children:["A running L1 node is required if ",(0,t.jsx)(n.code,{children:"dry_run"})," is not set."]}),"\n",(0,t.jsx)(n.h2,{id:"disclaimer",children:"Disclaimer"}),"\n",(0,t.jsxs)(n.p,{children:["This method of L1-L2 communication testing differs from how Starknet mainnet and testnets work. Taking ",(0,t.jsx)(n.a,{href:"https://github.com/MikeSpa/starknet-test/blob/6a68d033cd7ddb5df937154f860f1c06174e6860/L1L2Example.sol#L46",children:(0,t.jsx)(n.strong,{children:"L1L2Example.sol"})})," (originally from Starknet documentation, no longer available there):"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-solidity",children:"constructor(IStarknetCore starknetCore_) public {\n starknetCore = starknetCore_;\n}\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The constructor takes an ",(0,t.jsx)(n.code,{children:"IStarknetCore"})," contract as argument, however for Devnet's L1-L2 communication testing, this has to be replaced with the logic in ",(0,t.jsx)(n.a,{href:"https://github.com/starkware-libs/cairo-lang/blob/master/src/starkware/starknet/testing/MockStarknetMessaging.sol",children:(0,t.jsx)(n.strong,{children:"MockStarknetMessaging.sol"})}),":"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-solidity",children:"constructor(MockStarknetMessaging mockStarknetMessaging_) public {\n starknetCore = mockStarknetMessaging_;\n}\n"})}),"\n",(0,t.jsx)(n.h2,{id:"mock-transactions",children:"Mock transactions"}),"\n",(0,t.jsx)(n.h3,{id:"l1-l2",children:"L1->L2"}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["A running L1 node is ",(0,t.jsx)(n.strong,{children:"not"})," required for this operation."]})}),"\n",(0,t.jsxs)(n.p,{children:["Sends a mock transactions to L2, as if coming from L1, without the need for running L1. The deployed L2 contract address ",(0,t.jsx)(n.code,{children:"l2_contract_address"})," and ",(0,t.jsx)(n.code,{children:"entry_point_selector"})," must be valid, otherwise a new block will not be created."]}),"\n",(0,t.jsxs)(n.p,{children:["Normally ",(0,t.jsx)(n.code,{children:"nonce"})," is calculated by the L1 Starknet contract and it is used in L1 and L2. In this case, it needs to be provided manually."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"POST /postman/send_message_to_l2\n"})}),"\n",(0,t.jsx)(n.p,{children:"Request:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'{\n "l2_contract_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "entry_point_selector": "0xC73F681176FC7B3F9693986FD7B14581E8D540519E27400E88B8713932BE01",\n "l1_contract_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": [\n "0x1",\n "0x2"\n ],\n "paid_fee_on_l1": "0x123456abcdef",\n "nonce":"0x0"\n}\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanSendMessageToL2",\n "params": {\n "l2_contract_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "entry_point_selector": "0xC73F681176FC7B3F9693986FD7B14581E8D540519E27400E88B8713932BE01",\n "l1_contract_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": [\n "0x1",\n "0x2"\n ],\n "paid_fee_on_l1": "0x123456abcdef",\n "nonce":"0x0"\n }\n}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Response:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'{ "transaction_hash": "0x0548c761a9fd5512782998b2da6f44c42bf78fb88c3794eea330a91c9abb10bb" }\n'})}),"\n",(0,t.jsx)(n.h3,{id:"l2-l1",children:"L2->L1"}),"\n",(0,t.jsxs)(n.p,{children:["Sends a mock transaction from L2 to L1. The deployed L2 contract address ",(0,t.jsx)(n.code,{children:"from_address"})," and ",(0,t.jsx)(n.code,{children:"to_address"})," must be valid."]}),"\n",(0,t.jsx)(n.p,{children:"It is a mock message, but only in the sense that you are mocking an L2 contract's action, which would normally be triggered by invoking the contract via a transaction. So keep in mind the following:"}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsx)(n.p,{children:"A running L1 node is required for this operation."})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"POST /postman/consume_message_from_l2\n"})}),"\n",(0,t.jsx)(n.p,{children:"Request:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'{\n "from_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "to_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": ["0x0", "0x1", "0x3e8"],\n}\n'})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'JSON-RPC\n{\n "jsonrpc": "2.0",\n "id": "1",\n "method": "devnet_postmanConsumeMessageFromL2",\n "params": {\n "from_address": "0x00285ddb7e5c777b310d806b9b2a0f7c7ba0a41f12b420219209d97a3b7f25b2",\n "to_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",\n "payload": ["0x0", "0x1", "0x3e8"],\n }\n}\n'})}),"\n",(0,t.jsx)(n.p,{children:"Response:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'{"message_hash": "0xae14f241131b524ac8d043d9cb4934253ac5c5589afef19f0d761816a9c7e26d"}\n'})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>d});var t=s(6540);const r={},a=t.createContext(r);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.a6a3d067.js b/assets/js/runtime~main.674ddd26.js similarity index 98% rename from assets/js/runtime~main.a6a3d067.js rename to assets/js/runtime~main.674ddd26.js index e4783de9e..94137a9dd 100644 --- a/assets/js/runtime~main.a6a3d067.js +++ b/assets/js/runtime~main.674ddd26.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,b,f,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var b=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(b.exports,b,b.exports,r),b.loaded=!0,b.exports}r.m=c,r.c=t,e=[],r.O=(a,b,f,d)=>{if(!b){var c=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[b,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,b({}),b([]),b(b)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var b in a)r.o(a,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:a[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,b)=>(r.f[b](e,a),a)),[])),r.u=e=>"assets/js/"+({134:"b7bb6147",141:"28a0cb7e",337:"3f194bb7",463:"682c6856",484:"673b87a5",562:"5fadd32f",579:"9bb1131a",598:"c25a813d",626:"005b2ed7",646:"7b998695",662:"645cda15",871:"9978e21e",952:"2d66ba60",1235:"a7456010",1316:"1b560adb",1437:"8e76450a",1475:"9c3aeb12",1527:"778bcc8b",1863:"b4513eec",1864:"09d5ad39",1914:"1151f991",2134:"c4d2e5c1",2282:"6d990bb1",2408:"9abfa349",2412:"16a2713f",2604:"b8663a1f",2627:"4769fc4e",2828:"49885c5e",2871:"3c883fc4",2916:"425e1ae2",2963:"922c21f9",3124:"ef2a8751",3332:"e28eadbb",3705:"c75c8ede",3726:"a5e062ff",3768:"e8953dad",3919:"f84fb341",3950:"b7007dab",3956:"a0ea14c4",3976:"0e384e19",4033:"ba6851eb",4290:"ae603a5f",4291:"93f3c2aa",4455:"993d6a8d",4583:"1df93b7f",4643:"f44adc48",4676:"24503201",4876:"17682634",5120:"a5ad27b1",5186:"b0477c6d",5348:"5402810c",5480:"80526ee6",5532:"e81f6410",5624:"9b932233",5634:"ef3b0775",5700:"b9f7b2ab",5742:"aba21aa0",5771:"8f2e4180",5864:"2ad05638",5960:"0657c530",6017:"8d981dc3",6131:"119a2918",6187:"e44e17f8",6286:"e2f00550",6439:"ad6bd692",6613:"38541689",6651:"18672b0b",6773:"2146f16f",6828:"9976ff42",6900:"cc3979e2",6928:"def2ee80",6969:"14eb3368",7098:"a7bd4aaa",7117:"224c8fe8",7229:"eb78b783",7230:"93f75803",7341:"e2db9f7a",7595:"0debafb6",7624:"5fbc5cf1",7780:"1e29fbdb",7817:"a56dc942",7883:"e2538a57",7969:"5985dcf4",8401:"17896441",8586:"b1ee2929",8626:"bca784a7",8704:"1c1cdb4e",8838:"f8ae958c",9048:"a94703ab",9167:"ba738306",9218:"cc2baa30",9308:"509bfc31",9337:"e120dcd9",9378:"5b870ab8",9440:"8d820236",9471:"e82252d2",9497:"e3e59843",9629:"9875b4b5",9647:"5e95c892",9736:"4adc7347",9891:"6bb6da1f",9998:"7923f30a"}[e]||e)+"."+{134:"290a582f",141:"5d79e79a",337:"22bfc72a",463:"6d8a69a6",484:"d8f6d2d7",562:"04fe94e0",579:"12332b9a",598:"dcaf95cd",626:"fff9bdb8",646:"77b6f90e",662:"f6ef4fb7",871:"44defd03",952:"b247a1f7",1235:"7b4b0a20",1316:"0fed137f",1437:"457a0c79",1475:"2ff5ffe7",1527:"6f445848",1863:"e8fccf27",1864:"836bb2d7",1914:"193b4b8f",2134:"6f189758",2237:"ede9a640",2282:"6f96a3b4",2408:"620b16d7",2412:"f08ebda5",2604:"04e57222",2627:"d5e77644",2828:"4bc7e5ad",2871:"d1c841d8",2916:"469cee91",2963:"08818fdb",3124:"0dc9d49a",3332:"9880c232",3705:"6fed968f",3726:"0c80ff57",3768:"d8af09d8",3919:"e4b03c02",3950:"dce48c7e",3956:"74b8c7b1",3976:"9f5b9cab",4033:"83c245c2",4290:"fa5b263f",4291:"850dddd9",4455:"5534343a",4583:"f182b925",4643:"fe264cf6",4676:"df561d25",4876:"3d25384a",5120:"45ba4134",5186:"5a13a38e",5348:"3ad38ed6",5480:"b9a69f3d",5532:"60f06895",5624:"211be870",5634:"0187249f",5700:"fc7d833c",5742:"9ac6642b",5771:"6fb725c9",5864:"e7cacb2b",5960:"aa8fdf00",6017:"5d6a3cde",6131:"18512c2f",6187:"709607a7",6286:"8ca4e8a2",6439:"2d8efa6d",6613:"8921907a",6651:"03c22191",6773:"fed3c84a",6828:"8da5bc72",6900:"f2efdc37",6928:"5fd884cc",6969:"eeb6b7e2",7098:"b82ee0df",7117:"7ab239ae",7229:"33a8bdeb",7230:"260ce03e",7341:"810d7342",7595:"bf13c614",7624:"949f6d67",7780:"d5a6d9e6",7817:"d708dd89",7883:"b963a51d",7969:"70d866fa",8401:"dcdbd021",8586:"037d9b49",8626:"6d0a4228",8704:"8434c89b",8838:"5cbb1183",9048:"2668bc5b",9167:"fde851af",9218:"5b9b66e1",9308:"dad3f1e7",9337:"22e90422",9378:"e5b723a6",9440:"525617f1",9471:"9b22e8ad",9497:"a3e0afab",9629:"9ea44d6b",9647:"b1f5748f",9736:"7ae4e26a",9891:"d58d4f04",9998:"012c6902"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="website:",r.l=(e,a,b,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(b))),a)return a(b)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/starknet-devnet-rs/",r.gca=function(e){return e={17682634:"4876",17896441:"8401",24503201:"4676",38541689:"6613",b7bb6147:"134","28a0cb7e":"141","3f194bb7":"337","682c6856":"463","673b87a5":"484","5fadd32f":"562","9bb1131a":"579",c25a813d:"598","005b2ed7":"626","7b998695":"646","645cda15":"662","9978e21e":"871","2d66ba60":"952",a7456010:"1235","1b560adb":"1316","8e76450a":"1437","9c3aeb12":"1475","778bcc8b":"1527",b4513eec:"1863","09d5ad39":"1864","1151f991":"1914",c4d2e5c1:"2134","6d990bb1":"2282","9abfa349":"2408","16a2713f":"2412",b8663a1f:"2604","4769fc4e":"2627","49885c5e":"2828","3c883fc4":"2871","425e1ae2":"2916","922c21f9":"2963",ef2a8751:"3124",e28eadbb:"3332",c75c8ede:"3705",a5e062ff:"3726",e8953dad:"3768",f84fb341:"3919",b7007dab:"3950",a0ea14c4:"3956","0e384e19":"3976",ba6851eb:"4033",ae603a5f:"4290","93f3c2aa":"4291","993d6a8d":"4455","1df93b7f":"4583",f44adc48:"4643",a5ad27b1:"5120",b0477c6d:"5186","5402810c":"5348","80526ee6":"5480",e81f6410:"5532","9b932233":"5624",ef3b0775:"5634",b9f7b2ab:"5700",aba21aa0:"5742","8f2e4180":"5771","2ad05638":"5864","0657c530":"5960","8d981dc3":"6017","119a2918":"6131",e44e17f8:"6187",e2f00550:"6286",ad6bd692:"6439","18672b0b":"6651","2146f16f":"6773","9976ff42":"6828",cc3979e2:"6900",def2ee80:"6928","14eb3368":"6969",a7bd4aaa:"7098","224c8fe8":"7117",eb78b783:"7229","93f75803":"7230",e2db9f7a:"7341","0debafb6":"7595","5fbc5cf1":"7624","1e29fbdb":"7780",a56dc942:"7817",e2538a57:"7883","5985dcf4":"7969",b1ee2929:"8586",bca784a7:"8626","1c1cdb4e":"8704",f8ae958c:"8838",a94703ab:"9048",ba738306:"9167",cc2baa30:"9218","509bfc31":"9308",e120dcd9:"9337","5b870ab8":"9378","8d820236":"9440",e82252d2:"9471",e3e59843:"9497","9875b4b5":"9629","5e95c892":"9647","4adc7347":"9736","6bb6da1f":"9891","7923f30a":"9998"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,b)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)b.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((b,d)=>f=e[a]=[b,d]));b.push(f[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(b=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=b&&("load"===b.type?"missing":b.type),c=b&&b.target&&b.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,b)=>{var f,d,c=b[0],t=b[1],o=b[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(b);n{"use strict";var e,a,b,f,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var b=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(b.exports,b,b.exports,r),b.loaded=!0,b.exports}r.m=c,r.c=t,e=[],r.O=(a,b,f,d)=>{if(!b){var c=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[b,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,b({}),b([]),b(b)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var b in a)r.o(a,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:a[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,b)=>(r.f[b](e,a),a)),[])),r.u=e=>"assets/js/"+({134:"b7bb6147",141:"28a0cb7e",337:"3f194bb7",463:"682c6856",484:"673b87a5",562:"5fadd32f",579:"9bb1131a",598:"c25a813d",626:"005b2ed7",646:"7b998695",662:"645cda15",871:"9978e21e",952:"2d66ba60",1235:"a7456010",1316:"1b560adb",1437:"8e76450a",1475:"9c3aeb12",1527:"778bcc8b",1863:"b4513eec",1864:"09d5ad39",1914:"1151f991",2134:"c4d2e5c1",2282:"6d990bb1",2408:"9abfa349",2412:"16a2713f",2604:"b8663a1f",2627:"4769fc4e",2828:"49885c5e",2871:"3c883fc4",2916:"425e1ae2",2963:"922c21f9",3124:"ef2a8751",3332:"e28eadbb",3705:"c75c8ede",3726:"a5e062ff",3768:"e8953dad",3919:"f84fb341",3950:"b7007dab",3956:"a0ea14c4",3976:"0e384e19",4033:"ba6851eb",4290:"ae603a5f",4291:"93f3c2aa",4455:"993d6a8d",4583:"1df93b7f",4643:"f44adc48",4676:"24503201",4876:"17682634",5120:"a5ad27b1",5186:"b0477c6d",5348:"5402810c",5480:"80526ee6",5532:"e81f6410",5624:"9b932233",5634:"ef3b0775",5700:"b9f7b2ab",5742:"aba21aa0",5771:"8f2e4180",5864:"2ad05638",5960:"0657c530",6017:"8d981dc3",6131:"119a2918",6187:"e44e17f8",6286:"e2f00550",6439:"ad6bd692",6613:"38541689",6651:"18672b0b",6773:"2146f16f",6828:"9976ff42",6900:"cc3979e2",6928:"def2ee80",6969:"14eb3368",7098:"a7bd4aaa",7117:"224c8fe8",7229:"eb78b783",7230:"93f75803",7341:"e2db9f7a",7595:"0debafb6",7624:"5fbc5cf1",7780:"1e29fbdb",7817:"a56dc942",7883:"e2538a57",7969:"5985dcf4",8401:"17896441",8586:"b1ee2929",8626:"bca784a7",8704:"1c1cdb4e",8838:"f8ae958c",9048:"a94703ab",9167:"ba738306",9218:"cc2baa30",9308:"509bfc31",9337:"e120dcd9",9378:"5b870ab8",9440:"8d820236",9471:"e82252d2",9497:"e3e59843",9629:"9875b4b5",9647:"5e95c892",9736:"4adc7347",9891:"6bb6da1f",9998:"7923f30a"}[e]||e)+"."+{134:"290a582f",141:"5d79e79a",337:"22bfc72a",463:"6d8a69a6",484:"d8f6d2d7",562:"04fe94e0",579:"12332b9a",598:"dcaf95cd",626:"fff9bdb8",646:"77b6f90e",662:"f6ef4fb7",871:"44defd03",952:"b247a1f7",1235:"7b4b0a20",1316:"0fed137f",1437:"457a0c79",1475:"2ff5ffe7",1527:"6f445848",1863:"e8fccf27",1864:"836bb2d7",1914:"193b4b8f",2134:"6f189758",2237:"ede9a640",2282:"6f96a3b4",2408:"620b16d7",2412:"f08ebda5",2604:"04e57222",2627:"d5e77644",2828:"4bc7e5ad",2871:"d1c841d8",2916:"469cee91",2963:"08818fdb",3124:"0dc9d49a",3332:"9880c232",3705:"6fed968f",3726:"0c80ff57",3768:"d8af09d8",3919:"e4b03c02",3950:"dce48c7e",3956:"74b8c7b1",3976:"9f5b9cab",4033:"83c245c2",4290:"fa5b263f",4291:"850dddd9",4455:"5534343a",4583:"f182b925",4643:"fe264cf6",4676:"df561d25",4876:"3d25384a",5120:"660fa43f",5186:"5a13a38e",5348:"3ad38ed6",5480:"b9a69f3d",5532:"60f06895",5624:"211be870",5634:"0187249f",5700:"fc7d833c",5742:"9ac6642b",5771:"6fb725c9",5864:"e7cacb2b",5960:"aa8fdf00",6017:"5d6a3cde",6131:"18512c2f",6187:"709607a7",6286:"8ca4e8a2",6439:"2d8efa6d",6613:"8921907a",6651:"03c22191",6773:"fed3c84a",6828:"8da5bc72",6900:"f2efdc37",6928:"5fd884cc",6969:"eeb6b7e2",7098:"b82ee0df",7117:"7ab239ae",7229:"33a8bdeb",7230:"260ce03e",7341:"810d7342",7595:"bf13c614",7624:"949f6d67",7780:"d5a6d9e6",7817:"d708dd89",7883:"b963a51d",7969:"70d866fa",8401:"dcdbd021",8586:"037d9b49",8626:"09d406cb",8704:"8434c89b",8838:"5cbb1183",9048:"2668bc5b",9167:"fde851af",9218:"5b9b66e1",9308:"dad3f1e7",9337:"22e90422",9378:"e5b723a6",9440:"525617f1",9471:"9b22e8ad",9497:"a3e0afab",9629:"9ea44d6b",9647:"b1f5748f",9736:"7ae4e26a",9891:"d58d4f04",9998:"012c6902"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="website:",r.l=(e,a,b,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(b))),a)return a(b)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/starknet-devnet-rs/",r.gca=function(e){return e={17682634:"4876",17896441:"8401",24503201:"4676",38541689:"6613",b7bb6147:"134","28a0cb7e":"141","3f194bb7":"337","682c6856":"463","673b87a5":"484","5fadd32f":"562","9bb1131a":"579",c25a813d:"598","005b2ed7":"626","7b998695":"646","645cda15":"662","9978e21e":"871","2d66ba60":"952",a7456010:"1235","1b560adb":"1316","8e76450a":"1437","9c3aeb12":"1475","778bcc8b":"1527",b4513eec:"1863","09d5ad39":"1864","1151f991":"1914",c4d2e5c1:"2134","6d990bb1":"2282","9abfa349":"2408","16a2713f":"2412",b8663a1f:"2604","4769fc4e":"2627","49885c5e":"2828","3c883fc4":"2871","425e1ae2":"2916","922c21f9":"2963",ef2a8751:"3124",e28eadbb:"3332",c75c8ede:"3705",a5e062ff:"3726",e8953dad:"3768",f84fb341:"3919",b7007dab:"3950",a0ea14c4:"3956","0e384e19":"3976",ba6851eb:"4033",ae603a5f:"4290","93f3c2aa":"4291","993d6a8d":"4455","1df93b7f":"4583",f44adc48:"4643",a5ad27b1:"5120",b0477c6d:"5186","5402810c":"5348","80526ee6":"5480",e81f6410:"5532","9b932233":"5624",ef3b0775:"5634",b9f7b2ab:"5700",aba21aa0:"5742","8f2e4180":"5771","2ad05638":"5864","0657c530":"5960","8d981dc3":"6017","119a2918":"6131",e44e17f8:"6187",e2f00550:"6286",ad6bd692:"6439","18672b0b":"6651","2146f16f":"6773","9976ff42":"6828",cc3979e2:"6900",def2ee80:"6928","14eb3368":"6969",a7bd4aaa:"7098","224c8fe8":"7117",eb78b783:"7229","93f75803":"7230",e2db9f7a:"7341","0debafb6":"7595","5fbc5cf1":"7624","1e29fbdb":"7780",a56dc942:"7817",e2538a57:"7883","5985dcf4":"7969",b1ee2929:"8586",bca784a7:"8626","1c1cdb4e":"8704",f8ae958c:"8838",a94703ab:"9048",ba738306:"9167",cc2baa30:"9218","509bfc31":"9308",e120dcd9:"9337","5b870ab8":"9378","8d820236":"9440",e82252d2:"9471",e3e59843:"9497","9875b4b5":"9629","5e95c892":"9647","4adc7347":"9736","6bb6da1f":"9891","7923f30a":"9998"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,b)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)b.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((b,d)=>f=e[a]=[b,d]));b.push(f[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(b=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=b&&("load"===b.type?"missing":b.type),c=b&&b.target&&b.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,b)=>{var f,d,c=b[0],t=b[1],o=b[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(b);n Account impersonation | Starknet Devnet - + diff --git a/docs/0.0.6/api/index.html b/docs/0.0.6/api/index.html index 9864adf8a..bbf1b4339 100644 --- a/docs/0.0.6/api/index.html +++ b/docs/0.0.6/api/index.html @@ -4,7 +4,7 @@ API | Starknet Devnet - + diff --git a/docs/0.0.6/balance/index.html b/docs/0.0.6/balance/index.html index 5ab6fc25d..5e8ce1031 100644 --- a/docs/0.0.6/balance/index.html +++ b/docs/0.0.6/balance/index.html @@ -4,7 +4,7 @@ Account balance | Starknet Devnet - + diff --git a/docs/0.0.6/blocks/index.html b/docs/0.0.6/blocks/index.html index 62ae333a6..1c48df731 100644 --- a/docs/0.0.6/blocks/index.html +++ b/docs/0.0.6/blocks/index.html @@ -4,7 +4,7 @@ Blocks | Starknet Devnet - + diff --git a/docs/0.0.6/category/running/index.html b/docs/0.0.6/category/running/index.html index dd6101f33..1e2fbad9b 100644 --- a/docs/0.0.6/category/running/index.html +++ b/docs/0.0.6/category/running/index.html @@ -4,7 +4,7 @@ Running | Starknet Devnet - + diff --git a/docs/0.0.6/dump-load-restart/index.html b/docs/0.0.6/dump-load-restart/index.html index a215019b6..589879813 100644 --- a/docs/0.0.6/dump-load-restart/index.html +++ b/docs/0.0.6/dump-load-restart/index.html @@ -4,7 +4,7 @@ Dump, load, restart | Starknet Devnet - + diff --git a/docs/0.0.6/forking/index.html b/docs/0.0.6/forking/index.html index 655762259..d2d0bfdb3 100644 --- a/docs/0.0.6/forking/index.html +++ b/docs/0.0.6/forking/index.html @@ -4,7 +4,7 @@ Forking | Starknet Devnet - + diff --git a/docs/0.0.6/historic-state/index.html b/docs/0.0.6/historic-state/index.html index 2c88ec8e8..5546cb246 100644 --- a/docs/0.0.6/historic-state/index.html +++ b/docs/0.0.6/historic-state/index.html @@ -4,7 +4,7 @@ Historic state support | Starknet Devnet - + diff --git a/docs/0.0.6/intro/index.html b/docs/0.0.6/intro/index.html index eb8c944ff..77d362d28 100644 --- a/docs/0.0.6/intro/index.html +++ b/docs/0.0.6/intro/index.html @@ -4,7 +4,7 @@ Intro | Starknet Devnet - + diff --git a/docs/0.0.6/lite/index.html b/docs/0.0.6/lite/index.html index b131244a3..f5753dd25 100644 --- a/docs/0.0.6/lite/index.html +++ b/docs/0.0.6/lite/index.html @@ -4,7 +4,7 @@ Lite mode | Starknet Devnet - + diff --git a/docs/0.0.6/postman/index.html b/docs/0.0.6/postman/index.html index d68c32f5c..eb7b6f7bc 100644 --- a/docs/0.0.6/postman/index.html +++ b/docs/0.0.6/postman/index.html @@ -4,7 +4,7 @@ L1-L2 interaction via Postman | Starknet Devnet - + diff --git a/docs/0.0.6/predeployed/index.html b/docs/0.0.6/predeployed/index.html index 0ae443b22..0fc1a0467 100644 --- a/docs/0.0.6/predeployed/index.html +++ b/docs/0.0.6/predeployed/index.html @@ -4,7 +4,7 @@ Predeployed contracts | Starknet Devnet - + diff --git a/docs/0.0.6/running/cli/index.html b/docs/0.0.6/running/cli/index.html index 9a7e1706f..bf67b5c3c 100644 --- a/docs/0.0.6/running/cli/index.html +++ b/docs/0.0.6/running/cli/index.html @@ -4,7 +4,7 @@ CLI options | Starknet Devnet - + diff --git a/docs/0.0.6/running/docker/index.html b/docs/0.0.6/running/docker/index.html index cf01eb820..dc246e492 100644 --- a/docs/0.0.6/running/docker/index.html +++ b/docs/0.0.6/running/docker/index.html @@ -4,7 +4,7 @@ Run with Docker | Starknet Devnet - + diff --git a/docs/0.0.6/running/install/index.html b/docs/0.0.6/running/install/index.html index 6f55e72c2..c7c5d8e76 100644 --- a/docs/0.0.6/running/install/index.html +++ b/docs/0.0.6/running/install/index.html @@ -4,7 +4,7 @@ Install and run | Starknet Devnet - + diff --git a/docs/0.0.6/server-config/index.html b/docs/0.0.6/server-config/index.html index 94bab207a..3a9a3e4b2 100644 --- a/docs/0.0.6/server-config/index.html +++ b/docs/0.0.6/server-config/index.html @@ -4,7 +4,7 @@ Server config | Starknet Devnet - + diff --git a/docs/0.0.6/starknet-time/index.html b/docs/0.0.6/starknet-time/index.html index 8640b1229..063ae1ace 100644 --- a/docs/0.0.6/starknet-time/index.html +++ b/docs/0.0.6/starknet-time/index.html @@ -4,7 +4,7 @@ Starknet time | Starknet Devnet - + diff --git a/docs/0.0.7/account-impersonation/index.html b/docs/0.0.7/account-impersonation/index.html index 099f51333..340ca1a03 100644 --- a/docs/0.0.7/account-impersonation/index.html +++ b/docs/0.0.7/account-impersonation/index.html @@ -4,7 +4,7 @@ Account impersonation | Starknet Devnet - + diff --git a/docs/0.0.7/api/index.html b/docs/0.0.7/api/index.html index 0ca23275e..407c79faf 100644 --- a/docs/0.0.7/api/index.html +++ b/docs/0.0.7/api/index.html @@ -4,7 +4,7 @@ API | Starknet Devnet - + diff --git a/docs/0.0.7/balance/index.html b/docs/0.0.7/balance/index.html index 9cd3e1698..3b87a4d5f 100644 --- a/docs/0.0.7/balance/index.html +++ b/docs/0.0.7/balance/index.html @@ -4,7 +4,7 @@ Account balance | Starknet Devnet - + diff --git a/docs/0.0.7/blocks/index.html b/docs/0.0.7/blocks/index.html index 3056885a5..0e8ac0aad 100644 --- a/docs/0.0.7/blocks/index.html +++ b/docs/0.0.7/blocks/index.html @@ -4,7 +4,7 @@ Blocks | Starknet Devnet - + diff --git a/docs/0.0.7/category/running/index.html b/docs/0.0.7/category/running/index.html index 3888be784..6e6db2030 100644 --- a/docs/0.0.7/category/running/index.html +++ b/docs/0.0.7/category/running/index.html @@ -4,7 +4,7 @@ Running | Starknet Devnet - + diff --git a/docs/0.0.7/dump-load-restart/index.html b/docs/0.0.7/dump-load-restart/index.html index fb13da232..ee58340c2 100644 --- a/docs/0.0.7/dump-load-restart/index.html +++ b/docs/0.0.7/dump-load-restart/index.html @@ -4,7 +4,7 @@ Dump, load, restart | Starknet Devnet - + diff --git a/docs/0.0.7/forking/index.html b/docs/0.0.7/forking/index.html index 7a2442f2f..582fc648c 100644 --- a/docs/0.0.7/forking/index.html +++ b/docs/0.0.7/forking/index.html @@ -4,7 +4,7 @@ Forking | Starknet Devnet - + diff --git a/docs/0.0.7/historic-state/index.html b/docs/0.0.7/historic-state/index.html index a66ed270f..89c37701d 100644 --- a/docs/0.0.7/historic-state/index.html +++ b/docs/0.0.7/historic-state/index.html @@ -4,7 +4,7 @@ Historic state support | Starknet Devnet - + diff --git a/docs/0.0.7/intro/index.html b/docs/0.0.7/intro/index.html index 9acab023c..94b4eea85 100644 --- a/docs/0.0.7/intro/index.html +++ b/docs/0.0.7/intro/index.html @@ -4,7 +4,7 @@ Intro | Starknet Devnet - + diff --git a/docs/0.0.7/lite/index.html b/docs/0.0.7/lite/index.html index 89f1985c6..d8b36890a 100644 --- a/docs/0.0.7/lite/index.html +++ b/docs/0.0.7/lite/index.html @@ -4,7 +4,7 @@ Lite mode | Starknet Devnet - + diff --git a/docs/0.0.7/postman/index.html b/docs/0.0.7/postman/index.html index d448141ff..ea215e445 100644 --- a/docs/0.0.7/postman/index.html +++ b/docs/0.0.7/postman/index.html @@ -4,7 +4,7 @@ L1-L2 interaction via Postman | Starknet Devnet - + diff --git a/docs/0.0.7/predeployed/index.html b/docs/0.0.7/predeployed/index.html index b59e622f6..08b98005e 100644 --- a/docs/0.0.7/predeployed/index.html +++ b/docs/0.0.7/predeployed/index.html @@ -4,7 +4,7 @@ Predeployed contracts | Starknet Devnet - + diff --git a/docs/0.0.7/running/cli/index.html b/docs/0.0.7/running/cli/index.html index 79e0fb4e7..2e95455fc 100644 --- a/docs/0.0.7/running/cli/index.html +++ b/docs/0.0.7/running/cli/index.html @@ -4,7 +4,7 @@ CLI options | Starknet Devnet - + diff --git a/docs/0.0.7/running/docker/index.html b/docs/0.0.7/running/docker/index.html index c68a0e014..64ead1a9a 100644 --- a/docs/0.0.7/running/docker/index.html +++ b/docs/0.0.7/running/docker/index.html @@ -4,7 +4,7 @@ Run with Docker | Starknet Devnet - + diff --git a/docs/0.0.7/running/install/index.html b/docs/0.0.7/running/install/index.html index 5e78a5d50..1edd8eee9 100644 --- a/docs/0.0.7/running/install/index.html +++ b/docs/0.0.7/running/install/index.html @@ -4,7 +4,7 @@ Install and run | Starknet Devnet - + diff --git a/docs/0.0.7/server-config/index.html b/docs/0.0.7/server-config/index.html index 1397faaee..484bf9a11 100644 --- a/docs/0.0.7/server-config/index.html +++ b/docs/0.0.7/server-config/index.html @@ -4,7 +4,7 @@ Server config | Starknet Devnet - + diff --git a/docs/0.0.7/starknet-time/index.html b/docs/0.0.7/starknet-time/index.html index 1574a27fa..26d953a49 100644 --- a/docs/0.0.7/starknet-time/index.html +++ b/docs/0.0.7/starknet-time/index.html @@ -4,7 +4,7 @@ Starknet time | Starknet Devnet - + diff --git a/docs/0.1.1/account-impersonation/index.html b/docs/0.1.1/account-impersonation/index.html index c18f0fa93..9d3985cc9 100644 --- a/docs/0.1.1/account-impersonation/index.html +++ b/docs/0.1.1/account-impersonation/index.html @@ -4,7 +4,7 @@ Account impersonation | Starknet Devnet - + diff --git a/docs/0.1.1/api/index.html b/docs/0.1.1/api/index.html index 27317b3fa..ae7da1788 100644 --- a/docs/0.1.1/api/index.html +++ b/docs/0.1.1/api/index.html @@ -4,7 +4,7 @@ API | Starknet Devnet - + diff --git a/docs/0.1.1/balance/index.html b/docs/0.1.1/balance/index.html index 62afae381..4c3cfaeed 100644 --- a/docs/0.1.1/balance/index.html +++ b/docs/0.1.1/balance/index.html @@ -4,7 +4,7 @@ Account balance | Starknet Devnet - + diff --git a/docs/0.1.1/blocks/index.html b/docs/0.1.1/blocks/index.html index 253e232d9..5ee3523b3 100644 --- a/docs/0.1.1/blocks/index.html +++ b/docs/0.1.1/blocks/index.html @@ -4,7 +4,7 @@ Blocks | Starknet Devnet - + diff --git a/docs/0.1.1/category/running/index.html b/docs/0.1.1/category/running/index.html index f3ba08dab..c14ac49a0 100644 --- a/docs/0.1.1/category/running/index.html +++ b/docs/0.1.1/category/running/index.html @@ -4,7 +4,7 @@ Running | Starknet Devnet - + diff --git a/docs/0.1.1/dump-load-restart/index.html b/docs/0.1.1/dump-load-restart/index.html index 48c28ac9e..3650818f0 100644 --- a/docs/0.1.1/dump-load-restart/index.html +++ b/docs/0.1.1/dump-load-restart/index.html @@ -4,7 +4,7 @@ Dump, load, restart | Starknet Devnet - + diff --git a/docs/0.1.1/forking/index.html b/docs/0.1.1/forking/index.html index c97f110eb..7f68befa9 100644 --- a/docs/0.1.1/forking/index.html +++ b/docs/0.1.1/forking/index.html @@ -4,7 +4,7 @@ Forking | Starknet Devnet - + diff --git a/docs/0.1.1/historic-state/index.html b/docs/0.1.1/historic-state/index.html index c7142db8e..b5785a56a 100644 --- a/docs/0.1.1/historic-state/index.html +++ b/docs/0.1.1/historic-state/index.html @@ -4,7 +4,7 @@ Historic state support | Starknet Devnet - + diff --git a/docs/0.1.1/intro/index.html b/docs/0.1.1/intro/index.html index 50efadfe3..566e16226 100644 --- a/docs/0.1.1/intro/index.html +++ b/docs/0.1.1/intro/index.html @@ -4,7 +4,7 @@ Intro | Starknet Devnet - + diff --git a/docs/0.1.1/lite/index.html b/docs/0.1.1/lite/index.html index 4102e1e9f..f11d21aa1 100644 --- a/docs/0.1.1/lite/index.html +++ b/docs/0.1.1/lite/index.html @@ -4,7 +4,7 @@ Lite mode | Starknet Devnet - + diff --git a/docs/0.1.1/postman/index.html b/docs/0.1.1/postman/index.html index f2fd9b0e1..558f3a807 100644 --- a/docs/0.1.1/postman/index.html +++ b/docs/0.1.1/postman/index.html @@ -4,7 +4,7 @@ L1-L2 interaction via Postman | Starknet Devnet - + diff --git a/docs/0.1.1/predeployed/index.html b/docs/0.1.1/predeployed/index.html index 62d5243a6..afa61fcd2 100644 --- a/docs/0.1.1/predeployed/index.html +++ b/docs/0.1.1/predeployed/index.html @@ -4,7 +4,7 @@ Predeployed contracts | Starknet Devnet - + diff --git a/docs/0.1.1/running/cli/index.html b/docs/0.1.1/running/cli/index.html index ab972e5e4..bc6689ff4 100644 --- a/docs/0.1.1/running/cli/index.html +++ b/docs/0.1.1/running/cli/index.html @@ -4,7 +4,7 @@ CLI options | Starknet Devnet - + diff --git a/docs/0.1.1/running/docker/index.html b/docs/0.1.1/running/docker/index.html index 4fdcd06c8..7f5e69e19 100644 --- a/docs/0.1.1/running/docker/index.html +++ b/docs/0.1.1/running/docker/index.html @@ -4,7 +4,7 @@ Run with Docker | Starknet Devnet - + diff --git a/docs/0.1.1/running/install/index.html b/docs/0.1.1/running/install/index.html index 6dac56073..46e76cb54 100644 --- a/docs/0.1.1/running/install/index.html +++ b/docs/0.1.1/running/install/index.html @@ -4,7 +4,7 @@ Install and run | Starknet Devnet - + diff --git a/docs/0.1.1/server-config/index.html b/docs/0.1.1/server-config/index.html index 14084a3bc..f733e53af 100644 --- a/docs/0.1.1/server-config/index.html +++ b/docs/0.1.1/server-config/index.html @@ -4,7 +4,7 @@ Server config | Starknet Devnet - + diff --git a/docs/0.1.1/starknet-time/index.html b/docs/0.1.1/starknet-time/index.html index ef8db3870..0d59c7be6 100644 --- a/docs/0.1.1/starknet-time/index.html +++ b/docs/0.1.1/starknet-time/index.html @@ -4,7 +4,7 @@ Starknet time | Starknet Devnet - + diff --git a/docs/account-impersonation/index.html b/docs/account-impersonation/index.html index ddac792e6..1dd156721 100644 --- a/docs/account-impersonation/index.html +++ b/docs/account-impersonation/index.html @@ -4,7 +4,7 @@ Account impersonation | Starknet Devnet - + diff --git a/docs/api/index.html b/docs/api/index.html index 8d5fa52ed..6f03ab408 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -4,7 +4,7 @@ API | Starknet Devnet - + diff --git a/docs/balance/index.html b/docs/balance/index.html index 4a1fbd42c..75f90039c 100644 --- a/docs/balance/index.html +++ b/docs/balance/index.html @@ -4,7 +4,7 @@ Account balance | Starknet Devnet - + diff --git a/docs/blocks/index.html b/docs/blocks/index.html index a80e20da6..b6d027f26 100644 --- a/docs/blocks/index.html +++ b/docs/blocks/index.html @@ -4,7 +4,7 @@ Blocks | Starknet Devnet - + diff --git a/docs/category/running/index.html b/docs/category/running/index.html index 0d9fd856c..37cac823f 100644 --- a/docs/category/running/index.html +++ b/docs/category/running/index.html @@ -4,7 +4,7 @@ Running | Starknet Devnet - + diff --git a/docs/dump-load-restart/index.html b/docs/dump-load-restart/index.html index f4995612b..050a34b1a 100644 --- a/docs/dump-load-restart/index.html +++ b/docs/dump-load-restart/index.html @@ -4,7 +4,7 @@ Dump, load, restart | Starknet Devnet - + diff --git a/docs/examples/index.html b/docs/examples/index.html index 7e91c8ed5..1f6e88a36 100644 --- a/docs/examples/index.html +++ b/docs/examples/index.html @@ -4,7 +4,7 @@ Examples | Starknet Devnet - + diff --git a/docs/forking/index.html b/docs/forking/index.html index 53b0d37cb..0612d13d5 100644 --- a/docs/forking/index.html +++ b/docs/forking/index.html @@ -4,7 +4,7 @@ Forking | Starknet Devnet - + diff --git a/docs/historic-state/index.html b/docs/historic-state/index.html index 97f5edc50..453036ef6 100644 --- a/docs/historic-state/index.html +++ b/docs/historic-state/index.html @@ -4,7 +4,7 @@ Historic state support | Starknet Devnet - + diff --git a/docs/intro/index.html b/docs/intro/index.html index 86682aadf..a02c796e7 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -4,7 +4,7 @@ Intro | Starknet Devnet - + diff --git a/docs/lite/index.html b/docs/lite/index.html index 0723559d3..a18b06e65 100644 --- a/docs/lite/index.html +++ b/docs/lite/index.html @@ -4,7 +4,7 @@ Lite mode | Starknet Devnet - + diff --git a/docs/next/account-impersonation/index.html b/docs/next/account-impersonation/index.html index b978bbea5..b530d46c1 100644 --- a/docs/next/account-impersonation/index.html +++ b/docs/next/account-impersonation/index.html @@ -4,7 +4,7 @@ Account impersonation | Starknet Devnet - + diff --git a/docs/next/api/index.html b/docs/next/api/index.html index 18f6269d9..6ac32dfdd 100644 --- a/docs/next/api/index.html +++ b/docs/next/api/index.html @@ -4,7 +4,7 @@ API | Starknet Devnet - + diff --git a/docs/next/balance/index.html b/docs/next/balance/index.html index 10b137b24..88a3a737d 100644 --- a/docs/next/balance/index.html +++ b/docs/next/balance/index.html @@ -4,7 +4,7 @@ Account balance | Starknet Devnet - + diff --git a/docs/next/blocks/index.html b/docs/next/blocks/index.html index dd6092402..42ed48346 100644 --- a/docs/next/blocks/index.html +++ b/docs/next/blocks/index.html @@ -4,7 +4,7 @@ Blocks | Starknet Devnet - + diff --git a/docs/next/category/running/index.html b/docs/next/category/running/index.html index 071674266..84d98f152 100644 --- a/docs/next/category/running/index.html +++ b/docs/next/category/running/index.html @@ -4,7 +4,7 @@ Running | Starknet Devnet - + diff --git a/docs/next/dump-load-restart/index.html b/docs/next/dump-load-restart/index.html index 25e7afa39..bf69fb758 100644 --- a/docs/next/dump-load-restart/index.html +++ b/docs/next/dump-load-restart/index.html @@ -4,7 +4,7 @@ Dump, load, restart | Starknet Devnet - + @@ -47,7 +47,7 @@

Loading
POST /load
{ "path": <PATH> }
JSON-RPC
{
"jsonrpc": "2.0",
"id": "1",
"method": "devnet_load",
"params": {
"path": <PATH>
}
}

Loading disclaimer

-

Currently, dumping produces a list of received transactions that is stored on disk. Conversely, loading is implemented as the re-execution of transactions from a dump. This means that timestamps of StarknetBlock will be different on each load.

+

Currently, dumping produces a list of reproducible Devnet actions (state-changing requests and transactions). Conversely, loading is implemented as the re-execution of transactions from a dump. This means that timestamps of StarknetBlock will be different on each load. This is due to the nature of Devnet's dependencies, which prevent Devnet's state from being serialized.

Dumping and loading are not guaranteed to work across versions. I.e. if you dumped one version of Devnet, do not expect it to be loadable with a different version.

If you dumped a Devnet utilizing one class for account predeployment (e.g. --account-class cairo0), you should use the same option when loading. The same applies for dumping a Devnet in --block-generation-on demand mode.

Restarting

diff --git a/docs/next/examples/index.html b/docs/next/examples/index.html index 728282ee1..55b065123 100644 --- a/docs/next/examples/index.html +++ b/docs/next/examples/index.html @@ -4,7 +4,7 @@ Examples | Starknet Devnet - + diff --git a/docs/next/forking/index.html b/docs/next/forking/index.html index 3a999d083..a345f03f6 100644 --- a/docs/next/forking/index.html +++ b/docs/next/forking/index.html @@ -4,7 +4,7 @@ Forking | Starknet Devnet - + diff --git a/docs/next/gas/index.html b/docs/next/gas/index.html index 561328e37..92d1f911f 100644 --- a/docs/next/gas/index.html +++ b/docs/next/gas/index.html @@ -4,7 +4,7 @@ Gas price modification | Starknet Devnet - + diff --git a/docs/next/historic-state/index.html b/docs/next/historic-state/index.html index f5aed608f..32b6ad330 100644 --- a/docs/next/historic-state/index.html +++ b/docs/next/historic-state/index.html @@ -4,7 +4,7 @@ Historic state support | Starknet Devnet - + diff --git a/docs/next/intro/index.html b/docs/next/intro/index.html index 0b1a9b385..6658c88fb 100644 --- a/docs/next/intro/index.html +++ b/docs/next/intro/index.html @@ -4,7 +4,7 @@ Intro | Starknet Devnet - + diff --git a/docs/next/lite/index.html b/docs/next/lite/index.html index 6d9669d2f..15bf1d4eb 100644 --- a/docs/next/lite/index.html +++ b/docs/next/lite/index.html @@ -4,7 +4,7 @@ Lite mode | Starknet Devnet - + diff --git a/docs/next/postman/index.html b/docs/next/postman/index.html index 28cff515b..201dbe072 100644 --- a/docs/next/postman/index.html +++ b/docs/next/postman/index.html @@ -4,7 +4,7 @@ L1-L2 interaction via Postman | Starknet Devnet - + @@ -24,6 +24,7 @@

LoadGeth
  • Hardhat node
  • +
    Dumping and Loading

    Loading a messaging contract is a dumpable event, meaning that, if you've enabled dumping, a messaging-contract-loading event will be dumped. Keep in mind that, if you rely on Devnet deploying a new contract, i.e. if you don't specify a contract address of an already deployed messaging contract, a new contract will be deployed at a new address on each loading of the dump. Read more about dumping here.

    Flush

    POST /postman/flush
    JSON-RPC
    {
    "jsonrpc": "2.0",
    "id": "1",
    "method": "devnet_postmanFlush"
    }
    @@ -32,6 +33,7 @@

    Flush
    { "dry_run": true }
    JSON-RPC
    {
    "jsonrpc": "2.0",
    "id": "1",
    "method": "devnet_postmanFlush",
    "params": {
    "dry_run": true
    }
    }

    A running L1 node is required if dry_run is not set.

    +

    Disclaimer

    This method of L1-L2 communication testing differs from how Starknet mainnet and testnets work. Taking L1L2Example.sol (originally from Starknet documentation, no longer available there):

    constructor(IStarknetCore starknetCore_) public {
    starknetCore = starknetCore_;
    }
    diff --git a/docs/next/predeployed/index.html b/docs/next/predeployed/index.html index ca00e8a51..f2dece5f7 100644 --- a/docs/next/predeployed/index.html +++ b/docs/next/predeployed/index.html @@ -4,7 +4,7 @@ Predeployed contracts | Starknet Devnet - + diff --git a/docs/next/restrictive/index.html b/docs/next/restrictive/index.html index 693c59bc4..aaaa545e6 100644 --- a/docs/next/restrictive/index.html +++ b/docs/next/restrictive/index.html @@ -4,7 +4,7 @@ Restrictive mode | Starknet Devnet - + diff --git a/docs/next/running/cli/index.html b/docs/next/running/cli/index.html index d741565fc..ab1ebef7b 100644 --- a/docs/next/running/cli/index.html +++ b/docs/next/running/cli/index.html @@ -4,7 +4,7 @@ CLI options | Starknet Devnet - + diff --git a/docs/next/running/docker/index.html b/docs/next/running/docker/index.html index 25f6b5da0..7f57e6a1a 100644 --- a/docs/next/running/docker/index.html +++ b/docs/next/running/docker/index.html @@ -4,7 +4,7 @@ Run with Docker | Starknet Devnet - + diff --git a/docs/next/running/install/index.html b/docs/next/running/install/index.html index 6f3c0e7c3..9d2ee49bd 100644 --- a/docs/next/running/install/index.html +++ b/docs/next/running/install/index.html @@ -4,7 +4,7 @@ Install and run | Starknet Devnet - + diff --git a/docs/next/server-config/index.html b/docs/next/server-config/index.html index 0612f8415..b8a22d4e3 100644 --- a/docs/next/server-config/index.html +++ b/docs/next/server-config/index.html @@ -4,7 +4,7 @@ Server config | Starknet Devnet - + diff --git a/docs/next/starknet-time/index.html b/docs/next/starknet-time/index.html index 6fc3ccb0d..121877741 100644 --- a/docs/next/starknet-time/index.html +++ b/docs/next/starknet-time/index.html @@ -4,7 +4,7 @@ Starknet time | Starknet Devnet - + diff --git a/docs/postman/index.html b/docs/postman/index.html index 17b9bf305..1dd8020b6 100644 --- a/docs/postman/index.html +++ b/docs/postman/index.html @@ -4,7 +4,7 @@ L1-L2 interaction via Postman | Starknet Devnet - + diff --git a/docs/predeployed/index.html b/docs/predeployed/index.html index 5774a7786..6103abb2f 100644 --- a/docs/predeployed/index.html +++ b/docs/predeployed/index.html @@ -4,7 +4,7 @@ Predeployed contracts | Starknet Devnet - + diff --git a/docs/running/cli/index.html b/docs/running/cli/index.html index 640fd62bb..95f7b666d 100644 --- a/docs/running/cli/index.html +++ b/docs/running/cli/index.html @@ -4,7 +4,7 @@ CLI options | Starknet Devnet - + diff --git a/docs/running/docker/index.html b/docs/running/docker/index.html index 4d7d6df5f..5a256c8c8 100644 --- a/docs/running/docker/index.html +++ b/docs/running/docker/index.html @@ -4,7 +4,7 @@ Run with Docker | Starknet Devnet - + diff --git a/docs/running/install/index.html b/docs/running/install/index.html index 6cdfaac03..8e44d0db2 100644 --- a/docs/running/install/index.html +++ b/docs/running/install/index.html @@ -4,7 +4,7 @@ Install and run | Starknet Devnet - + diff --git a/docs/server-config/index.html b/docs/server-config/index.html index c75db0ae8..c003af7be 100644 --- a/docs/server-config/index.html +++ b/docs/server-config/index.html @@ -4,7 +4,7 @@ Server config | Starknet Devnet - + diff --git a/docs/starknet-time/index.html b/docs/starknet-time/index.html index 7407812fa..cb73c204f 100644 --- a/docs/starknet-time/index.html +++ b/docs/starknet-time/index.html @@ -4,7 +4,7 @@ Starknet time | Starknet Devnet - + diff --git a/index.html b/index.html index 81c631d42..d8fd99ae8 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Home | Starknet Devnet - +