Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
9de6dac
feat(platform)!: dpns contract v3 checks name registration with schem…
QuantumExplorer Oct 8, 2026
08a5679
fix(platform): a pre-upgrade preorder meets only a one-block minimum age
QuantumExplorer Oct 8, 2026
7fa7b0a
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 8, 2026
521761b
test(sdk): pin the dpns preorder hash of a mixed-case parent domain name
QuantumExplorer Oct 8, 2026
bdc9d9e
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 8, 2026
d3518c7
chore(contract): shorten the dpns v3 schema descriptions
QuantumExplorer Oct 9, 2026
d93f498
feat(platform)!: dpns v3 preorders are unique per owner and hash the …
QuantumExplorer Oct 9, 2026
e6c1911
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 9, 2026
b66668f
fix(sdk): hash DPNS preorders against the contract the network stores
QuantumExplorer Oct 9, 2026
fbd02c9
fix(sdk): take the DPNS contract only from a response proved at the p…
QuantumExplorer Oct 9, 2026
b720af0
fix(drive): seed the block cache with the contract a rebuild stores
QuantumExplorer Oct 9, 2026
51403d3
fix(sdk): skip a DPNS contract response when the SDK version moved me…
QuantumExplorer Oct 9, 2026
4905cf3
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 9, 2026
1f1a8b0
feat(contract): write the DPNS v3 byte arrays with the type shorthands
QuantumExplorer Oct 9, 2026
45309b9
fix(platform): DPNS v3 review fixes
QuantumExplorer Oct 9, 2026
a9b1ee5
refactor(dpp): read a reference's findBy hash key through one accessor
QuantumExplorer Oct 9, 2026
0e3ae00
test(sdk): give the records.identity refusal spec two distinct identi…
QuantumExplorer Oct 9, 2026
c2d30d9
docs(book): the findBy function exception for $ownerId; DPNS preorder…
QuantumExplorer Oct 9, 2026
b43fcec
test(drive): run the protocol 13 halves of three tests on DPNS v2
QuantumExplorer Oct 9, 2026
c158a7d
fix(sdk): parse a proof the SDK's version can not read under the vers…
QuantumExplorer Oct 9, 2026
3961808
Merge branch 'v5.0-dev' into claude/wizardly-driscoll-44c981
QuantumExplorer Oct 9, 2026
521bfa2
test(sdk): cover the protocol version fallback through the quorum key…
QuantumExplorer Oct 10, 2026
193c42f
test(sdk): fetch a missing quorum key and read the proof again throug…
QuantumExplorer Oct 10, 2026
35696a2
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 11, 2026
4be5d8c
Merge remote-tracking branch 'origin/v5.0-dev' into claude/wizardly-d…
QuantumExplorer Oct 11, 2026
759d679
feat(platform)!: dpns v3 preorders hash the owner and the name, witho…
QuantumExplorer Oct 11, 2026
aaa0bb7
fix(sdk): dpns registration decodes under the contract it built again…
QuantumExplorer Oct 11, 2026
b1ae90f
fix(wasm-sdk): the trusted context forwards a registered contract to …
QuantumExplorer Oct 11, 2026
ec975f7
Merge branch 'v5.0-dev' into claude/wizardly-driscoll-44c981
QuantumExplorer Oct 12, 2026
8a35b1a
Merge branch 'v5.0-dev' into claude/wizardly-driscoll-44c981
QuantumExplorer Oct 12, 2026
a7e6bf7
Merge v5.1-dev (with v5.0-dev) into the DPNS v3 branch
QuantumExplorer Oct 13, 2026
1cfe150
feat(platform)!: move DPNS v3 to protocol version 15 and choose the f…
QuantumExplorer Oct 13, 2026
4146766
fix(drive-abci): keep DPNS v3 for its rebuild on an upgrade that skip…
QuantumExplorer Oct 13, 2026
388dd5f
Merge v5.1-dev into the DPNS v3 branch
QuantumExplorer Oct 20, 2026
e46c134
feat(platform)!: hold a DPNS name to the preorders a reveal reads, wi…
QuantumExplorer Oct 21, 2026
b9eecc3
fix(sdk): delete a pending DPNS preorder that expires before its reve…
QuantumExplorer Oct 21, 2026
0541601
test(drive-abci): run the contest-fund upgrade test at the version it…
QuantumExplorer Oct 21, 2026
823e3af
test(drive-abci): re-pin the nullifier batch guard roots for the DPNS…
QuantumExplorer Oct 21, 2026
7a92326
fix(sdk): leave the DPNS records.identity rule to DPP in js-dash-sdk
QuantumExplorer Oct 21, 2026
97c7e85
test(sdk): cover the public DPNS registration up to its pending-preor…
QuantumExplorer Oct 21, 2026
b3db3ce
fix(sdk): js-dash-sdk stops on an expiring pending DPNS preorder inst…
QuantumExplorer Oct 21, 2026
5e53930
test(sdk): judge a pending DPNS preorder at the time its response rep…
QuantumExplorer Oct 21, 2026
082c561
feat(platform)!: tradeable tokens (PV15)
QuantumExplorer Oct 21, 2026
e3aceb1
feat(platform)!: token marketplace escrow trees and token market cont…
QuantumExplorer Oct 21, 2026
10c1397
fix(drive-abci): refuse a tradeable non-transferable token in check_tx
QuantumExplorer Oct 21, 2026
07215d4
Merge branch 'claude/token-market-trade-mode' into claude/token-marke…
QuantumExplorer Oct 21, 2026
9c128e6
fix(swift-sdk): keep a Tradeable token tradeable when a contract is p…
QuantumExplorer Oct 21, 2026
5072cc3
Merge branch 'claude/token-market-trade-mode' into claude/token-marke…
QuantumExplorer Oct 21, 2026
c7f7fb9
fix(platform): token market review round 1
QuantumExplorer Oct 21, 2026
d85d2c2
fix(platform): token market review round 2
QuantumExplorer Oct 22, 2026
94ef903
fix(drive): keep the escrow's Tokens layer estimate whichever operati…
QuantumExplorer Oct 22, 2026
cd848aa
fix(drive): keep the escrows' root estimate whichever balance operati…
QuantumExplorer Oct 22, 2026
cfe9af5
fix(platform): token market review round 4
QuantumExplorer Oct 22, 2026
90918f4
fix(drive): merge two estimates of one layer at one depth by their cost
QuantumExplorer Oct 22, 2026
abbd7e8
fix(drive): price equal-depth layer descriptions with GroveDB's estim…
QuantumExplorer Oct 22, 2026
bcacf6b
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 22, 2026
c5e631e
Merge branch 'claude/token-market-trade-mode' into claude/token-marke…
QuantumExplorer Oct 22, 2026
3f92254
chore(token-market-contract): version 5.0.0-rc.7 like the rest of the…
QuantumExplorer Oct 22, 2026
6be9098
test(drive-abci): re-pin shielded fee estimates for protocol 15 batch…
QuantumExplorer Oct 22, 2026
39c9b05
fix(drive): skip pricing identical layer descriptions; depth proof te…
QuantumExplorer Oct 22, 2026
7c5b4c8
Merge branch 'v5.1-dev' into claude/token-market-escrow-contract
QuantumExplorer Oct 23, 2026
860dac3
Merge branch 'v5.1-dev' into claude/token-market-escrow-contract
QuantumExplorer Oct 23, 2026
ce1baf5
feat(platform)!: orders keep no $createdAtBlockHeight and no expiresAt
QuantumExplorer Oct 23, 2026
ad0d84f
fix(drive): price layer descriptions only when their depths tie; the …
QuantumExplorer Oct 23, 2026
6cb5ac7
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 25, 2026
b97c646
chore: token-market-contract follows the 5.0.0-rc.8 release bump
QuantumExplorer Oct 25, 2026
5f93697
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 25, 2026
436c30c
docs(platform-version): the token market contract's table entry cites…
QuantumExplorer Oct 25, 2026
2eb9666
fix(drive): layer descriptions that tie on depth and price are ordere…
QuantumExplorer Oct 25, 2026
a5f9498
docs(platform-version): the DPNS note no longer says the data trigger…
QuantumExplorer Oct 26, 2026
affc1e2
fix(drive): keeping the deeper layer description compares every kind …
QuantumExplorer Oct 26, 2026
9685732
fix(drive): EstimatedLevel is imported by the tests that use it
QuantumExplorer Oct 26, 2026
459a584
fix(sdk): the trusted provider serves no token market contract before…
QuantumExplorer Oct 26, 2026
d00de30
docs(platform-version): name every slot PLATFORM_V15 changes for the …
QuantumExplorer Oct 26, 2026
74e517b
fix(drive): merge a shared layer's descriptions into one covering bot…
QuantumExplorer Oct 26, 2026
5a98f00
fix(sdk): the trusted provider's token market gate uses the canonical id
QuantumExplorer Oct 26, 2026
b4e1c6f
feat(platform)!: token market orders no longer record a minimum fill
QuantumExplorer Oct 27, 2026
6b2b8fd
feat(platform)!: generatedFrom sys.tokens.decimals generates a token'…
QuantumExplorer Oct 27, 2026
d29e489
Merge branch 'claude/generated-from-token-decimals' into claude/token…
QuantumExplorer Oct 27, 2026
f2821cf
feat(platform)!: token market orders generate their decimals from the…
QuantumExplorer Oct 27, 2026
59fba48
test(drive-abci): re-pin the shielded characterization roots
QuantumExplorer Oct 27, 2026
65e4ddc
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 28, 2026
eb5ddbe
test(dpp): the system contract size cap test covers the token market …
QuantumExplorer Oct 28, 2026
3f80b80
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 28, 2026
fcc1363
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 30, 2026
d3f4093
style(platform-version): format the drive version 10 table
QuantumExplorer Oct 30, 2026
28f34c2
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Oct 30, 2026
50331e9
fix(drive)!: estimate a batch's fee the same whatever its operations'…
QuantumExplorer Oct 30, 2026
749ac6e
Merge claude/order-independent-batch-estimates (#5688) into claude/to…
QuantumExplorer Oct 30, 2026
2177f07
fix(drive): pick a layer's description once the whole batch is described
QuantumExplorer Oct 30, 2026
19ae32d
test(drive): pin apply_drive_operations 1 at protocol version 14
QuantumExplorer Oct 30, 2026
1469762
Merge claude/order-independent-batch-estimates (#5688) into claude/to…
QuantumExplorer Oct 30, 2026
8e24d95
test(drive-abci): describe the estimate pin's generation as it now picks
QuantumExplorer Oct 30, 2026
26ebfe2
Merge claude/order-independent-batch-estimates (#5688) into claude/to…
QuantumExplorer Oct 30, 2026
1edb1c0
fix(drive): refuse an estimated operation that leaves no layer map
QuantumExplorer Oct 30, 2026
9a16908
Merge remote-tracking branch 'origin/claude/order-independent-batch-e…
QuantumExplorer Oct 30, 2026
d4cc944
docs(book): rewrap the batch estimate paragraph
QuantumExplorer Oct 30, 2026
9350332
Merge branch 'claude/order-independent-batch-estimates' into claude/t…
QuantumExplorer Oct 30, 2026
c04c172
Merge remote-tracking branch 'origin/v5.1-dev' into claude/order-inde…
QuantumExplorer Oct 30, 2026
5f5198f
Merge #5688 (v5.1-dev with decision proposals) into claude/token-mark…
QuantumExplorer Oct 30, 2026
8d31dbf
docs(platform-version): point the DPNS bindings note at note 15
QuantumExplorer Oct 31, 2026
096a2cf
test(drive-abci): pin protocol 15 fees with both new genesis contracts
QuantumExplorer Oct 31, 2026
0c68958
Merge origin/v5.1-dev (private document types) into claude/order-inde…
QuantumExplorer Oct 31, 2026
22de2dc
Merge #5688 (v5.1-dev with private document types) into claude/token-…
QuantumExplorer Oct 31, 2026
eb27187
fix(drive)!: keep every layer description an estimate's writes give, …
QuantumExplorer Oct 31, 2026
db23b91
Merge claude/order-independent-batch-estimates (EstimatedLayers) into…
QuantumExplorer Oct 31, 2026
ea186c5
docs(drive): describe the estimate parameters as EstimatedLayers
QuantumExplorer Oct 31, 2026
ce348ac
Merge branch 'claude/order-independent-batch-estimates' into claude/t…
QuantumExplorer Oct 31, 2026
c9db39e
docs(drive): name EstimatedLayers in the estimate tests' comments
QuantumExplorer Oct 31, 2026
53096e3
Merge branch 'claude/order-independent-batch-estimates' into claude/t…
QuantumExplorer Oct 31, 2026
eff7694
fix(drive): describe a layer holding subtrees with subtrees in a v15 …
QuantumExplorer Oct 31, 2026
fa9e3b4
Merge branch 'claude/order-independent-batch-estimates' into claude/t…
QuantumExplorer Oct 31, 2026
ff93005
Merge origin/v5.1-dev (private document stores, repeated schema keys)…
QuantumExplorer Nov 1, 2026
eba2c98
Merge claude/order-independent-batch-estimates (private document stor…
QuantumExplorer Nov 1, 2026
0c29aa0
fix(drive)!: resolve a batch's estimate from what its writes describe…
QuantumExplorer Nov 1, 2026
e40c37a
refactor(drive): build an estimate with (!apply).then(EstimatedLayers…
QuantumExplorer Nov 1, 2026
e3071db
Merge claude/order-independent-batch-estimates (review 2: resolved es…
QuantumExplorer Nov 1, 2026
535060d
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Nov 1, 2026
707af07
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Nov 1, 2026
7750299
test(drive-abci): pin the rule-free restore fee with the token market…
QuantumExplorer Nov 2, 2026
edc26f4
fix(dpp): read a generated property's token id without decoding a tex…
QuantumExplorer Nov 2, 2026
1b0a79a
refactor(platform-value): bound identifier decoding where the convers…
QuantumExplorer Nov 2, 2026
7e691b5
Merge origin/v5.1-dev (decision proposals, private document types and…
QuantumExplorer Nov 2, 2026
5e4b49b
fix(platform)!: bill the token id hash of a generated decimals and re…
QuantumExplorer Nov 2, 2026
353b550
fix(dpp): read a generated property's token id without decoding a tex…
QuantumExplorer Nov 2, 2026
98c308a
refactor(platform-value): bound identifier decoding where the convers…
QuantumExplorer Nov 2, 2026
24b5783
Merge claude/generated-from-token-decimals (review fixes) into claude…
QuantumExplorer Nov 2, 2026
b9f04dd
docs(platform): end the generatedFrom bullet of CONTRACT_VERSIONS_V7 …
QuantumExplorer Nov 2, 2026
a8ec055
fix(dpp): admit token decimals under an integer maximum past i64 and …
QuantumExplorer Nov 2, 2026
255f108
fix(dpp): leave a rule reading a state-generated property unjudged on…
QuantumExplorer Nov 2, 2026
52fe4e7
Merge claude/generated-from-token-decimals (client pre-check skip, i1…
QuantumExplorer Nov 2, 2026
1f285ea
fix(dpp): pass a client document leaving out required state-generated…
QuantumExplorer Nov 2, 2026
a39f474
Merge claude/generated-from-token-decimals (client schema stand-in fo…
QuantumExplorer Nov 2, 2026
4a60b32
test(token-market-contract): accept an order leaving out the decimals…
QuantumExplorer Nov 2, 2026
4452182
Merge origin/v5.1-dev (verified HTTP context provider, dash-sdk-cxx, …
QuantumExplorer Nov 2, 2026
b122f23
fix(dpp)!: refuse token decimals inside an object declaring const or …
QuantumExplorer Nov 3, 2026
4818cb8
Merge claude/generated-from-token-decimals (token decimals refused in…
QuantumExplorer Nov 3, 2026
b6ca1e5
fix(sdk): serve no token market contract before protocol 15 from the …
QuantumExplorer Nov 3, 2026
1a1347c
fix(dpp): read the keywords beside a $ref when admitting token decima…
QuantumExplorer Nov 3, 2026
c776544
Merge claude/generated-from-token-decimals (keywords beside a $ref in…
QuantumExplorer Nov 3, 2026
deb2477
fix(dpp)!: declare token decimals and the objects holding them in pla…
QuantumExplorer Nov 3, 2026
8845695
Merge claude/generated-from-token-decimals (token decimals declared i…
QuantumExplorer Nov 3, 2026
653ff71
test(dpp): refuse token decimals declared with a $ref beside a type n…
QuantumExplorer Nov 3, 2026
586c870
Merge claude/generated-from-token-decimals (type beside a $ref regres…
QuantumExplorer Nov 3, 2026
25fa783
Merge origin/v5.1-dev (#5604 squash, #5476, #5712, #5726) into claude…
QuantumExplorer Nov 3, 2026
4c77f75
test(drive): resolve a layer kept deeper with the nodes of the descri…
QuantumExplorer Nov 3, 2026
53e231c
test(drive-abci): refuse a signed replace or delete of a stored token…
QuantumExplorer Nov 3, 2026
9931a98
Merge remote-tracking branch 'origin/v5.1-dev' into claude/token-mark…
QuantumExplorer Nov 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ ignore:
- "packages/app-connect-contract/src/**"
- "packages/moderation-charters-contract/src/**"
- "packages/decision-proposals-contract/src/**"
- "packages/token-market-contract/src/**"
- "packages/masternode-reward-shares-contract/src/**"
- "packages/token-history-contract/src/**"
- "packages/wallet-utils-contract/src/**"
Expand Down
3 changes: 3 additions & 0 deletions .github/package-filters/js-packages-direct.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
'@dashevo/decision-proposals-contract':
- packages/decision-proposals-contract/**

'@dashevo/token-market-contract':
- packages/token-market-contract/**

'@dashevo/dashpay-contract':
- packages/dashpay-contract/**

Expand Down
4 changes: 4 additions & 0 deletions .github/package-filters/js-packages-no-workflows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
'@dashevo/decision-proposals-contract': &decision-proposals-contract
- packages/decision-proposals-contract/**

'@dashevo/token-market-contract': &token-market-contract
- packages/token-market-contract/**

'@dashevo/dashpay-contract': &dashpay-contract
- packages/dashpay-contract/**

Expand Down Expand Up @@ -47,6 +50,7 @@
- *app-connect-contract
- *moderation-charters-contract
- *decision-proposals-contract
- *token-market-contract
- packages/rs-platform-serialization/**
- packages/rs-platform-serialization-derive/**
- packages/rs-platform-value/**
Expand Down
5 changes: 5 additions & 0 deletions .github/package-filters/js-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
- .github/workflows/tests*
- packages/decision-proposals-contract/**

'@dashevo/token-market-contract': &token-market-contract
- .github/workflows/tests*
- packages/token-market-contract/**

'@dashevo/dashpay-contract': &dashpay-contract
- .github/workflows/tests*
- packages/dashpay-contract/**
Expand Down Expand Up @@ -60,6 +64,7 @@
- *app-connect-contract
- *moderation-charters-contract
- *decision-proposals-contract
- *token-market-contract
- packages/rs-platform-serialization/**
- packages/rs-platform-serialization-derive/**
- packages/rs-platform-value/**
Expand Down
5 changes: 5 additions & 0 deletions .github/package-filters/rs-packages-direct.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ decision-proposals-contract:
- packages/decision-proposals-contract/schema/**
- packages/decision-proposals-contract/Cargo.toml

token-market-contract:
- packages/token-market-contract/src/**
- packages/token-market-contract/schema/**
- packages/token-market-contract/Cargo.toml

dashpay-contract:
- packages/dashpay-contract/src/**
- packages/dashpay-contract/schema/**
Expand Down
6 changes: 6 additions & 0 deletions .github/package-filters/rs-packages-no-workflows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ decision-proposals-contract: &decision-proposals-contract
- packages/decision-proposals-contract/schema/**
- packages/decision-proposals-contract/Cargo.toml

token-market-contract: &token-market-contract
- packages/token-market-contract/src/**
- packages/token-market-contract/schema/**
- packages/token-market-contract/Cargo.toml

dashpay-contract: &dashpay-contract
- packages/dashpay-contract/src/**
- packages/dashpay-contract/schema/**
Expand Down Expand Up @@ -69,6 +74,7 @@ data-contracts: &data-contracts
- *app-connect-contract
- *moderation-charters-contract
- *decision-proposals-contract
- *token-market-contract

dpp: &dpp
- packages/rs-dpp/**
Expand Down
7 changes: 7 additions & 0 deletions .github/package-filters/rs-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ decision-proposals-contract: &decision-proposals-contract
- packages/decision-proposals-contract/schema/**
- packages/decision-proposals-contract/Cargo.toml

token-market-contract: &token-market-contract
- .github/workflows/tests*
- packages/token-market-contract/src/**
- packages/token-market-contract/schema/**
- packages/token-market-contract/Cargo.toml

dashpay-contract: &dashpay-contract
- .github/workflows/tests*
- packages/dashpay-contract/src/**
Expand Down Expand Up @@ -82,6 +88,7 @@ data-contracts: &data-contracts
- *app-connect-contract
- *moderation-charters-contract
- *decision-proposals-contract
- *token-market-contract

dpp: &dpp
- .github/workflows/tests*
Expand Down
1 change: 1 addition & 0 deletions .github/package-filters/test-suite-triggers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ run:
- packages/app-connect-contract/**
- packages/moderation-charters-contract/**
- packages/decision-proposals-contract/**
- packages/token-market-contract/**
- packages/wallet-utils-contract/**
# Local network scripts and action
- .github/actions/local-network/**
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/tests-rs-workspace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,7 @@ jobs:
--package app-connect-contract \
--package moderation-charters-contract \
--package decision-proposals-contract \
--package token-market-contract \
--all-features \
--locked \
-E '(not test(~shield) or (package(=platform-wallet-storage) and not test(~wallet::shielded::))) and (not binary_id(=drive-abci::strategy_tests) or test(~comprehensive_mixed_operations) or test(~process_proposal_collision))'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,7 @@ jobs:
- packages/app-connect-contract/**
- packages/moderation-charters-contract/**
- packages/decision-proposals-contract/**
- packages/token-market-contract/**
- packages/dapi-grpc/**
- packages/dashpay-contract/**
- packages/data-contracts/**
Expand Down
21 changes: 21 additions & 0 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ members = [
"packages/app-connect-contract",
"packages/moderation-charters-contract",
"packages/decision-proposals-contract",
"packages/token-market-contract",
"packages/rs-sdk-ffi",
"packages/rs-sdk-cxx",
"packages/wasm-drive-verify",
Expand Down
5 changes: 5 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@
ARG SCCACHE_BUCKET
ARG AWS_PROFILE
ARG SCCACHE_REGION
ARG SCCACHE_S3_KEY_PREFIX

Check warning on line 219 in Dockerfile

View workflow job for this annotation

GitHub Actions / Build Docker images (RS-DAPI, rs-dapi, rs-dapi) / Build RS-DAPI image

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "SCCACHE_S3_KEY_PREFIX") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 219 in Dockerfile

View workflow job for this annotation

GitHub Actions / Build Docker images (Dashmate helper, dashmate-helper, dashmate-helper) / Build Dashmate helper image

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "SCCACHE_S3_KEY_PREFIX") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 219 in Dockerfile

View workflow job for this annotation

GitHub Actions / Build Docker images (Drive, drive, drive-abci, SDK_TEST_DATA=true ) / Build Drive image

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "SCCACHE_S3_KEY_PREFIX") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ARG SCCACHE_ENDPOINT

# Generate sccache configuration variables and save them to /root/env
Expand Down Expand Up @@ -409,6 +409,7 @@
packages/app-connect-contract \
packages/moderation-charters-contract \
packages/decision-proposals-contract \
packages/token-market-contract \
packages/data-contracts \
packages/strategy-tests \
packages/simple-signer \
Expand Down Expand Up @@ -536,6 +537,7 @@
packages/app-connect-contract \
packages/moderation-charters-contract \
packages/decision-proposals-contract \
packages/token-market-contract \
packages/withdrawals-contract \
packages/masternode-reward-shares-contract \
packages/dpns-contract \
Expand Down Expand Up @@ -724,6 +726,7 @@
packages/app-connect-contract \
packages/moderation-charters-contract \
packages/decision-proposals-contract \
packages/token-market-contract \
packages/masternode-reward-shares-contract \
packages/dpns-contract \
packages/data-contracts \
Expand Down Expand Up @@ -872,6 +875,7 @@
COPY --from=build-dashmate-helper /platform/packages/app-connect-contract packages/app-connect-contract
COPY --from=build-dashmate-helper /platform/packages/moderation-charters-contract packages/moderation-charters-contract
COPY --from=build-dashmate-helper /platform/packages/decision-proposals-contract packages/decision-proposals-contract
COPY --from=build-dashmate-helper /platform/packages/token-market-contract packages/token-market-contract
COPY --from=build-dashmate-helper /platform/packages/withdrawals-contract packages/withdrawals-contract
COPY --from=build-dashmate-helper /platform/packages/masternode-reward-shares-contract packages/masternode-reward-shares-contract
COPY --from=build-dashmate-helper /platform/packages/dpns-contract packages/dpns-contract
Expand Down Expand Up @@ -978,6 +982,7 @@
packages/app-connect-contract \
packages/moderation-charters-contract \
packages/decision-proposals-contract \
packages/token-market-contract \
packages/withdrawals-contract \
packages/masternode-reward-shares-contract \
packages/dpns-contract \
Expand Down
6 changes: 3 additions & 3 deletions book/src/architecture/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,12 +199,12 @@ Several smaller crates provide cross-cutting infrastructure:

The versioning backbone. Defines `PlatformVersion`, `ProtocolVersion`, and the
version tables for every consensus-critical method across DPP, Drive, and
Drive-ABCI. Currently tracks 14 protocol versions (v1 through v14).
Drive-ABCI. Currently tracks 15 protocol versions (v1 through v15).

```rust
// From packages/rs-platform-version/src/version/mod.rs
pub type ProtocolVersion = u32;
pub const LATEST_VERSION: ProtocolVersion = PROTOCOL_VERSION_14;
pub const LATEST_VERSION: ProtocolVersion = PROTOCOL_VERSION_15;
pub const INITIAL_PROTOCOL_VERSION: ProtocolVersion = 1;
```

Expand Down Expand Up @@ -281,7 +281,7 @@ Here is a simplified view of every Rust workspace member, grouped by role:
| **gRPC definitions** | `dapi-grpc` |
| **WASM bindings** | `wasm-dpp`, `wasm-dpp2`, `wasm-sdk`, `wasm-drive-verify` |
| **iOS/FFI** | `rs-sdk-ffi` |
| **System contracts** | `dpns-contract`, `dashpay-contract`, `withdrawals-contract`, `masternode-reward-shares-contract`, `wallet-utils-contract`, `token-history-contract`, `keyword-search-contract`, `document-history-contract`, `app-connect-contract`, `moderation-charters-contract`, `decision-proposals-contract`, `data-contracts` |
| **System contracts** | `dpns-contract`, `dashpay-contract`, `withdrawals-contract`, `masternode-reward-shares-contract`, `wallet-utils-contract`, `token-history-contract`, `keyword-search-contract`, `document-history-contract`, `app-connect-contract`, `moderation-charters-contract`, `decision-proposals-contract`, `token-market-contract`, `data-contracts` |
Comment thread
QuantumExplorer marked this conversation as resolved.
Resolved
| **Tooling** | `dashmate` (JS), `strategy-tests`, `simple-signer`, `check-features`, `json-schema-compatibility-validator` |
| **Other** | `dash-platform-macros`, `rs-dash-event-bus`, `rs-platform-wallet`, `dash-platform-balance-checker`, `rs-dapi` |

Expand Down
41 changes: 41 additions & 0 deletions book/src/data-model/token-marketplace.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,44 @@ created tradeable becomes tradeable only if its issuer kept the right to change
A non-transferable token cannot be tradeable because filling a listing or an offer moves the token
from the seller to the buyer, which is the transfer the token refuses. `transferable` is fixed
when the token is created, so the trade mode is the only half of the rule an update can change.

## Where orders and escrow live

Open orders are documents of the token market system contract
(`AE6yYq65VdfGCg2MSyV9vV7cWGiFWjbwBuy7THesDh4e`), registered at genesis from protocol version 15
and inserted by the upgrade to 15. It has two document types, `ask` (a listing) and `bid` (an
offer), each with three indexes:

| Index | Properties | Serves |
|---|---|---|
| `book` | `tokenId`, `decimals`, `price`, `$createdAt` | A token's order book, by price and then by age |
| `depth` | `tokenId`, `decimals`, `price`, summed | The total open at each price, or over a price range, in one proven sum query: the base units of the asks (`remaining`) and the credits of the bids (`escrow`) |
| `byOwner` | `$ownerId`, `tokenId`, `$createdAt` | An identity's open orders |

Each side sums what it holds in escrow, so the sums cannot overflow: the tokens listed never exceed
the token's supply, and the credits offered never exceed the credits on Platform. Every integer of
an order is a signed 8-byte value, so a partial fill rewrites an order without changing its stored
size.

An order's price is in credits per whole token, and each order records the token's decimals when
it was placed (`decimals`). Every fill prices the order at that scale, so a later change to the
token's decimals (a `Conventions` update) changes neither what an open listing costs nor what an
open offer pays. The `book` and `depth` indexes keep each scale apart (`tokenId`, then `decimals`,
then `price`), so a book query and a depth sum name the token's decimals and never mix prices of
different scales. After a token changes its decimals, the orders placed before the change stay
under the old decimals until they close; a client showing them alongside the new ones queries both
and scales each by its `decimals`.

Only the marketplace transitions write orders. A document transition cannot create one
(`creationRestrictionMode` 2), and a replace or a delete of one is refused by a data trigger. The
types stay mutable and deletable so the documents carry a revision and storage flags: the order's
owner pays its storage and gets it back when the order closes.

What an order holds is kept outside the contract:

- The tokens of a listing sit in `[Tokens, TOKEN_ORDER_ESCROW_KEY]`, a BigSumTree with one SumTree
per token, keyed by order id. The token conservation check counts it beside the identity
balances and the shielded pools.
- The credits of an offer sit in `[PreFundedSpecializedBalances, PREFUNDED_BALANCES_FOR_TOKEN_ORDERS]`,
a SumTree keyed by order id, which the credit conservation check already counts.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"test:app-connect-contract": "ultra -r --filter \"packages/@(app-connect-contract|js-dash-sdk|js-drive|js-dapi-client|wasm-dpp|wallet-lib|dapi|platform-test-suite)\" test",
"test:moderation-charters-contract": "ultra -r --filter \"packages/@(moderation-charters-contract|js-dash-sdk|js-drive|js-dapi-client|wasm-dpp|wallet-lib|dapi|platform-test-suite)\" test",
"test:decision-proposals-contract": "ultra -r --filter \"packages/@(decision-proposals-contract|js-dash-sdk|js-drive|js-dapi-client|wasm-dpp|wallet-lib|dapi|platform-test-suite)\" test",
"test:token-market-contract": "ultra -r --filter \"packages/@(token-market-contract|js-dash-sdk|js-drive|js-dapi-client|wasm-dpp|wallet-lib|dapi|platform-test-suite)\" test",
"test:dapi-client": "ultra -r --filter \"packages/@(js-dapi-client|wallet-lib|js-dash-sdk|platform-test-suite)\" test",
"test:sdk": "ultra -r --filter \"packages/@(js-dash-sdk|platform-test-suite)\" test",
"test:spv": "ultra -r --filter \"packages/@(dash-spv|js-dapi-client)\" test",
Expand Down Expand Up @@ -83,6 +84,7 @@
"packages/app-connect-contract",
"packages/moderation-charters-contract",
"packages/decision-proposals-contract",
"packages/token-market-contract",
"packages/wasm-drive-verify",
"packages/wasm-sdk",
"packages/js-evo-sdk"
Expand Down
3 changes: 3 additions & 0 deletions packages/data-contracts/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ all-contracts = [
"app-connect",
"moderation-charters",
"decision-proposals",
"token-market",
]

# Individual contract features
Expand All @@ -35,6 +36,7 @@ document-history = ["dep:document-history-contract"]
app-connect = ["dep:app-connect-contract"]
moderation-charters = ["dep:moderation-charters-contract"]
decision-proposals = ["dep:decision-proposals-contract"]
token-market = ["dep:token-market-contract"]

[dependencies]
thiserror = "2.0.12"
Expand All @@ -52,6 +54,7 @@ document-history-contract = { path = "../document-history-contract", optional =
app-connect-contract = { path = "../app-connect-contract", optional = true }
moderation-charters-contract = { path = "../moderation-charters-contract", optional = true }
decision-proposals-contract = { path = "../decision-proposals-contract", optional = true }
token-market-contract = { path = "../token-market-contract", optional = true }

[dev-dependencies]
base58 = "0.2.0"
18 changes: 18 additions & 0 deletions packages/data-contracts/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,21 @@ impl From<decision_proposals_contract::Error> for Error {
}
}
}

#[cfg(feature = "token-market")]
impl From<token_market_contract::Error> for Error {
fn from(e: token_market_contract::Error) -> Self {
match e {
token_market_contract::Error::UnknownVersionMismatch {
method,
known_versions,
received,
} => Error::UnknownVersionMismatch {
method,
known_versions,
received,
},
token_market_contract::Error::InvalidSchemaJson(e) => Error::InvalidSchemaJson(e),
}
}
}
Loading
Loading