Skip to content

Don't Break My DevEx

Chris Hibbert edited this page Sep 28, 2021 · 4 revisions

As explained in Agoric JavaScript Programming:

Agoric's platform lets you write secure smart contracts in JavaScript. The platform itself is mainly written in JavaScript.

If you're making a change that refines the platform, you put the developer experience at-risk in a way that we don't yet know how to check in ci. So please check these things by hand:

Error messages, stack traces in contract code

In so-called "swingset tests" that run contract code in a compartment, make sure stack traces (with file and line numbers!) still work. For example, break something in packages/zoe/test/swingsetTests and see if you get a good diagnostic. TODO: something more specific?

Also check for censored vs. uncensored error messages. (how, specifically?)

vs-code debugging

If breakpoints and debugger; statements don't work in vs-code, it's a drag.

REPL

Evaluating expressions and assigning values in the REPL is pretty important.

Appendix: rough edges that should probably be documented somewhere else

npm package XYZ breaks when I use it with SES / lockdown

Most JavaScript in the wild gets along fine with SES. But when, for example, React tries to do some platform refinement of its own after lockdown(), life gets complicated. See also lockdown Options

See also: devex issues

Clone this wiki locally