Comments (3)
I propose an hybrid approach:
- Utilize #575's logging feature, which employs an unpersisted pubsub system for cost-effective contract logging. We can extend this feature to log supplementary information from the gnovm that is not directly written in the contract, such as advanced panic handling, debugging metrics, etc. Consequently, clients can subscribe to "logging events" for the current transaction ID and receive additional metadata.
- Enhance error formatting to make it more informative and optionally typed, while maintaining conciseness for potential storage.
from gno.
Related with #439
from gno.
Hi @moul. I wonder if this is related to a question we have. In GnoMobile, if BroadcastTxCommit, returns an error in bres.CheckTx.Error
, then it wraps a meaningful error type such as std.OutOfGasError
. (Because the error is generated by the local checks before broadcasting?) We can check the error type. But if it returns an error in bres.DeliverTx.Error
then it just wraps the generic abci.StringError
. (Because only an error string is returned from the validator?)
For example when we try to register a user without enough "send", it returns the string "payment must not be less than 200000000". In GnoMobile, we would like to return an error code, but it is not ideal to have to match an error message string. (This example is realm-specific, but even language-level errors like nil pointer are just returned as strings.) I ask this question in this issue because maybe the validator can return a meaningful error type. Are there plans for that?
from gno.
Related Issues (20)
- Automatically generated directory structure references for this repository
- Propagate Constant Values:
- Create or reuse a wallet connection standard and integrate it into Gnoweb HOT 3
- Constant folding:
- setup `gnobro` hosting HOT 1
- gnoweb shows `<` for `<` when browsing source code HOT 1
- [Docs]: Lack of information about `std.Test` functions HOT 1
- NO informations about *_filetest.gno in the docs HOT 1
- RFC disable branch creation on origin HOT 3
- feedback needed: how are you using `gnoland genesis ...`?
- auto-rerun github workflow failures
- ci: consider adding back the gnovm parallel testing
- `r/sys/users` Mainnet v1 (mvp) & v2
- GnoVM: Constant expressions do not work with some built-in functions HOT 4
- Can we use Namespaces norm? HOT 1
- `gno run` should have an ExecContext
- GnoVM: Expose methods of exported struct variables to the `MsgCall` API
- Assignment to Constant Pkg Value in Gno
- Uint64 overflow HOT 3
- Assigning a value to Function Name in Gno should be prohibited
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gno.