-
Notifications
You must be signed in to change notification settings - Fork 45
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
An example specification of the Cosmos SDK bank module #1271
Conversation
This reverts commit b889ea5.
run sendTest = { | ||
init | ||
// the King has bananas and he can send it | ||
.then(send("king", | ||
"donkeykong", | ||
Set("banana").mapBy(d => 2_000))) | ||
Map("banana" -> 2_000))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! This indeed looks much simpler :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just realized that I need to update the markdown, and then re-generate the file. I'm doing that right now!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't look into much detail, but it looks good to me!
Thanks! Then let's merge it. I have enabled automerge. |
For some reason, auto-merge didn't work, so I merged it manually |
I've prototyped this specification in January. Since then we have added plenty of good features in the language. It feels to be the right time for merging this spec.
The distinct feature of this example is literate programming. Both the functional specification and the state machine are introduced in the markdown text directly. So the markdown file is the only file that actually needs a review. The text description of the bank module is copied from Cosmos SDK. We do not have to proof-read text issues, if there are any.
This specification could be further improved. For instance, we could more tests. However, it is already large enough. It could still be interesting to the people who are looking at the bank module.