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

tracking issue for meta transactions #8075

Open
12 tasks done
jakmeier opened this issue Nov 17, 2022 · 7 comments
Open
12 tasks done

tracking issue for meta transactions #8075

jakmeier opened this issue Nov 17, 2022 · 7 comments
Assignees
Labels
C-tracking-issue Category: a tracking issue

Comments

@jakmeier
Copy link
Contributor

jakmeier commented Nov 17, 2022

Meta Transactions

Protocol team input required

@jakmeier jakmeier added the C-tracking-issue Category: a tracking issue label Nov 17, 2022
@jakmeier
Copy link
Contributor Author

@firatNEAR I created this issue and intend to use it to track work that is needed until we can stabilize meta transactions on a protocol level. We create a tracking issues for work on nearcore to display progress publicly. This usually starts small like now and then we just keep updating the issue as more details come in. So in theory, you should be able to check this issue and always know the current progress on meta-tx in an instant.

I know this is only a fraction of the work needed to make meta transactions useful. If you think it would make sense to track remaining integration work in this same issue, please feel free to update the description anytime and add more tasks.

Also, if necessary, we could sync the issue to Jira but I like to keep the source of truth in a public document.

@fadeevab
Copy link

@jakmeier seems like, there should be one additional task about upgrading near-api-jswith a method for creating signed Delegated actions.

@jakmeier
Copy link
Contributor Author

@jakmeier seems like, there should be one additional task about upgrading near-api-jswith a method for creating signed Delegated actions.

That's definitely a task to be done, but since it's outside nearcore and not done by the protocol team, I am undecided if we should track it here or not. @firatNEAR what do you think?

@firatNEAR
Copy link
Contributor

I think we should track the issues around tooling for meta transactions in their respective repositories to avoid confusion.

@jakmeier jakmeier self-assigned this Jan 30, 2023
@jakmeier
Copy link
Contributor Author

Following a discussion with @bowenwang1996 about who will work on what, I will start working on all the remaining issues to stabilize meta transactions listed here. Except for the RPC adapter, which shouldn't block stabilization for nearcore.

@jakmeier
Copy link
Contributor Author

Random notes about meta transactions that were not obvious to me but became clear while working with them more closely:

  • Because of the 30% contract reward, the contract owner receives up to 30% of the tokens that the relayer spends on the meta transaction. If the user calls a function call on their own contract, they will thereby make a profit. One more thing for relayers to be aware of, if they want to offer their service for free.
  • Meta transactions can be used with function access keys. In that case, they bypasses the allowance checks on these keys because the transaction is already paid for by the relayer. It also doesn't update the allowance.
  • Another consequence of the previous point: You can no longer limit the maximum gas a function access key is allowed to use. (Example: Even if you have an access key with an allowance of 0.001N ~ 10Tgas, you can still use 300Tgas in a function call with that key, if submitted through a meta transaction. Before meta transaction, this would not have been possible and could have been used to limit what the user can do with the key.)

jakmeier added a commit to jakmeier/nearcore that referenced this issue Feb 20, 2023
jakmeier added a commit that referenced this issue Feb 20, 2023
@jakmeier
Copy link
Contributor Author

Meta transactions are now ready to be included in a testnet release candidate.

I finished all open work items from my side.
The remaining work is on other teams and other code bases.

In this code base, only the Rosetta RPC is left as a TODO, which the integration team will take care of.
I will keep this issue open until that is done as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue Category: a tracking issue
Projects
None yet
Development

No branches or pull requests

3 participants