Skip to content

Instantly share code, notes, and snippets.

@Aimeedeer
Last active January 30, 2021 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Aimeedeer/aae0d6759fb04bb30478cbf38d4d46ce to your computer and use it in GitHub Desktop.
Save Aimeedeer/aae0d6759fb04bb30478cbf38d4d46ce to your computer and use it in GitHub Desktop.
$ dfx new firsttest
The DFINITY Canister SDK sends anonymous usage data to DFINITY Stiftung by
default. If you wish to disable this behavior, then please set the environment
variable DFX_TELEMETRY_DISABLED=1. Learn more at https://sdk.dfinity.org.
Fetching manifest https://sdk.dfinity.org/manifest.json
⠋ Checking for latest dfx version...
You seem to be running an outdated version of dfx.
You are strongly encouraged to upgrade by running 'dfx upgrade'!
Version v0.6.20 installed successfully.
Creating new project "firsttest"...
CREATE firsttest/src/firsttest_assets/assets/sample-asset.txt (24B)...
CREATE firsttest/src/firsttest/main.mo (107B)...
CREATE firsttest/dfx.json (484B)...
CREATE firsttest/.gitignore (165B)...
⠐ Checking for latest dfx version...
CREATE firsttest/src/firsttest_assets/public/index.js (149B)...
CREATE firsttest/package.json (288B)...
CREATE firsttest/webpack.config.js (2.15KB)...
⠉ Checking for latest dfx version...
⠒ Checking for latest dfx version...
⠠ Installing node dependencies...
⠤ Checking for latest dfx version...
⠖ Installing node dependencies...
> fsevents@1.2.13 install /Users/aimeez/github/dfinity-project/firsttest/node_modules/watchpack-chokidar2/node_modules/fsevents
> node install.js
⠤ Checking for latest dfx version...
⠖ Checking for latest dfx version...
⠒ Checking for latest dfx version...
⠁ Checking for latest dfx version...
npm WARN firsttest_assets@0.1.0 No repository field.
npm WARN firsttest_assets@0.1.0 No license field.
⠙ Checking for latest dfx version...
13 packages are looking for funding
run `npm fund` for details
found 1 high severity vulnerability
⠒ Checking for latest dfx version...
⠂ Checking for latest dfx version...
===============================================================================
Welcome to the internet computer developer community!
You're using dfx 0.6.20
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄ ▀▄▄▄▄▄▄▄▄▄▄▄▄▀ ▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▀
▀▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀▀ ▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀
To learn more before you start coding, see the documentation available online:
- Quick Start: https://sdk.dfinity.org/docs/quickstart/quickstart-intro.html
- SDK Developer Tools: https://sdk.dfinity.org/docs/developers-guide/sdk-guide.html
- Motoko Language Guide: https://sdk.dfinity.org/docs/language-guide/motoko.html
- Motoko Quick Reference: https://sdk.dfinity.org/docs/language-guide/language-manual.html
If you want to work on programs right away, try the following commands to get started:
cd firsttest
dfx help
dfx new --help
===============================================================================
@Aimeedeer
Copy link
Author

Second try:

rm -rf firsttest/

$ dfx new firsttest
Fetching manifest https://sdk.dfinity.org/manifest.json
Creating new project "firsttest"...
CREATE       firsttest/src/firsttest_assets/assets/sample-asset.txt (24B)...
CREATE       firsttest/src/firsttest/main.mo (107B)...
CREATE       firsttest/dfx.json (484B)...
CREATE       firsttest/.gitignore (165B)...
CREATE       firsttest/README.md (1.16KB)...
CREATE       firsttest/src/firsttest_assets/public/index.js (149B)...
CREATE       firsttest/package.json (288B)...
CREATE       firsttest/webpack.config.js (2.15KB)...
⠒ Installing node dependencies...
⠁ Installing node dependencies...
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
⠁ Installing node dependencies...
⠋ Installing node dependencies...

> fsevents@1.2.13 install /Users/aimeez/github/dfinity-project/firsttest/node_modules/watchpack-chokidar2/node_modules/fsevents
> node install.js
⠒ Installing node dependencies...
⠲ Installing node dependencies...
⠉ Installing node dependencies...
⠲ Installing node dependencies...
npm WARN firsttest_assets@0.1.0 No repository field.
npm WARN firsttest_assets@0.1.0 No license field.

⠄ Installing node dependencies...

13 packages are looking for funding
  run `npm fund` for details

found 1 high severity vulnerability
⠄ Installing node dependencies...


   ╭─────────────────────────────────────────────────────────────────╮
   │                                                                 │
   │      New patch version of npm available! 6.14.8 → 6.14.11       │
   │   Changelog: https://github.com/npm/cli/releases/tag/v6.14.11   │
   │                Run npm install -g npm to update!                │
   │                                                                 │
   ╰─────────────────────────────────────────────────────────────────╯
  Done.
Creating git repository...

===============================================================================
        Welcome to the internet computer developer community!
                        You're using dfx 0.6.20

            ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄                ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄       
          ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄          ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄    
        ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  
       ▄▄▄▄▄▄▄▄▄▄▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄▄▀▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄ 
      ▄▄▄▄▄▄▄▄▀         ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀         ▀▄▄▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄▄▀            ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀             ▄▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄▄               ▀▄▄▄▄▄▄▄▄▄▄▄▄▀                ▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄▄                ▄▄▄▄▄▄▄▄▄▄▄▄                 ▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄▄               ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄              ▄▄▄▄▄▄▄▄
      ▄▄▄▄▄▄▄▄           ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄          ▄▄▄▄▄▄▄▄▀
      ▀▄▄▄▄▄▄▄▄▄▄     ▄▄▄▄▄▄▄▄▄▄▄▄▀ ▀▄▄▄▄▄▄▄▄▄▄▄▄    ▄▄▄▄▄▄▄▄▄▄▄ 
       ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀     ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀  
         ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀         ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄    
           ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀▀             ▀▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀      
              ▀▀▀▀▀▀▀▀▀▀▀                    ▀▀▀▀▀▀▀▀▀▀▀         
     


To learn more before you start coding, see the documentation available online:

- Quick Start: https://sdk.dfinity.org/docs/quickstart/quickstart-intro.html
- SDK Developer Tools: https://sdk.dfinity.org/docs/developers-guide/sdk-guide.html
- Motoko Language Guide: https://sdk.dfinity.org/docs/language-guide/motoko.html
- Motoko Quick Reference: https://sdk.dfinity.org/docs/language-guide/language-manual.html

If you want to work on programs right away, try the following commands to get started:

    cd firsttest
    dfx help
    dfx new --help

===============================================================================

@Aimeedeer
Copy link
Author

Versions

$ dfx --version
dfx 0.6.20

Run upgrade:

$ dfx upgrade
Current version: 0.6.20
Fetching manifest https://sdk.dfinity.org/manifest.json
Already up to date

Check current version:

$ dfx --version
dfx 0.6.20

@Aimeedeer
Copy link
Author

Call the contract:

$ dfx canister call hello greet everyone
("Hello, everyone!")

$ dfx canister call 
error: The following required arguments were not provided:
    <canister-name>
    <method-name>

USAGE:
    dfx canister call [FLAGS] [OPTIONS] <canister-name> <method-name> [argument]

For more information try --help

$ dfx canister call hello
error: The following required arguments were not provided:
    <method-name>

USAGE:
    dfx canister call [FLAGS] [OPTIONS] <canister-name> <method-name> [argument]

For more information try --help

$ dfx canister call hello memememe
The Replica returned an error: code 3, message: "Canister rwlgt-iiaaa-aaaaa-aaaaa-cai has no update method 'memememe'"

$ dfx canister call hello greet
Invalid data: Unable to serialize Candid values: wrong number of argument values

$ dfx canister call hello greet memeememememme
("Hello, memeememememme!")

@Aimeedeer
Copy link
Author

$ dfx deploy --network=ic
Deploying all canisters.
Creating canisters...
Creating canister "hello"...
"hello" canister created on network "ic" with canister id: "xibue-hiaaa-aaaaa-qabza-cai"
Creating canister "hello_assets"...
"hello_assets" canister created on network "ic" with canister id: "xpasq-kqaaa-aaaaa-qabzq-cai"
Building canisters...
Building frontend...
Installing canisters...
Installing code for canister hello, with canister_id xibue-hiaaa-aaaaa-qabza-cai
Installing code for canister hello_assets, with canister_id xpasq-kqaaa-aaaaa-qabzq-cai
Deployed canisters.

@Aimeedeer
Copy link
Author

$ dfx canister --network=ic call xibue-hiaaa-aaaaa-qabza-cai cycle_balance
The Replica returned an error: code 3, message: "Canister xibue-hiaaa-aaaaa-qabza-cai has no update method 'cycle_balance'"

$ dfx canister --network=ic call xpasq-kqaaa-aaaaa-qabzq-cai cycle_balance
The Replica returned an error: code 3, message: "Canister xpasq-kqaaa-aaaaa-qabzq-cai has no update method 'cycle_balance'"

@Aimeedeer
Copy link
Author

Call succeed:

$ dfx canister --network=ic call hello greet everyone
("Hello, everyone!")

@Aimeedeer
Copy link
Author

Check balance failed:

$ dfx canister --network=ic call xibue-hiaaa-aaaaa-qabza-cai cycle_balance
The Replica returned an error: code 3, message: "Canister xibue-hiaaa-aaaaa-qabza-cai has no update method 'cycle_balance'"

$ dfx canister --network=ic call xpasq-kqaaa-aaaaa-qabzq-cai cycle_balance
The Replica returned an error: code 3, message: "Canister xpasq-kqaaa-aaaaa-qabzq-cai has no update method 'cycle_balance'"

@Aimeedeer
Copy link
Author

Try to call method by id (instead of "hello"):

$ dfx canister --network=ic call xibue-hiaaa-aaaaa-qabza-cai greet everyone
error: parser error
  ┌─ Candid argument:1:1
  │
1 │ everyone
  │ ^^^^^^^^ Unexpected token
  │
  = Expects "("

Invalid argument: Invalid Candid values: Candid parser error: Unrecognized token `Id("everyone")` found at 0:8
Expected one of "("

@Aimeedeer
Copy link
Author

Try to check balance with the name "hello" (instead of its id):

$ dfx canister --network=ic call hello cycle_balance
The Replica returned an error: code 3, message: "Canister xibue-hiaaa-aaaaa-qabza-cai has no update method 'cycle_balance'"

@Aimeedeer
Copy link
Author

Deploy locally and run the call balance command again:

$ dfx deploy
Deploying all canisters.
All canisters have already been created.
Building canisters...
Building frontend...
Installing canisters...
Installing code for canister hello, with canister_id rwlgt-iiaaa-aaaaa-aaaaa-cai
Installing code for canister hello_assets, with canister_id rrkah-fqaaa-aaaaa-aaaaq-cai
Deployed canisters.

$ dfx canister call rwlgt-iiaaa-aaaaa-aaaaa-cai cycle_balance
The Replica returned an error: code 3, message: "Canister rwlgt-iiaaa-aaaaa-aaaaa-cai has no update method 'cycle_balance'"

$ dfx canister call rrkah-fqaaa-aaaaa-aaaaq-cai cycle_balance
The Replica returned an error: code 3, message: "Canister rrkah-fqaaa-aaaaa-aaaaq-cai has no update method 'cycle_balance'"

@Aimeedeer
Copy link
Author

Aimeedeer commented Jan 25, 2021

Encounter new error when I follow this section:
https://sdk.dfinity.org/docs/quickstart/network-quickstart.html#quickstart-frontend

My URL is: https://xibue-hiaaa-aaaaa-qabza-cai.ic0.app/

The page shows (Firefox):

An error happened:

v/<@https://xibue-hiaaa-aaaaa-qabza-cai.ic0.app/bootstrap-0e838d0d6297858d1bfe.js:2:43879

@Aimeedeer
Copy link
Author

The error on Brave:

An error happened:
Error: Query failed:
  Status: rejected
  Message: IC0302: Canister xibue-hiaaa-aaaaa-qabza-cai has no query method 'retrieve'

    at r.retrieve (https://xibue-hiaaa-aaaaa-qabza-cai.ic0.app/bootstrap-0e838d0d6297858d1bfe.js:2:43879)
    at async _loadJs (https://xibue-hiaaa-aaaaa-qabza-cai.ic0.app/bootstrap-0e838d0d6297858d1bfe.js:2:245656)
    at async _main (https://xibue-hiaaa-aaaaa-qabza-cai.ic0.app/bootstrap-0e838d0d6297858d1bfe.js:2:246619)

@Aimeedeer
Copy link
Author

Aimeedeer commented Jan 25, 2021

Follow the doc: Create a new project

$ dfx deploy
Deploying all canisters.
All canisters have already been created.
Building canisters...
Building frontend...
Installing canisters...
Installing code for canister contacts, with canister_id ryjl3-tyaaa-aaaaa-aaaba-cai
replica error. attempting install
Installing code for canister contacts, with canister_id ryjl3-tyaaa-aaaaa-aaaba-cai
Installing code for canister contacts_assets, with canister_id r7inp-6aaaa-aaaaa-aaabq-cai
replica error. attempting install
Installing code for canister contacts_assets, with canister_id r7inp-6aaaa-aaaaa-aaabq-cai
Deployed canisters.

Deploy on IC:

$ dfx deploy --network ic
Deploying all canisters.
Creating canisters...
Creating canister "contacts"...
The replica returned an HTTP Error: Http Error: status 504 Gateway Timeout, content type "text/html", content: [60, 104, 116, 109, 108, 62, 13, 10, 60, 104, 101, 97, 100, 62, 60, 116, 105, 116, 108, 101, 62, 53, 48, 52, 32, 71, 97, 116, 101, 119, 97, 121, 32, 84, 105, 109, 101, 45, 111, 117, 116, 60, 47, 116, 105, 116, 108, 101, 62, 60, 47, 104, 101, 97, 100, 62, 13, 10, 60, 98, 111, 100, 121, 62, 13, 10, 60, 99, 101, 110, 116, 101, 114, 62, 60, 104, 49, 62, 53, 48, 52, 32, 71, 97, 116, 101, 119, 97, 121, 32, 84, 105, 109, 101, 45, 111, 117, 116, 60, 47, 104, 49, 62, 60, 47, 99, 101, 110, 116, 101, 114, 62, 13, 10, 60, 104, 114, 62, 60, 99, 101, 110, 116, 101, 114, 62, 110, 103, 105, 110, 120, 47, 49, 46, 49, 56, 46, 48, 32, 40, 85, 98, 117, 110, 116, 117, 41, 60, 47, 99, 101, 110, 116, 101, 114, 62, 13, 10, 60, 47, 98, 111, 100, 121, 62, 13, 10, 60, 47, 104, 116, 109, 108, 62, 13, 10]

Deploy on IC second try:

$ dfx deploy --network ic
Deploying all canisters.
Creating canisters...
Creating canister "contacts"...
"contacts" canister created on network "ic" with canister id: "wxjht-eqaaa-aaaaa-qab5q-cai"
Creating canister "contacts_assets"...
"contacts_assets" canister created on network "ic" with canister id: "5jw7w-wiaaa-aaaab-qacza-cai"
Building canisters...
Building frontend...
Installing canisters...
Installing code for canister contacts, with canister_id wxjht-eqaaa-aaaaa-qab5q-cai
Installing code for canister contacts_assets, with canister_id 5jw7w-wiaaa-aaaab-qacza-cai
Deployed canisters.

@Aimeedeer
Copy link
Author

Visit with URL: http://127.0.0.1:8000/?canisterId=ryjl3-tyaaa-aaaaa-aaaba-cai

Error on Firefox:

An error happened:

_/<@http://127.0.0.1:8000/bootstrap-70b8f66975aa20b1974d.js:2:47697

Error on Brave:

An error happened:
Error: Query failed:
  Status: rejected
  Message: IC0302: Canister ryjl3-tyaaa-aaaaa-aaaba-cai has no query method 'retrieve'

    at r.retrieve (http://127.0.0.1:8000/bootstrap-70b8f66975aa20b1974d.js:2:47697)
    at async _loadJs (http://127.0.0.1:8000/bootstrap-70b8f66975aa20b1974d.js:2:524963)
    at async _main (http://127.0.0.1:8000/bootstrap-70b8f66975aa20b1974d.js:2:525927)

Error in terminal:

Jan 25 19:09:52.603 WARN s:fscpm-uiaaa-aaaaa-aaaap-yai/n:2p24q-qnsu5-x2nux-fddu3-hovpm-knd7o-6wnmb-qwfc2-pv5nb-7tjeo-dqe/ic_http_handler/read Could not perform query on canister: IC0302: Canister ryjl3-tyaaa-aaaaa-aaaba-cai has no query method 'retrieve'

@Aimeedeer
Copy link
Author

I found out that I used the wrong id for visiting from browsers. I should use contacts_assets's canister_id r7inp-6aaaa-aaaaa-aaabq-cai instead of contacts's canister_id ryjl3-tyaaa-aaaaa-aaaba-cai. It works with URL:

http://127.0.0.1:8000/?canisterId=r7inp-6aaaa-aaaaa-aaabq-cai

@Aimeedeer
Copy link
Author

Deploy the example program Contacts on IC:

$ dfx deploy --network=ic
Deploying all canisters.
All canisters have already been created.
Building canisters...
Building frontend...
Installing canisters...
Installing code for canister contacts, with canister_id wxjht-eqaaa-aaaaa-qab5q-cai
Installing code for canister contacts_assets, with canister_id 5jw7w-wiaaa-aaaab-qacza-cai
Uploading assets to asset canister...
Deployed canisters.

The url is: https://5jw7w-wiaaa-aaaab-qacza-cai.ic0.app/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment