Skip to content

Load pinned app artifacts through module imports - #69

Open
RossKU wants to merge 1 commit into
argent-lang:masterfrom
RossKU:artifact-imports-pr
Open

RossKU wants to merge 1 commit into
argent-lang:masterfrom
RossKU:artifact-imports-pr

Conversation

@RossKU

@RossKU RossKU commented Oct 8, 2026

Copy link
Copy Markdown

Lets a module import a published app artifact without its source: import "./asset/artifact.json" id "<artifact id>"; (consistency-checked, id must match the pin, linked without compiling).

RossKU added a commit to RossKU/kob that referenced this pull request Oct 10, 2026
…enesis check

- kcc-conformance.md: section 4.3 (genesis check of public-mint tokens: accepted actors,
  supply, official rule), 4.4 (issuance on the standard 3/3 program, why the order templates'
  stray-scan bound stays, builder slots, matcher chaining), 4.5 (testnet-10); the 8/8, 4/5,
  16/16, P2 and KCC20Opt rows labelled prototypes.
- argent-feedback.md: item 6 re-measured on 2026-10-10 (TokenSwap_swap2 214 / 221 shipped,
  236 / 247 with the ask pin, 237 / 250 with the bid pin, 259 / 270 with both: the ask pin
  alone no longer fits); item 8 describes KOBToken / KCC20Ref_8x8 as a provisional prototype;
  item 12 status: PR argent-lang/argent#69 open from RossKU/argent.
- contracts/README.md, UPSTREAM.md, registry/README.md, argent.md, matcher.md, the x402
  profiles, the KRON adapter README, the root README and the e2e README follow; comments in
  the code and the Argent sources (contracts/SHA256SUMS refreshed) no longer call the 8/8
  program the one KOB issues.
RossKU added a commit to RossKU/kob that referenced this pull request Oct 13, 2026
… KOB still applies (UPSTREAM.md, argent-feedback.md item 12, argent.md); matcher.md 3.5 drops the retired cross limit decision note
A module import of a published app artifact names the artifact id the
importer reviewed:

    import "./asset/artifact.json" id "<artifact id>";

The loader reads the artifact, runs its consistency check and requires the
pinned id (an import without the pin, an `id` on a source or standard
module import, and an artifact as the root file are rejected). The
artifact is then described as declaration-only Argent source (its states,
actor enums, exported actors without entries and its app) that goes through
the same lexer, parser and name resolution as every other module, so
references into it resolve like references into a source import. The app
graph builder links the artifact as published, writes it below
apps/<App>/ and never compiles it; its declaration identities match what
a source import of the same app would report, so a bundle built against
the artifact equals one built against the source.

Ports the artifact import onto the AST-to-AST compiler (argent-lang#70).
@RossKU
RossKU force-pushed the artifact-imports-pr branch from 435fa89 to 7ace562 Compare October 26, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant