From 0b0ba7adf3991f3d506a9bc983addbe482644d95 Mon Sep 17 00:00:00 2001 From: Patrick Gray Date: Tue, 11 May 2021 12:05:57 -0400 Subject: [PATCH] fix: added more prominent information about waiting for contract deployment, and cleaned up style --- public/images/hello-world-confirmed.png | Bin 0 -> 53464 bytes .../hello-world-tutorial.md | 93 +++++++++++++----- 2 files changed, 68 insertions(+), 25 deletions(-) create mode 100644 public/images/hello-world-confirmed.png diff --git a/public/images/hello-world-confirmed.png b/public/images/hello-world-confirmed.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ac07d6b8167e240549a4fa9f12274d482dd621 GIT binary patch literal 53464 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 z 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 literal 0 HcmV?d00001 diff --git a/src/pages/write-smart-contracts/hello-world-tutorial.md b/src/pages/write-smart-contracts/hello-world-tutorial.md index 1014e91b..ac504cb9 100644 --- a/src/pages/write-smart-contracts/hello-world-tutorial.md +++ b/src/pages/write-smart-contracts/hello-world-tutorial.md @@ -12,9 +12,15 @@ images: ## Introduction -In the world of smart contracts, everything is a blockchain transaction. You use tokens in your wallet to deploy a smart contract in a transaction, and each call to that contract after it's published is a transaction, too. That means that at each step, tokens are being exchanged as transaction fees. This tutorial introduces you to this mode of programming, which transforms blockchains into powerful state machines capable of executing complex logic. +In the world of smart contracts, everything is a blockchain transaction. You use tokens in your wallet to deploy a smart +contract in a transaction, and each call to that contract after it's published is a transaction, too. That means that at +each step, you must exchange tokens as transaction fees. This tutorial introduces you to this mode of programming, which +transforms blockchains into powerful state machines capable of executing complex logic. -Clarity, the smart contracting language used on the Stacks Blockchain, is based on LISP and uses its parenthesized notation. Clarity is an [interpreted language](https://en.wikipedia.org/wiki/Interpreted_language), and [decidable](https://en.wikipedia.org/wiki/Recursive_language). To learn more basics about the language, see the [Introduction to Clarity](/write-smart-contracts/overview) topic. +Clarity, the smart contracting language used on the Stacks Blockchain, is a LISP-based language and uses its +parenthesized notation. Clarity is an [interpreted language](https://en.wikipedia.org/wiki/Interpreted_language), and +[decidable](https://en.wikipedia.org/wiki/Recursive_language). To learn more basics about the language, see the +[Introduction to Clarity](/write-smart-contracts/overview) topic. By the end of this tutorial, you: @@ -25,17 +31,26 @@ By the end of this tutorial, you: ## Prerequisites +This tutorial uses a virtual development environment in a browser, as such you must have a web browser capable of +running the virtual development environment, and an active internet connection for the duration of the tutorial. You +must also have a [Github account](https://www.github.com) to log in to the development environment. + ### Check the Stacks 2.0 status -The Stacks 2.0 blockchain is currently in development and could experience resets and downtimes. To make sure you're not running into any challenges related to the status of the network, please open up the [Status Checker](https://stacks-status.com/) and confirm that all systems are operational. If some systems seem to have issues, it's best to wait until they're back up before you proceed with the next steps. +The Stacks 2.0 blockchain is currently in development and could experience resets and downtimes. To make sure you're not +running into any challenges related to the status of the network, please open up the +[Status Checker](https://stacks-status.com/) and confirm that all systems are operational. If some systems seem to have +issues, it's best to wait until they're back up before you proceed with the next steps. ## Step 1: open the playground -To avoid setting things up on your machine, you can run all instructions inside a virtual container inside your browser window, using a project called Gitpod. +To avoid setting things up on your machine, you can run all instructions inside a virtual container inside your browser +window, using a project called Gitpod. **[Open this Gitpod in a new browser window](https://gitpod.io/#https://github.com/agraebe/clarity-onboarding-playground)** -Gitpod will require you to login with a Github account. Follow the steps described on the screen. Once completed, you can see code editor window: +Gitpod requires you to login with a Github account. Follow the steps described on the screen. Once completed, you can +see code editor window: ![new gitpod](/images/pages/clarity/gitpod-new.png) @@ -49,7 +64,8 @@ Using the terminal window on the bottom of the screen, run the following command npm init clarity-starter ``` -After the starter project is loaded up, you have to select a project template (using your arrow keys). Select `Hello World`, which is the default, by hitting ENTER. +After the starter project loads, select a project template with the arrow keys. Select `Hello World`, which is the +default, and press Enter. ```bash ? Select a project template: (Use arrow keys) @@ -57,13 +73,15 @@ After the starter project is loaded up, you have to select a project template (u Counter ``` -Next, you need to name the project folder. Hit ENTER to accept the default: +Next, you need to name the project folder. Press Enter to accept the default: ```bash ? Project name: (clarity-hello-world) ``` -Wait a few seconds while all project dependencies install. Once completed, you can see a new folder on the left side of the screen (`clarity-hello-world`). This is the location of your new Clarity project. Open the project folder and get familiar with the structure. +Wait while all project dependencies install. Once completed, you can see a new folder on the left side of the screen +(`clarity-hello-world`). This is the location of your new Clarity project. Open the project folder and get familiar with +the structure. ## Step 3: review the contract @@ -79,13 +97,19 @@ You can see that `()` (parentheses) enclose the program and each statement. The (ok val)) ``` -On the first line, a new public function `say-hi` is declared. Public functions are callable from other smart contracts, enabling developers to break complex tasks into smaller, simpler smart contracts (an exercise in [separating concerns](https://en.wikipedia.org/wiki/Separation_of_concerns)). +The first line of the contract declares the new public function `say-hi`. Public functions are callable from other smart +contracts, enabling developers to break complex tasks into smaller, simpler smart contracts (an exercise in +[separating concerns](https://en.wikipedia.org/wiki/Separation_of_concerns)). --> To create private functions, you would use the `define-private` keyword. Only the current smart contract can run private functions. Other contract can only call public functions. +-> To create private functions, you would use the `define-private` keyword. Only the current smart contract can run +private functions. Other contract can only call public functions. -The function doesn't take any parameters and simply returns "hello world" using the [`ok`](/references/language-functions#ok) response constructor. +The function doesn't take any parameters and simply returns "hello world" using the +[`ok`](/references/language-functions#ok) response constructor. -The second function, `echo-number`, is a [read-only function](/references/language-functions#define-read-only). Read-only functions are also public, but as the name implies, they can not change any variables or datamaps. `echo-number` takes an input parameter of the type `int`. +The second function, `echo-number`, is a [read-only function](/references/language-functions#define-read-only). +Read-only functions are also public, but as the name implies, they can not change any variables or datamaps. +`echo-number` takes an input parameter of the type `int`. -> Clarity supports a variety of other [types](/references/language-types) @@ -95,7 +119,8 @@ In the following steps, you can use this sample contract to deploy and run on th ## Step 4: create a Stacks account -The container you are using comes pre-installed with Stacks CLI. Back inside the terminal, run the following command to create a new [Stacks 2.0 account](/understand-stacks/accounts): +The container you are using comes pre-installed with Stacks CLI. Back inside the terminal, run the following command to +create a new [Stacks 2.0 account](/understand-stacks/accounts): ```bash stx make_keychain -t | json_pp > cli_keychain.json @@ -123,9 +148,11 @@ Review your new Stacks account details by opening up the file `cli_keychain.json ## Step 5: obtain testing tokens -Uploading and calling smart contracts requires you to pay network fees to process the transactions. You need to get some testnet tokens, so you can pay the fees in the next steps. +Uploading and calling smart contracts requires you to pay network fees to process the transactions using STX tokens. You +need to get some testnet tokens, so you can pay the fees in the next steps. -The **STX faucet** is an API endpoint you can call to request testnet tokens for the new account. In the terminal, run the following command: +The **STX faucet** is an API endpoint you can call to request testnet tokens for the new account. In the terminal, run +the following command: ```bash # replace with `address` property from your keychain @@ -150,7 +177,8 @@ You need to wait up to a minute for the transaction to complete. Type the follow stx balance -t ``` -Once the transaction is successfully processed, you can see that your new balance is `500000`. This equals 0.5 Stacks (STX) tokens. +Once the transaction is successfully processed, you can see that your new balance is `500000`. This equals 0.5 STX +tokens. ```json { @@ -164,7 +192,8 @@ Once the transaction is successfully processed, you can see that your new balanc ## Step 6: deploy the contract -A deployed contract on the Testnet is like a cloud function (comparable to serverless functions). It allows you to execute code remotely on the Stacks 2.0 network. +A deployed contract on the Testnet is like a cloud function (comparable to serverless functions). It allows you to +execute code remotely on the Stacks 2.0 network. Now, you can deploy the reviewed contract file (`hello-world.clar`). Inside the terminal, run the following command: @@ -180,15 +209,25 @@ The command returns a new contract deploy transaction ID: 09adc98490c9f900d3149e74322e07ff6d1bf49660a08d8104c4dc66430bc3c0 ``` -The `deploy_contract` command takes the file contents and deploys a new contract with the name `hello-world`. With that name, the fully qualified contract identifier for the new account is `STNBNMTXV9ERHEDCQA3WE2S4PTF8ANSC24EBDKS2.hello-world`. +The `deploy_contract` command takes the file contents and deploys a new contract with the name `hello-world`. With that +name, the fully qualified contract identifier for the new account is +`STNBNMTXV9ERHEDCQA3WE2S4PTF8ANSC24EBDKS2.hello-world`. + +~> Your address is different. The contract identifier is essentially a naming convention to address deployed contract. +It's based on the dot notation: `
.` + +Ideally, you should estimate the minimal fees you need to pay. Factors like the size of the contract (among others) +determine the estimate. For this tutorial, you can keep it simple and accept the default fee of `2000` (0.02 STX). -~> Your address is different. The contract identifier is essentially a naming convention to address deployed contract. It's based on the dot notation: `
.` +The testnet can take several minutes to deploy the contract. You can monitor the status of the deployment on the testnet +Explorer using the URL format `https://explorer.stacks.co/txid/?chain=testnet`. Note that you can't +complete the next step of this tutorial until the contract is confirmed in Explorer. -Ideally, you should estimate the minimal fees you need to pay. Factors like the size of the contract (amongst others) determine the estimate. For this tutorial, you can keep it simple and accept the default fee of `2000` (equals 0.02 STX). +![Hello World confirmed](/images/hello-world-confirmed.png) -You have to wait up to a minute for the contract to broadcast to the network. In the meantime, you can open the transaction with the Explorer. Notice that every deployed smart contracts' source code is publicly verifiable. +-> The contract deploy operation increases the `nonce` of your account. [Read more about nonces](/understand-stacks/network#nonces) --> Keep in mind that this operation increases the `nonce` of your account. [Read more about nonces](/understand-stacks/network#nonces) +When the contract deploy transaction is confirmed, proceed to the next step. ## Step 7: call the public method @@ -202,19 +241,23 @@ As soon as the contract deploys, you can call one of its methods. In this exampl stx call_read_only_contract_func -t hello-world echo-number ``` -The command looks up the contract method definition on the network, identifies that it requires an input parameter, and asks you for an integer to set `val`. Enter 42 and hit ENTER. +The command looks up the contract method definition on the network, identifies that it requires an input parameter, and +asks you for an integer to set `val`. Enter 42 and press Enter. ```bash 42 ``` -The method is now executed on the network. This can take a while. Once completed, the corresponding transaction contains the response with the value you just entered, `42`: +The method is now executed on the network. This can take a while. Once completed, the corresponding transaction contains +the response with the value you just entered, `42`: ```bash (ok 42) ``` -=> **Congratulations!** You can now deploy your smart contract and call public functions on the Testnet using the CLI. You just deployed your smart contract and called a public function on the testnet of the Stacks blockchain using the Stacks CLI. +=> **Congratulations!** You can now deploy your smart contract and call public functions on the Testnet using the CLI. +You just deployed your smart contract and called a public function on the testnet of the Stacks blockchain using the +Stacks CLI. With the completion of this tutorial, you now: