Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add InMemory gnoland node #1241

Merged
merged 47 commits into from
Nov 7, 2023
Merged

Conversation

gfanton
Copy link
Member

@gfanton gfanton commented Oct 12, 2023

This PR add an inMemory gnoland node for standard test.

One of the goal of this PR is to make the creation of a node for integration test easier

It will be second iteration on gnoland following #1117

It will certainly need more iterations

  • update cmd/gnoland
  • fix gnoweb using inmemory node
  • add general helper for testing node config
Contributors' checklist...
  • Added new tests, or not needed, or not feasible
  • Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory
  • Updated the official documentation or not needed
  • No breaking changes were made, or a BREAKING CHANGE: xxx message was included in the description
  • Added references to related issues and PRs
  • Provided any useful hints for running manual tests
  • Added new benchmarks to generated graphs, if any. More info here.

@gfanton gfanton self-assigned this Oct 12, 2023
@github-actions github-actions bot added the 📦 ⛰️ gno.land Issues or PRs gno.land package related label Oct 12, 2023
@codecov
Copy link

codecov bot commented Oct 12, 2023

Codecov Report

Attention: 290 lines in your changes are missing coverage. Please review.

Comparison is base (23c5b3b) 47.87% compared to head (a86eabc) 47.68%.
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1241      +/-   ##
==========================================
- Coverage   47.87%   47.68%   -0.19%     
==========================================
  Files         369      378       +9     
  Lines       62815    63655     +840     
==========================================
+ Hits        30070    30353     +283     
- Misses      30295    30845     +550     
- Partials     2450     2457       +7     
Files Coverage Δ
gno.land/cmd/gnoland/root.go 73.07% <0.00%> (+2.70%) ⬆️
gno.land/pkg/gnoland/types.go 84.37% <90.00%> (ø)
gno.land/cmd/gnoweb/main.go 60.51% <0.00%> (ø)
gno.land/pkg/integration/testing.go 25.00% <25.00%> (ø)
gno.land/pkg/integration/testing_integration.go 79.00% <76.56%> (-2.82%) ⬇️
gno.land/cmd/gnoland/start.go 80.98% <80.00%> (+3.74%) ⬆️
gno.land/pkg/gnoland/app.go 0.00% <0.00%> (ø)
gno.land/pkg/integration/testing_node.go 62.90% <62.90%> (ø)
gno.land/pkg/gnoland/genesis.go 0.00% <0.00%> (ø)
gno.land/pkg/gnoland/node_inmemory.go 0.00% <0.00%> (ø)

... and 37 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

.github/workflows/gnoland.yml Outdated Show resolved Hide resolved
@gfanton gfanton changed the title wip: add InMemory gnoland node feat: add InMemory gnoland node Oct 16, 2023
Signed-off-by: gfanton <[email protected]>
@gfanton gfanton force-pushed the feat/inmemory-gnoland branch 2 times, most recently from 39152bf to f597eda Compare October 19, 2023 13:11
@gfanton gfanton force-pushed the feat/inmemory-gnoland branch from f597eda to 7300c4e Compare October 19, 2023 14:26
Signed-off-by: gfanton <[email protected]>
@gfanton gfanton marked this pull request as ready for review October 27, 2023 20:10
@gfanton gfanton requested a review from a team as a code owner October 27, 2023 20:10
Copy link
Member

@zivkovicmilos zivkovicmilos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great 💯

Thank you for cleaning up parts of the node init flow as well 🙏

gno.land/cmd/gnoweb/main.go Outdated Show resolved Hide resolved
gno.land/pkg/gnoland/app.go Outdated Show resolved Hide resolved
gno.land/pkg/gnoland/types.go Outdated Show resolved Hide resolved
gno.land/pkg/gnoland/types.go Outdated Show resolved Hide resolved
@gfanton gfanton merged commit fb06d0a into gnolang:master Nov 7, 2023
178 checks passed
@gfanton gfanton deleted the feat/inmemory-gnoland branch November 7, 2023 12:49
gfanton added a commit to gfanton/gno that referenced this pull request Nov 9, 2023
moul added a commit to moul/gno that referenced this pull request Nov 14, 2023
moul added a commit that referenced this pull request Dec 7, 2023
Addresses
gnoswap-labs#7 (comment)

CI is red -> related/depends on #1241, #1249 (cc @gfanton).

```console
$ go test -v . -run TestTestdata/grc20-registry
=== RUN   TestTestdata
=== RUN   TestTestdata/grc20-registry
=== PAUSE TestTestdata/grc20-registry
=== CONT  TestTestdata/grc20-registry
transfer from=g1sqt92sa06ugh8nlt98kyghw83qy84paf4csyh6 to=g123456789 some-amount
    testscript.go:534: WORK=$WORK
        PATH=/nix/store/xl220d87dlnq05kiz1pjqa9snhlvr1rs-go-1.20.8/share/go/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/moul/bin:/Users/moul/.nix-profile/bin:/etc/profiles/per-user/moul/bin:/run/current-system/sw/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/moul/.local/bin:/Users/moul/.local/share/node_modules/bin:/Users/moul/go/bin:/Users/moul/.local/share/rust/cargo/bin:/Users/moul/.local/share/rust/rustup/bin:/Users/moul/.config/zsh/plugins/p10k-config
        GOTRACEBACK=system
        HOME=/no-home
        TMPDIR=$WORK/.tmp
        devnull=/dev/null
        /=/
        :=:
        $=$
        GOCOVERDIR=
        exe=
        USER_SEED_test1=source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast
        USER_ADDR_test1=g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5
        GNOROOT=/Users/moul/go/src/github.com/gnolang/gno
        GNOHOME=/var/folders/22/d9yt75bd2wv9sl3dm_lx85x80000gn/T/TestTestdata1289631443/001/gno
        
        # test for add package
        ## start a new node (1.390s)
        > gnoland start
        [stdout]
        node started successfully
        
        # add registry (0.466s)
        > gnokey maketx addpkg -pkgdir $WORK/registry -pkgpath gno.land/r/registry -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   274024
        
        [stderr]
        Enter password.
        
        # we call Transfer with foo20, before it's registered (0.454s)
        > gnokey maketx call -pkgpath gno.land/r/registry -func TransferByName -args 'foo20' -args 'g123456789' -args '42' -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        ("not found" string)
        OK!
        GAS WANTED: 2000000
        GAS USED:   73759
        
        [stderr]
        Enter password.
        
        > stdout 'not found'
        # add foo20, and foo20wrapper (0.936s)
        > gnokey maketx addpkg -pkgdir $WORK/foo20 -pkgpath gno.land/r/foo20 -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   196098
        
        [stderr]
        Enter password.
        
        > gnokey maketx addpkg -pkgdir $WORK/foo20wrapper -pkgpath gno.land/r/foo20wrapper -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   276276
        
        [stderr]
        Enter password.
        
        # we call Transfer with foo20, after it's registered (0.464s)
        > gnokey maketx call -pkgpath gno.land/r/registry -func TransferByName -args 'foo20' -args 'g123456789' -args '42' -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        ("same address, success!" string)
        OK!
        GAS WANTED: 2000000
        GAS USED:   132948
        
        [stderr]
        Enter password.
        
        > stdout 'same address, success!'
        PASS
        
--- PASS: TestTestdata (0.01s)
    --- PASS: TestTestdata/grc20-registry (4.09s)
PASS
ok  	github.com/gnolang/gno/gno.land/cmd/gnoland	(cached)
```

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: Guilhem Fanton <[email protected]>
Co-authored-by: Hariom Verma <[email protected]>
gfanton added a commit to moul/gno that referenced this pull request Jan 18, 2024
…ng#1262)

Addresses
gnoswap-labs#7 (comment)

CI is red -> related/depends on gnolang#1241, gnolang#1249 (cc @gfanton).

```console
$ go test -v . -run TestTestdata/grc20-registry
=== RUN   TestTestdata
=== RUN   TestTestdata/grc20-registry
=== PAUSE TestTestdata/grc20-registry
=== CONT  TestTestdata/grc20-registry
transfer from=g1sqt92sa06ugh8nlt98kyghw83qy84paf4csyh6 to=g123456789 some-amount
    testscript.go:534: WORK=$WORK
        PATH=/nix/store/xl220d87dlnq05kiz1pjqa9snhlvr1rs-go-1.20.8/share/go/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/moul/bin:/Users/moul/.nix-profile/bin:/etc/profiles/per-user/moul/bin:/run/current-system/sw/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/moul/.local/bin:/Users/moul/.local/share/node_modules/bin:/Users/moul/go/bin:/Users/moul/.local/share/rust/cargo/bin:/Users/moul/.local/share/rust/rustup/bin:/Users/moul/.config/zsh/plugins/p10k-config
        GOTRACEBACK=system
        HOME=/no-home
        TMPDIR=$WORK/.tmp
        devnull=/dev/null
        /=/
        :=:
        $=$
        GOCOVERDIR=
        exe=
        USER_SEED_test1=source bonus chronic canvas draft south burst lottery vacant surface solve popular case indicate oppose farm nothing bullet exhibit title speed wink action roast
        USER_ADDR_test1=g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5
        GNOROOT=/Users/moul/go/src/github.com/gnolang/gno
        GNOHOME=/var/folders/22/d9yt75bd2wv9sl3dm_lx85x80000gn/T/TestTestdata1289631443/001/gno
        
        # test for add package
        ## start a new node (1.390s)
        > gnoland start
        [stdout]
        node started successfully
        
        # add registry (0.466s)
        > gnokey maketx addpkg -pkgdir $WORK/registry -pkgpath gno.land/r/registry -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   274024
        
        [stderr]
        Enter password.
        
        # we call Transfer with foo20, before it's registered (0.454s)
        > gnokey maketx call -pkgpath gno.land/r/registry -func TransferByName -args 'foo20' -args 'g123456789' -args '42' -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        ("not found" string)
        OK!
        GAS WANTED: 2000000
        GAS USED:   73759
        
        [stderr]
        Enter password.
        
        > stdout 'not found'
        # add foo20, and foo20wrapper (0.936s)
        > gnokey maketx addpkg -pkgdir $WORK/foo20 -pkgpath gno.land/r/foo20 -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   196098
        
        [stderr]
        Enter password.
        
        > gnokey maketx addpkg -pkgdir $WORK/foo20wrapper -pkgpath gno.land/r/foo20wrapper -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        
        OK!
        GAS WANTED: 2000000
        GAS USED:   276276
        
        [stderr]
        Enter password.
        
        # we call Transfer with foo20, after it's registered (0.464s)
        > gnokey maketx call -pkgpath gno.land/r/registry -func TransferByName -args 'foo20' -args 'g123456789' -args '42' -gas-fee 1000000ugnot -gas-wanted 2000000 -broadcast -chainid=tendermint_test test1
        [stdout]
        ("same address, success!" string)
        OK!
        GAS WANTED: 2000000
        GAS USED:   132948
        
        [stderr]
        Enter password.
        
        > stdout 'same address, success!'
        PASS
        
--- PASS: TestTestdata (0.01s)
    --- PASS: TestTestdata/grc20-registry (4.09s)
PASS
ok  	github.com/gnolang/gno/gno.land/cmd/gnoland	(cached)
```

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: Guilhem Fanton <[email protected]>
Co-authored-by: Hariom Verma <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 ⛰️ gno.land Issues or PRs gno.land package related
Projects
Status: 🌟 Wanted for Launch
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants