Repository navigation
docs: add Building Apps concept pages (smart contracts, dApps, smart accounts, smart assets, Blockchain Updates) - #28
Merged
Conversation
…rt accounts, smart assets and Blockchain Updates Closes the WP3 concept gap (ECO-19) with five original pages in 04_building-apps/, numbered 07-11 so prefixes stay unique next to the existing 05_node-grpc and 06_data-service-api: - 07 Smart Contracts Overview: the three script types, compile/deploy flow, limits, fees, Testnet vs Mainnet differences, common mistakes - 08 Creating and Launching a dApp: pledge-drive walkthrough - 09 Smart Accounts: 2-of-3 multisig and escrow walkthroughs - 10 Smart Assets: allowlist-token walkthrough and asset script rules - 11 Blockchain Updates: enabling the extension, API, event model, reliable-consumer rules Every fact is traced to node-scala v1.8.0 source; fees were confirmed with POST /transactions/calculateFee on the Testnet and Mainnet nodes. Each page carries a "Verified against" stamp. Samples: four Ride scripts in docs/_samples/ride/ (compiled on both public nodes by the new docs/scripts/check_ride_samples.py) and seven TypeScript samples typechecked by the existing samples job (@types/node added for readFile). Also corrects 05_node-grpc.md (enabling the gRPC server does not enable BlockchainUpdates), 02_node-extensions.md (min-keep-alive meaning, both extension classes), links the glossary entries and records the final numbering in PLAN-docs-expansion.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Escrow sample (09_smart-accounts):
- The timeout was a fixed height (120000) that Mainnet has already
passed and the Testnet soon will, letting the buyer reclaim funds at
once. It is now written to the account's data before locking,
computed from the current height.
- Payouts were not limited, so a signer could send the funds away as a
huge fee or in many small pieces. A payout must now move exactly the
escrowed amount, also stored in data, with exactly the 0.005 DCC fee,
so the funds can leave once.
Other fixes:
- pledge-drive refund() now decrements total.
- Pages show samples with {literalinclude} instead of pasted copies, so
the published code is the typechecked and compiled code. The install
snippet checker now parses directive fences that carry an argument;
without that it silently skipped the install line after an include.
- compileRide and check_ride_samples.py handle non-JSON and network
errors instead of crashing.
- The limits table adds the per-invocation complexity cap (26,000 for
V5, 52,000 for V6+) next to the per-callable cap it was confused with.
- Set Asset Script's 1 DCC is stated to include the smart asset
surcharge; the Testnet's highest active feature is 26, not 25.
- Walkthroughs tell readers to replace the example keys and addresses.
- Updated script sizes, complexities and fees, confirmed with the
Testnet node's calculateFee.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33imattei33
commented
Oct 25, 2026
33imattei33
left a comment
Contributor
Author
There was a problem hiding this comment.
Reviewed the five new pages in docs/04_building-apps/ (07–11) and the samples in docs/_samples/.
Acceptance criterion 4 (no copied prose): I spot-checked 3 paragraphs per page against docs.waves.tech with a search. No matches.
| Page | Result |
|---|---|
| 07 Smart Contracts Overview | ✅ original |
| 08 Creating and Launching a dApp | ✅ original |
| 09 Smart Accounts | ✅ original |
| 10 Smart Assets | ✅ original |
| 11 Blockchain Updates | ✅ original |
CI is green on de11f3b: strict build, independence check, samples typecheck, Vale and link check.
All four acceptance criteria for ECO-19 are met. Ready to merge into dev.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the WP3 concept gap from
PLAN-docs-expansion.md(Jira: ECO-19).What's new
Five original pages in
docs/04_building-apps/. They are numbered 07–11 because05_node-grpc.mdand06_data-service-api.mdalready hold the plan's05_/06_prefixes.07_smart-contracts-overview.md08_creating-and-launching-a-dapp.md09_smart-accounts.md10_smart-assets.md11_blockchain-updates.mdSamples:
docs/_samples/ride/and seven TypeScript files indocs/_samples/.{literalinclude}, so the published code is exactly the code CI typechecks. No pasted copies can drift.samples_typecheckjob checks the TypeScript. I added@types/nodeto the samples' dev dependencies forreadFile.docs/scripts/check_ride_samples.pycompiles the Ride scripts with a node's/utils/script/compileCode. It needs network access, so it isn't wired into CI; that belongs to the follow-up ticket "Run docs samples against testnet in CI".Small corrections to existing pages:
05_node-grpc.mdsaid enabling the gRPC server also enables BlockchainUpdates. They are separate extension classes.02_node-extensions.mddescribedmin-keep-aliveas a subscription lifetime; it is the minimum client keep-alive ping interval. It also named only one of the module's two extension classes.PLAN-docs-expansion.mdrecords the final numbering.Acceptance criteria
04_building-apps/index.md; the-Wbuild passes on this PRHow it was verified
v1.8.0source and toio.decentralchain:protobuf-schemas1.6.6.POST /transactions/calculateFeeon both public nodes.v1.8.0-dev-e6248f2408) and the Mainnet node (DCC v1.3.5).refund()now decrementstotal.check_install_snippets.pynow parses directive fences that carry an argument ({literalinclude} path). Before, it silently skipped anynpm installline that came after an include.Not verified:
grpcurlcommands were not run against a live node. That page's stamp says so.Worth knowing for review
STDLIB_VERSION 5so they deploy on both networks.setScript()defaults to the Testnet's per-kilobyte fee. The pages tell Mainnet users to passfee: 1_000_000.@decentralchain/transactionsbuilders other thantransfer()/massTransfer()default to chain ID 76 ('L'), which no DecentralChain network uses. The pages warn about it; the SDK itself needs a separate issue.@decentralchain/protobuf-serialization3.0.0 still uses the previous protobuf package names, so a generated client cannot reach a v1.8.0 node's BlockchainUpdates service. The Blockchain Updates page warns against generating from it.03_functions.rstdocuments the native-coin balance function asdecentralchainBalance, but the Testnet node only compilesdccBalance, and the Mainnet node only accepts the upstream name.🤖 Generated with Claude Code