20.0.0
What's Changed
- Make
RecordedAuthPayload
consistently returnNone
for invoker. by @dmkozh in #900 - Expiration-related fixes by @dmkozh in #899
- Turn dynamic borrow panics into HostErrors by @graydon in #925
- Use Ed25519 verify_strict function rather than just verify, fix #857 by @graydon in #927
- Misc int32 issues by @graydon in #926
- Enforce object handle integrity when inserting into containers, fix #569 by @graydon in #928
- Add testcase for out-of-order scmaps, fix #223. by @graydon in #929
- Add a function to compute the rent fee. by @dmkozh in #905
- Use host.err for auth error by @sisuresh in #931
- Add a smoke test for recording auth for create contract host fn. by @dmkozh in #932
- Stop treating storage errors as missing entries by @sisuresh in #934
- Refactor authorization manager to only maintain mutable borrow on minimal amount of fields by @dmkozh in #938
- Bump xdr by @sisuresh in #943
- Add rent bumps to the SAC by @sisuresh in #936
- Add is_admin function by @sisuresh in #933
- Bump xdr by @dmkozh in #944
- Add function to compute the write fee based on the ledger size. by @dmkozh in #941
- Prohibit using disjoint signatures to cover the auth tree. by @dmkozh in #942
- Enforce
DepthLimiter
in theHost
to avoid stack overflow by @jayz22 in #904 - Relative objects in wasm by @graydon in #947
- Adapt to ResourceLimiter, replacing mem_fuel metering by @jayz22 in #950
- Make
del_contract_data
no-op for removing non-existent instance storage key. by @dmkozh in #951 - Add "tracy" feature to enable Tracy profiler, with some basic annotat… by @graydon in #952
- Update host to account for the XDR changes. by @dmkozh in #954
- Update rust-version by @github-actions in #948
- Adapt to SCError change to be an enum, with ContractError(u32) by @graydon in #955
- Make some host errors non-recoverable in
try_call
. by @dmkozh in #945 - Fix panic-string-logging code path broken by recent dynamic-borrow fix. by @graydon in #960
- Add
soroban-bench-utils
, add benchmark tests to measure metering accuracy by @jayz22 in #956 - Bump env xdr and do the fee library changes corresponding to config changes by @dmkozh in #965
- Bump env xdr by @dmkozh in #966
- Remove event topic limits by @jayz22 in #959
- Bump env xdr by @dmkozh in #969
- Unify/fix expiration bump logic in host. by @dmkozh in #957
- Add new tests for error escalation from contract calls. by @graydon in #967
- Add a helper that invokes a host function 'end-to-end' by @dmkozh in #964
- Add helpers for container bulk init; applies to auth metering by @jayz22 in #975
- Switch some auth errors from
Internal
toInvalidInput
. by @dmkozh in #976 - Enable post-MVP WASM ops (sign-ext and mutable-globals), fix #968. by @graydon in #979
- More token tests by @sisuresh in #974
- Alloc example by @graydon in #972
- mop up some residual uses of format strings in errors (no longer supported) by @graydon in #961
- Add wasm for upgrade write-bytes contract by @sisuresh in #983
- Scale the linear cost model coefficient; improve model fitting by @jayz22 in #982
- Error if bumping past max_entry_expiration and and host function to retrieve max_entry_expiration by @sisuresh in #985
- Make
has
checks to properly populate the storage map in recording mode by @dmkozh in #986 - Clean up budget cost types by @jayz22 in #984
- Add debug events to storage error reporting. by @dmkozh in #987
- Switch to stable rust-analyzer in CI by @jayz22 in #988
- add some comments and tests to env-common/symbol.rs by @graydon in #990
- Upgrade dalek crates to new stable versions. by @graydon in #993
- Add an option to return an error when encountering non-root auth in recording mode. by @dmkozh in #991
- Reject env.json if there are duplicate export names, fix #189 by @graydon in #994
- Tighten signature of unchecked_visit_val_obj, fix #595 by @graydon in #997
- Tighten dependencies further by @graydon in #999
- Fix incorrect argument name by @dmkozh in #1000
- Bump env xdr by @dmkozh in #1003
- Tighten up
Map
andVector
and metering coverage by @jayz22 in #1001 - Store dummy instance for test contracts. by @dmkozh in #1005
- Update XDR to take change that removes SCSpecTypeSet by @graydon in #1009
- Fix comparison in Tag::is_object by @brson in #1012
- Fix calibration due to delak change by @jayz22 in #1004
- Charge write fees for expiration entry bumps. by @dmkozh in #1010
- Reduce the expiration entry write size. by @dmkozh in #1016
- Refactor host to support the new expiration ledger approach. by @dmkozh in #1015
- Add lifetime threshold by @sisuresh in #1014
- Enable build workflow for merge groups by @leighmcculloch in #1018
- Remove key size from rent change computation. by @dmkozh in #1019
- Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID by @graydon in #1022
- Add ExpirationEntry support by @sisuresh in #1023
- Add git rev dep check to ci by @leighmcculloch in #1025
- Fix encode contract events metering by @jayz22 in #1026
- trim deps by @graydon in #1031
- Reject vals with invalid tags, fix #1029 by @graydon in #1033
- host: fix EXPIRATION_ENTRY_SIZE constant by @2opremio in #1034
- Avoid iloop externalizing diagnostics for invalid references by @brson in #1028
- Add "coverage" Makefile target for lcov.info, add a test that extends coverage by @graydon in #1038
- Fix asset-code rendering in native contract. by @graydon in #1041
- Fix rent changes extraction bug by @jayz22 in #1043
- Graydon code review by @graydon in #1044
- Jay code review by @jayz22 in #1045
- Bump xdr and use curr instead of next by @sisuresh in #1048
- Trivial xdr bump by @sisuresh in #1050
- Tighten wasm interface version checks, and do on upload. Fix #1052. by @graydon in #1053
- Update wasmi to 0.31.0-soroban by @jayz22 in #1054
- Bump version to 20.0.0-rc1 by @github-actions in #1055
- Add "next" feature to crates using xdr directly or indirectly by @graydon in #1060
- Move out-slice len adjustment from symbol_copy_to_slice to its caller. by @graydon in #1063
- Bump interface and regenerate wasms to handle symbol semantics change. by @graydon in #1065
- No-op rename: remove
metered
frommetered_scan_slice_of_slices
by @dmkozh in #1058 - Get rid of an unnecessary vector allocation in
map_new_from_slices
by @dmkozh in #1062 - Remove metered map iterator functions. by @dmkozh in #1068
- Small vec cleanup by @dmkozh in #1070
- Code cleanup around PRNG by @jayz22 in #1064
- Factor Tag::is_object to let Val::is_object delegate to it by @graydon in #1013
- Set LedgerEntry extensions on existing entries by @sisuresh in #1069
- Attach the auth in recording mode to any valid tracker. by @dmkozh in #1075
- Improve storage error reporting for token contract. by @dmkozh in #1071
- Env-common cleanups and dead code removal by @graydon in #1077
- More cleanups, comments and fixes from code review. by @graydon in #1080
- Make the 'unknown' wasmi error to be
InvalidAction
instead ofInternalError
by @dmkozh in #1081 - Error improvements by @dmkozh in #1082
- Small update for the default budget limits. by @dmkozh in #1083
- Calibration for PRNG and charge budget by @jayz22 in #1079
- Code review, cleanup, removal of dead/dangerous host functions by @graydon in #1085
- Add redundant "next" dependencies by @jayz22 in #1078
- Host code review, minor cleanups and code reorganization by @graydon in #1086
- Fix the instance storage update logic. by @dmkozh in #1090
- Feature: Expose
rem_euclid
functions on 256 bit numbers by @mootz12 in #1091 - Replace address bytes conversions with strkey conversions. by @dmkozh in #1094
- Use Address for
call_account_contract_check_auth
test helper. by @dmkozh in #1103 - More code review and cleanup of host.rs module by @graydon in #1088
- Budget fiddling by @graydon in #1098
- Bump env XDR by @dmkozh in #1104
- State expiration renames by @sisuresh in #1106
- Cost type cleanup, bug fix, improve calibration by @jayz22 in #1105
- Code review on fees, crypto, prng, dispatch by @graydon in #1107
- storage code review by @graydon in #1110
- Setup bench framework to run experiments by @jayz22 in #1109
- Decorate error for nonce missing from the footprint. by @dmkozh in #1112
- Remove bad LEs by @graydon in #1114
- Add missing fixed-size metering in comparison.rs, clean up a bit by @graydon in #1116
- Properly dispatch test contracts based on the executable. by @dmkozh in #1095
- Tighten up metering for linear memory routines by @jayz22 in #1115
- conversion.rs code review fixes by @graydon in #1117
- Review fixes for declared_size and metered_clone by @graydon in #1120
- Gate recording auth behind the feature. by @dmkozh in #1126
- Fix test wasms for latest sdk by @sisuresh in #1127
- Cackle gate by @graydon in #1124
- Remove
spendable_balance
from SAC. by @dmkozh in #1122 - Extend upgrade contract from 30 to 60 days by @sisuresh in #1129
- Bug 1042 internal renames by @graydon in #1130
- Remove panic by @sisuresh in #1131
- Stop caching authorization tracker verification status. by @dmkozh in #1133
- Overhaul "free budget" and migrate non-metered code by @jayz22 in #1123
- Clarify (and add redundant defensive code) in check_val_integrity by @graydon in #1140
- Remove a panic and be more conservative about depth limit by @graydon in #1160
- Add conceptual overview comment to auth module by @graydon in #1128
- Fix fuzz-found panic in Prng::u64_in_inclusive_range by @graydon in #1172
- Fix fuzzer-found frame stack corruption in rollback if instance storage fails by @graydon in #1173
Arbitrary
-compatible expr generation and host fuzzing by @jayz22 in #1171- Improve auth test coverage a bit by @dmkozh in #1176
- Rollback tests by @sisuresh in #1177
- Add a test that ensures that SAC reentry is not possible. by @dmkozh in #1179
- Remove vnext test wasms by @sisuresh in #1181
- Add fn to find out if Host can be finished by @leighmcculloch in #1182
- Add tests for more wasmi trap conditions by @jayz22 in #1186
- Storage tests by @sisuresh in #1184
- Add tests that try to build a deep host stack. by @dmkozh in #1185
- More events and diagnostics testing by @jayz22 in #1189
- Fix #1174 fuzzer-found deserialization of non-representable ScVal bug. by @graydon in #1180
- tighten up handling of debug mode by @graydon in #1138
- Update rust-version by @github-actions in #1017
- Adapt to rs-stellar-xdr
Limits
change by @jayz22 in #1139 - Add tests that cover fees for each individual resource. by @dmkozh in #1192
- Cover non-existent Wasm in test for updating Wasm. by @dmkozh in #1194
- Adds loadgen test WASM by @SirTyson in #1191
- Add wasm test for excessive initial memory and table size by @jayz22 in #1193
- Initial cut at bug 872, observe side effects of tests by @graydon in #1142
- Remove unnecessary copy of value by @leighmcculloch in #1196
- Test
update_contract_wasm
with rollbacks. by @dmkozh in #1195 - Bug 1146 test invalid val bit patterns by @graydon in #1199
- Add @dmkozh as code owner of soroban-env-host by @leighmcculloch in #1202
- Hook envbase and vec slices by @graydon in #1197
- Update stellar-xdr by @leighmcculloch in #1198
- Don't block merges on rust-analyzer compat check by @leighmcculloch in #1204
- Observe most of the remainder of the testsuite by @graydon in #1206
- Update deps, fix #1200 by @graydon in #1208
- Test nested extend_ttl by @sisuresh in #1205
- Fix #1175 error code spoofing by @graydon in #1209
- Do not error if no authorizations by @leighmcculloch in #1214
- Add a contract that allows materializing arbitrarily large values. by @dmkozh in #1210
- Updated loadgen Wasm by @SirTyson in #1217
- Cap persistent extension to max by @sisuresh in #1212
- Error on issuer for mint, burn, clawback, and burn_from by @sisuresh in #1215
- Add a very simple hook for tracking top-level contract invocations. by @dmkozh in #1219
- Macro for testing host function dispatch with bad inputs by @jayz22 in #1213
- Check val integrity more by @graydon in #1221
- Adapt to Rust 1.74 by @graydon in #1228
- Improve test coverage for crypto functions. by @dmkozh in #1223
- Pub ContractInvocationEvent by @leighmcculloch in #1229
- Pass ref to host to contract invocation hook by @leighmcculloch in #1230
- Fix top contract invocation hook and auth interaction by @leighmcculloch in #1231
- XDR limits updates by @dmkozh in #1236
- Run user seeds to PRNGs through HMAC-SHA256 to unbias by @graydon in #1232
- Add size_hint methods to Arbitrary impls by @brson in #1239
- Add tests for de-serializing deep XDR in deep call stack. by @dmkozh in #1237
- Generate combinational tests for linear memory functions by @jayz22 in #1233
- Add tests that grow containers until running out of memory budget. by @dmkozh in #1242
- Observe more things by @graydon in #1224
- Setting pre_release_version to zero in meta.rs in preparation of Soroban launch by @anupsdf in #1039
- Add Host::has_frame by @leighmcculloch in #1244
- Validated TTLentries by @sisuresh in #1245
- Budget subsystem code review by @graydon in #1251
- Rename extend host functions by @SirTyson in #1240
- Fuzz fixes by @graydon in #1249
- Cap number of args to wasm functions by @graydon in #1256
- Cargo version pinning by @graydon in #1255
- Pass --locked to publish as well by @graydon in #1257
- Tighten up
saturating_
math checks by @jayz22 in #1254 - Auth code review by @graydon in #1250
- Remove unused publish scripts/make targets by @leighmcculloch in #1258
- Write tests for unrecoverable errors with try_call by @sisuresh in #1259
- Fix the invoker contract auth rollback logic and cover it in the tests. by @dmkozh in #1260
- Re-calibration on x86 and update cost parameters by @jayz22 in #1248
- Add tests for invalid maps, oversized maps/vecs/bytes from various paths by @jayz22 in #1247
- Frame code review by @graydon in #1261
- Improve XDR conversion coverage by @dmkozh in #1264
- Add more error tests by @sisuresh in #1263
- Improve budget tracker by @jayz22 in #1267
- Validate assets when trying to create SAC instance. by @dmkozh in #1270
- Conversion tests by @sisuresh in #1271
- Update stellar-xdr by @leighmcculloch in #1272
- Change
string_new_from_slice
to use&[u8]
instead of&str
. by @dmkozh in #1273 - Update stellar-xdr by @leighmcculloch in #1274
- Initial SAC review by @graydon in #1275
- Derive debug, eq, ord on CostTracker for SDK by @leighmcculloch in #1276
- Noop auth fix by @sisuresh in #1278
- Test bad WASMs by @jayz22 in #1277
- Add time tracker by @jayz22 in #1279
- Bump wasmi and xdr to release versions by @graydon in #1280
- SAC final code review by @graydon in #1281
- Add fuzz target that runs wasmi on wasm-smith output by @graydon in #1284
- Remaining host code review by @graydon in #1285
- Bump version to 20.0.0 by @github-actions in #1290
New Contributors
- @2opremio made their first contribution in #1034
- @mootz12 made their first contribution in #1091
- @SirTyson made their first contribution in #1191
- @anupsdf made their first contribution in #1039
Full Changelog: v0.0.17...v20.0.0