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(gnoland): Define NoopMsg to facilitate the creation of sponsor transaction (gasless transaction) #2209

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

linhpn99
Copy link
Contributor

@linhpn99 linhpn99 commented May 27, 2024

Update 2024-06-19 : This PR is in the process of refactoring the sponsor transaction section. It will be open for review when completed
Update 2024-06-26 : Ready to review
Update 2024-07-25 : The sponsor transaction section has been moved to #2630

From Proposal #2152:

This PR Introduces a new message type vm.MsgNoop: a type of message that does not trigger any logic processing in the vmHandler

Related Pull Requests:

  1. feat(examples): Implement sponsors (p+r) for sponsor service management #2411: This pull request introduces a set (p+r) to manage onchain sponsor services
  2. feat(gnoland): Define and implement SponsorTransaction concept #2630: This pull request enhances the gnoclient by introducing the ability to create and send a sponsor transaction through the definition of a noopMsg
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.

@linhpn99 linhpn99 marked this pull request as draft May 27, 2024 06:53
@github-actions github-actions bot added the 📦 ⛰️ gno.land Issues or PRs gno.land package related label May 27, 2024
@linhpn99 linhpn99 changed the title WIP: define NoopMsg feat(gnovm):define NoopMsg May 27, 2024
@linhpn99 linhpn99 changed the title feat(gnovm):define NoopMsg feat(gnovm): define NoopMsg May 27, 2024
Copy link

codecov bot commented May 27, 2024

Codecov Report

Attention: Patch coverage is 68.75000% with 15 lines in your changes missing coverage. Please review.

Project coverage is 60.32%. Comparing base (e5c1152) to head (1bf3ebb).

Files Patch % Lines
tm2/pkg/sdk/testutils/testutils.go 46.15% 7 Missing ⚠️
gno.land/pkg/sdk/vm/msgs.go 53.84% 6 Missing ⚠️
tm2/pkg/std/tx.go 83.33% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2209      +/-   ##
==========================================
+ Coverage   60.21%   60.32%   +0.10%     
==========================================
  Files         562      562              
  Lines       75038    75084      +46     
==========================================
+ Hits        45184    45294     +110     
+ Misses      26479    26409      -70     
- Partials     3375     3381       +6     
Flag Coverage Δ
contribs/gnodev 60.58% <ø> (-0.82%) ⬇️
contribs/gnofaucet 14.46% <ø> (-0.86%) ⬇️
gno.land 65.12% <60.00%> (+0.54%) ⬆️
gnovm 64.33% <ø> (ø)
misc/genstd 80.54% <ø> (ø)
misc/logos 20.23% <ø> (+0.35%) ⬆️
tm2 62.24% <72.72%> (+0.30%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@linhpn99
Copy link
Contributor Author

linhpn99 commented May 27, 2024

From issue #2182
@moul should i implement MsgNoop like this PR ?
If you have free time, please take a look and give me feedback if there is anything unreasonable so we can move forward

@thehowl
Copy link
Member

thehowl commented May 27, 2024

Can you explain why you need this?

@linhpn99
Copy link
Contributor Author

linhpn99 commented May 27, 2024

Can you explain why you need this?

I want a feature where a user who owns the native token (sponsor) can cover the gas fees for a user who does not own the native token (sponsoree), allowing them to perform on-chain actions with their messages (such as calling a realm function)

detail here : #2152 & #2630

@moul moul changed the title feat(gnovm): define NoopMsg feat(gnoland): define NoopMsg May 27, 2024
Copy link
Member

@moul moul left a comment

Choose a reason for hiding this comment

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

The goal of NoopMsg is to be a message that does nothing and is as small as possible once transmitted and stored.
Then, we can use it in multi-message transactions to experiment with gas sponsorship.

@linhpn99 linhpn99 requested a review from moul May 28, 2024 03:40
@linhpn99 linhpn99 marked this pull request as ready for review May 28, 2024 16:26
@github-actions github-actions bot added the 📦 🌐 tendermint v2 Issues or PRs tm2 related label May 29, 2024
@linhpn99 linhpn99 requested a review from a team as a code owner May 29, 2024 16:57
@linhpn99 linhpn99 changed the title feat(gnoland): define NoopMsg feat(gnoland): define NoopMsg for gnoclient May 30, 2024
@linhpn99 linhpn99 changed the title feat(gnoland): define NoopMsg for gnoclient feat(gnoclient): define NoopMsg to Support Creating Gas-Free Transactions May 30, 2024
@linhpn99 linhpn99 changed the title feat(gnoclient): define NoopMsg to Support Creating Gas-Free Transactions feat(gnoclient): define NoopMsg to support creating gasless transactions May 30, 2024
@linhpn99 linhpn99 requested a review from a team as a code owner June 4, 2024 03:29
@linhpn99 linhpn99 changed the title feat(gnoclient): define NoopMsg to support creating gasless transactions feat(gnoclient): define NoopMsg to support creating sponsorship transactions Jun 4, 2024
@linhpn99 linhpn99 changed the title feat(gnoclient): define NoopMsg to support creating sponsorship transactions feat(gnoclient): Define NoopMsg to facilitate the creation of sponsorship transactions Jun 4, 2024
@github-actions github-actions bot added 🧾 package/realm Tag used for new Realms or Packages. 📦 🤖 gnovm Issues or PRs gnovm related labels Jul 25, 2024
@linhpn99 linhpn99 changed the title feat(gnoland): Define NoopMsg to facilitate the creation of gas sponsorship transactions feat(gnoland): Define NoopMsg to facilitate the creation of sponsor transaction (gasless transaction) Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 🌐 tendermint v2 Issues or PRs tm2 related 📦 ⛰️ gno.land Issues or PRs gno.land package related 📦 🤖 gnovm Issues or PRs gnovm related 🧾 package/realm Tag used for new Realms or Packages.
Projects
Status: In Progress
Status: 🫂 Chores
Status: In Review
Development

Successfully merging this pull request may close these issues.

4 participants