Skip to content

chore: remove dead StatusMessage component - #81

Open
Diggardson270 wants to merge 14 commits into
Dshield-xyz:devfrom
Diggardson270:main
Open

chore: remove dead StatusMessage component#81
Diggardson270 wants to merge 14 commits into
Dshield-xyz:devfrom
Diggardson270:main

Conversation

@Diggardson270

Copy link
Copy Markdown

Summary

Area

Testing

  • just test passes (contracts + frontend)
  • just test-e2e passes, if this touches deposit/withdraw/compliance flows
  • If a circuit changed: recompiled and regenerated the checked-in frontend/**/circuits/*.json artifacts
  • pnpm lint / pnpm build pass, if this touches frontend/

Breaking changes

tech-adrian and others added 9 commits July 16, 2026 01:04
- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md
Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.
* feat: add threshold disclosure UI and integration

* Add explicit amount and fee confirmation before deposit signing

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
* chore: add documented frontend/.env.local.example template and update guides

* docs: add CHANGELOG.md and update contributor guidelines Dshield-xyz#6

* fix(ci): trigger CI on dev branch, not just main (Dshield-xyz#52)

All PRs are now required to target dev instead of main, but the
workflow only ran on push/pull_request to main. As a result every
open PR against dev has "no checks reported" and nothing gates
merges into dev.

* fix(frontend): pin axios and bump protobufjs override to close audit findings (Dshield-xyz#53)

* fix(frontend): pin axios and bump protobufjs override to close audit findings

pnpm audit --prod --audit-level=moderate has been failing CI's Frontend
job (once CI actually ran against dev, see Dshield-xyz#52) with 12 findings:
- axios <1.18.0 resolved at three different versions transitively via
  @creit.tech/stellar-wallets-kit's wallet-connector chain (cdp-sdk,
  stellar-sdk). Pinned to ^1.18.1, which was already resolving
  elsewhere in the tree via @stellar/stellar-sdk, so no new major
  version is introduced.
- protobufjs's existing override (^7.6.3) predates GHSA-j3f2-48v5-ccww
  (fixed in 7.6.5); bumped the pin to ^7.6.5, same patch-only policy
  already used for this override.

Verified: pnpm audit --prod --audit-level=moderate now exits 0 (only
the pre-existing, already-documented unpatched elliptic advisory
remains), and pnpm test / pnpm lint / pnpm build all still pass.

* fix(e2e): strip JSON string quoting from i128 CLI output before comparing

get_deposit_amount returns i128 (contracts/pool/src/lib.rs:550). The
Stellar CLI JSON-encodes 64+ bit integers as quoted strings to avoid
JS precision loss, unlike get_next_index's plain u32 output. The
comparison was failing every run with expected 10000000, got
"10000000" (quotes included) since this test never actually executed
in CI before dev branch runs were enabled (Dshield-xyz#52).

* docs: add api route request/response contracts (Dshield-xyz#39)

* chore: add husky + lint-staged pre-commit hook for frontend (Dshield-xyz#40)

- Add husky ^9.1.7 and lint-staged ^15.5.2 to frontend/package.json devDependencies
- Add prepare script so pnpm install auto-installs the git hook
- Configure lint-staged to run eslint --fix on staged src/**/*.{ts,tsx} files
- Add frontend/.husky/pre-commit hook that runs pnpm lint-staged
- Add CONTRIBUTING.md (absent from dev branch) with husky setup documented:
  one-time setup note after pnpm install step, updated step 5 to mention
  the hook runs automatically on commit

Closes Dshield-xyz#25

* docs: add CODEOWNERS file (Dshield-xyz#41)

* docs(security): document rate limiter single-instance limitation (Dshield-xyz#42)

- Add 'Deployment Limitations' section to SECURITY.md with a dedicated
  'Rate Limiter — Single-Instance Only' subsection that explains:
  - The in-memory, per-process nature of checkRateLimit
  - Why multi-instance deployments (load balancer, HPA) get no real protection
  - Upgrade path: Upstash Redis, self-hosted Redis, or Vercel KV
- Add a ⚠️ callout to the README.md Security Model section linking to
  the new SECURITY.md anchor for the full upgrade path

Closes Dshield-xyz#16

* docs: replace the ASCII architecture diagram with a rendered Mermaid diagram Dshield-xyz#51 (Dshield-xyz#47)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions (Dshield-xyz#50)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions

Covers: nullifier, commitment, Merkle root/tree, Merkle inclusion proof,
ZKP, zkSNARK, UltraHonk, Noir, Barretenberg, verification key, Poseidon2,
keccak transform, BN254, selective disclosure, recipient binding, note,
client-side prover, Stellar, Soroban, relayer, shielded pool, SAC, Freighter.

Linked from README.md (new 'New to ZK or Stellar?' section near top +
glossary link in Contributing paragraph) and CONTRIBUTING.md (callout
block after intro + entry in 'Where things live' list).

All 204 tests pass (107 Rust/Soroban + 97 frontend Vitest).

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: Emelie-Dev <120989028+Emelie-Dev@users.noreply.github.com>
Co-authored-by: benzy018 <akobezjr@gmail.com>
Co-authored-by: Fadila Bala Usman <fadilausman705@gmail.com>
Co-authored-by: Joyful Analyst <joyonyegbuna2020@gmail.com>
Co-authored-by: Joey <62303285+Mona-i@users.noreply.github.com>
Co-authored-by: Shantel peters. <Elizabethogunrinde2015@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>
* fix(ci): trigger CI on dev branch, not just main (Dshield-xyz#52)

All PRs are now required to target dev instead of main, but the
workflow only ran on push/pull_request to main. As a result every
open PR against dev has "no checks reported" and nothing gates
merges into dev.

* fix(frontend): pin axios and bump protobufjs override to close audit findings (Dshield-xyz#53)

* fix(frontend): pin axios and bump protobufjs override to close audit findings

pnpm audit --prod --audit-level=moderate has been failing CI's Frontend
job (once CI actually ran against dev, see Dshield-xyz#52) with 12 findings:
- axios <1.18.0 resolved at three different versions transitively via
  @creit.tech/stellar-wallets-kit's wallet-connector chain (cdp-sdk,
  stellar-sdk). Pinned to ^1.18.1, which was already resolving
  elsewhere in the tree via @stellar/stellar-sdk, so no new major
  version is introduced.
- protobufjs's existing override (^7.6.3) predates GHSA-j3f2-48v5-ccww
  (fixed in 7.6.5); bumped the pin to ^7.6.5, same patch-only policy
  already used for this override.

Verified: pnpm audit --prod --audit-level=moderate now exits 0 (only
the pre-existing, already-documented unpatched elliptic advisory
remains), and pnpm test / pnpm lint / pnpm build all still pass.

* fix(e2e): strip JSON string quoting from i128 CLI output before comparing

get_deposit_amount returns i128 (contracts/pool/src/lib.rs:550). The
Stellar CLI JSON-encodes 64+ bit integers as quoted strings to avoid
JS precision loss, unlike get_next_index's plain u32 output. The
comparison was failing every run with expected 10000000, got
"10000000" (quotes included) since this test never actually executed
in CI before dev branch runs were enabled (Dshield-xyz#52).

* docs: add api route request/response contracts (Dshield-xyz#39)

* chore: add husky + lint-staged pre-commit hook for frontend (Dshield-xyz#40)

- Add husky ^9.1.7 and lint-staged ^15.5.2 to frontend/package.json devDependencies
- Add prepare script so pnpm install auto-installs the git hook
- Configure lint-staged to run eslint --fix on staged src/**/*.{ts,tsx} files
- Add frontend/.husky/pre-commit hook that runs pnpm lint-staged
- Add CONTRIBUTING.md (absent from dev branch) with husky setup documented:
  one-time setup note after pnpm install step, updated step 5 to mention
  the hook runs automatically on commit

Closes Dshield-xyz#25

* docs: add CODEOWNERS file (Dshield-xyz#41)

* docs(security): document rate limiter single-instance limitation (Dshield-xyz#42)

- Add 'Deployment Limitations' section to SECURITY.md with a dedicated
  'Rate Limiter — Single-Instance Only' subsection that explains:
  - The in-memory, per-process nature of checkRateLimit
  - Why multi-instance deployments (load balancer, HPA) get no real protection
  - Upgrade path: Upstash Redis, self-hosted Redis, or Vercel KV
- Add a ⚠️ callout to the README.md Security Model section linking to
  the new SECURITY.md anchor for the full upgrade path

Closes Dshield-xyz#16

* docs: replace the ASCII architecture diagram with a rendered Mermaid diagram Dshield-xyz#51 (Dshield-xyz#47)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions (Dshield-xyz#50)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions

Covers: nullifier, commitment, Merkle root/tree, Merkle inclusion proof,
ZKP, zkSNARK, UltraHonk, Noir, Barretenberg, verification key, Poseidon2,
keccak transform, BN254, selective disclosure, recipient binding, note,
client-side prover, Stellar, Soroban, relayer, shielded pool, SAC, Freighter.

Linked from README.md (new 'New to ZK or Stellar?' section near top +
glossary link in Contributing paragraph) and CONTRIBUTING.md (callout
block after intro + entry in 'Where things live' list).

All 204 tests pass (107 Rust/Soroban + 97 frontend Vitest).

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

* fix(frontend): pin sharp past next's declared range to close new libvips CVE (Dshield-xyz#54)

pnpm audit --prod --audit-level=moderate started failing again with a
fresh advisory (GHSA-f88m-g3jw-g9cj, libvips CVEs in sharp <0.35.0).
next@16.2.9 declares sharp as ^0.34.5, which under semver caret rules
for 0.x versions excludes the patched 0.35.x line entirely, so pnpm
was resolving the vulnerable version by default.

Overrode to ^0.35.3. Verified: pnpm audit exits 0 (only the
pre-documented elliptic advisory remains), pnpm build succeeds
(exercises sharp via /icon.png generation), pnpm test (97/97) and
pnpm lint pass.

* docs: add pull request template (Dshield-xyz#46)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add pull request template with required sections

- Added Why section (CONTRIBUTING.md requirement: describe why, not just what)
- Renamed Testing to Testing done for clarity
- Added Screenshot / recording (required) section
- Added Related issue section with Closes # placeholder
- Replaced Area section with Why to match issue Dshield-xyz#41 acceptance criteria
- Replaced Breaking changes section with Screenshot/recording requirement

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* chore: add documented frontend/.env.local.example template and update guides (Dshield-xyz#48)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* chore: add documented frontend/.env.local.example template and update guides

* docs: add CHANGELOG.md and update contributor guidelines Dshield-xyz#6

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* tests: add an axe-core accessibility check to CI (Dshield-xyz#44)

* wip: add axe-core a11y regression tests (pnpm-lock.yaml pending install)

* fix: correct file input label and fix broken tag-input in NoteImport

* ci: retrigger checks

---------

Co-authored-by: YerimahOfTimes <yerimahjr@gmail.com>
Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* Fix mobile layout issues at 375px and 768px breakpoints (Dshield-xyz#45)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* feat: enhanced mobile responsiveness

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* Fix/57 get commitments pagination (Dshield-xyz#72)

* contracts: add paginated get_commitments_page view

get_commitments() reads every leaf in one invocation and has no bound
other than MAX_LEAVES (2^20), so it will exceed Soroban's per-transaction
CPU/footprint limits once a pool grows enough, making client-side tree
reconstruction unbuildable. get_commitments_page(start, limit) returns a
bounded, on-chain-capped (MAX_PAGE_SIZE = 100) range instead.

Covers: a page landing exactly on next_index, an out-of-range start, and
a limit above the enforced max.

Refs Dshield-xyz#57

* frontend: page through get_commitments_page for tree reconstruction

fetchCommitmentsFromChain (used by both the withdraw flow and the
compliance report) now pages through the pool contract's new
get_commitments_page view instead of calling the unbounded
get_commitments(), so client-side Merkle tree reconstruction keeps
working as a pool grows past what a single get_commitments() call can
return.

Any page-call failure returns null rather than a partial list, since a
truncated commitment set would silently reconstruct the wrong root.

Refs Dshield-xyz#57

* docs: describe paginated get_commitments_page in Security Model

Adds a fourth Security Model property documenting trustless tree
reconstruction via get_commitments_page and its on-chain MAX_PAGE_SIZE
ceiling, plus a CHANGELOG entry.

Refs Dshield-xyz#57

* perf: move client-side proof generation off the main thread (Dshield-xyz#71)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* perf: extract proof generation into a worker-ready core module

Split prover.ts's Noir.execute/UltraHonkBackend.generateProof logic into
prover-core.ts (a pure async function with progress hooks) plus a new
prover.worker.ts Web Worker entry point that runs it off the main thread.
Neither is wired up to the public API yet — that's the next commit.

* perf: dispatch proof generation to a Web Worker

prover.ts now posts circuit + inputs to prover.worker.ts and resolves once
the worker replies, forwarding progress updates ("executing" / "proving")
via an optional onProgress callback. Falls back to the inline core
function when Worker isn't available (SSR, unit tests), so behavior is
unchanged outside the browser.

Fixes Dshield-xyz#26: proof generation (Noir witness execution + UltraHonk proving)
no longer runs on the main thread, so the UI stays responsive — scrollable,
spinner animating — for the ~1 minute a deposit/withdraw/compliance proof
can take.

* test: cover prover.ts input mapping and progress reporting

Exercises the inline fallback path (no Worker global in the test
environment) with mocked Noir/UltraHonkBackend: verifies hex-prefixing of
note fields, executing/proving progress order, and that the backend is
destroyed even when proving throws.

* feat(withdraw): show which proving stage is running

Surfaces the worker's executing/proving progress as a finer-grained label
under the existing spinner during the "generating_proof" step, so users
get feedback for the full duration of proof generation rather than a
single static message.

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* feat: add persistent "download all notes" backup action (Dshield-xyz#73)

* feat: cap deposit_batch size and validate deposit_amount > 0 in constructor (Dshield-xyz#76)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* security: compliance contract admin rotation + events for set_pools/set_disclosure_vk (Dshield-xyz#77)

* Feature/history csv json export (Dshield-xyz#75)

* feat(frontend): add CSV/JSON formatters for activity history

Adds formatActivityCsv/formatActivityJson to lib/report.ts, alongside a
shared ActivityItem type, so the history page's activity feed can be
exported as a portable file for auditors/regulators. Column/field list
is documented inline above the formatters.

* test(frontend): cover CSV/JSON activity export formatting

Checks header/row shape, blank amount/pool fields on compliance rows,
CSV comma-escaping, and JSON round-tripping.

* feat(frontend): add Export CSV/JSON action to History page

Wires the new formatters into the history page: an Export row (styled
like the compliance page's download link) sits above the activity
list and downloads whatever the active filter shows. Export always
covers the full filtered set, not just the rows the infinite-scroll
pager has revealed so far — pagination is a rendering optimization,
not a data window.

Closes Dshield-xyz#13

* docs: log CSV/JSON history export in CHANGELOG

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* fix: ci fix

* fix: ci fix

* security: add admin-gated pause/unpause circuit breaker and set_verifier to pool

Lets the pool admin halt deposits/withdrawals or swap in a fixed verifier
in response to a bug found in the VK, Poseidon2 implementation, or the
pinned verifier dependency, without redeploying the pool. Constructor now
takes an admin address, propagated through justfile deploy and e2e.sh.

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: Emelie-Dev <120989028+Emelie-Dev@users.noreply.github.com>
Co-authored-by: benzy018 <akobezjr@gmail.com>
Co-authored-by: Fadila Bala Usman <fadilausman705@gmail.com>
Co-authored-by: Joyful Analyst <joyonyegbuna2020@gmail.com>
Co-authored-by: Joey <62303285+Mona-i@users.noreply.github.com>
Co-authored-by: Shantel peters. <Elizabethogunrinde2015@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>
Co-authored-by: Sanusi Shafii <sanusishafii989@gmail.com>
Co-authored-by: Yerimahjr <yerimahjr2@gmail.com>
Co-authored-by: YerimahOfTimes <yerimahjr@gmail.com>
Co-authored-by: Kendall Guzman Leiva <kendalltoto@gmail.com>
Co-authored-by: Strangecloud dev <strngecloud.iv@gmail.com>
Co-authored-by: caxton strange <166155946+caxtonacollins@users.noreply.github.com>
Co-authored-by: Maheswaran Velmurugan <78631234+soloking1412@users.noreply.github.com>
Co-authored-by: Bhenzdisma <Bhenzdizma@gmail.com>
Co-authored-by: Nathan <nkigbu@yahoo.com>
Co-authored-by: Osagie Cynthia <76167825+OsagieCynthia@users.noreply.github.com>
@tech-adrian

Copy link
Copy Markdown
Contributor

@Diggardson270 please resolve conflict

tech-adrian and others added 2 commits July 26, 2026 23:12
* fix(ci): trigger CI on dev branch, not just main (Dshield-xyz#52)

All PRs are now required to target dev instead of main, but the
workflow only ran on push/pull_request to main. As a result every
open PR against dev has "no checks reported" and nothing gates
merges into dev.

* fix(frontend): pin axios and bump protobufjs override to close audit findings (Dshield-xyz#53)

* fix(frontend): pin axios and bump protobufjs override to close audit findings

pnpm audit --prod --audit-level=moderate has been failing CI's Frontend
job (once CI actually ran against dev, see Dshield-xyz#52) with 12 findings:
- axios <1.18.0 resolved at three different versions transitively via
  @creit.tech/stellar-wallets-kit's wallet-connector chain (cdp-sdk,
  stellar-sdk). Pinned to ^1.18.1, which was already resolving
  elsewhere in the tree via @stellar/stellar-sdk, so no new major
  version is introduced.
- protobufjs's existing override (^7.6.3) predates GHSA-j3f2-48v5-ccww
  (fixed in 7.6.5); bumped the pin to ^7.6.5, same patch-only policy
  already used for this override.

Verified: pnpm audit --prod --audit-level=moderate now exits 0 (only
the pre-existing, already-documented unpatched elliptic advisory
remains), and pnpm test / pnpm lint / pnpm build all still pass.

* fix(e2e): strip JSON string quoting from i128 CLI output before comparing

get_deposit_amount returns i128 (contracts/pool/src/lib.rs:550). The
Stellar CLI JSON-encodes 64+ bit integers as quoted strings to avoid
JS precision loss, unlike get_next_index's plain u32 output. The
comparison was failing every run with expected 10000000, got
"10000000" (quotes included) since this test never actually executed
in CI before dev branch runs were enabled (Dshield-xyz#52).

* docs: add api route request/response contracts (Dshield-xyz#39)

* chore: add husky + lint-staged pre-commit hook for frontend (Dshield-xyz#40)

- Add husky ^9.1.7 and lint-staged ^15.5.2 to frontend/package.json devDependencies
- Add prepare script so pnpm install auto-installs the git hook
- Configure lint-staged to run eslint --fix on staged src/**/*.{ts,tsx} files
- Add frontend/.husky/pre-commit hook that runs pnpm lint-staged
- Add CONTRIBUTING.md (absent from dev branch) with husky setup documented:
  one-time setup note after pnpm install step, updated step 5 to mention
  the hook runs automatically on commit

Closes Dshield-xyz#25

* docs: add CODEOWNERS file (Dshield-xyz#41)

* docs(security): document rate limiter single-instance limitation (Dshield-xyz#42)

- Add 'Deployment Limitations' section to SECURITY.md with a dedicated
  'Rate Limiter — Single-Instance Only' subsection that explains:
  - The in-memory, per-process nature of checkRateLimit
  - Why multi-instance deployments (load balancer, HPA) get no real protection
  - Upgrade path: Upstash Redis, self-hosted Redis, or Vercel KV
- Add a ⚠️ callout to the README.md Security Model section linking to
  the new SECURITY.md anchor for the full upgrade path

Closes Dshield-xyz#16

* docs: replace the ASCII architecture diagram with a rendered Mermaid diagram Dshield-xyz#51 (Dshield-xyz#47)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions (Dshield-xyz#50)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions

Covers: nullifier, commitment, Merkle root/tree, Merkle inclusion proof,
ZKP, zkSNARK, UltraHonk, Noir, Barretenberg, verification key, Poseidon2,
keccak transform, BN254, selective disclosure, recipient binding, note,
client-side prover, Stellar, Soroban, relayer, shielded pool, SAC, Freighter.

Linked from README.md (new 'New to ZK or Stellar?' section near top +
glossary link in Contributing paragraph) and CONTRIBUTING.md (callout
block after intro + entry in 'Where things live' list).

All 204 tests pass (107 Rust/Soroban + 97 frontend Vitest).

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

* fix(frontend): pin sharp past next's declared range to close new libvips CVE (Dshield-xyz#54)

pnpm audit --prod --audit-level=moderate started failing again with a
fresh advisory (GHSA-f88m-g3jw-g9cj, libvips CVEs in sharp <0.35.0).
next@16.2.9 declares sharp as ^0.34.5, which under semver caret rules
for 0.x versions excludes the patched 0.35.x line entirely, so pnpm
was resolving the vulnerable version by default.

Overrode to ^0.35.3. Verified: pnpm audit exits 0 (only the
pre-documented elliptic advisory remains), pnpm build succeeds
(exercises sharp via /icon.png generation), pnpm test (97/97) and
pnpm lint pass.

* docs: add pull request template (Dshield-xyz#46)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add pull request template with required sections

- Added Why section (CONTRIBUTING.md requirement: describe why, not just what)
- Renamed Testing to Testing done for clarity
- Added Screenshot / recording (required) section
- Added Related issue section with Closes # placeholder
- Replaced Area section with Why to match issue Dshield-xyz#41 acceptance criteria
- Replaced Breaking changes section with Screenshot/recording requirement

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* chore: add documented frontend/.env.local.example template and update guides (Dshield-xyz#48)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* chore: add documented frontend/.env.local.example template and update guides

* docs: add CHANGELOG.md and update contributor guidelines Dshield-xyz#6

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* tests: add an axe-core accessibility check to CI (Dshield-xyz#44)

* wip: add axe-core a11y regression tests (pnpm-lock.yaml pending install)

* fix: correct file input label and fix broken tag-input in NoteImport

* ci: retrigger checks

---------

Co-authored-by: YerimahOfTimes <yerimahjr@gmail.com>
Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* Fix mobile layout issues at 375px and 768px breakpoints (Dshield-xyz#45)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* feat: enhanced mobile responsiveness

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* Fix/57 get commitments pagination (Dshield-xyz#72)

* contracts: add paginated get_commitments_page view

get_commitments() reads every leaf in one invocation and has no bound
other than MAX_LEAVES (2^20), so it will exceed Soroban's per-transaction
CPU/footprint limits once a pool grows enough, making client-side tree
reconstruction unbuildable. get_commitments_page(start, limit) returns a
bounded, on-chain-capped (MAX_PAGE_SIZE = 100) range instead.

Covers: a page landing exactly on next_index, an out-of-range start, and
a limit above the enforced max.

Refs Dshield-xyz#57

* frontend: page through get_commitments_page for tree reconstruction

fetchCommitmentsFromChain (used by both the withdraw flow and the
compliance report) now pages through the pool contract's new
get_commitments_page view instead of calling the unbounded
get_commitments(), so client-side Merkle tree reconstruction keeps
working as a pool grows past what a single get_commitments() call can
return.

Any page-call failure returns null rather than a partial list, since a
truncated commitment set would silently reconstruct the wrong root.

Refs Dshield-xyz#57

* docs: describe paginated get_commitments_page in Security Model

Adds a fourth Security Model property documenting trustless tree
reconstruction via get_commitments_page and its on-chain MAX_PAGE_SIZE
ceiling, plus a CHANGELOG entry.

Refs Dshield-xyz#57

* perf: move client-side proof generation off the main thread (Dshield-xyz#71)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* perf: extract proof generation into a worker-ready core module

Split prover.ts's Noir.execute/UltraHonkBackend.generateProof logic into
prover-core.ts (a pure async function with progress hooks) plus a new
prover.worker.ts Web Worker entry point that runs it off the main thread.
Neither is wired up to the public API yet — that's the next commit.

* perf: dispatch proof generation to a Web Worker

prover.ts now posts circuit + inputs to prover.worker.ts and resolves once
the worker replies, forwarding progress updates ("executing" / "proving")
via an optional onProgress callback. Falls back to the inline core
function when Worker isn't available (SSR, unit tests), so behavior is
unchanged outside the browser.

Fixes Dshield-xyz#26: proof generation (Noir witness execution + UltraHonk proving)
no longer runs on the main thread, so the UI stays responsive — scrollable,
spinner animating — for the ~1 minute a deposit/withdraw/compliance proof
can take.

* test: cover prover.ts input mapping and progress reporting

Exercises the inline fallback path (no Worker global in the test
environment) with mocked Noir/UltraHonkBackend: verifies hex-prefixing of
note fields, executing/proving progress order, and that the backend is
destroyed even when proving throws.

* feat(withdraw): show which proving stage is running

Surfaces the worker's executing/proving progress as a finer-grained label
under the existing spinner during the "generating_proof" step, so users
get feedback for the full duration of proof generation rather than a
single static message.

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* feat: add persistent "download all notes" backup action (Dshield-xyz#73)

* feat: cap deposit_batch size and validate deposit_amount > 0 in constructor (Dshield-xyz#76)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* security: compliance contract admin rotation + events for set_pools/set_disclosure_vk (Dshield-xyz#77)

* Feature/history csv json export (Dshield-xyz#75)

* feat(frontend): add CSV/JSON formatters for activity history

Adds formatActivityCsv/formatActivityJson to lib/report.ts, alongside a
shared ActivityItem type, so the history page's activity feed can be
exported as a portable file for auditors/regulators. Column/field list
is documented inline above the formatters.

* test(frontend): cover CSV/JSON activity export formatting

Checks header/row shape, blank amount/pool fields on compliance rows,
CSV comma-escaping, and JSON round-tripping.

* feat(frontend): add Export CSV/JSON action to History page

Wires the new formatters into the history page: an Export row (styled
like the compliance page's download link) sits above the activity
list and downloads whatever the active filter shows. Export always
covers the full filtered set, not just the rows the infinite-scroll
pager has revealed so far — pagination is a rendering optimization,
not a data window.

Closes Dshield-xyz#13

* docs: log CSV/JSON history export in CHANGELOG

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* fix: ci fix

* fix: ci fix

* A11y/deposit withdraw compliance audit (Dshield-xyz#80)

* a11y: add aria labels and semantic HTML to Input component

* a11y: enhance ProgressSteps with semantic markup and aria attributes

* a11y: improve StatusMessage component with roles and live region support

* a11y: add role and aria attributes to Toast notifications

* a11y: refactor deposit page with semantic HTML and improved accessibility labels

* a11y: enhance compliance page with fieldsets, legends, and improved accessibility

* Tests/21 double spend recipient mismatch named tests (Dshield-xyz#85)

* test(pool): add named recipient-mismatch rejection test

test_withdraw_to_different_recipient_than_proof_rejected builds public
inputs carrying the genuine recipient hash of account A, then submits
the withdrawal with account B as the payout address, asserting
RecipientMismatch. This is the front-running redirect case: unlike the
existing test_withdraw_recipient_mismatch_rejected, which uses a filler
hash, the proof here is bound to a real, different account.

* test(pool): add named double-spend replay rejection test

test_replaying_consumed_nullifier_returns_nullifier_used replays a
withdrawal proof whose nullifier has already been consumed and asserts
NullifierUsed. It first confirms the same proof is not rejected on the
nullifier before the spend, so the rejection is attributable to the
replay rather than an unrelated check.

* docs(readme): cite double-spend and recipient-binding tests by name

The Security Model section named the tests locking hash consistency but
not the ones covering nullifier consumption or recipient binding, both
of which it claimed were covered by tests. Cite them by name so the
claim is traceable to the tests that enforce it.

* Feat/domain separation poseidon2 (Dshield-xyz#82)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* sec remove o the public X share option for note-bearing withdrawal links (Dshield-xyz#74)

* fix: await clipboard write and surface error instead of false Copied! (closes Dshield-xyz#68) (Dshield-xyz#70)

* Feature: deposit confirmation (Dshield-xyz#56)

* feat: add threshold disclosure UI and integration

* Add explicit amount and fee confirmation before deposit signing

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* Chore/add env example 28 (Dshield-xyz#51)

* chore: add documented frontend/.env.local.example template and update guides

* docs: add CHANGELOG.md and update contributor guidelines Dshield-xyz#6

* fix(ci): trigger CI on dev branch, not just main (Dshield-xyz#52)

All PRs are now required to target dev instead of main, but the
workflow only ran on push/pull_request to main. As a result every
open PR against dev has "no checks reported" and nothing gates
merges into dev.

* fix(frontend): pin axios and bump protobufjs override to close audit findings (Dshield-xyz#53)

* fix(frontend): pin axios and bump protobufjs override to close audit findings

pnpm audit --prod --audit-level=moderate has been failing CI's Frontend
job (once CI actually ran against dev, see Dshield-xyz#52) with 12 findings:
- axios <1.18.0 resolved at three different versions transitively via
  @creit.tech/stellar-wallets-kit's wallet-connector chain (cdp-sdk,
  stellar-sdk). Pinned to ^1.18.1, which was already resolving
  elsewhere in the tree via @stellar/stellar-sdk, so no new major
  version is introduced.
- protobufjs's existing override (^7.6.3) predates GHSA-j3f2-48v5-ccww
  (fixed in 7.6.5); bumped the pin to ^7.6.5, same patch-only policy
  already used for this override.

Verified: pnpm audit --prod --audit-level=moderate now exits 0 (only
the pre-existing, already-documented unpatched elliptic advisory
remains), and pnpm test / pnpm lint / pnpm build all still pass.

* fix(e2e): strip JSON string quoting from i128 CLI output before comparing

get_deposit_amount returns i128 (contracts/pool/src/lib.rs:550). The
Stellar CLI JSON-encodes 64+ bit integers as quoted strings to avoid
JS precision loss, unlike get_next_index's plain u32 output. The
comparison was failing every run with expected 10000000, got
"10000000" (quotes included) since this test never actually executed
in CI before dev branch runs were enabled (Dshield-xyz#52).

* docs: add api route request/response contracts (Dshield-xyz#39)

* chore: add husky + lint-staged pre-commit hook for frontend (Dshield-xyz#40)

- Add husky ^9.1.7 and lint-staged ^15.5.2 to frontend/package.json devDependencies
- Add prepare script so pnpm install auto-installs the git hook
- Configure lint-staged to run eslint --fix on staged src/**/*.{ts,tsx} files
- Add frontend/.husky/pre-commit hook that runs pnpm lint-staged
- Add CONTRIBUTING.md (absent from dev branch) with husky setup documented:
  one-time setup note after pnpm install step, updated step 5 to mention
  the hook runs automatically on commit

Closes Dshield-xyz#25

* docs: add CODEOWNERS file (Dshield-xyz#41)

* docs(security): document rate limiter single-instance limitation (Dshield-xyz#42)

- Add 'Deployment Limitations' section to SECURITY.md with a dedicated
  'Rate Limiter — Single-Instance Only' subsection that explains:
  - The in-memory, per-process nature of checkRateLimit
  - Why multi-instance deployments (load balancer, HPA) get no real protection
  - Upgrade path: Upstash Redis, self-hosted Redis, or Vercel KV
- Add a ⚠️ callout to the README.md Security Model section linking to
  the new SECURITY.md anchor for the full upgrade path

Closes Dshield-xyz#16

* docs: replace the ASCII architecture diagram with a rendered Mermaid diagram Dshield-xyz#51 (Dshield-xyz#47)

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions (Dshield-xyz#50)

* Add community templates and documentation

- Add GitHub issue templates (bug report, feature request, config)
- Add pull request template
- Add CODE_OF_CONDUCT.md for community standards
- Add CONTRIBUTING.md with contribution guidelines
- Add SECURITY.md for security policy
- Update README.md
- Remove outdated PR.md

* chore: reports md

* docs: require PRs target dev branch, not main

Issue templates, PR template, and CONTRIBUTING.md now consistently
point contributors at `dev` as the base/target branch.

* docs: add GLOSSARY.md with plain-English ZK and Soroban term definitions

Covers: nullifier, commitment, Merkle root/tree, Merkle inclusion proof,
ZKP, zkSNARK, UltraHonk, Noir, Barretenberg, verification key, Poseidon2,
keccak transform, BN254, selective disclosure, recipient binding, note,
client-side prover, Stellar, Soroban, relayer, shielded pool, SAC, Freighter.

Linked from README.md (new 'New to ZK or Stellar?' section near top +
glossary link in Contributing paragraph) and CONTRIBUTING.md (callout
block after intro + entry in 'Where things live' list).

All 204 tests pass (107 Rust/Soroban + 97 frontend Vitest).

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: Emelie-Dev <120989028+Emelie-Dev@users.noreply.github.com>
Co-authored-by: benzy018 <akobezjr@gmail.com>
Co-authored-by: Fadila Bala Usman <fadilausman705@gmail.com>
Co-authored-by: Joyful Analyst <joyonyegbuna2020@gmail.com>
Co-authored-by: Joey <62303285+Mona-i@users.noreply.github.com>
Co-authored-by: Shantel peters. <Elizabethogunrinde2015@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

* feat: add threshold disclosure UI and integration (Dshield-xyz#55)

* feat(circuits): add domain separation to Poseidon2 leaf/node/KYC/nullifier hashing

- Add domain-separated hash functions using distinct tags:
  - LEAF_DOMAIN (0x4c454146) for leaf hashes
  - KYC_DOMAIN (0x4b5943) for KYC preimage hashes
  - NULLIFIER_DOMAIN (0x4e554c4c) for nullifier hashes
- Update hash_leaf() to use hash3(LEAF_DOMAIN, nullifier, secret)
- Update hash_kyc() to use hash3(KYC_DOMAIN, kyc_preimage, 0)
- Update hash_nullifier() in shielded_pool to use hash3(NULLIFIER_DOMAIN, nullifier, 0)
- Internal nodes continue to use undifferentiated hash2(left, right)

This prevents the classic Merkle tree collision anti-pattern where commitments
stored on-chain via get_commitments() could be confused with internal nodes.
Each domain tag ensures cryptographic separation between different hash contexts.

* feat(frontend): update Poseidon2 hashing for domain separation

- Add domain separation constants matching circuit definitions:
  - LEAF_DOMAIN, KYC_DOMAIN, NULLIFIER_DOMAIN
- Update computeCommitment() to compute domain-separated leaf hashes
- Update computeNullifierHash() to compute domain-separated nullifier hashes
- Update test expected values for new domain-separated hash outputs

Note: Frontend approximates hash3 via sequential hash2 calls to work with
existing hasher circuit. A future optimization could use a native Poseidon2
library for true hash3 computation, but current approach maintains consistency
with circuit behavior.

* Fix syntax error in deposit page after merge

Remove extra closing brace that broke copyText function structure.

---------

Co-authored-by: tech-adrian <a.emmanuelcaxton@gmail.com>
Co-authored-by: Darey Olowo <132012676+Olowodarey@users.noreply.github.com>
Co-authored-by: SpiliosDmk <150211937+SpiliosDimakopoulos@users.noreply.github.com>
Co-authored-by: Ugooweb <ugooweb@gmail.com>
Co-authored-by: Sanusi Shafii <sanusishafii989@gmail.com>
Co-authored-by: Emelie-Dev <120989028+Emelie-Dev@users.noreply.github.com>
Co-authored-by: benzy018 <akobezjr@gmail.com>
Co-authored-by: Fadila Bala Usman <fadilausman705@gmail.com>
Co-authored-by: Joyful Analyst <joyonyegbuna2020@gmail.com>
Co-authored-by: Joey <62303285+Mona-i@users.noreply.github.com>
Co-authored-by: Shantel peters. <Elizabethogunrinde2015@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>

* perf: lazy-load circuit artifacts and document bundle size (Dshield-xyz#86)

- Convert static top-level circuit JSON imports in prover.ts to
  dynamic import() calls so each artifact is only fetched when the
  matching prove* function is first called (not on initial page load).
  Named webpack chunk hints (circuit-shielded-pool, circuit-compliance,
  circuit-disclosure) are added to preserve readable chunk names.

- Move @noir-lang/noir_js and @aztec/bb.js imports inside generateProof()
  so the heavy barretenberg WASM is also deferred until proof generation.

- Add @next/bundle-analyzer 16.2.12 to devDependencies; configure
  next.config.ts to enable it when ANALYZE=true.

- Add 'analyze' script to package.json (ANALYZE=true next build).

- Add frontend/BUNDLE_ANALYSIS.md documenting circuit artifact sizes
  (~9.7-10.8 KB each, 35.2 KB total), ZK runtime sizes, production
  build chunk sizes, per-page loading strategy, and instructions for
  re-running the analysis.

- Add frontend/src/lib/prover.test.ts with 34 unit tests covering the
  public API, ProofResult encoding, per-circuit bytecode routing,
  keccak: true flag, backend.destroy in finally, all input field
  mappings for all three circuits, and ensureHex behaviour.

All 131 frontend tests pass.

Closes Dshield-xyz#27

* add test snapshots to gitignore

* fix(circuits): regenerate Prover.toml fixtures for domain-separated Poseidon2

PR Dshield-xyz#82 introduced domain separation (LEAF_DOMAIN, NULLIFIER_DOMAIN,
KYC_DOMAIN) and moved the leaf/nullifier/KYC hashes to 3-input Poseidon2,
but the Prover.toml fixtures kept their pre-domain-separation values. All
three circuits failed to solve:

  shielded_pool  assert(nf == nullifier_hash)
  compliance     assert(computed_kyc == kyc_hash)
  disclosure     assert(computed_kyc == kyc_hash)

Recomputed root, nullifier_hash and kyc_hash with the circuits' own hash
functions against poseidon v0.2.0, rather than hand-writing constants.
The same stale values were hardcoded a second time in tests/e2e.sh.

Also remove the stale witness/proof before `nargo execute` in e2e.sh. The
script ran `bb prove`/`bb verify` unconditionally after a failed execute,
so they succeeded against the *previous* run's artifacts and reported
"Proof verified locally" for inputs that never solved — which is how this
fixture breakage stayed green in CI.

All three circuits now compile, execute, prove and verify.

* fix(frontend): repair broken pnpm-lock.yaml entry for @next/bundle-analyzer

The importer referenced @next/bundle-analyzer@16.2.12 with no matching
packages:/snapshots: record — a badly resolved merge conflict from Dshield-xyz#86.
`pnpm install --frozen-lockfile`, which CI uses, failed outright:

  ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY: Broken lockfile: no entry for
  '@next/bundle-analyzer@16.2.12(bufferutil@4.1.0)(utf-8-validate@6.0.6)'

This blocked both the lint and frontend jobs before any check ran.

* fix(deposit): render the confirmation modal so deposits can be signed

ConfirmDeposit was defined but never rendered, so signAndSubmit was
unreachable: handleDeposit built and staged a transaction that had no
path to the wallet. Deposits silently did nothing.

Rendering it surfaced three further defects:

- ConfirmDeposit was created during render, so React remounted it on
  every parent update (react-hooks/static-components). Hoisted to module
  scope as a props-driven component.
- The modal read `totalNotes`, derived from `customAmount`, which
  handleDeposit clears in its `finally` before the user confirms — a
  5-note deposit displayed the 1-note total. Capture the count at build
  time in `confirmNoteCount` instead.
- Cancel only did setShowConfirm(false), leaving pendingTx and the
  pending notes staged, so a cancelled deposit's transaction could be
  submitted by a later confirmation. Cancel now clears both.

Also fixes two type errors that blocked `next build`:

- `(totalNotes * selectedTier?.amount ?? 0)` parses as `(a * b) ?? 0`,
  so the fallback never applied and undefined could reach the multiply.
- ThresholdDisclosure imported generateThresholdProof, removed in Dshield-xyz#71.
  Its replacement, proveDisclosure, needs the auditor key, KYC
  preimage/hash, merkle root and path — none derivable from a
  ShieldedNote — so this is left as an explicit throw with a note on
  what wiring it up requires, rather than a rename over invented ZK
  inputs. The component is currently rendered nowhere.

Replaces three `(window as any).__pendingNotes` casts, which failed
no-explicit-any, with a typed useRef.

Adds **/test_snapshots/ to .gitignore and untracks the generated
Soroban snapshot files.

---------

Co-authored-by: Emelie-Dev <120989028+Emelie-Dev@users.noreply.github.com>
Co-authored-by: benzy018 <akobezjr@gmail.com>
Co-authored-by: Fadila Bala Usman <fadilausman705@gmail.com>
Co-authored-by: Joyful Analyst <joyonyegbuna2020@gmail.com>
Co-authored-by: Joey <62303285+Mona-i@users.noreply.github.com>
Co-authored-by: Shantel peters. <Elizabethogunrinde2015@gmail.com>
Co-authored-by: ShantelPeters <shantelpeters@example.com>
Co-authored-by: Sanusi Shafii <sanusishafii989@gmail.com>
Co-authored-by: Yerimahjr <yerimahjr2@gmail.com>
Co-authored-by: YerimahOfTimes <yerimahjr@gmail.com>
Co-authored-by: Kendall Guzman Leiva <kendalltoto@gmail.com>
Co-authored-by: Strangecloud dev <strngecloud.iv@gmail.com>
Co-authored-by: caxton strange <166155946+caxtonacollins@users.noreply.github.com>
Co-authored-by: Maheswaran Velmurugan <78631234+soloking1412@users.noreply.github.com>
Co-authored-by: Bhenzdisma <Bhenzdizma@gmail.com>
Co-authored-by: Nathan <nkigbu@yahoo.com>
Co-authored-by: Osagie Cynthia <76167825+OsagieCynthia@users.noreply.github.com>
Co-authored-by: JaynomYaks <jenomyaks@gmail.com>
Co-authored-by: Samson <aboisamson123@gmail.com>
Co-authored-by: Ochigbo <ochigbo477@gmail.com>
Co-authored-by: Darey Olowo <132012676+Olowodarey@users.noreply.github.com>
Co-authored-by: SpiliosDmk <150211937+SpiliosDimakopoulos@users.noreply.github.com>
Co-authored-by: Ugooweb <ugooweb@gmail.com>
The compliance page had unbalanced JSX that left PageShell unclosed and
broke brace matching through the end of the file, so the project did not
type-check at HEAD. Re-balance the results.map block and its accordion
markup, restoring the key and onClick bindings on the note buttons.

Drop the unused ThresholdDisclosure import and "threshold" mode, and
remove the dead ConfirmDeposit component from the deposit page.
@tech-adrian

Copy link
Copy Markdown
Contributor

please resolve conflicts and fix ci

@Diggardson270

Copy link
Copy Markdown
Author

Hello man, apologise for the delay, I have resolved the conflicts

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.

8 participants