Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
d168568
feat: implement strict migration import version compatibility policy
Abidoyesimze Mar 23, 2026
cbbfacd
fix: route snapshot import validation through explicit version policy
Abidoyesimze Mar 23, 2026
d8a359b
feat: implement strict migration import version compatibility policy
Abidoyesimze Mar 23, 2026
8a06c63
fix: remove invalid crates.io patch for ed25519-dalek
Abidoyesimze Mar 23, 2026
c7b41c3
fix: align remitwise-common soroban-sdk to 21.0.0
Abidoyesimze Mar 23, 2026
22759fa
build: guard internal test module with cfg(any(test, feature="testuti…
Abidoyesimze Mar 23, 2026
d67e174
fix(savings_goals): use #[contracterror] and remove manual From impls…
Abidoyesimze Mar 23, 2026
7c71f22
test/build: fix savings_goals panic expectations and declare remittan…
Abidoyesimze Mar 24, 2026
c571b36
fix(reporting): remove duplicate PolicyPage contract type
Abidoyesimze Mar 24, 2026
e3de174
fix(insurance): commit corrected create_policy signature and brace st…
Abidoyesimze Mar 24, 2026
4f4ae9f
ci: fix remittance_split clippy gating and apply rustfmt-required exa…
Abidoyesimze Mar 24, 2026
53f4530
fix(bill_payments): restore balanced delimiters in bill events and st…
Abidoyesimze Mar 25, 2026
3501992
merge: resolve conflicts while syncing feature branch with main
Abidoyesimze Mar 25, 2026
d840e2e
fix(ci): resolve remitwise-common constant duplication and orchestrat…
Abidoyesimze Mar 25, 2026
f4ec75c
fix(insurance): remove remitwise_common dependency from gas benchmark…
Abidoyesimze Mar 25, 2026
05a7160
test(bill_payments): add missing currency arg to stress test create_b…
Abidoyesimze Mar 25, 2026
238af15
test(remittance_split): align standalone and stress tests with curren…
Abidoyesimze Mar 25, 2026
fd34d62
test(remittance_split): remove obsolete token arg from fuzz initializ…
Abidoyesimze Mar 25, 2026
260818a
test(remittance_split): align gas bench with current initialize/sched…
Abidoyesimze Mar 25, 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
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,29 @@ These contracts have been developed and tested with the following versions:
| Protocol 20 | - | ✅ Compatible | Soroban Phase 1 features |
| Protocol 21+ | - | ⚠️ Untested | Should be compatible, validation recommended |

### Data Migration Import Version Policy

The `data_migration` crate enforces a strict and deterministic schema import policy to avoid unsafe upgrades or silent downgrades.

- Imports use explicit `ALLOW` and `DENY` sets in `data_migration/src/lib.rs`.
- Decision order is fixed:
1. Deny-list match (hard reject)
2. Backward-incompatible version (`< MIN_SUPPORTED_VERSION`)
3. Forward-incompatible version (`> SCHEMA_VERSION`)
4. Allow-list match (accept)
5. Any other version (deny by default)
- Version validation is performed before checksum verification, so unsupported snapshots fail fast with a deterministic reason.
- Current policy values:
- `MIN_SUPPORTED_VERSION = 1`
- `SCHEMA_VERSION = 1`
- `ALLOWED_IMPORT_VERSIONS = [1]`
- `DENIED_IMPORT_VERSIONS = []`

Security notes:
- Default-deny behavior prevents accidental acceptance of unreviewed schema versions.
- Explicit deny entries support emergency blocks for known-bad versions.
- Deterministic error classes (`legacy`, `future`, `policy-denied`) improve incident triage and monitoring.

### Upgrading to New Soroban Versions

When a new Soroban SDK or protocol version is released, follow these steps to validate and upgrade:
Expand Down
Loading
Loading