# Gno.land Developer Weekly (Contributor Edition) <!-- instructions, please, do not touch --> ## 31.07.2024 ### Var Meta #### Contributing: - Gno route package [#2594](https://github.com/gnolang/gno/pull/2594), fixes for `gnokey verify` [#2333](https://github.com/gnolang/gno/pull/2333) - VM: [zero Address](https://github.com/gnolang/gno/pull/2401), [gno test gas used](https://github.com/gnolang/gno/pull/2571) - GnoClient: **Define new SponsorTransaction** [#2630](https://github.com/gnolang/gno/pull/2630), Add Transaction's methods [#2643](https://github.com/gnolang/gno/pull/2643) - Gnoland/TM2: **Define new MsgNoop** [#2209](https://github.com/gnolang/gno/pull/2209), Basic Authen for HTTPClient [#2590](https://github.com/gnolang/gno/pull/2590), Fix endpoint /tx [#2518](https://github.com/gnolang/gno/pull/2518), Enhance GRC20 factory [#2607](https://github.com/gnolang/gno/pull/2607) #### Sponsor feature live demo - As in last dev call idea, we already completed Dev phase of sponsor service and created PRs in these related projects: [`gno-js-client`](https://github.com/gnolang/gno-js-client/pull/140), [`tm2-js-client`](https://github.com/gnolang/tm2-js-client/pull/172), [`tx-indexer`](https://github.com/gnolang/tx-indexer/pull/73) and [`adena-wallet`](https://github.com/onbloc/adena-wallet/pull/540). We also have front-end and back-end samples for who want to be sponsor :) These all PRs base on PRs in `Gno` which is being reviewed, all are about creating the definitions, handlers and validating the [`sponsor-message`](https://github.com/gnolang/gno/pull/2209) and [`sponsor-transaction concept`](https://github.com/gnolang/gno/pull/2630) #### Gno Naming Service - General purpose: Helping people can interact with our chain without remembering exactly on-chain addresses. More information [@here](https://github.com/gnolang/hackerspace/issues/73) - Flow: User send token to `human-readable-name` -> wallet query to `on-chain` resolver to get `real-address` -> making transaction. - Current status: Designed Interfaces. Going to implement for each interface. ### Teritori - GnoVM **Updates:** - **Stacktrace PR**: Addressed comments for the stacktrace PR. - **Length Check PR**: Addressed comments for the missing length check in value declaration. - **New Issues Created**: - **Incorrect Variable Assignment**: [Issue #2637](https://github.com/gnolang/gno/issues/2637) (Closed by [PR #2206](https://github.com/gnolang/gno/pull/2206)) - **Panic on Type Assertion with Interface**: [Issue #2636](https://github.com/gnolang/gno/issues/2636) - **Constant Declaration with Slice Type Compiles Without Error**: [Issue #2628](https://github.com/gnolang/gno/issues/2628) - **Merged PR**: Missing length check in value declaration: [PR #2206](https://github.com/gnolang/gno/pull/2206) **Pending PRs:** - **Add Stacktrace Functionality and Replace (Some) Uses of Machine.String**: [PR #2145](https://github.com/gnolang/gno/pull/2145) - **Avoid Instantiation of Banker on Pure Package**: [PR #2248](https://github.com/gnolang/gno/pull/2248) - Gno Lint **Pending PRs:** - **Lint All Files in Folder Before Panicking**: [PR #2202](https://github.com/gnolang/gno/pull/2202) - Waiting for review and merge. - Teritori DAPP: Social Feed Map allowing to browse a gno social feed by exploring a world map UI. Geolocation is optional, and the address is chosen manually by the user, not automatically by device localization, to protect users while allowing them to view the community in a region, or have fun colonizing an area in groups of gnomees. **Updates:** - **Map Post Publisher**: Implemented a feature to publish posts with geolocations. - **Indexing Posts**: - Posts are indexed using the [tx-indexer](https://github.com/gnolang/tx-indexer/). - The tx-indexer runs as an independent service, and we use its GraphQL endpoint to sync all posts to our own database. - Detailed process: [Documentation](https://hackmd.io/K7rz-WIvTn6sDNEWglR-tQ). ### Onbloc - Opened two PRs in tx-indexer to improve GnoScan by Jinwoo. - [feat: add cursor-based pagination options #72](https://github.com/gnolang/tx-indexer/pull/72) - [feat: filtering transaction messages by multiple conditions #74](https://github.com/gnolang/tx-indexer/pull/74) - Adena SDK discussion started by Reza and Reza made a PoC version of [the Adena SDK](https://github.com/RezaRahemtola/adena-sdk-ts). We want to develop it further together and create an NPM package also. - tlin: Advanced lint for gno by Byeungjoon is ready to be used! https://github.com/gnoswap-labs/tlin - Full updates: https://github.com/gnolang/hackerspace/issues/29#issuecomment-2260503696 ### Berty - Jeff: (related to Gnokey Mobile developement) Update gnoclient API: Separate make, sign and broadcast tx [PR2641](https://github.com/gnolang/gno/pull/2641) - Iuri: dSocial update: new features: - New version - try it out! - usernames and keys in the app are now in sync with r/demo/users - clickable @mentions, http://web-links and email@addresses - new debug tool - Profile Pic feature (still cooking) - r/demo/profile: Standard for Avatar field [issue 2598](https://github.com/gnolang/gno/issues/2598) ### Dragos - Flippando PR to be integrated in the gnoland codebase (including airdrop backend): - https://github.com/gnolang/gno/pull/2648 - Zentasktic PR to be integrated in the gnoland codebase: - https://github.com/gnolang/gno/pull/2647 - Flippando UI updated, including Simple, Airdrop and AI canvas: - https://gno.flippando.xyz - Flippando airdrop checker demo (not live) - ZenTasktic Project questions: - creating a separate realm p/demo/teams acting as a base layer for team functionality (add, edit, remove team name, team members). A team should have its own address. Zentasktic Team realm will enrich this package. Thoughts? - pros and cons for wrapping Actors on top of p/demo/users same as above? - Rewards Points - what's the closest represenation we already have on chain and how do we wrap on top of it? Game of Realms? - Deployment question: what are the best practices for initializing a specific account on a server, to be used as the caller in a web app? Ex: hackerville.xyz is a next.js app, that needs to interact with a Gno contract that only accepts a specific account. The wallet used by hackerville.xyz needs to be initialized with a specific mnemonic. Thoughts on ansible-vault? (I already know Adena is the best way to go, just asking for a specific use case when I still use gno-js/tm-js libraries) ### PoC Students - **Projects** - [openocean](https://github.com/Molaryy/openocean) - **Contributions** - Raised an issue on [gno test having a default realm balance](https://github.com/gnolang/gno/issues/2595) which isn't the case for other scopes like `dev` or `testN` - Opened a PR to fix [a bug with the gnoscan search feature](https://github.com/onbloc/gnoscan/pull/98) ### Welcome all contributors ## 17.07.2024 ### Berty - Validator Node: - ⏸️ Status: waiting for new instructions to submit our Node - ❓ Question: What does a "Sentry" node do? Should we set one up now? - Reminder: PR to review: https://github.com/gnolang/gno/pull/2578 - dSocial latest: - ✅ Iuri: UX Improvement - syncing username with r/demo/users - ✅ Iuri: New Dev Tool for React Native - ✅ Remi: Update on notifications. Try it! - ✅ Jeff: Updated dSocial node with new gnodev (use less memory) - Gno Native Kit: - ✅ Jeff: Updated to use new qEval syntax - Gnokey Mobile: - 🏗️ Work started! ...with Alexis :D ### Teritori - Teritori Node Updates: - Node Setup and Monitoring: We have successfully set up Gno nodes for test4 (validator + sentry) and added alerting mechanisms to monitor the nodes' status and ensure they remains operational. - Test 4 Deployed social_feeds realm on test4 UI: https://app.teritori.com/feed?network=gno-test4 Gnoweb: https://test4.gno.land/r/teritori/social_feeds:teritori - GnoVM Updates: - Comment Fixes on Length Check: Made corrections to comments on the missing length check in value declaration: [PR #2206](https://github.com/gnolang/gno/pull/2206). - Annotate Specific Reason for Interface Non-Implementation: Added annotations to specify the reason a value does not implement an interface. The PR has been approved and is waiting for merge: [PR #2492](https://github.com/gnolang/gno/pull/2492). Pending PRs: - Add Stacktrace Functionality: [PR #2145](https://github.com/gnolang/gno/pull/2145). - Avoid Instantiation of Banker on Pure Package: [PR #2248](https://github.com/gnolang/gno/pull/2248). - Missing Length Check in Value Declaration: [PR #2206](https://github.com/gnolang/gno/pull/2206). - Gno Lint Pending PRs: - Lint All Files in Folder Before Panicking: [PR #2202](https://github.com/gnolang/gno/pull/2202) - Waiting for review and merge. - Gno CI Updates: - Gno Lint Action: We are implementing a POC Gno lint action to detect and report issues using the same mechanism as the golint-action. The temporary repository can be found [here](https://github.com/omarsy/gno-lint-action). Hope we will have a demo next call Blockers: - Required PR for Linting: We need [PR #2202](https://github.com/gnolang/gno/pull/2202) to be merged. This PR enables linting of all files when running 'gno lint'. ### Dragos - Zentasktic - ✅ zentasktic core deployed on test4. Use it at https://gno.zentasktic.com/core - ✅ validator node https://rpc.irreverentsimplicity.xyz/ up and running, currently synced and waiting for gov / proposal instructions - ✅ node above addedd to the list of persistent peers in test 4 `config.toml`, PR: https://github.com/gnolang/gno/pull/2577 merged - ✅ ~~syncing~~ a new development node for test4 (former flippando node) - ❓ how can I have just a consumer node (i.e. syncing with the main validators node, but not being used as a peer). Is this what a sentry node is intended to do? - ❓ how can I deploy a `p/` or `r` namespace? the current `p/zentasktic` package is deployed on a user address: `gno.land/p/g17ernafy6ctpcz6uepfsq2js8x2vz0wladh5yc3/zentasktic`, same for the realm: `gno.land/r/g17ernafy6ctpcz6uepfsq2js8x2vz0wladh5yc3/zentasktic_core`. The idea is to have something like `p/demo/zentasktic`, or, even better, `p/apps/zentasktic`. Same for `p/games/flippando`. - kind reminder about 2 new repos for flippando & zentasktic codebases - Flippando - ⏸️ on hold, waiting to integrate the upgraded grc721 / grc20 in test4 ### Var Meta About ongoing PRs, we currently have: 0. Title: `/p/demo/mux supports query strings` issue: https://github.com/gnolang/gno/issues/2585 PR: https://github.com/gnolang/gno/pull/2594 Status: **Reviewing** 1. Title: `ZeroAddress` issue: https://github.com/gnolang/gno/issues/2316 PR: https://github.com/gnolang/gno/pull/2401 Status: **Reviewing** 2. Title: `gasUsed` instead of time in `gno test` issue: https://github.com/gnolang/gno/issues/1998 PR: https://github.com/gnolang/gno/pull/2571 Status: **Reviewing** 3. Title: `Verify` and `Sign` functions now are not a pair issue: https://github.com/gnolang/gno/issues/2311 https://github.com/gnolang/gno/issues/2272 PR: https://github.com/gnolang/gno/pull/2333 Status: **Waiting for review** 4. Title: NoopMsg - Support for sponsoring things (Keypoint PR) issue: https://github.com/gnolang/gno/issues/2152 PR: https://github.com/gnolang/gno/pull/2209 https://github.com/gnolang/gno/pull/2411 Status: **Reviewing** 5. Title: Add missing unit tests for tm2/pkg/crypto/client PR: https://github.com/gnolang/gno/issues/2350 Status: **WIP** 6. Title: Print out the transaction hash when maketx executes successfully issue: https://github.com/gnolang/gno/issues/2303 PR: https://github.com/gnolang/gno/pull/2309 Status: **Reviewing** 7. Title: Define Ownable and Transferrable Interfaces issue: https://github.com/gnolang/gno/issues/2193 PR: https://github.com/gnolang/gno/pull/2198 Status: **Reviewing** 8. Title: Implement Basic Authentication in HTTP Client issue: https://github.com/gnolang/gno/issues/2450 PR: https://github.com/gnolang/gno/pull/2590 Status: **Reviewing** 9. Title: Fix request_id mismatch at http client PR: https://github.com/gnolang/gno/pull/2589 Status: **Waiting for review** 10. Title: Fix the endpoint /tx?hash= to make it work issue: https://github.com/gnolang/gno/issues/2489 PR: https://github.com/gnolang/gno/pull/2518 Status: **Waiting for review** Beside contributing with PRs, We are now have ideas about: - Sponsor service - supporting wallets make a sponsor transaction (already demo, verifying flow with adena dev team) - we propose creating `gno.land/p/demo/orderbook` as a standard example for the Gno.land. This will enable dapp developers to build and deploy their own trading exchanges efficiently. Here is our implementation idea : ``` type Order struct { ID string Type OrderType Price float64 Quantity float64 Timestamp time.Time } type OrderBook interface { // AddOrder adds a new order to the order book AddOrder(order Order) error // RemoveOrder removes an existing order from the order book by its ID RemoveOrder(orderID string) error // GetOrder retrieves an order from the order book by its ID GetOrder(orderID string) (*Order, error) // GetBestBid returns the highest bid (buy) order in the order book GetBestBid() (*Order, error) // GetBestAsk returns the lowest ask (sell) order in the order book GetBestAsk() (*Order, error) // GetOrderBookSnapshot returns a snapshot of the current state of the order book GetOrderBookSnapshot() ([]Order, error) // MatchOrders matches buy and sell orders in the order book MatchOrders() ([]Order, error) } ``` - A proposal about Gno Name Service: https://github.com/gnolang/hackerspace/issues/73 This project aims to develop a service that maps wallet addresses to specific names, such as `yourname.gno` -> `g1xxx...`, on the Gno.land platform. This will help users, dapps, wallet... in managing addresses. ### Onbloc - Product updates regarding testnet4 - GnoScan - Testnet4 & Portal Loop Integration - Fully customizable with any Gno RPC & Tx-indexer - gnoEvent support - Adena - Testnet4 Integration - Added support for custom tx-indexer - Updated explore menu - GnoSwap - Deployed realms on testnet4 - GnoSwap Beta on testnet4 will be coming up next week - Testnet4 feedback - Good: - It was great to get a heads up from the Gno team on breaking changes so that we were able to prepare accordingly. - The chain feels very lively with multi nodes and faster block time. It's also great to have more nodes for making `abci_query` - Suggestion: - Add Multicall to RPC > Reduce the number of individual ABCI queries when fetching the balance of all GRC20 tokens for users - Add more getter functions to the FOO20 demo realm supported in the GRC20 package: Name / Symbol / Decimals / # of Holders > would come in handy for dApps that display GRC20 token info - What do you think about adding a pagination and sorting feature to the tx-indexer? (by Jinwoo) - Have a safer way to read on-chain data from off-chain (by Blake) - Upgradable Realm ### Antonio - Shiken - Adding random tests instead of default ones - Refining the website for better UX ### Rouen Students (grants proram) - GnoPool ### PoC Students - **Projects** - Available on test4 - [gno-forms](https://github.com/agherasie/gno-forms) / [web-app](https://gno-forms.netlify.app/) - [gno-disperse](https://github.com/agherasie/gno-disperse) / [web-app](https://gno-disperse.netlify.app/) - Soon in test4 - [openocean](https://github.com/Molaryy/openocean) - **Contributions** - Raised an issue on [gno test having a default realm balance](https://github.com/gnolang/gno/issues/2595) which isn't the case for other scopes like `dev` or `testN` - Opened a PR to fix [a bug with the gnoscan search feature](https://github.com/onbloc/gnoscan/pull/98) ### All contributors welcome to add ## 03.07.2024 ## Team Contributors ### Onbloc * Testnet4 related work merged: * docs: new validator docs (+ updated docs for gnoland cli) [#2285](https://github.com/gnolang/gno/pull/2285) * feat(stdlibs/std): restrict Banker methods based on caller of GetBanker [#1921](https://github.com/gnolang/gno/pull/1921) * refactor(stdlibs/std): re-organize gnoEvent struct [#2160](https://github.com/gnolang/gno/pull/2160) * [Generic support experiment](https://github.com/notJoon/generic) by Byeongjun * Applying `onbloc-api` in GnoScan to support custom RPC networks (+custom indexers) will be done by the end of this week * Also adding gnoEvent information in upcoming GnoScan * Looking into finding the best way to support events tree (events in depth) in GnoScan. One possible way is to have getlog RPC call in Gno so it can be used in tx-indexer to support this functionality. You can find the discussion [here](https://github.com/gnolang/gno/issues/2437). * For the coming weeks, we will be focusing on supporting testnet4 with valiadator, deploying Adena & GnoScan and developing GnoSwap's [governance contracts](https://github.com/gnoswap-labs/governance). ### Berty * Update on Notifications for dSocial / Remi * Our Gnokey Mobile proposal includes using "account session keys". Is this feature planned for Test4? An issue will be open, but it will not be included in the Test4 release. * How to move forward with PRs that demonstrate a bug? * deleting an imported key deletes the old key https://github.com/gnolang/gno/pull/2472 * deleting a second key by address doesn’t delete the first key with the same address https://github.com/gnolang/gno/pull/2476 * Related: PR to register a random free name https://github.com/gnolang/gno/pull/2486 ### Var Meta - [Adena Wallet x tm2] SPONSOR Service demo video - Introduce the service and Q&A 1. Title: `ZeroAddress` issue: https://github.com/gnolang/gno/issues/2316 Des: - provide `g100000000000000000000000000000000dnmcnx` as ZeroAddress as `std.ZeroAddress` or `genesis`. - Init an Account for ZeroAddress when chain starts (?) - Additional, considering that the `banker.Remove()` should substract burner's coins and **add this corresponding amount into `ZeroAddress`**. Status: **WIP** - Making some realm usecases. 2. Title: `gasUsed` instead of time in `gno test` issue: https://github.com/gnolang/gno/issues/1998 PR: **WIP** due to [#2149](https://github.com/gnolang/gno/issues/1998) is reviewed and discussed. Des: Want to expose gas used in unit test, then add it into `gno test -cover` Status: **WIP** 3. Title: `Verify` and `Sign` functions now are not a pair issue: https://github.com/gnolang/gno/issues/2311 https://github.com/gnolang/gno/issues/2272 PR: https://github.com/gnolang/gno/pull/2333 Des: This PR changes the Verify() to read the signed doc, verify the exactly original message hash that was signed. It also adds chainid, account-number, account-sequence config flag to the gnokey verify command. The sign function now expose the hex-format of signature to the IO in oder to feed the verify as an argument. I think we need better way for user to verify their signed document, which currently need this hex-format Status: **Waiting for review** 4. Title: Define NoopMsg to facilitate the creation of gas sponsorship transactions issue: https://github.com/gnolang/gno/issues/2152 PR: https://github.com/gnolang/gno/pull/2209 Des: define SponsorTransaction which contains a NoopMsg and a specific Std.Msg to pay fee on behalf of someone. Details inside the PR Status: **Waiting for review** 5. Title: Add missing unit tests for tm2/pkg/crypto/client PR: https://github.com/gnolang/gno/issues/2350 Status: **WIP** 6. Title: Print out the transaction hash when maketx executes successfully issue: https://github.com/gnolang/gno/issues/2303 PR: https://github.com/gnolang/gno/pull/2309 Status: **Under reviewing** 7. Title: Return error when getting keypair information issue: https://github.com/gnolang/gno/issues/2133 PR: https://github.com/gnolang/gno/pull/2300 Des: panic when getting a non-existed key name from keybase Status: **Merged** 8. Title: Define Ownable and Transferrable Interfaces issue: https://github.com/gnolang/gno/issues/2193 PR: https://github.com/gnolang/gno/pull/2198 Des: refactoring p/ownable from a struct with a specific implementation to a more minimal interface Status: **Under reviewing** 9. Title: Use uassert/urequire instead of testing in some demo packages issue: https://github.com/gnolang/gno/issues/2481 PR: https://github.com/gnolang/gno/pull/2491 Status: **Waiting for review** ### Dragos - end to end basic task flow demo for ZenTasktic (10-15 minutes) - next weeks plans: end to end enhance task flow demo for ZenTasktic, with Teams, Actors and Points ### Teritori - Teritori Realms - Updated realms and uis after upstream breaking changes - Added continuous integration for Gno lint and Gno test in Teritori's monorepo with workaround (injecting our packages into a fresh gno repo during CI) - Core tools are still not fully supporting usage outside of gno monorepo (namely `gno transpile`, `gno lint`, `gno test`, `gnopls`), we are making patches to explore various way to properly support external repos with multiple packages/realms, we will open issues/PRs with promising patterns in the coming weeks First workarounds: - [copy packages in a gno repo before `gno lint` and `gno test`](https://github.com/TERITORI/teritori-dapp/pull/1232/files#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R421) - [support extra package roots in `gno transpile` via args](https://github.com/TERITORI/gno/pull/21) - [support extra package roots in `gnopls` via `GOSRCPATHS` env](https://github.com/TERITORI/gnopls/pull/1) - GnoVM - New PRs: - Recover Not Working Correctly with Runtime Panics: Addressed an issue with runtime panics in Gnolang. Waiting for review and merge: [PR #2484](https://github.com/gnolang/gno/pull/2484). - Annotate `does not implement` preprocessing error: Started throwing ideas about how to tackle this (**Early draft**) [PR #2206](https://github.com/gnolang/gno/pull/2492). - Still Waiting Reviews: - Add Stacktrace Functionality: Implemented stacktrace functionality and replaced some uses of `Machine.String`. Currently under review: [PR #2145](https://github.com/gnolang/gno/pull/2145). - Avoid Instantiation of Banker on Pure Package: This improvement is still awaiting review and merge: [PR #2248](https://github.com/gnolang/gno/pull/2248). - Missing Length Check in Value Declaration: This fix is awaiting review and merge: [PR #2206](https://github.com/gnolang/gno/pull/2206). - Gno lint - Still Waiting Reviews: - Lint All Files in Folder Before Panicking: Ensured all files in a folder are linted before the process panics. Waiting for review and merge: [PR #2202](https://github.com/gnolang/gno/pull/2202). ### Antonio * https://github.com/gfant/shiken-realm ### Student contributors #### PoC - gnovox (Medium-like) MVP demo (https://github.com/RezaRahemtola/gnovox) - Proposed to enhance Adena tooling with a new method and a library/SDK - https://github.com/onbloc/adena-wallet/issues/525 - https://github.com/onbloc/adena-wallet/issues/526 - [openocean](https://github.com/Molaryy/openocean) (Opensea clone) ## 19.06.2024 ### Berty - dSocial demo - How to keep the keystore in sync with r/demo/users https://github.com/gnolang/dsocial/issues/72 - Quick update on dSocial Notification progress ### Onbloc - Testnet 4 Launch Contributions - Validator Docs https://github.com/gnolang/gno/pull/2285 - Testnet 4 Validator Selection Criteria https://github.com/gnolang/hackerspace/issues/69 - `doctest` : Executable Markdown https://github.com/gnolang/gno/pull/2357 - Json Path Support https://github.com/gnolang/gno/pull/1937 - Others - Portal Loop Deployment Issue Debugging https://github.com/gnolang/gno/issues/2283 - GnoSwap development (realm optimization) - GnoScan Onbloc API Integration - will be able to share a demo by the next call - Full Updates: https://github.com/gnolang/hackerspace/issues/29#issuecomment-2178583559 ### Teritori - Teritori Realms - Re-deploy Social Feeds to portal loop and first integration of gno code into dapp monorepo: https://github.com/TERITORI/teritori-dapp/pull/1232 - GnoVM - Investigate https://github.com/gnolang/gno/issues/2283: Found a workaround by not using "encoding/base64" - Add stacktrace functionality and replace (some) uses of Machine.String : https://github.com/gnolang/gno/pull/2145 Currently in review discussions with Morgan - avoid Instantiation of banker on pure package: https://github.com/gnolang/gno/pull/2248 Waiting Review/Merge - missing length check in value declaration: https://github.com/gnolang/gno/pull/2206 Waiting Review/Merge - Gno lint - lint all files in folder before panicking: https://github.com/gnolang/gno/pull/2202 Waiting Review/Merge - TM2 - Expose genesis tx responses: https://github.com/gnolang/gno/pull/1941 Waiting final review - Gnoland - DAO Maker SDK: https://github.com/gnolang/gno/pull/1925 Waiting final review - Tx Indexer - Ensure codegen sync: https://github.com/gnolang/tx-indexer/pull/55 Merged! ### Dragos - Flippando - refactored all marketplace code (replacing avl.Tree with a standard map) to avoid this bug: https://github.com/gnolang/gno/issues/1543, deployed on prod, end to end features now testable on https://gno.flippando.xyz (flip basic NFTs, create composite NFTs from basic NFTs, list / remove listing from marketplace, buy, including burning a random percentage of FLIP on purchasing) - airdrop postponed for June 28th - ZenTasktic - started work on UI for all 3 packages, core, project and user, basic dashboard to follow up on development at https://gno.zentasktic.com - Questions - when calling `myNFT.Approve(std.CurrentRealm().Addr(), tokenId)`, `CurrentRealm().Addr()` returns the address of the *file* containing the code, `marketplace.gno`, not of the *package*, `r/demo/flippando`. Is this by design? Are there different addresses for each file? - when marshalling manually, using byte arrays, there is a random `"` appended at the end of the JSON response. This kinda breaks the cleaning of the response with gno js client. Using `gnodev`, this doesn't happen. ### Var Meta 1. Title: `ZeroAddress` issue: https://github.com/gnolang/gno/issues/2316 Des: - provide `g100000000000000000000000000000000dnmcnx` as ZeroAddress as `std.ZeroAddress` or `genesis`. - Init an Account for ZeroAddress when chain starts (?) - Additional, considering that the `banker.Remove()` should substract burner's coins and **add this corresponding amount into `ZeroAddress`**. Status: **WIP** - Making some realm usecases. 2. Title: `gasUsed` in unit test issue: https://github.com/gnolang/gno/issues/1998 PR: **WIP** due to [#2149](https://github.com/gnolang/gno/issues/1998) is reviewed and discussed. Des: Want to expose gas used in unit test, then add it into `gno test -cover` Status: **WIP** 3. Title: `Verify` and `Sign` functions now are not a pair issue: https://github.com/gnolang/gno/issues/2311 https://github.com/gnolang/gno/issues/2272 PR: https://github.com/gnolang/gno/pull/2333 Des: This PR changes the Verify() to read the signed doc, verify the exactly original message hash that was signed. It also adds chainid, account-number, account-sequence config flag to the gnokey verify command. The sign function now expose the hex-format of signature to the IO in oder to feed the verify as an argument. I think we need better way for user to verify their signed document, which currently need this hex-format Status: **Waiting for review** 4. Title: Define NoopMsg to facilitate the creation of gas sponsorship transactions issue: https://github.com/gnolang/gno/issues/2152 PR: https://github.com/gnolang/gno/pull/2209 Des: define SponsorTransaction which contains a NoopMsg and a specific Std.Msg to pay fee on behalf of someone. Details inside the PR Status: **WIP** 5. Title: Add missing unit tests for tm2/pkg/crypto/client PR: https://github.com/gnolang/gno/issues/2350 Status: **WIP** 6. Title: Print out the transaction hash when maketx executes successfully issue: https://github.com/gnolang/gno/issues/2303 PR: https://github.com/gnolang/gno/pull/2309 Status: **Under reviewing** 7. Title: Return error when getting keypair information issue: https://github.com/gnolang/gno/issues/2133 PR: https://github.com/gnolang/gno/pull/2300 Des: panic when getting a non-existed key name from keybase Status: **Under reviewing** 8. Title: Define Ownable and Transferrable Interfaces issue: https://github.com/gnolang/gno/issues/2193 PR: https://github.com/gnolang/gno/pull/2198 Des: refactoring p/ownable from a struct with a specific implementation to a more minimal interface Status: **Under reviewing** ### Rouen Students **p/timelock and p/accesscontrol** : PR: https://github.com/gnolang/gno/pull/2307 One approval and new reviewing Theo -> **UUID** PR: https://github.com/gnolang/gno/pull/2076 wait new review with new corrective **Oracle VRF** Issue: https://github.com/gnolang/gno/issues/2364 Zak - Realm profile refactoring - PR: https://github.com/gnolang/gno/pull/1983 ### PoC Innovation Students Docs and ecosystem exploration done, starting some small projects Mohammed: - PR: https://github.com/gnolang/gno/pull/2352 Reza: - Habit builder, similar to https://x.com/ethglobal/status/1787026870766371240?s=46&t=RQvzn6ZF2jXTyxDKEb0DZw. Lenny: - Maybe some good projets: - Oracle request-response - Decentralize multi-sig (using Aleph: https://github.com/aleph-im) Alex: - Working on a small project to write some basic gno (FutureMe clone) inspired by r/demo/memeland All contributors welcome to share updates! ------ ## 05.06.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: **Onbloc** 1. Multinode/Validator Docs: https://github.com/gnolang/gno/pull/2285 2. `test4` Validator Initiative Discussion: https://github.com/gnolang/hackerspace/issues/69 3. GnoSwap Portal Loop Migration Blocker: https://github.com/gnolang/gno/issues/2283 - Liquidity Pool realm deployment failing on portal-loop - Attempts tried: - Changing package path / reducing realm size / setting gax-wanted to max / changing client env - Cloning gno repo every single recent commit to re-produce on local but never failed. - Update: Potential cause → Certain failing txs are causing corrupt cache files `cacheNodes` **Dragos** - ZenTasktic - Zentasktic User (3rd grant milestone) implemented: https://github.com/irreverentsimplicity/zentasktic-user - updated docs for all 3 projects: - https://github.com/irreverentsimplicity/zentasktic-core/blob/main/README.md - https://github.com/irreverentsimplicity/zentasktic-project/blob/main/README.md - https://github.com/irreverentsimplicity/zentasktic-user/blob/main/README.md - Flippando - hackerville.xyz website updated for the upcoming airdrop: https://hackerville.xyz - airdrop script in testing **Berty** - tx-indexer genesis [PR34](https://github.com/gnolang/tx-indexer/pull/34) (related to [PR1941](https://github.com/gnolang/gno/pull/1941)? ) / Jeff - blank screen bug fixed - dSocial latest features / Iuri - reply to a post - view other user's posts - others - UI conversation with Alexis - to plan soon **Teritori** - GnoVM - **Add stacktrace functionality and replace some uses of `Machine.String`**: This pull request is currently in review discussions with Morgan ([PR #2145](https://github.com/gnolang/gno/pull/2145)). - **Go2Gno loses type info**: This issue is Merged ([PR #2016](https://github.com/gnolang/gno/pull/2016)). - **Avoid instantiation of banker on pure package**: This change is awaiting review and merge ([PR #2248](https://github.com/gnolang/gno/pull/2248)). - **Missing length check in value declaration**: This pull request is also awaiting review and merge ([PR #2206](https://github.com/gnolang/gno/pull/2206)). - **Issue: File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The issue has been resolved and closed ([Issue #2220](https://github.com/gnolang/gno/issues/2220)). - **File line not set on `ValueDeclr`, `ImportDecl`, `TypeDecl`**: The fix has been successfully merged ([PR #2221](https://github.com/gnolang/gno/pull/2221)). - Gno lint - **Printing all the errors from goparser**: This pull request has been successfully merged ([PR #2011](https://github.com/gnolang/gno/pull/2011)). - **Lint all files in folder before panicking**: This pull request is awaiting review and merge ([PR #2202](https://github.com/gnolang/gno/pull/2202)). - DAO SDK (still waiting for review) PR: [#1925](https://github.com/gnolang/gno/pull/1925) **Var Meta** - issue: https://github.com/gnolang/gno/issues/2053 PR: https://github.com/gnolang/gno/pull/2108 Des: limit import path length Status: Merged - issue: https://github.com/gnolang/gno/issues/2192 PR: https://github.com/gnolang/gno/pull/2242 Des: Restric the maketx call function can only call to a realm Status: Merged - issue: https://github.com/gnolang/gno/issues/1998 PR: https://github.com/gnolang/gno/pull/2149 Des: This PR defines a GasUsed() func and a defaultInvokeCost in gas within std package. Simple feature let realm developer know the gas used at the time function is called. Status: Wait for reviewing - ISSUE: New issue about GnoPlayGround RUN and TEST func in different browsers (safari, chrome) Link: https://github.com/gnolang/gno/issues/2270 Status: NO PR is made, waiting core team - WIP: Sponsor TX PR: https://github.com/gnolang/gno/pull/2209 Des: This PR aims to facilitate a transaction that should have been from A(signer) to B(Address/Realm) (A would pay the gas fee). Instead, A will delegate C(signer) to sign the transaction from A to B (C will pay the gas fee). Status: Under reviewing - PR: https://github.com/gnolang/gno/pull/2249 Issue: https://github.com/gnolang/gno/issues/2232 Des: To consolidate our returns on gnokey queries, I propose that we make them return JSON strings Status: Waiting for #1776 to be merged - PR: https://github.com/gnolang/gno/pull/2198 Issue: https://github.com/gnolang/gno/issues/2193 Des: Propose refactoring p/ownable from a struct with a specific implementation to a more minimal interface, allowing for custom ownership logic while retaining the current struct as the default implementation. Status: Waiting for reviewing - PR: https://github.com/gnolang/gno/pull/2225 Issue: https://github.com/gnolang/gno/issues/2193 Des: I propose integrating certain utility smart contracts from Ethereum into Gnoland. Now i'm working on defining the Bitmap, NonceManager and Queue packages, which can provide essential functionality for the Gnoland ecosystem. Status: Waiting for reviewing - PR: https://github.com/gnolang/gno/pull/2234 Issue: https://github.com/gnolang/gno/issues/2231 Des: We should either implement this, or remove the flag until the functionality is implemented. Same goes for the –prove flag. Status: Merged Q&A - SPONSOR TX If this feature is make sense and approved, can we integrate it into a dapp like gnostudio? var-meta is currently available to support this implementation. - ZK LOGIN Since Adena implemented the Web3Auth login based -> We are starting thinking about ZeroKnowledge-Proof-based as a login protocol where user privacy is paramount, and minimal data disclosure is desired during authentication. The questions are: What are special standards / requirements for a login protocol in GNO? Is it need to be audited? What is CoreTeam view about Adena's Web3Auth Login compare to ZKProof Base protocol? What does CoreTeam think if we use MODIFIED opensource or SELF-Developed libs in implementation of ZK Proof? Is it possible to add ZK Proof Validator into tendermint2 to adaptive with ZK Proof? **Rouen Students :** **Mustapha** * Made a V0 Auction dapp ([PR#2265](https://github.com/gnolang/gno/pull/2265)) **Antonio** - GNOWLEDGE A realm to simulate a Stackoverflow styled. Sharing to get some feedback https://github.com/iam-agf/Gnowledge . You can interact with it via https://github.com/iam-agf/Gnowledge-website . **All are welcome to add contributions** ----- ## 22.05.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: Belgrade retreat TL;DR ❤️ **Onbloc** - Gno Core - You can check our Merged, Awaiting Review, and TODO PRs in [our hackerspace. ](https://github.com/gnolang/hackerspace/issues/29) - [Onbloc API Docs](https://onbloc-info.gitbook.io/onbloc-api-docs): Permissionless JSON-RPC methods to Gno.land's official networks (portal-loop, test3) for any individuals or teams building on Gno.land (feedback is welcome!) - GnoSwap - Contract migration to portal-loop (Tartget: May 24th) - Applying `std.Emit` to contracts and APIs ([apply emit event in contract](https://github.com/gnoswap-labs/gnoswap/pull/217)) - VWAP (Volume-Weighted Average Price) implementation for improved pricing ([gnoswap-labs/vwap](https://github.com/gnoswap-labs/vwap)) - Misc - Add links to [GnoStudio Connect in GnoScan](https://gnoscan.io/realms/details?path=gno.land/r/michelle/mymood) - ![image](https://hackmd.io/_uploads/HJrWausQC.png) - Full update: [Onbloc Hackerspace](https://github.com/gnolang/hackerspace/issues/29#issuecomment-2124697977), [Onbloc Kanban](https://github.com/orgs/gnolang/projects/23) **Dragos** - zentasktic (the package) - big overhaul, allowing for keeping the Assess-Decide-Do logic on the `zentasktic` package, but save the data locally, in the realm importing the package. PR here with some more explanation: https://github.com/irreverentsimplicity/zentasktic-core/pull/1 - zentasktic-project (the realm) - backend finished, repo here: https://github.com/irreverentsimplicity/zentasktic-project - question: test failing on RemoveWorkDuration with `panic: reflect: reflect.Value.SetString using value obtained using unexported field` on WorkDuration? AddWorkDuration and EditWorkDuration tests are passing... - flippando NFT airdrop - copy added to the main flippando website, with airdrop mechanics and due date: https://gno.flippando.xyz/airdrop - minor updates to the website in preparation for this (airdrop mode: https://gno.flippando.xyz/playground) - spoiler, it will be on June 8th (2024, for conformity) **Berty** - dSocial demo app - Released on Test Flight and Google Play - To get an invitation, send your email to Iuri on Signal. Please say if you have an iPhone or Android phone. - Using custom indexer on the Berty production server - Stress testing - Finalizing report - What is the PR to watch for resolving https://github.com/gnolang/gno/issues/1577 ? - Referenced PR https://github.com/gnolang/gno/issues/1576 - Comment on CodeMagic as a possibility **Teritori** - **GnoVM** - **Cannot use struct as key of a map**: We resolved the issue where structs couldn't be used as keys in maps. This PR has been merged ([PR #2044](https://github.com/gnolang/gno/pull/2044)). - **Go2Gno loses type info**: This issue is still awaiting review and merge ([PR #2016](https://github.com/gnolang/gno/pull/2016)). - **Gno Issue with pointer**: We proposed a solution ([Issue #2060](https://github.com/gnolang/gno/issues/2060)). - **Stacktrace functionality**: We added stacktrace functionality and replaced some uses of `Machine.String` ([PR #2145](https://github.com/gnolang/gno/pull/2145)). - **Recover not working correctly with runtime panics**: We created an issue to address this problem ([Issue #2146](https://github.com/gnolang/gno/issues/2146)). - **Panic when adding a package with subpaths**: We worked on this issue and waiting for review and merge [PR #2155](https://github.com/gnolang/gno/pull/2155)). - **Gno lint** - **Printing all the errors from goparser**: This improvement is waiting for review and merge ([PR #2011](https://github.com/gnolang/gno/pull/2011)). - **DAO SDK** - **DAO SDK**: Waiting Review and merge: [PR #1925](https://github.com/gnolang/gno/pull/1925). - **Project Manager** Since we have already a lot in review, before opening a PR on the Gno repo, we're taking time to: - Polish the "private" [atomic PR](https://github.com/TERITORI/gno/pull/20) - Polish the UI - Set-up e2e testing with gnodev and a gno-js-client wallet, you can see a demo recording [here](https://github.com/TERITORI/gno/pull/20), the end-goal is to run e2e tests in CI **Varmeta** - PR: - Support extensions like Metadata, RoyaltyInfo for GRC721 https://github.com/gnolang/gno/pull/1962 (Merged) - Deprecate & remove std.CurrentRealmPath() https://github.com/gnolang/gno/pull/2087 (Reviewing) - limit package path length https://github.com/gnolang/gno/pull/2108 (Aprroved) - Implement Bitmap package https://github.com/gnolang/gno/pull/2115 (Need review) - Implement Nonces package https://github.com/gnolang/gno/pull/2123 (Need review) - GasUsed() for GnoVM std https://github.com/gnolang/gno/pull/2149 - Issues: - Panic when getting keypair information https://github.com/gnolang/gno/issues/2133 - Proposal: Integrate Sponsor Mechanism for Transaction Fees https://github.com/gnolang/gno/issues/2152 **Rouen Students :** **Theo: UUID package** -> It’s not finished because they forgot a `resolver`, and I'm looking for a good method for that because Gno does not support `sync/atomic`. @notJoon mentioned using `crypto/rand`, but it hasn't been merged yet https://github.com/gnolang/gno/pull/2076 (Reviewing) **Malek:** * No big news, still working on GnoFundMe. * Thanks to @iam-agf for all the comments he left on this [PR #2085](https://github.com/gnolang/gno/pull/2085), I kindly ask others when they have time to go check this PR and comment with questions/suggestions... **Antonio** (Add link to project) * https://github.com/iam-agf/Shiken **All are welcome to add contributions** ------- ## 08.05.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: Quick over view of the highlights from [Gno Core](https://hackmd.io/iTLN8rB0TBeFTUk-NoTnxg) **Onbloc** - Event emission in Gno - (Done) `std.Emit` in Gno https://github.com/gnolang/gno/pull/1653 - (WIP) Support for events in `tx-indexer` https://github.com/gnolang/tx-indexer/pull/43 + public endpoints in `onbloc-api` - (Issue) While implementing `std.Emit` to GnoSwap's realms & API, found an issue where events are not displayed in `gno test`. Working on fixes - feedbacks are welcome. https://github.com/gnolang/gno/issues/2007 - (Issue) Separating events per msg for multi-msg txs https://github.com/gnolang/gno/pull/2030 - GnoScan Updates in the pipeline - Customizable RPC & `tx-indexer` URLs for permissionless network support. - "Try in Gno Studio Connect" for Realms and Functions. - Full updates: https://github.com/gnolang/hackerspace/issues/29#issuecomment-2099738084 - Question: Can we have support for multi-messaging in gnokey? Example in txtar, make two transactions without broadcast and send them off. **Dragos** ZenTasktic * last call for feedback regarding data types for ZenTasktic: https://github.com/irreverentsimplicity/zentasktic-project/issues/1 * call for feedbcak regarding oracles for Points (Game of Realm?), and for GitHub handles (is the oracle up?) these ones allegedly can to be used as properties for the Actor data type: https://github.com/irreverentsimplicity/zentasktic-project/issues/2 Flippando * speed, usability and gas fees improvements, by replacing `gnokey maketx` with `query` * refactor for using different endpoints, including support for Portal Loop (and future integration of https://faucet.flippando.xyz with the Faucet Hub) * Flippando airdrop 🎉 mechanics. Requesting 5-7 minutes for a demo * TLDR * use [hackerville.xyz](http://hackerville.xyz) as the launch site (certs to be added soon). * 10,000 basic NFTs, 8x8 squares * airdrop mechanics: 156 hackers sliced into individual 64 basic NFTs. * 156 hackers = 9984 basic NFTs * and 16 basic NFTs as very rare, OG collection, maybe very clear gradients using all the shapes **Berty** * dSocial on TestFlight and Google Play test channel * Finalizing https support on the Berty production server * Targeting release next week * dSocial [indexer](https://github.com/D4ryl00/dsocial/blob/5a2778ce6b26581171d503005c0891c1ad66ff52/tools/indexer-connect/graphql_client.go#L103-L109) is working. Updates: * Remi's Journey entry: “Contribution and Video: Indexer services and Docker support” https://github.com/gnolang/hackerspace/issues/51#issuecomment-2092747108 * Review request: gnodev in Docker PR: https://github.com/gnolang/gno/pull/2009 * Thanks for merging https://github.com/gnolang/tx-indexer/pull/32 . Using tx response. * For now, scanning txs and responses. Don’t need [emitEvent](https://github.com/gnolang/gno/blob/master/gnovm/stdlibs/std/emit_event.gno) yet. * For now, only reading/indexing data. Don’t need [gnorkle](https://github.com/gnolang/gno/blob/master/examples/gno.land/p/demo/gnorkle/README.md) yet. * dSocial on faucet hub https://github.com/gnolang/faucet-hub/pull/28 * different faucet URL for use by dSocial app (no captcha) **Teritori** - Completed Tasks: - Resolved issues in GnoVM, including preventing infinite loops caused by cyclic references and fixing the inability to use structs as keys in maps ([PR #2036](https://github.com/gnolang/gno/pull/2036), [PR #2044](https://github.com/gnolang/gno/pull/2044)). - Enhanced Gnoweb by prettifying json code blocks in realm render ([PR #2033](https://github.com/gnolang/gno/pull/2033)). - Fixed broken `cd examples && make lint` command ([PR #2034](https://github.com/gnolang/gno/pull/2034)). - Ongoing Tasks: - Waiting for review/merge on PRs addressing Go2Gno type info loss ([PR #2016](https://github.com/gnolang/gno/pull/2016)) and printing all errors from goparser ([PR #2011](https://github.com/gnolang/gno/pull/2011)). - Continuing work on Genesis tx indexing, with pending feedback on a solution for retrieving genesis transaction results ([PR #1941](https://github.com/gnolang/gno/pull/1941)) and a patch for the tx-indexer ([PR #34](https://github.com/gnolang/tx-indexer/pull/34)). - Further Developments: - Advancing efforts on the DAO SDK, atomic PRs ([PR #1925](https://github.com/gnolang/gno/pull/1925)), guides addition in docusaurus sidebar ([PR #26](https://github.com/gnolang/docs.gno.land/pull/26)), and requests for integrating docusaurus and markdown files ([Issue #27](https://github.com/gnolang/docs.gno.land/issues/27)). - Continuing development on the WorxDAO/aggregator. Currently waiting for genesis tx result indexing guideline so we can target portal loop - Continuing on Github Account linking. Question: Since another version has been merged recently (with oracle framework), should we continue on our version of github account linking? It supports bidirectional linking and allows to offload gas cost from oracle operator to user. - Progressing with the Project Manager and Conflict solver module atomic PRs ([Branch](https://github.com/TERITORI/gno/pull/20)). - Exploration: - Hackaton idea: Gno multi-user DAW (Digital Audio Workstation) ([Issue #65](https://github.com/gnolang/hackerspace/issues/65)). **Varmeta** - PR ongoing: https://github.com/gnolang/gno/issues/1962 (work on refactoring extensions like metadata, royaltyInfo for grc721 standard) - Account Sessions System (Cookie-Like) need feedback from gno team for our comment: https://github.com/gnolang/gno/issues/1499#issuecomment-2076635159 - Propose support Fully Onchain Games (FOGC) : https://github.com/gnolang/gno/issues/2049 - Proposal: Transaction status within tm2 / bank package: About #std.Emit() and output https://github.com/gnolang/gno/issues/2056 **Rouen Students :** #### Malek: * Still working on [GnoFundMe](https://github.com/MalekLahbib/gnofundme), discovering how gno-js tm2-js and adena wallet work. Progressed on the front (but will need help), working on the coin side too. * Campaigns for: * individuals (need help or other) * startup/project creator on gno.land... * patreon like campaigns. * Maybe create categories, and a search bar. * Discussion: (maybe open a PR so anyone can comment?) * Is it a good idea to have users registered (to be sure of the wallet owner!!)? * Moderation: how to moderate and who moderates (when a campaign isn't legal/moral...)? **All are welcome to add contributions** -------- ## 24.04.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: Drum roll......the Gno.land [Faucet Hub](https://faucet.gnoteam.com/) is live 🎉 Are you interested in adding your gno-chain to the hub? Let us know. Here's the Readme with instructions. Teritori: we will kill our network very soon and try use portal loop only Housekeeping -- next Wednesday, many of us will be OOO, how would people feel if we cancel? **Onbloc** - Finalizing `std.Emit` https://github.com/gnolang/gno/pull/1653 - Adena v1.10.0 https://github.com/onbloc/adena-wallet/releases/tag/v1.10.0 - Adena Security Evaluation Report https://github.com/adr-sk/adena-extension/tree/main/audits - Kicking off development of `onbloc-api` - Permissionless access to Gno Json RPC and `tx-indexer` for `portal-loop` and `test3` - To improve the Swap Router & Pricing Mechanism for GnoSwap in the coming weeks. - Full updates: https://github.com/gnolang/hackerspace/issues/29#issuecomment-2074596722 **Teritori** `Main focus Worx Aggregator` - PR ongoing: https://github.com/gnolang/gno/pull/1941 This PR will allow us to index events that were embedded on the genesis after a portal Loop version change. This will allow indexers to restore their status. https://github.com/TERITORI/gno/pull/19 - Develop a worx package that will deal with all the Worx functionnalities and easily usable for all realms related. - A mock realm that will inyect random Worx for a given address this in order to start a PoC of what would be the profile page What we're aiming to accomplish right now is the indexation of the `worx_added` events in order to display them on a profile page (Worx based). ![image](https://hackmd.io/_uploads/Bk7UeXHb0.png) `Secondary focus` trying to understand and review ongoing PRs that will be usefull on Dev path, For example [feat(gnovm, tm2): implement event emission with std.Emit #1653 ](https://github.com/gnolang/gno/pull/1653) **Dragos** _Flippando_ - public faucet set up at https://faucet.flippando.xyz, waiting for the integration with the Faucet hub - fixed and slightly improved the multi-chain dashboard at https://flippando.xyz - moderate progress using gnonative, played with the npm package and started refactoring for React Native _Zentasktic Core_ - still waiting for feedback: https://github.com/irreverentsimplicity/zentasktic-core _ZenTasktic Project_ - call for discussion taking off: https://github.com/irreverentsimplicity/zentasktic-project/issues/1, feedback still welcome - implemented Workable interface and added wrappers on top of ZenTasktic Core Task and Project data types (WorkableTask, WorkableProject), feedback welcome: https://github.com/irreverentsimplicity/zentasktic-project/blob/main/workduration.gno - Actor backend complete - Question: the JSON formatting when calling realm functions has been merged? Do we still need to do custom marshaling for basic types? - on track for finishing by the end of the month, pending any unexpected issues or feedback **Berty** * Renamed GnoSocial to dSocial https://github.com/gnolang/dsocial * dSocial Test Flight. Use HTTPS endpoint? RPC server supports it, why would a blockchain node need to do that? Getting started guide with nginx * dSocial indexer * [Get list of userAddr/postID](https://github.com/D4ryl00/dsocial/blob/9be56ed1dd469dfc0940528e755a250199c9abce/tools/indexer-connect/api/indexerservice.proto#L17-L20) from indexer, then [get posts from the chain](https://github.com/gnolang/dsocial/blob/3cef6166d556b6119b5d7da7e9b49d4aadef1941/realm/public.gno#L96-L100) * Alternative: Giant avl.Tree with all posts by ID. Efficient to insert? The bigger the avl tree, experimenting whether the larger the avl tree the more the user has to cover the costs. Improve gas estimations is potentially the best way to start in order to understand the impact of this instance. Dragos: recommend pre data storage testing? Helps to isolate failures in the avl tree. Will move with empirical testing. * Interested in adding gnodev in the Dockerfile? [https://github.com/gnolang/gno/compare/master...D4ryl00:gno:feat/add-gnodev-dockerfile?expand=1] (https://github.com/gnolang/gno/compare/master...D4ryl00:gno:feat/add-gnodev-dockerfile?expand=1) * Still using workarounds. Waiting on PRs: * gno: emit event. (Does it emit if tx fails?) https://github.com/gnolang/gno/pull/1653 * next: tx-indexer PR to filter for events * gno: avoid std.AssertOriginCall() failure from MsgRun https://github.com/gnolang/gno/issues/1577 * gno: JSON support for MsgCall https://github.com/gnolang/gno/pull/1776 * gno: VM hang. Switch Machine.String() to printing a stacktrace. (Need issue? Yes) https://github.com/gnolang/gno/pull/1736 * gno: `gnoland start` option to increase allowed max gas * tx-indexer: filter on tx result isn't exposed to the indexer https://github.com/gnolang/tx-indexer/pull/32 (just merged) **Varmeta** * PR define metadata for grc721 https://github.com/gnolang/gno/pull/1960 * PR define metadata & royalty info for GRC721 realm https://github.com/gnolang/gno/pull/1962 **Rouen Students :** **Malek:** * Surprised, happy and proud to be cited for the 2 PRs ([ufmt multibyte](https://github.com/gnolang/gno/pull/1889) & and [todolist example V0](https://github.com/gnolang/gno/pull/1811)). * Working on a GnoFundMe (crowdfunding example), finished a quick V0 and working on the front with react as @leohhhn suggested. Will try to have the project/example as complete as possible. * As discussed with @moul, will think about one of some important missing pkgs on GNO to work on it. **Theo** * I made a pull request ([PR](https://github.com/gnolang/memeland/pull/21)) on [issue#11](https://github.com/gnolang/memeland/issues/11) of the memeland repo. Then I will make corrections based on the comments from @leohhhn or @zmilos. * I wanted to create a [library](https://github.com/DIGIX666/gno/blob/theo/examples/gno.land/p/demo/library/library.gno), but I stopped at developing a logistics system for the books. * After a brainstorming session with @moul, I want to start working on creating a UUID for Gno. Currently, I was thinking of building on the [UUID from Go](https://pkg.go.dev/github.com/gofrs/uuid/v5#section-sourcefiles). If you have any tips on best practices for success, I'm all ears :) Sequential ID library (link) All contributors welcome to add questions 🎉 there are quite a few new ones ------ ## 10.04.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Onbloc - Transaction message filter in GraphQL for the tx-indexer (https://github.com/gnolang/tx-indexer/pull/20) - Emit/Event (https://github.com/gnolang/gno/pull/1653) - Json Package updates (https://github.com/gnolang/gno/pull/1869) - Adena v1.10.0 update currently under review by the core team (https://github.com/onbloc/adena-wallet/releases/tag/v1.10.0.rc.2) - User-guide tooltips, In-app faucet, Pop-window... - Optimizing & refactoring the core realms, API & RDB for GnoSwap - Feel free to assign our members to the tasks in the testnet 4 milestone so we can further contribute to its launch - Full updates: https://github.com/gnolang/hackerspace/issues/29#issuecomment-2044040145 - Dragos - Zentasktic - zentasktic core first complete implementation. A package containing an unopinionated implementation of the Assess-Decide-Do workflow. Docs and code: https://github.com/irreverentsimplicity/zentasktic-core - call for defining custom metrics / resources for the next implementation milestone in the grant, as a realm. These are resources that can be added in Decide, on top of Contexts, Due date and Alert. Ideas: man hours, money compensations, Game of Realm / contributor points, etc - Flippando - meeting with Berty and kicked off the porting of Flippando to mobile, using gnonative: https://github.com/irreverentsimplicity/gnonative/tree/flippando - Varmeta - What are your thoughts on integrating [OP](https://docs.optimism.io/stack/getting-started) stack for the gno land chain? (Account sessions discussion) - Benefits: - Increased liquidity for assets - Enables development of new decentralized applications (DApps) - Reduced transaction costs - Challenges: - Increased complexity of the system - Security needs to be carefully considered - Community needs to be aligned on how to proceed Discussion points: - Fraud proof generation as an interesting topic - IBC first, maybe in the future roll ups - Gno has built in Merkle Proofs, so it will be easy to have clients that verify the state of the blockchain - Focus on Test4 and roadmap is coming soon - Berty - Oracle - Use case 1: Cache of big lists with notification of realm updates, the mobile accesses without worrying about gas limits. - Use case 2: Do expensive processing, for example sorting followed posts, and store in the realm. The mobile accesses the realm. - Websocket client connection (tx indexer) from Go? - Recommended best practice: GraphQL api connection standard - Look at: - https://github.com/hasura/go-graphql-client/tree/master?tab=readme-ov-file#subscription - https://github.com/99designs/gqlgen/tree/f3b34683652077e3f7e55aa4142a86842e83e593/_examples/chat - https://github.com/99designs/gqlgen/blob/f3b34683652077e3f7e55aa4142a86842e83e593/_examples/chat/server/server.go - Should the oracle app just run the Gno code in a gnovm? (Gnorkle) - We're waiting on PR for GraphQL to expose TxResult (to check for panic). - Demo video on our Journey: Updated social app UI https://www.loom.com/share/621f151459b040b0a2e6a22adf96b371 - Teritori Our current focus is on developing a proof of concept realm that allows linking a GitHub account with an on-chain address. This realm aims to enable users to associate their GitHub identity with an on-chain address bidirectionally. #### Current Status 1. **Linking GitHub Account with On-Chain Address** - The realm allows a bot to add a public key. - The bot can sign the address and GitHub ID account. - This functionality permits everyone to link their account on the realm seamlessly. 2. **Blockers and Solutions** - **PR: [#1863](https://github.com/gnolang/gno/pull/1863)**: - This PR enables the realm to verify a signature. - Currently in the review stage. - **PR: [#100](https://github.com/gnolang/gno-js-client/pull/100)**: - This was an issue blocking the publish transaction. - Resolved and merged. 3. **Demo** - We have created a demo showcasing how the flow works: - [Demo Link](https://codesandbox.io/p/devbox/jghy5c?file=%2Fsrc%2FUser.tsx%3A21%2C35) #### Next Steps 1. **Aggregate Worx/Hours Distribution** - We have begun development on the worx/hours distribution aggregator. - Our focus is on creating a generic aggregator that allows specialized aggregators like contribution to register on it. 2. **Related PRs** - **Branch: [#17](https://github.com/TERITORI/gno/pull/17)**: - This PR is related to the development of the generic aggregator. - It focuses on allowing specialized aggregators, such as contribution, to register. - Contributors **Q&A** ----- ## 27.03.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Onbloc - Onbloc x Gno Core Workshop to Define Key Tasks for Testnet4 ([Meeting](https://github.com/gnolang/hackerspace/issues/61)) - The uint256 Package - Pop Window + Responsive UI for Adena - Automatic GRC20 Registry - Go to Gno Meetup ([Recap](https://medium.com/@onbloc/go-to-gno-recap-intro-to-the-gno-stack-with-memeland-284a43d7f620)) - Berty - GnoSocial app UI updates - Follow/Unfollow button - Display following and followed users - Display "home feed" with followed posts - Need to follow all the users you are following, things are saved as a realm function. (Refresh = gas) - Use back-end RefreshHomePosts - RefreshHomePosts - Explicitly spend gas to pull new followed posts - 10_000_000 ugnot only enough for about 100 posts - Meta question: Why a limit on gas? Will it be increased? - If you can only process 100 posts, that is not much. - Amount of gas will not match gnot. In general, it makes sense to have a limit per block, reasoning - it is not just to not overwhelm, but it is to have a shorter time period of reaching consensus. - Gas limit is potentially on the lower side if we are considering real application development. - The number of gas used is being benchmarked and calculated (maximum amount allowed). Example for Test4 10x. - The block gas might increase - but more general problem is not to increase the gas, but here is how we can think about realms storage. We will eventually have Merkle Proofs, if you are using AVL tree relatively optimized, and can create services outside of the blockchain to read data and provide readers a set of proofs, that 'this is good' is generally what we can do. Solution idea: multiple indexers with accountable signed results, so if you get a wrong result you can have an audit. - How can we move it off chain to an indexer? How do you not rely on a single centralized server, multiple competing. (Correctness and availability) - Indexer results signed, and prove a fraud proof, there could be a slashing (data formating required). Language here is irrelevant, more about the data or Merkle Tree structure. - Can RefreshHomePosts "know" that it's about to run out of gas? - Would a different data structure make sense? - Multi message and multiple transactions with one signature. - https://github.com/gnolang/gno/issues/1826 (open discussion) - With concurrency, we should be able to support a long running process using left over gas? - Met with Flippando about using Gno Native Kit - npm package progressing (makes it easier to build) - Zentasktic - zentasktic_core data types and logic, marshaling - Question: The progress made towards making gnovm written in JSON output. Is there any timeline to merging this? https://github.com/gnolang/gno/pull/1776. Also potentially updating the Gno API, and how we interact with it. Multpile questions to answer before it is merged. Gno rush :) - Flippando - meeting with Gno Native and started a Flippando mobile app using Gno Native Kit - Varmeta - Draft version of "NFT AND TOKEN IN OUR GAME" (https://docs.google.com/document/d/1Fx49M9DfSuKnOZQa_mFyA__-GFEbBAoFfZdBPmZBY6I/edit) - Questions: - Should we build a feature that is only an account session, or should we build a feature that is similar to account abstraction on ETH? - Response coming soon :) - Teritori - Opened issue about invalid `PrevRealm` in `init()` functions during `gno test` runs: https://github.com/gnolang/gno/issues/1852 - Brainstorm on "worxdao" data aggregator: https://hackmd.io/@80hyAELHTEe760NS2xnc2g/SJjEhkUAT?view This definition of worxdao things come from docs and talks with manfred that updated parts of the intent. Questions: - Do you agree with the direction it's going in? - Should we rename worxdao to worxaggregator? Since it's not a DAO - Maybe considers hours, duration, weeks, so it is a tool to evaluate contributions to the project - @grepsuzette said: > worx is a cool name and I like the concept. But the name of the dao itself, I suggest to compare "Work DAO" VS "Worx DAO". Contribution DAO, Evaluation DAO, Support DAO, very neutral and grounded names, similar to Apple products like Numbers, Pages. Worx DAO sounds different and breaks the pattern. For the points I like "worx" as it's differentiating (working for worx). I suggest keeping it for worxaggregator but maybe rename the eventual DAO. What is your opinion on this? - Strict types or anys in the interfaces? - Brainstorm on github account linking: https://hackmd.io/gj0T70HTQiSHYrRKhrvcPg?view#Proposal-1 We are starting a PoC of Proposal 1 with mocked signature verification here: https://github.com/TERITORI/gno/pull/16/files Questions: - Do you plan to support golang's stdlib's signature verification packages? - It is not a gno signature now, it can be anything you want. - We would like to use ed25519, should we make PR to add it in gno std? Makes sense to support what is in tm2. You don't necessarily need this if an address is not derived, but nice to support. Golang.org x crypto (needs more info) - If yes, should we use the same pattern as with sha256, wrapping go's stdlib? - Comments: If we do end up adding it, I can't see it being a port to gno since these libs are usually optimized client-side - Contributors- open section for updates **Q&A** --- ## 13.03.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Onbloc - JSON Parser Updates https://github.com/gnolang/gno/pull/1415 - `unicode/utf16` Package https://github.com/gnolang/gno/pull/1764#issue-2183380115 - Adena v1.10.0 Scope Specification - In-app faucet, Pop-window, Network label, and more! - AirGap user Guide https://youtu.be/TfSzp1_MaOI?si=dOv7H4R8vG1c8wxQ - GnoSwap Updates - `uint256`, `int256` integration https://github.com/gnoswap-labs/gnoswap/pull/188 - Json package integration https://github.com/gnoswap-labs/gnoswap/pull/193 - Full Update: https://github.com/gnolang/hackerspace/issues/29#issuecomment-1993862412 - Berty - GnoSocial demo: Home feed with followed posts + search for user - PR https://github.com/gnolang/gno/pull/1708 adds ListKeysByPrefix - Can avl.Tree support ListKeysByContains or ListKeysByRegex? - Short term dumping keys to a string array, but work towrds a longer term solution - Hybrid multi source system. - Followup to https://github.com/gnolang/gno/pull/546, https://github.com/gnolang/gno/issues/575 - Progress on an indexer with subscribe to notifications? - Local cache need to set up notificationon an avl tree when changes are happening, subscription to notification of some kind. - Potential solution: https://github.com/gnolang/tx-indexer/pull/12 - now, the indexer is ignorant about the transaction, so it needs to be parsed. - goal is to implement emit function and add it as a filter (add link) - validator realm emiting change after governance approval, verify validator set for example - subscribe to the event 'validator set called' (provides type safety) - System needed for IBC2 (language channel support) - Placeholder std emit idea - VM hang bug: Option to not brain dump on error? https://github.com/gnolang/gno/pull/1736 - Simple way to start the node? Example of GnoDev; Syntax error - Possible solution: a way to dump the machine apart from the Gnovm without the risk of increased time. Fix up the way we print the state of the machine. You can apply a [patch](https://github.com/gnolang/gno/pull/1736#issuecomment-1985978397) - Gno Native Kit intro: https://www.youtube.com/watch?v=N1HLyQDHGQ0 - Gno Native error message issue - panic over error messages - Zentasktic - all repos initialized under @irreverentsimplicity (for example: https://github.com/irreverentsimplicity/zentasktic-core) - working on ZenTasktic core implementation - Flippando - dynamic playground redesign, frontend and backend checks - FLIP token added to the gno registry, now theoretically available in Adena (pending deployment of the Flippando realm on a public testnet) - Flippando growth simulation dashboard (Michael Frasinelli) - VRF question: where can I find data feeders and what is the standard response time for a call? - Teritori: Provide a response - upgradeable package question: if I redeploy a GRC20 related realm under a different name (upgraded), do I need to re-add the token to the gno registry? - Onbloc: you'll need to submit a new PR - Roadmap status: March milestone pending on VRF and upgradeable packages implementations - Varmeta - Unity SDK - Add interactive with Realm (sample with microblog) - Teritori - Social feed, DAO SDK, and Moderation DAO deployed on portal loop: https://app.teritori.com/feed?network=gno-portal - Strange behavior: Emit function and calls a realm - a calls b, in context of b example. (issue to be added) - Started to deploy projects manager on portal loop - Norman needs more funds :) - Faucet UI same for Portal Loop? (faucet hub starndardization so you can add your config and this will be added) - New Grant Request in Review : https://github.com/gnolang/ecosystem-fund-grants/pull/17/commits/2f798344d672ce285c704152b72d948658547099 - Contributors- open section for updates **Q&A** ------ ## 28.02.2024 ❤️ Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Onbloc - Gno Core (pending review) - JSON Parser https://github.com/gnolang/gno/pull/1415 - Emit & Eevent: https://github.com/gnolang/gno/pull/1653 - Adena - [v1.9.0 Release](https://chromewebstore.google.com/detail/adena/oefglhbffgfkcpboeackfgdagmlnihnh) - New website https://www.adena.app/ - GnoSwap - Realm codebase refactoring (`bigint` → `uint256`) https://github.com/gnoswap-labs/gnoswap/pull/118 - Full Update: [Link](https://github.com/gnolang/hackerspace/issues/29#issuecomment-1968350623) - Berty - Gnosocial demo: Lazy loading of messages - Journey video: Exploring the onboarding experience https://github.com/gnolang/hackerspace/issues/51#issuecomment-1948885567 - Journey: Gno Native Kit secure gRPC connection: https://github.com/gnolang/hackerspace/issues/28#issuecomment-1958999589 - Does `gno test` load new realm code? Error "unknown import path gno.land/r/berty/social" ... Check out [GnoChess](https://github.com/gnolang/gnochess/blob/main/Makefile#L24-L52) - Any plans for partial match of keys in avl.Tree? (Or another way to search [`users.name2User`](https://github.com/gnolang/gno/blob/b189043df9bcf3f7f23734ccce3edee708803948/examples/gno.land/r/demo/users/users.gno#L46)) ... Try Iterate with start and end. ... Norman: "grpc service that index the username" - The following query of the test1 account has a null public key. Is that normal? `gnokey query auth/accounts/g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5 -remote gno.land:26657` - Is each call to `time.Now()` unique? (Would like unique message timestamps.) ... There can be multiple transactions with the same timestamp. ... Or add a global counter for the entire berty/social realm. TODO: Open issue so that each transaction gets block timestamp + tx.index * 100us Manfred mentions: https://patents.google.com/patent/US20080155299A1/en?q=(clock)&inventor=marc+vertes&oq=marc+vertes+clock&page=1 - Teritori - Token registry realm (GRC20+Banker) test and fixes (https://github.com/TERITORI/gno/pull/14) - GRC20 token registration and token send test and confirm success - Resolve GNOT bank token send from realm issue (used RealmSend permission) & confirm success in CLI - Resolve coinSent.AmountOf build issue in communication with Leon - Integrating token registry package into Escrow (https://github.com/TERITORI/gno/pull/14) - Prepare package version of token registry and deploy - Add token registry instance on Escrow - TransferFrom and Transfer methods to use token registry - Resolve type conversion issues in TransferFromByInterfaceName - Deploy token registry integrated version of escrow and testing token registration and fund/release - Flippando - Adena wallet integration, wip - question 1: is there a way to display a GRC20 token in Adena? If so, is there a standard way to do it, something like the URL of the GRC20 package, and a standardized method, like TotalSupply()? Or we can add a different method that returns a custom total supply of the GRC20 token? In Flippando case, the supply is divided into locked and unlocked (fungible) tokens. - You can permissionlessly add any GRC20 tokens in Testnet3 via the Manage Tokens button in the Wallet menu.👍 - To add extra information about your token such as its logo or a description, please register it on the [gno-token-resource](https://github.com/onbloc/gno-token-resource/tree/main) repo. 👍 - is there a way to import an existing seed phrase programatically? **Example: I create a wallet with gno-js, I save the seed phrase in local storage. Is there a way to read from local storage and add this wallet?** (AFAIK, the answer is no, but checking if something changed). Related to this: is there any integration between the Wallet objects defined in Adena, and the one in gno-js? Can we call a gno-js object from within Adena libraries? - Can you elaborate more on "importing an existing seed phrase programatically?". Ok, no, unfortunately it's something that a wallet shoudln't provide due to potential security issues. 👍 Can I ask you why do you need this feature for? - It might be easier to onboard users if we create their account "underneath" any existing UI. But it's ok. Moving forward. - Yeah I agree but this will cause a lot of concerns for users who understand how a wallet works :( - multi-chain dashabord live (placeholder for chain-related metrics) - deployments on Gno, Saga, Evmos, Polygon, Near (Aurora), Arbitrum, Optimism and Goerli - dynamic canvas size, based on the total number of unused basic NFTs - Varmeta - Account Abstraction https://github.com/gnolang/hackerspace/issues/58 - Unity SDK update: - Implemented send api - Implemented airdrop feature - Unity sample for send and airdrop feature - Demo (Unity SDK + game showcase) **Q&A** Berty: - Naming: Gnonative, Gno Native Toolkit, Gno Native Kit? Berty: We settled on "Gno Native Kit". (Formerly "GnoMobile".) For brevity, the repository and package is `gnonative`. - As I understand it, you can write a package that contains bindings from a Gno package, which are invoked via Java (Andriod) or Objective-C/Swift (iOS)? Berty: See the system diagram in the Gno Native Kit proposal: https://github.com/gnolang/gnonative/issues/15 . It makes calls through gRPC where the gRPC client can be in any language (Java, Swift, etc.) which gRPC supports. - Is there caching in place next time the app (Gnosocial) is open, until the newest fetch, older data will be shown? Berty: These are two questions. We plan to implement local caching. Secondly, like most social apps, it will let you scroll the current view. If there are more messages, there will be a "refresh" button to fetch them. - Do you have an official site page outside of the repo? Berty: We have a journey for Gno Native Kit (formerly GnoMobile) https://github.com/gnolang/hackerspace/issues/28 and a new journey for GnoSocial https://github.com/gnolang/hackerspace/issues/51 . Of course, the Berty organization has its web page https://berty.tech . Varmeta: - How is the signing done- browser with Adena or is signing done within Unity, in that case do you have an in-game wallet? We plan deploy that game on mobile so we will use in-game wallet, it already supported on our unity sdk. <!-- write below this line --> --- ## 14.02.2024 ❤️ Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Teritori: - PRs - GRC20 and Banker tokens management on a single registry in collaboration with Leon (https://github.com/TERITORI/gno/pull/14) - Use `grc20-dynamic-call-with-registered-interface` branch from gnoswap as reference for this realm - Add/Modify RealmAddr, BalanceOfByInterfaceName, TransferByInterfaceName, BalanceOf, TransferFrom, Transfer, appendBankToken functions on the registry - Refactor GRC20Pair -> TokenInfo, pkgPath -> token, isBank field add, required functions addition for adding bank token - Unit test fixes (TestUnregisterUnauthorized, TestUnregisterAuthorized) - CLI script to deploy registry and bar token realm & register ugnot as bank token on the registry + testing - BankerTypeReadonly typo report (https://github.com/gnolang/gno/pull/1634) - Escrow realm modification after testing through CLI - Resolve build issues for contract rendering on Escrow - Remove funding process on create contract when it's created by funder - Review interactive debugger for GnoVM - give a brief overview of upcoming grant proposal - Berty - GnoSocial: Best practice to send coins to a new user? Experience with GnoChess? - Stress testing update: memory usage (max gas prevents, gno dev allows to store things on disk for improved memory performance) - Gnokey app grant proposal brief overview (https://www.loom.com/share/27b0aaf07d2c4141bbf753efa5b2e189) - GnoNative Kit updated to new gnoclient API (handle multiple calls and sends in one transaction https://github.com/gnolang/gnonative/pull/114 https://github.com/gnolang/gnonative/pull/115) - Onbloc - https://github.com/gnolang/hackerspace/issues/29#issuecomment-1943343790 - Varmeta - Finalizing grant overview - [DecentraHub](https://github.com/0xtekgrinder/ecosystem-fund-grants/blob/main/DecentraHub.md) with Mateo - Dragos is traveling - Flippando [roadmap](https://gno.flippando.xyz/roadmap) **** ## 31.01.2024 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Teritori - Updating Escrow for on-chain project manager - Connect latest Escrow realm to on-chain project manager frontend and test on demo UI - Refactoring to manage multiple milestones in parallel - Contract metadata addition to handle extra data - Addition of milestone priorities - Add contractorCandidates mechanism and allow proposal submission and accepting by project funder - SubmitFunder to accept milestones optionally instead of all milestones - Update usage of OrigCaller to PrevRealm for upcoming upgrade - Add missing validations on contract accepting logic - In progress of adding multiple tokens manager realm which handles both GRC20 and bank module tokens (GNOT) - PR - https://github.com/TERITORI/gno/pull/12 - Berty - GnoSocial: Updates to UI - The Berty test node is now using gnodev with GnoSocial (+ faucet) http://testnet.gno.berty.io/r/berty/social:jefft0 - Stress test app https://github.com/gnolang/gno/pull/1583 - Guilhem is adding gnodev options to save memory. - Is there an advantage to test with local GnoVM instead of gnodev? - Gno utility to format a JSON string for return? - **Need feedback**: The Run script uses a loop to [add 50 messages](https://github.com/jefft0/gno/blob/e08801f5a7c67323b91e09db99f69a182dc6b744/misc/stress-test/main.go#L151-L153) each time. If more than 50 then the call to Run takes too much gas. However if I update r/demo/boards with a test API function and send a transaction to Call it, then the function's loop can add 400 messages in each transaction. This is a lot more efficient for long stress tests. Why the difference? Does Run have so much more overhead? - Onbloc - Adena Demo of the air-gap feature and new sign-in flows! - Full updates from Onbloc: [link](https://github.com/gnolang/hackerspace/issues/29#issuecomment-1918598716) - Varmeta - Account session update - Gno Unity SDK update - GnoChess - Flippando - Steady on the roadmap, this week: game management, picking up unfinished games - stuck on "VM panic unexpected object with id", issue [here](https://github.com/gnolang/gno/issues/1543) - question for Morgan: what's the status of the slice / map struct that allows pagination? - Blockdudes (Amrit) - Mutli sig [grant](https://github.com/gnolang/ecosystem-fund-grants/pull/7), Ledger contribution, and ideas - Meme Realm **Q&A** <!-- write below this line --> --- ## 20.12.2023 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Teritori update on VRF, escrow module and other topics - Berty update on Gno Social (kick off Monday after holidays) - - tada GnoNativeKit arrives! (farewell GnoMobile) Last part is developing [examples](https://github.com/gnolang/gnonative/tree/main/examples) - Flippando - status update - Onbloc news on pull request progress - GnoChess updates following retrospective **Q&A** Happy Holidays and until the next time in 2024 ❤️ --- ## 06.12.2023 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - Flippando update on launch 🥳 Token economics overview of Flippando and the decision making process of having an uncapped supply. If the token is used and there is a transfer of value, a reduction in the token supply may generate a value accrural. GRC721 PR waiting merge/review and then the faucet once Flippando is on Gno testnet - Berty news on naming to replace GnoMobile and updates from the team. New application for [GnoSocial](https://github.com/gnolang/ecosystem-fund-grants/pull/9) - Onbloc updates on issues and pull requests and Adena - On chain project management [proposal](https://github.com/gnolang/ecosystem-fund-grants/pull/11) by Dragos - Varmeta [application](https://github.com/gnolang/ecosystem-fund-grants/pull/10) **Q&A or other callouts and updates** --- ## 22.11.2023 Duration: One hour of structured updates, presentations and troubleshooting from our contributors Description: This call will primarily focus on updates from Gno.land contributors and apps or projects (even internal ones)that are building on Gno.land ### Agenda: - On-Chain project management recap (Dragos) - issue: [HackMD](https://hackmd.io/ZKvWLn6USmabx9g1vBvVog?view) - presentation: [ZenTasktic](https://drive.google.com/file/d/1eJGyATHhEzletWwQ4Xt_9ON7L231Yvow/view) - Berty update on the final steps for [GnoMobile](https://github.com/gnolang/hackerspace/issues/28) (maybe Berty?) - Flippando [update](https://github.com/gnolang/hackerspace/issues/33)(Dragos) - on time for public launch in November, waiting on the PR for GRC721 SetTokenURI to be merged - Varmeta [presentation](https://github.com/gnolang/hackerspace/issues/43) - Gno Unity SDK - GoC, Dotnet library wrapper - working on a game and use it to sample projects to publish on Gno.land mainnet. - Onbloc [mainnet support and wallet](https://github.com/gnolang/hackerspace/issues/29) - GnoChess [repo](https://github.com/gnolang/gnochess) - Teritori [update](https://github.com/gnolang/hackerspace/issues/7) - Q&A and Gno Core team feedback ### Notes: - Testnet 4 will be launching in December, after Portal Loop. - Portal Loop, as Testnet 4 will allow publishing contracts with the latest stdlibs and examples/ packages. - Discuss API strategy - Official SDKs - [gno's `tm2/crypto/keys/client`](github.com/gnolang/gno/tree/master/tm2/pkg/crypto/keys/client) - CLI-oriented SDK - [gno's `gno.land/pkg/gnoclient`](https://github.com/gnolang/gno/pull/1047) - upcoming Gno client for Gophers; currently depending on tm2/crypto/keys/client; there is a goal to make the two libraries depending on something lower level - Specific SDKs - [Unity-SDK](https://github.com/AnhVAR/Gno-Unity-SDK/blob/main/go_sdk/keygen_sdk.go) - Go to C binding, to be used with DotNet, Python, etc - [Gnomobile](https://github.com/gnolang/gnomobile/blob/main/gnoclient/client.go) - Uses Gomobile to generate libraries embedding the Go binary + Go runtime and create the bindings + provide a gRPC local API; Can be extended with custom Go code; or just be used to provide a local gRPC API to your existing program. - [tm2-js-client](https://github.com/gnolang/tm2-js-client) + [gno-js-client](https://github.com/gnolang/gno-js-client) - Gno client for the internet guys - TODO: @jefft0 to open a PR against @moul's PR to help making #1047 mergeable and better. - Gnomobile vs. gno-js-client, in the context of mobile app - native vs embedding a browser - Dragos working on [gno-app-in-under-one-hour](https://github.com/irreverentsimplicity/gno-app-in-under-one-hour/tree/main) - Core Team to prioritize the review of client-oriented PRs to prepare for the upcoming Hackathons - Can core team review the wallet security issue posted by Onbloc? - Onbloc's updates for today's call: https://github.com/gnolang/hackerspace/issues/29#issuecomment-1823034514 ### Resources: - Notes from HackMD (link will be provided) - Recording (link will be provided)