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

Onbloc x Gno Core Workshop #61

Open
dongwon8247 opened this issue Mar 25, 2024 · 0 comments
Open

Onbloc x Gno Core Workshop #61

dongwon8247 opened this issue Mar 25, 2024 · 0 comments

Comments

@dongwon8247
Copy link
Member

dongwon8247 commented Mar 25, 2024

The purpose of this workshop is to share the improvement areas of Gno that Onbloc finds necessary for upcoming testnet4 & mainnet while working on GnoSwap Contracts, GnoSwap Interface, Adena Wallet, and GnoScan. As one of the active core partners of Gno, Onbloc wants to contribute to defining important tasks for the upcoming testnet4 launch by sharing our inputs and getting assigned to some of the core tasks for the coordinated efforts.

Onbloc’s focus right now:

  • GnoSwap Open Beta: The official open beta of GnoSwap on testnet4 (and Portal Loop) where users can try it. This beta version will include enhanced Swap router APIs, an automated GRC20 registry, and better UX/UI for pool-related actions. Adding marketing efforts too to raise Gno’s awareness in the crypto community. Aiming to launch by the end of April 2024.
  • Adena: Working on v1.10.0, which includes an in-app faucet, pop-up window, injection improvement, and other minor bugs.
  • Onbloc APIs Improvements: Replace our current indexer with the Gno tx-indexer to support custom RPC networks in Adena and GnoScan.

Improvements areas of Gno:

1. JSON

  • Outline: JSON Encoder/Decoder with state machine.
  • Current Progress:
    • Finished the implementation (#1415), but it contains some inefficient workaround now that can be improved on a high level.
    • Guilhem proposed another PR (#1776), and Byeongjun thinks this would be a more efficient and better solution, but based on his work/research on JSON in #1415, he wants to modify or add features in #1776.
  • Conclusion
    • Both #1415, #1776 to be reviewed by Milos and Petar.

2. bigint (u256)

3. Emit/event

4. Tx-indexer

  • Outline:
    • Transaction Raw Content data parsing and schema-defining
    • Transaction filtering with GraphQL
    • Transaction list, Realm Package list (The GRC20 token list requires extra work from the implementer’s side)
  • Current Progress: Being mainly developed by Milos and Antonio, and Byeungjun and Jinwoo are looking into contributing it.
  • Discussions

5. Transaction Chaining

  • Outline: Running chained transactions with a single request. (such as the One-click staking feature of GnoSwap)
  • Current Progress: Issue: Transaction Chaining Method gno#1508 raised but doing it with a workaround.
  • Conclusion: Manfred recommends handling this by creating a function using a pattern for chaining conditional transactions rather than supporting this at the language level.
  • Discussions
    • GnoSwap has implemented separate functions to handle these for now.
    • A nice-to-have feature for now.
    • TODO: take a look at how other blockchains solve these.

6. Contract Versioning

7. Multi-node Initiative

8. Onchain Registry

9. DevX Improvements (setup, logs, debugging tool, tests etc)

  • Outline: Some work is being done by Byeungjun to improve the DevX.
    • Adding some functions for p/ufmt
    • Gno does not support os.Stdout, so I utilize println built-in function to access the stream buffer.
    • Add ParseFloat and add %f option for Sprintf (strconv?)
    • Fuzzing testing.F
    • Human-generated test code has limitations.
    • Using genetic algorithm to manipulate the input data (mutation-based lexical fuzzing)
      feat(stdlibs): Fuzz for String gno#1809
  • Discussions
    • To be worked on by Onbloc

10. Unknown bugs

11. Minor Pending PRs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: History
Development

No branches or pull requests

1 participant