Skip to content

Commit bc47b5f

Browse files
authored
docs: move both contract baselines to the GA v2.0.0 tags (#17)
The release candidates the corpus pinned are superseded: both contracts tagged v2.0.0 and the GA AtomicAssets build is what the testnets execute, byte-verified against the Release checksum. atomicmarket v2.0.0 is the same commit as rc2. The atomicassets GA diff moves every citation past the acceptauswap hunk by three lines and accepts the acceptance-date boundary second the candidates rejected, so the affected sections state the GA behavior and every shifted citation was re-verified against the tag.
1 parent f4b6fa7 commit bc47b5f

29 files changed

Lines changed: 173 additions & 153 deletions

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,6 @@ Read the routed file in full rather than searching it. The facts there encode be
6464

6565
Take each section at face value and do not extrapolate past what it states. A page says what was checked, and what it does not say was not checked. `reference/validation.md` records how every page was validated and against what. It grades `reference/` and `guides/` only: a tutorial's claim is that its steps run, and a concepts page restates facts the pages it links already carry, so neither takes a row there.
6666

67-
Re-check any fact that names a version when that dependency moves. The two SDK pages are pinned to `@atomichub/atomicassets` 2.1.1, read at tag `v2.1.1`, and `@atomichub/atomicmarket` 2.4.1, read at tag `v2.4.1`; the client-library page is pinned to `@wharfkit/antelope` 1.1.1, and the AtomicAssets and AtomicMarket contract pages to `v2.0.0-rc4` and `v2.0.0-rc2`. A fact read at one of those pins is a fact about that release, not about the package name.
67+
Re-check any fact that names a version when that dependency moves. The two SDK pages are pinned to `@atomichub/atomicassets` 2.1.1, read at tag `v2.1.1`, and `@atomichub/atomicmarket` 2.4.1, read at tag `v2.4.1`; the client-library page is pinned to `@wharfkit/antelope` 1.1.1, and the AtomicAssets and AtomicMarket contract pages to `v2.0.0` and `v2.0.0`. A fact read at one of those pins is a fact about that release, not about the package name.
6868

6969
Two skills sit beside these pages. `skills/atomic-integration/SKILL.md` carries the procedures a routing table cannot: the mint flow, the market composers, and the network choice. `skills/report/SKILL.md` writes a difficulty report when a page here turned out wrong, missing, or misleading, in the field shape this repository's issue forms accept.

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
What each release of this corpus changed, one release per tag. `Corrected` comes first in every release, because a fact that was wrong is what a returning reader has to see before anything else. The other sections are `Added`, `Revalidated`, and `Removed`, in that order, and a section with nothing in it is left out.
44

5+
## 2026.08.1
6+
7+
### Corrected
8+
9+
- `reference/atomicassets/actions.md` states the GA acceptance boundary for `acceptauswap`: the boundary second is accepted, and the note about a source comment the GA release fixed is gone.
10+
- `reference/atomicassets/tables.md` marks `acceptance_date` as the second at or after which `acceptauswap` is callable.
11+
- `reference/atomicassets/actions.md` and `reference/atomicassets/tables.md` cite `internal_create_template` at its real bounds, which the previous citation missed on both ends.
12+
13+
### Added
14+
15+
- `reference/atomicassets/v2-upgrade.md` records that both testnets run the GA build byte for byte: the live `get_code_hash` equals the `v2.0.0` Release checksum.
16+
17+
### Revalidated
18+
19+
- Every page pinned to a contract release candidate now reads at the GA `v2.0.0` tags: `atomicmarket-contract` `v2.0.0` is the same commit as `v2.0.0-rc2`, and every `atomicassets-contract` citation was re-anchored and re-verified across the GA diff.
20+
521
## 2026.08.0
622

723
### Corrected

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ Agents read `AGENTS.md`, whose routing table maps a task to the file that answer
1616

1717
The pages are read against these baselines:
1818

19-
- `atomicassets-contract` at `v2.0.0-rc4`
20-
- `atomicmarket-contract` at `v2.0.0-rc2`
19+
- `atomicassets-contract` at `v2.0.0`
20+
- `atomicmarket-contract` at `v2.0.0`
2121
- `atomicassets-api` at its `main` branch state, which carries no release tag; the streaming and rate-limit pages pin commit `f6419858`
2222
- `atomictools-contract` at commit `d89ce79e4`, which the deployed `atomictoolsx` ABI on WAX matches exactly
2323
- `atomicassets-sdk` at main `80580c5` and `atomicmarket-sdk` at main `278bdfa`, both version 2.0.0

guides/asset-lifecycle.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
scope: Creator flow on the `atomicassets` contract - create a collection, define a schema, optionally a template, mint assets, edit mutable data, transfer, and burn
33
depends-on: [reference/atomicassets/structure.md, reference/atomicassets/actions.md, reference/wharfkit.md]
44
key-modules:
5-
- "atomicmarket-contract (v2.0.0-rc2): src/atomicmarket.cpp"
6-
- "atomicassets-contract (v2.0.0-rc4): src/atomicassets.cpp"
5+
- "atomicmarket-contract (v2.0.0): src/atomicmarket.cpp"
6+
- "atomicassets-contract (v2.0.0): src/atomicassets.cpp"
77
- "@atomichub/atomicassets 2.1.1 (atomicassets-sdk v2.1.1, 5c70c62): src/Actions/Generator.ts"
88
---
99

1010
# Create a collection and mint assets
1111

12-
The full creator flow on the `atomicassets` contract: create a collection, define a schema, optionally create a template, mint assets, edit mutable data, transfer, and burn. Baseline is AtomicAssets V2; notes call out where V1 differed. Every data shape, required authorization, RAM payer, and failure mode below was checked against tag `v2.0.0-rc4` of `atomicassets-contract` (the release pinned for both testnets), `src/atomicassets.cpp`.
12+
The full creator flow on the `atomicassets` contract: create a collection, define a schema, optionally create a template, mint assets, edit mutable data, transfer, and burn. Baseline is AtomicAssets V2; notes call out where V1 differed. Every data shape, required authorization, RAM payer, and failure mode below was checked against tag `v2.0.0` of `atomicassets-contract` (the release pinned for both testnets), `src/atomicassets.cpp`.
1313

1414
Each step shows the action's data as plain JSON first, then the same call through `@wharfkit/session`'s `session.transact()`. See [Build a session and sign](signing.md) for how that `session` is constructed and which chain it points at. `ATTRIBUTE_MAP` fields (`data`, `immutable_data`, `mutable_data`) serialize as an array of `{key, value}` pairs, where `value` is a two-element `[type, value]` variant. The `key`/`value` naming is only present in the patched release ABI; the raw CDT build names the same fields `first`/`second`. See [Contract releases and deployment](../reference/contract-releases.md#raw-vs-patched-abi) ("Raw vs patched ABI").
1515

@@ -65,7 +65,7 @@ await session.transact({
6565
- RAM payer: `author`.
6666
- Fails when: a collection with this name already exists (`"A collection with this name already exists"`); `notify_accounts` is non-empty while `allow_notify` is false (`"Can't add notify_accounts if allow_notify is false"`); `authorized_accounts` or `notify_accounts` contains a nonexistent account or a duplicate; `market_fee` is outside `0` to `0.15` (the message is built with `std::to_string` of the `double` bound, so at runtime it reads `"The market_fee must be between 0 and 0.150000"`); or a `data` attribute named `name` exceeds 64 characters (`"Names (attribute with name: \"name\") can only be 64 characters max"`).
6767

68-
Source: `atomicassets-contract src/atomicassets.cpp:91-158` (`createcol`), `atomicassets-contract src/atomicassets.cpp:141-142` (market_fee bound), `atomicassets-contract include/atomicassets.hpp:13` (`MAX_MARKET_FEE`), `atomicassets-contract src/atomicassets.cpp:1895-1905` (`check_name_length`)
68+
Source: `atomicassets-contract src/atomicassets.cpp:91-158` (`createcol`), `atomicassets-contract src/atomicassets.cpp:141-142` (market_fee bound), `atomicassets-contract include/atomicassets.hpp:13` (`MAX_MARKET_FEE`), `atomicassets-contract src/atomicassets.cpp:1898-1908` (`check_name_length`)
6969

7070
## Create a schema: createschema
7171

@@ -108,7 +108,7 @@ await session.transact({
108108
- RAM payer: `authorized_creator`.
109109
- Fails when: the caller isn't an authorized account for the collection (`"Missing authorization for this collection"`); `schema_name` isn't 1 to 12 characters; a schema with this name already exists for the collection; any line's `type` isn't a recognized scalar or vector type, or a name is empty, over 64 characters, or duplicated; or the format omits a line with `name: "name"` and `type: "string"` (`"A format line with {\"name\": \"name\" and \"type\": \"string\"} needs to be defined for every schema"`).
110110

111-
Source: `atomicassets-contract src/atomicassets.cpp:450-475` (`createschema`), `atomicassets-contract src/atomicassets.cpp:1861-1875` (`check_has_collection_auth`, collection authorization), `atomicassets-contract include/checkformat.hpp:32-97` (format validation)
111+
Source: `atomicassets-contract src/atomicassets.cpp:453-478` (`createschema`), `atomicassets-contract src/atomicassets.cpp:1864-1878` (`check_has_collection_auth`, collection authorization), `atomicassets-contract include/checkformat.hpp:32-97` (format validation)
112112

113113
## Create a template: createtempl
114114

@@ -157,7 +157,7 @@ await session.transact({
157157
- RAM payer: `authorized_creator`.
158158
- Fails when: no schema with `schema_name` exists for the collection; both `transferable` and `burnable` are false (`"A template cannot be both non-transferable and non-burnable"`); or an `immutable_data`/`mutable_data` attribute named `name` exceeds 64 characters. `max_supply: 0` is valid and means unlimited.
159159

160-
Source: `atomicassets-contract src/atomicassets.cpp:566-576` (`createtempl`), `atomicassets-contract src/atomicassets.cpp:1579-1655` (`internal_create_template`, shared by `createtempl`/`createtempl2`)
160+
Source: `atomicassets-contract src/atomicassets.cpp:569-579` (`createtempl`), `atomicassets-contract src/atomicassets.cpp:1582-1658` (`internal_create_template`, shared by `createtempl`/`createtempl2`)
161161

162162
## Mint an asset: mintasset
163163

@@ -202,7 +202,7 @@ Pass `template_id: -1` to mint a templateless asset carrying its own `immutable_
202202

203203
**Changed in V2:** native token backing (the `tokens_to_back` parameter and the `backasset` action) is deprecated: any non-empty `tokens_to_back` aborts the mint, and `backasset` unconditionally fails. Under V1 both were functional and moved real token balances onto the asset.
204204

205-
Source: `atomicassets-contract src/atomicassets.cpp:697-788` (`mintasset`, backing guard at `:786-787`), V1 backing behavior in this repo's V1 tree (`contracts/atomicassets-contract/src/atomicassets.cpp`)
205+
Source: `atomicassets-contract src/atomicassets.cpp:700-791` (`mintasset`, backing guard at `:789-790`), V1 backing behavior in this repo's V1 tree (`contracts/atomicassets-contract/src/atomicassets.cpp`)
206206

207207
### Building the same mint through the SDK
208208

@@ -267,7 +267,7 @@ Pass `asset_id` as a string in the action data. See [AtomicMarket V2 changes](..
267267
- RAM payer: reassigned to `authorized_editor` on every call (`_asset.ram_payer = authorized_editor`), replacing whoever paid before, including the original minter.
268268
- Fails when: no asset with `asset_id` exists for `asset_owner`; the caller isn't authorized for the asset's collection; or a `new_mutable_data` attribute named `name` exceeds 64 characters.
269269

270-
Source: `atomicassets-contract src/atomicassets.cpp:796-836`
270+
Source: `atomicassets-contract src/atomicassets.cpp:799-839`
271271

272272
## Transfer an asset: transfer
273273

@@ -300,7 +300,7 @@ await session.transact({
300300
- RAM payer: unchanged for an existing scope; the row keeps whoever originally paid for it. If `to` has never held any AtomicAssets asset before, a new scope must be created, and `from` implicitly pays for it (the transfer aborts if `from` hasn't authorized the action, which it always has, since `from` is the one calling `transfer`).
301301
- Fails when: `to` isn't a registered account; `from` equals `to`; `asset_ids` is empty or contains a repeated id; the memo exceeds 256 characters; `from` doesn't own one of the listed assets (`"Sender doesn't own at least one of the provided assets"`); or at least one asset's template has `transferable: false` (`"At least one asset isn't transferable"`). The contract appends the offending id to both of these messages as a ` (ID: <asset_id>)` suffix, so a match on either string should allow for the trailing id.
302302

303-
Source: `atomicassets-contract src/atomicassets.cpp:76-86` (`transfer` action), `atomicassets-contract src/atomicassets.cpp:1665-1761` (`internal_transfer`, shared with `acceptoffer`)
303+
Source: `atomicassets-contract src/atomicassets.cpp:76-86` (`transfer` action), `atomicassets-contract src/atomicassets.cpp:1668-1764` (`internal_transfer`, shared with `acceptoffer`)
304304

305305
## Burn an asset: burnasset
306306

@@ -329,7 +329,7 @@ await session.transact({
329329
- RAM payer: none afterward; the row and its RAM are released back to whoever paid for it. If the asset carries any `backed_tokens`, `burnasset` credits them to the owner's `balances` row before erasing the asset. That crediting code is retained in V2, so a legacy V1-backed asset still pays out its backing on burn; V2 only makes new backing impossible (`backasset` aborts and `mintasset` rejects a non-empty `tokens_to_back`), so no freshly-minted asset can accumulate a balance to release.
330330
- Fails when: no asset with `asset_id` exists for `asset_owner`, or the asset's template has `burnable: false` (`"The asset is not burnable"`). Templateless assets (`template_id: -1`) are always burnable.
331331

332-
Source: `atomicassets-contract src/atomicassets.cpp:1096-1177` (`burnasset`, backed-token crediting at `:1112-1145`)
332+
Source: `atomicassets-contract src/atomicassets.cpp:1099-1180` (`burnasset`, backed-token crediting at `:1115-1148`)
333333

334334
## See also
335335

guides/auctions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
scope: AtomicMarket auction lifecycle on the V2 baseline - announce, transfer the asset into escrow, place deposit-backed bids, claim after the end, and cancel
33
depends-on: [reference/atomicmarket/actions.md, guides/deposits.md]
44
key-modules:
5-
- "atomicmarket-contract (v2.0.0-rc2): src/atomicmarket.cpp"
6-
- "atomicassets-contract (v2.0.0-rc4): src/atomicassets.cpp"
5+
- "atomicmarket-contract (v2.0.0): src/atomicmarket.cpp"
6+
- "atomicassets-contract (v2.0.0): src/atomicassets.cpp"
77
- "@atomichub/atomicmarket 2.4.1 (atomicmarket-sdk v2.4.1, 437300b): src/Actions/Generator.ts"
88
---
99

guides/buyoffers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
scope: How to create, accept, decline, and cancel AtomicMarket asset and template buyoffers, whose price leaves the buyer's deposited balance at creation
33
depends-on: [reference/atomicmarket/actions.md, guides/deposits.md, reference/api.md]
44
key-modules:
5-
- "atomicmarket-contract (v2.0.0-rc2): src/atomicmarket.cpp"
6-
- "atomicassets-contract (v2.0.0-rc4): src/atomicassets.cpp"
5+
- "atomicmarket-contract (v2.0.0): src/atomicmarket.cpp"
6+
- "atomicassets-contract (v2.0.0): src/atomicassets.cpp"
77
- "@atomichub/atomicmarket 2.4.1 (atomicmarket-sdk v2.4.1, 437300b): src/Actions/Generator.ts"
88
---
99

guides/deposits.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
scope: AtomicMarket's internal balances ledger - depositing with the transfer memo, what consumes a balance, withdrawing, who pays RAM, and supported tokens
33
depends-on: [reference/atomicmarket/actions.md, reference/atomicmarket/ram.md]
4-
key-modules: ["atomicmarket-contract (v2.0.0-rc2): src/atomicmarket.cpp", "atomicassets-contract (v2.0.0-rc4): src/atomicassets.cpp"]
4+
key-modules: ["atomicmarket-contract (v2.0.0): src/atomicmarket.cpp", "atomicassets-contract (v2.0.0): src/atomicassets.cpp"]
55
---
66

77
# Balances and deposits

0 commit comments

Comments
 (0)