From 7fe56d446968678befd54558ca96ef8340f25397 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 17:52:14 +0000 Subject: [PATCH 1/3] Initial plan From 7c1b06e7cc014793144e86d9ff0108470a12f264 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 20 Feb 2026 17:53:33 +0000 Subject: [PATCH 2/3] Add read-only simulation explanation to deploy-to-testnet tutorial Co-authored-by: oceans404 <91382964+oceans404@users.noreply.github.com> --- .../getting-started/deploy-to-testnet.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx index 73f605ad5a..7fd8966bfb 100644 --- a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx +++ b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx @@ -129,6 +129,24 @@ The following output should appear. ["Hello", "RPC"] ``` +:::note + +You may also see a message like: + +``` +ℹ️ Simulation identified as read-only. Send by rerunning with `--send=yes`. +``` + +This is expected! The `hello` function is **read-only**—it doesn't modify any on-chain state. When the CLI detects a read-only function, it automatically runs it as a **local simulation** instead of submitting a transaction to the network. This means: + +- **No fees**: The simulation is free—no transaction is submitted to the ledger. +- **Instant result**: The output you see (`["Hello", "RPC"]`) is already the correct result. +- **Ignore `--send=yes`** for read-only functions: the simulation already gave you what you need. + +The `--send=yes` flag is only needed for **state-changing functions**—those that write to contract storage. For those, the CLI first simulates the transaction (to estimate fees and check for errors), then you use `--send=yes` to actually submit and persist changes on-chain. + +::: + :::info The `--` double-dash is required! From 638b865551b14a2894a0253714acf2cc283c4d48 Mon Sep 17 00:00:00 2001 From: Steph <91382964+oceans404@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:25:59 -0800 Subject: [PATCH 3/3] Update docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../build/smart-contracts/getting-started/deploy-to-testnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx index 7fd8966bfb..ceefd4997d 100644 --- a/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx +++ b/docs/build/smart-contracts/getting-started/deploy-to-testnet.mdx @@ -141,7 +141,7 @@ This is expected! The `hello` function is **read-only**—it doesn't modify any - **No fees**: The simulation is free—no transaction is submitted to the ledger. - **Instant result**: The output you see (`["Hello", "RPC"]`) is already the correct result. -- **Ignore `--send=yes`** for read-only functions: the simulation already gave you what you need. +- **Ignore `--send=yes`**: For read-only functions, the simulation already gave you what you need. The `--send=yes` flag is only needed for **state-changing functions**—those that write to contract storage. For those, the CLI first simulates the transaction (to estimate fees and check for errors), then you use `--send=yes` to actually submit and persist changes on-chain.