Skip to content

chore: merge feedback into main - #359

Open
luchobonatti wants to merge 534 commits into
mainfrom
release/feedback
Open

luchobonatti wants to merge 534 commits into
mainfrom
release/feedback

Conversation

@luchobonatti

@luchobonatti luchobonatti commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Summary

Merges feedback into main: the reviewed work on the contracts, the harness, the app and the docs.

GitHub closes an issue from Closes #N only when a pull request merges into the default branch. The pull requests below merged into feedback, so their issues are listed here, each with the pull request that did the work. All of them were closed by hand except #315, which this merge closes.

Issues

Test plan

CI on this pull request builds and tests feedback's head against main.

hpmaxi and others added 17 commits October 27, 2026 12:19
ci: run a wind-down on a throwaway vault
ci: check formatting, lints and dependencies
feat(oracle): anchor a proof reference to every attestation
After the token's setup closes, token role grants, the manager revoke,
the admin hand-over, Set the compliance contract and Set the identity
verifier go through propose_change. Governance lists the token's
pending changes with Apply and Cancel.

Closes #305
Attest price asks for the proof hash and an optional proof URI and
sends them as the oracle's NavInput. Cycle shows the latest proof, and
reads use accepted_at.

Closes #235
@vercel

vercel Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
strata-vault-kit-app Ready Ready Preview Nov 2, 2026 9:41pm UTC

Request Review

luchobonatti and others added 11 commits October 27, 2026 15:58
feat(app): collect a proof reference when attesting
feat(app): run the share token's admin changes through its timelock
feat(app): run the vault's timelocked changes through the console
…ments

feat(app): follow the renamed vault arguments
With a pinned tag, stellar-scaffold no longer sees the action's container as its local network, starts its own and redeploys, so the app is built against this branch's contracts and fails on the type errors the app stack fixes. Pin the image again once the app compiles against them.
feat(app): name the NAV pause and follow the oracle's bounds
The previous commit blamed the pin for the app build failure. That was wrong: the same tree without the pin fails the same way. The app does not compile against this branch's contracts yet, which the app stack fixes; the pin is unrelated.
…contracts

ci: build the app against the contracts the branch deploys
chore: run CI on protocol 30 and read its ledgers
hpmaxi and others added 30 commits November 2, 2026 13:03
Every test that mocked `config/clients` built its own client object by hand.
They now mock it with one module whose fakes take their call names, arguments
and results from the generated clients, so each test names the calls it uses
and a wrong name or result shape fails the type check. The stricter types
caught a few fixtures that no longer matched the contracts: enum values, pending
changes and holder arguments.

Refs #420
The modal's 2,158-line file held the copy and status text for every action.
That content now lives in one module per section (investor, cycle,
emergency, configuration, governance, compliance) beside the shared failure
text, the admin copy helpers, the step tracker and the action types.
`TransactionModal.tsx` keeps the component and `ShareLink`, and re-exports
what callers already import from it. The code moved unchanged.

Refs #420
The 3,300-line test file now follows the component: the modal's own
behaviour stays in `TransactionModal.test.tsx`, and each section's describe
blocks move to a test file beside its module. The render helpers move to one
shared module. Test names and assertions moved unchanged; each file mocks
the same app-lib helpers the original did.

Refs #420
`build:clients` and the harness deploy now write each client's sources with
the SDK's generator, pin its stellar-sdk, and compile them to the `dist/`
the harness imports. The stellar CLI's bindings, which typed an empty
`Option` differently, are no longer generated. The guard before tests and
the type check also requires each contract client's `dist/`.

Refs #420
A client compiled by an older TypeScript can declare a reference to the
node types, which then clash with app-lib's own `Buffer` type.

Refs #420
A faked call now resolves either to a result of the contract's type or to a
transaction a write can sign, so an empty object or a missing result no
longer type-checks. Three vault roles faked as `undefined` now use the
`null` the client returns, and the test title says what it fakes.

Refs #420
Nothing downstream reads the Wasm, so the artifact carries the generated
clients alone. The harness report upload uses the same upload-artifact
release as the clients.

Refs #420
…t helpers

This reverts commit df89ed1. The TransactionModal split moves to its own
issue.

Refs #420
This reverts commit 908a78b. The shared typed fake moves to its own issue.

Refs #420
This reverts commit d1d371b, and removes its render helpers at the path they
were later moved to. The split moves to its own issue.

Refs #420
This reverts commit 80acc8e. The split moves to its own issue.

Refs #420
This reverts commit c9c75ec. The shared typed fake moves to its own issue.

Refs #420
Request, cancel, price, a claim the reserve cannot cover, fund and claim, on a seeded deployment. The treasury deploys the free reserve first and the redemption is sized above what is left, because a claim is refused only when the liquid reserve is below that claim. send takes a label and prints the transaction hash, so a run can be linked to an explorer.
List one testnet transaction per queue step, from the harness scenario, and the command that repeats it. Closes #368
`npm run test` imports only each client's `src/`, which the app's own client
generator also writes, so its guard checks only that. The guard before
`npm run typecheck` also requires each contract client's `dist/`, which the
harness imports. Both errors name `npm run build:clients`.

Refs #420
Add the console URL and one testnet transaction per privileged operation, with the signing account, signers and threshold. Say which operations were left out and why. Closes #370
chore(harness): set the minimum epoch duration at deploy
test(contracts): name the refusals added since the last pass
fix(contracts): small consistency fixes in the vault and oracle
chore(ci): generate the contract clients before the JS checks
Contract errors are resolved at runtime from the error cases the
generated clients carry, so failures expose the error's name next to
its code. Tests derive codes from each client's error table by name.

Refs #415
Per-action copy moves to transactionCopy/ as data read by one
describeStatus, and contract errors match by name. The modal tests are
split by section. Fixes AdminTransferPending for the vault and oracle,
and pause errors no longer show on oracle actions.

Closes #415
refactor(app): split the transaction modal's copy and map errors by name
…tions

docs: record the admin panel transactions
docs: record the redemption queue on testnet

This branch was successfully deployed

1 active deployment
Preview — ac91a856 Deployed Nov 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants