From edb21d6da8f751dc9c38312c855ffc3fca8a152d Mon Sep 17 00:00:00 2001 From: Jay Geng Date: Wed, 9 Aug 2023 20:07:26 -0400 Subject: [PATCH 1/3] Bump env version, update cost parameters --- Cargo.lock | 38 +++++--- src/ledger/NetworkConfig.cpp | 92 ++++++++----------- src/protocol-next/xdr | 2 +- src/rust/Cargo.toml | 6 +- src/rust/src/contract.rs | 4 +- src/rust/src/host-dep-tree-curr.txt | 12 +-- .../ledger-close-meta-v2-protocol-20.json | 14 +-- .../test/InvokeHostFunctionTests.cpp | 14 +-- 8 files changed, 90 insertions(+), 92 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 34f2ec4daf..9773e2c454 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -978,23 +978,23 @@ dependencies = [ "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", "soroban-wasmi", "static_assertions", - "stellar-xdr", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", ] [[package]] name = "soroban-env-common" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f#75c043970e9098952848c8dd97e532b86ce78a8f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" dependencies = [ "crate-git-revision", "ethnum", "num-derive", "num-integer", "num-traits", - "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f)", + "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", "soroban-wasmi", "static_assertions", - "stellar-xdr", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", ] [[package]] @@ -1021,13 +1021,12 @@ dependencies = [ "soroban-wasmi", "static_assertions", "stellar-strkey", - "tracy-client", ] [[package]] name = "soroban-env-host" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f#75c043970e9098952848c8dd97e532b86ce78a8f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" dependencies = [ "backtrace", "curve25519-dalek", @@ -1043,11 +1042,12 @@ dependencies = [ "rand_chacha", "sha2 0.9.9", "sha3", - "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f)", - "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f)", + "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", + "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", "soroban-wasmi", "static_assertions", "stellar-strkey", + "tracy-client", ] [[package]] @@ -1060,7 +1060,7 @@ dependencies = [ "quote", "serde", "serde_json", - "stellar-xdr", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", "syn 2.0.18", "thiserror", ] @@ -1068,14 +1068,14 @@ dependencies = [ [[package]] name = "soroban-env-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f#75c043970e9098952848c8dd97e532b86ce78a8f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" dependencies = [ "itertools", "proc-macro2", "quote", "serde", "serde_json", - "stellar-xdr", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", "syn 2.0.18", "thiserror", ] @@ -1094,7 +1094,7 @@ dependencies = [ [[package]] name = "soroban-native-sdk-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f#75c043970e9098952848c8dd97e532b86ce78a8f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" dependencies = [ "itertools", "proc-macro2", @@ -1105,7 +1105,7 @@ dependencies = [ [[package]] name = "soroban-test-wasms" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" [[package]] name = "soroban-wasmi" @@ -1151,7 +1151,7 @@ dependencies = [ "log", "rustc-simple-version", "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", - "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=75c043970e9098952848c8dd97e532b86ce78a8f)", + "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", "soroban-test-wasms", "tracy-client", ] @@ -1165,6 +1165,16 @@ dependencies = [ "thiserror", ] +[[package]] +name = "stellar-xdr" +version = "0.0.17" +source = "git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e#4876e5eb20016caebbd13bcf6401626dc6073b8e" +dependencies = [ + "base64", + "crate-git-revision", + "hex", +] + [[package]] name = "stellar-xdr" version = "0.0.17" diff --git a/src/ledger/NetworkConfig.cpp b/src/ledger/NetworkConfig.cpp index 42479fefd9..5028082e2e 100644 --- a/src/ledger/NetworkConfig.cpp +++ b/src/ledger/NetworkConfig.cpp @@ -227,99 +227,92 @@ initialCpuCostParamsEntry(Config const& cfg) switch (val) { case WasmInsnExec: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 7, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 6, 0}; break; + case WasmMemAlloc: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; case HostMemAlloc: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2350, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1141, 1}; break; case HostMemCpy: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 23, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 39, 24}; break; case HostMemCmp: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 43, 1}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 20, 64}; break; - case InvokeHostFunction: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 928, 0}; + case DispatchHostFunction: + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 263, 0}; break; case VisitObject: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 19, 0}; - break; - case ValXdrConv: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 134, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 108, 0}; break; case ValSer: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 587, 1}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 591, 69}; break; case ValDeser: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 870, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1112, 34}; break; case ComputeSha256Hash: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1725, 33}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2924, 4149}; break; case ComputeEd25519PubKey: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 25551, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 25584, 0}; break; case MapEntry: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 53, 0}; break; case VecEntry: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 5, 0}; - break; - case GuardFrame: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 4050, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; case VerifyEd25519Sig: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 369634, 21}; + params[val] = + ContractCostParamEntry{ExtensionPoint{0}, 376877, 2747}; break; case VmMemRead: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 182, 24}; break; case VmMemWrite: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 124, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 182, 24}; break; case VmInstantiation: params[val] = - ContractCostParamEntry{ExtensionPoint{0}, 600447, 484}; + ContractCostParamEntry{ExtensionPoint{0}, 967154, 69991}; break; case VmCachedInstantiation: params[val] = - ContractCostParamEntry{ExtensionPoint{0}, 600447, 484}; + ContractCostParamEntry{ExtensionPoint{0}, 967154, 69991}; break; case InvokeVmFunction: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 5926, 0}; - break; - case ChargeBudget: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 130, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1125, 0}; break; case ComputeKeccak256Hash: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 3322, 46}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2890, 3561}; break; case ComputeEcdsaSecp256k1Key: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 56525, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 38363, 0}; break; case ComputeEcdsaSecp256k1Sig: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 250, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 224, 0}; break; case RecoverEcdsaSecp256k1Key: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2319640, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1666155, 0}; break; case Int256AddSub: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 735, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1716, 0}; break; case Int256Mul: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1224, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2226, 0}; break; case Int256Div: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1347, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 2333, 0}; break; case Int256Pow: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 5350, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 5212, 0}; break; case Int256Shift: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 538, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 412, 0}; break; } } @@ -380,7 +373,7 @@ initialMemCostParamsEntry(Config const& cfg) params[val] = ContractCostParamEntry{ExtensionPoint{0}, 1, 0}; break; case HostMemAlloc: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 8, 1}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 16, 128}; break; case HostMemCpy: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; @@ -388,20 +381,17 @@ initialMemCostParamsEntry(Config const& cfg) case HostMemCmp: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; - case InvokeHostFunction: + case DispatchHostFunction: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; case VisitObject: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; - case ValXdrConv: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; - break; case ValSer: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 9, 3}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 18, 384}; break; case ValDeser: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 4, 1}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 16, 128}; break; case ComputeSha256Hash: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 40, 0}; @@ -415,9 +405,6 @@ initialMemCostParamsEntry(Config const& cfg) case VecEntry: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; - case GuardFrame: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 472, 0}; - break; case VerifyEd25519Sig: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; @@ -428,16 +415,15 @@ initialMemCostParamsEntry(Config const& cfg) params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; case VmInstantiation: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 117871, 40}; + params[val] = + ContractCostParamEntry{ExtensionPoint{0}, 131103, 5080}; break; case VmCachedInstantiation: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 117871, 40}; + params[val] = + ContractCostParamEntry{ExtensionPoint{0}, 131103, 5080}; break; case InvokeVmFunction: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 486, 0}; - break; - case ChargeBudget: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 14, 0}; break; case ComputeKeccak256Hash: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 40, 0}; @@ -449,7 +435,7 @@ initialMemCostParamsEntry(Config const& cfg) params[val] = ContractCostParamEntry{ExtensionPoint{0}, 0, 0}; break; case RecoverEcdsaSecp256k1Key: - params[val] = ContractCostParamEntry{ExtensionPoint{0}, 181, 0}; + params[val] = ContractCostParamEntry{ExtensionPoint{0}, 201, 0}; break; case Int256AddSub: params[val] = ContractCostParamEntry{ExtensionPoint{0}, 119, 0}; diff --git a/src/protocol-next/xdr b/src/protocol-next/xdr index ec04dce398..1894f0909c 160000 --- a/src/protocol-next/xdr +++ b/src/protocol-next/xdr @@ -1 +1 @@ -Subproject commit ec04dce3983103f8ed8b3b25ef028c08c9d8c59d +Subproject commit 1894f0909caa0adb00437564f8e01ec33a5b5ed2 diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml index 2b80c2afb8..a616ced15c 100644 --- a/src/rust/Cargo.toml +++ b/src/rust/Cargo.toml @@ -28,7 +28,7 @@ rustc-simple-version = "0.1.0" version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" package = "soroban-env-host" -rev = "2069b9c10541126f7812c6f807006dfc8470ab3f" +rev = "844b6abc461594027158a7bb5643447d0f90a81e" # This copy of the soroban host is _optional_ and only enabled during protocol # transitions. When transitioning from protocol N to N+1, the `curr` copy @@ -52,11 +52,11 @@ optional = true version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" package = "soroban-env-host" -rev = "75c043970e9098952848c8dd97e532b86ce78a8f" +rev = "2069b9c10541126f7812c6f807006dfc8470ab3f" [dependencies.soroban-test-wasms] git = "https://github.com/stellar/rs-soroban-env" -rev = "2069b9c10541126f7812c6f807006dfc8470ab3f" +rev = "844b6abc461594027158a7bb5643447d0f90a81e" [dependencies.cargo-lock] git = "https://github.com/rustsec/rustsec" diff --git a/src/rust/src/contract.rs b/src/rust/src/contract.rs index b604221b8f..286758f045 100644 --- a/src/rust/src/contract.rs +++ b/src/rust/src/contract.rs @@ -289,7 +289,7 @@ fn invoke_host_function_or_maybe_panic( let client = tracy_client::Client::start(); let _span0 = tracy_span!("invoke_host_function_or_maybe_panic"); - let budget = Budget::from_configs( + let budget = Budget::try_from_configs( instruction_limit as u64, ledger_info.memory_limit as u64, // These are the only non-metered XDR conversions that we perform. They @@ -297,7 +297,7 @@ fn invoke_host_function_or_maybe_panic( // data. non_metered_xdr_from_cxx_buf::(&ledger_info.cpu_cost_params)?, non_metered_xdr_from_cxx_buf::(&ledger_info.mem_cost_params)?, - ); + )?; let mut diagnostic_events = vec![]; let ledger_seq_num = ledger_info.sequence_number; let (res, time_nsecs) = { diff --git a/src/rust/src/host-dep-tree-curr.txt b/src/rust/src/host-dep-tree-curr.txt index 4489f3ae9c..6cba83535b 100644 --- a/src/rust/src/host-dep-tree-curr.txt +++ b/src/rust/src/host-dep-tree-curr.txt @@ -1,4 +1,4 @@ -soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f +soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e ├── tracy-client 0.15.2 checksum:434ecabbda9f67eeea1eab44d52f4a20538afa3e2c2770f2efc161142b25b608 │ ├── tracy-client-sys 0.20.0 checksum:e8cf8aeb20e40d13be65a0b134f8d82d360e72b2793a11de8867d7fbc0f9d6f6 │ │ └── cc 1.0.79 checksum:50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f @@ -86,14 +86,14 @@ soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9 │ ├── wasmi_arena 0.4.0 git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4 │ ├── spin 0.9.8 checksum:6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 │ └── smallvec 1.10.0 checksum:a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0 -├── soroban-native-sdk-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f +├── soroban-native-sdk-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e │ ├── syn 2.0.18 checksum:32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e │ ├── quote 1.0.28 checksum:1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488 │ ├── proc-macro2 1.0.60 checksum:dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406 │ └── itertools 0.10.5 checksum:b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 │ └── either 1.8.1 checksum:7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91 -├── soroban-env-common 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f -│ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd#d6e02584ac9f4046bf38eaf445ced0d4f33631fd +├── soroban-env-common 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e +│ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e#4876e5eb20016caebbd13bcf6401626dc6073b8e │ │ ├── hex 0.4.3 checksum:7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 │ │ ├── crate-git-revision 0.0.6 checksum:c521bf1f43d31ed2f73441775ed31935d77901cb3451e44b38a1c1612fcbaf98 │ │ │ ├── serde_json 1.0.97 checksum:bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a @@ -109,10 +109,10 @@ soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9 │ │ └── base64 0.13.1 checksum:9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8 │ ├── static_assertions 1.1.0 checksum:a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f │ ├── soroban-wasmi 0.30.0-soroban git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4 -│ ├── soroban-env-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f +│ ├── soroban-env-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e │ │ ├── thiserror 1.0.40 checksum:978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac │ │ ├── syn 2.0.18 checksum:32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e -│ │ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd#d6e02584ac9f4046bf38eaf445ced0d4f33631fd +│ │ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e#4876e5eb20016caebbd13bcf6401626dc6073b8e │ │ ├── serde_json 1.0.97 checksum:bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a │ │ ├── serde 1.0.164 checksum:9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d │ │ ├── quote 1.0.28 checksum:1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488 diff --git a/src/testdata/ledger-close-meta-v2-protocol-20.json b/src/testdata/ledger-close-meta-v2-protocol-20.json index b162e89238..6bb6c40a1a 100644 --- a/src/testdata/ledger-close-meta-v2-protocol-20.json +++ b/src/testdata/ledger-close-meta-v2-protocol-20.json @@ -6,24 +6,24 @@ "v": 0 }, "ledgerHeader": { - "hash": "de90e36fdd265e52414111c95e0a2d3e87422616b7b4ec8b9f380a78a9180de1", + "hash": "bde32c54fc1da92a0f3e30f817e21643be5d5eda458d219922ad419fac1fd1f6", "header": { "ledgerVersion": 20, - "previousLedgerHash": "02ba2e2069cabf1473a6faa7a4c1e2b43d4f8b12cf78e1956869094337e4d889", + "previousLedgerHash": "d94f59d57299e5bb5b2c04e4e1b92ea01b71aca1ef20f39953606177470668f1", "scpValue": { - "txSetHash": "9a934dd462fb6931a2778acfadc5226d9b05a23b0573c0deb8240360d815b4f4", + "txSetHash": "c47b76d9b3dac8fa759cdbeeeddba7e79816257979b48fb8f4ae4f71dc4063f2", "closeTime": 0, "upgrades": [], "ext": { "v": "STELLAR_VALUE_SIGNED", "lcValueSignature": { "nodeID": "GDDOUW25MRFLNXQMN3OODP6JQEXSGLMHAFZV4XPQ2D3GA4QFIDMEJG2O", - "signature": "7da462d39a6220f786e9722d81a6b87b8519641e57442f673d0ca78c5c22e5af4f1e2c1582117b9fa0f3ba5cca8e4db40f802d18e19b5173a7f16f4600369806" + "signature": "2e94ed223116cfad63f269ef97d3dc4bc884dabef5e7d9e44303845a9b80b42794705fd28aa5925784a953773c795a4d2569d087b69fa0a8acc2ff662a070707" } } }, "txSetResultHash": "cd1398cda325d4eada631301e6501421cda30fd0b43da3e5d0ffb26caf073b0a", - "bucketListHash": "cf76c465f7e3b5077265aeae3966728190d937b2804c140861f6710993b12f3a", + "bucketListHash": "2a311ace42b78fa98c86e6d60a3a3759879f75cad99fb0e0de0ef25901be7f96", "ledgerSeq": 6, "totalCoins": 1000000000000000000, "feePool": 800, @@ -49,7 +49,7 @@ "txSet": { "v": 1, "v1TxSet": { - "previousLedgerHash": "02ba2e2069cabf1473a6faa7a4c1e2b43d4f8b12cf78e1956869094337e4d889", + "previousLedgerHash": "d94f59d57299e5bb5b2c04e4e1b92ea01b71aca1ef20f39953606177470668f1", "phases": [ { "v": 0, @@ -1001,7 +1001,7 @@ ], "upgradesProcessing": [], "scpInfo": [], - "totalByteSizeOfBucketList": 322, + "totalByteSizeOfBucketList": 306, "evictedTemporaryLedgerKeys": [], "evictedPersistentLedgerEntries": [] } diff --git a/src/transactions/test/InvokeHostFunctionTests.cpp b/src/transactions/test/InvokeHostFunctionTests.cpp index b05475709e..cc5b2f16c9 100644 --- a/src/transactions/test/InvokeHostFunctionTests.cpp +++ b/src/transactions/test/InvokeHostFunctionTests.cpp @@ -1338,14 +1338,16 @@ TEST_CASE("contract storage", "[tx][soroban]") auto autobump = enableAutobump(); REQUIRE(autobump > 1); - // Check that manual bump doesn't go over max + // Check that attempting to bump past max ledger results in error put("key", 0, ContractDataDurability::PERSISTENT); - bump("key", ContractDataDurability::PERSISTENT, UINT32_MAX); + bumpWithFootprint( + "key", UINT32_MAX, contractKeys, + {contractDataKey(contractID, makeSymbolSCVal("key"), + ContractDataDurability::PERSISTENT, DATA_ENTRY)}, + false, ContractDataDurability::PERSISTENT); auto maxExpiration = ledgerSeq + stateExpirationSettings.maxEntryExpiration - 1; - checkContractDataExpirationLedger( - "key", ContractDataDurability::PERSISTENT, maxExpiration); // Manual bump to almost max, then autobump to check that autobump // doesn't go over max @@ -1455,7 +1457,7 @@ TEST_CASE("complex contract", "[tx][soroban]") SorobanResources resources; resources.footprint.readOnly = contractKeys; resources.footprint.readWrite = {dataKey}; - resources.instructions = 2'000'000; + resources.instructions = 4'000'000; resources.readBytes = 3000; resources.writeBytes = 1000; resources.contractEventsSizeBytes = 200; @@ -1488,7 +1490,7 @@ TEST_CASE("complex contract", "[tx][soroban]") SECTION("single op") { auto tx = sorobanTransactionFrameFromOps( - app->getNetworkID(), root, {op}, {}, resources, 100'000, 1200); + app->getNetworkID(), root, {op}, {}, resources, 200'000, 1200); LedgerTxn ltx(app->getLedgerTxnRoot()); TransactionMetaFrame txm(ltx.loadHeader().current().ledgerVersion); REQUIRE(tx->checkValid(*app, ltx, 0, 0, 0)); From 2a5c1da1ebce8334159f76def2cc0f75fb0d6b1a Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 9 Aug 2023 18:21:09 -0700 Subject: [PATCH 2/3] Bump env again to fix autobump bug --- Cargo.lock | 42 +++++++++---------- src/rust/Cargo.toml | 4 +- src/rust/src/host-dep-tree-curr.txt | 8 ++-- .../test/InvokeHostFunctionTests.cpp | 10 ++++- 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9773e2c454..b98685c6c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -968,39 +968,39 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "soroban-env-common" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4" dependencies = [ "crate-git-revision", "ethnum", "num-derive", "num-integer", "num-traits", - "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", + "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4)", "soroban-wasmi", "static_assertions", - "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", ] [[package]] name = "soroban-env-common" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" +source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" dependencies = [ "crate-git-revision", "ethnum", "num-derive", "num-integer", "num-traits", - "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", + "soroban-env-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", "soroban-wasmi", "static_assertions", - "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", ] [[package]] name = "soroban-env-host" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4" dependencies = [ "backtrace", "curve25519-dalek", @@ -1016,17 +1016,18 @@ dependencies = [ "rand_chacha", "sha2 0.9.9", "sha3", - "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", - "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", + "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4)", + "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4)", "soroban-wasmi", "static_assertions", "stellar-strkey", + "tracy-client", ] [[package]] name = "soroban-env-host" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" +source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" dependencies = [ "backtrace", "curve25519-dalek", @@ -1042,25 +1043,24 @@ dependencies = [ "rand_chacha", "sha2 0.9.9", "sha3", - "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", - "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", + "soroban-env-common 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", + "soroban-native-sdk-macros 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", "soroban-wasmi", "static_assertions", "stellar-strkey", - "tracy-client", ] [[package]] name = "soroban-env-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4" dependencies = [ "itertools", "proc-macro2", "quote", "serde", "serde_json", - "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", "syn 2.0.18", "thiserror", ] @@ -1068,14 +1068,14 @@ dependencies = [ [[package]] name = "soroban-env-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" +source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" dependencies = [ "itertools", "proc-macro2", "quote", "serde", "serde_json", - "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e)", + "stellar-xdr 0.0.17 (git+https://github.com/stellar/rs-stellar-xdr?rev=d6e02584ac9f4046bf38eaf445ced0d4f33631fd)", "syn 2.0.18", "thiserror", ] @@ -1083,7 +1083,7 @@ dependencies = [ [[package]] name = "soroban-native-sdk-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" +source = "git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4" dependencies = [ "itertools", "proc-macro2", @@ -1094,7 +1094,7 @@ dependencies = [ [[package]] name = "soroban-native-sdk-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" +source = "git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f#2069b9c10541126f7812c6f807006dfc8470ab3f" dependencies = [ "itertools", "proc-macro2", @@ -1105,7 +1105,7 @@ dependencies = [ [[package]] name = "soroban-test-wasms" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e" +source = "git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4" [[package]] name = "soroban-wasmi" @@ -1150,8 +1150,8 @@ dependencies = [ "cxx", "log", "rustc-simple-version", + "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4)", "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=2069b9c10541126f7812c6f807006dfc8470ab3f)", - "soroban-env-host 0.0.17 (git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e)", "soroban-test-wasms", "tracy-client", ] diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml index a616ced15c..ad562ffb3b 100644 --- a/src/rust/Cargo.toml +++ b/src/rust/Cargo.toml @@ -28,7 +28,7 @@ rustc-simple-version = "0.1.0" version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" package = "soroban-env-host" -rev = "844b6abc461594027158a7bb5643447d0f90a81e" +rev = "048be90e10dfda6486141f96ea86e32fb91681f4" # This copy of the soroban host is _optional_ and only enabled during protocol # transitions. When transitioning from protocol N to N+1, the `curr` copy @@ -56,7 +56,7 @@ rev = "2069b9c10541126f7812c6f807006dfc8470ab3f" [dependencies.soroban-test-wasms] git = "https://github.com/stellar/rs-soroban-env" -rev = "844b6abc461594027158a7bb5643447d0f90a81e" +rev = "048be90e10dfda6486141f96ea86e32fb91681f4" [dependencies.cargo-lock] git = "https://github.com/rustsec/rustsec" diff --git a/src/rust/src/host-dep-tree-curr.txt b/src/rust/src/host-dep-tree-curr.txt index 6cba83535b..f4ac24d24c 100644 --- a/src/rust/src/host-dep-tree-curr.txt +++ b/src/rust/src/host-dep-tree-curr.txt @@ -1,4 +1,4 @@ -soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e +soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4 ├── tracy-client 0.15.2 checksum:434ecabbda9f67eeea1eab44d52f4a20538afa3e2c2770f2efc161142b25b608 │ ├── tracy-client-sys 0.20.0 checksum:e8cf8aeb20e40d13be65a0b134f8d82d360e72b2793a11de8867d7fbc0f9d6f6 │ │ └── cc 1.0.79 checksum:50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f @@ -86,13 +86,13 @@ soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6a │ ├── wasmi_arena 0.4.0 git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4 │ ├── spin 0.9.8 checksum:6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67 │ └── smallvec 1.10.0 checksum:a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0 -├── soroban-native-sdk-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e +├── soroban-native-sdk-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4 │ ├── syn 2.0.18 checksum:32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e │ ├── quote 1.0.28 checksum:1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488 │ ├── proc-macro2 1.0.60 checksum:dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406 │ └── itertools 0.10.5 checksum:b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 │ └── either 1.8.1 checksum:7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91 -├── soroban-env-common 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e +├── soroban-env-common 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4 │ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e#4876e5eb20016caebbd13bcf6401626dc6073b8e │ │ ├── hex 0.4.3 checksum:7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 │ │ ├── crate-git-revision 0.0.6 checksum:c521bf1f43d31ed2f73441775ed31935d77901cb3451e44b38a1c1612fcbaf98 @@ -109,7 +109,7 @@ soroban-env-host 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6a │ │ └── base64 0.13.1 checksum:9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8 │ ├── static_assertions 1.1.0 checksum:a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f │ ├── soroban-wasmi 0.30.0-soroban git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4 -│ ├── soroban-env-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=844b6abc461594027158a7bb5643447d0f90a81e#844b6abc461594027158a7bb5643447d0f90a81e +│ ├── soroban-env-macros 0.0.17 git+https://github.com/stellar/rs-soroban-env?rev=048be90e10dfda6486141f96ea86e32fb91681f4#048be90e10dfda6486141f96ea86e32fb91681f4 │ │ ├── thiserror 1.0.40 checksum:978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac │ │ ├── syn 2.0.18 checksum:32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e │ │ ├── stellar-xdr 0.0.17 git+https://github.com/stellar/rs-stellar-xdr?rev=4876e5eb20016caebbd13bcf6401626dc6073b8e#4876e5eb20016caebbd13bcf6401626dc6073b8e diff --git a/src/transactions/test/InvokeHostFunctionTests.cpp b/src/transactions/test/InvokeHostFunctionTests.cpp index cc5b2f16c9..7a5f8d1971 100644 --- a/src/transactions/test/InvokeHostFunctionTests.cpp +++ b/src/transactions/test/InvokeHostFunctionTests.cpp @@ -1346,16 +1346,22 @@ TEST_CASE("contract storage", "[tx][soroban]") ContractDataDurability::PERSISTENT, DATA_ENTRY)}, false, ContractDataDurability::PERSISTENT); + // Now bump to max + bump("key", ContractDataDurability::PERSISTENT, + stateExpirationSettings.maxEntryExpiration - 1); + auto maxExpiration = ledgerSeq + stateExpirationSettings.maxEntryExpiration - 1; + checkContractDataExpirationLedger( + "key", ContractDataDurability::PERSISTENT, maxExpiration); // Manual bump to almost max, then autobump to check that autobump // doesn't go over max put("key2", 0, ContractDataDurability::PERSISTENT); bump("key2", ContractDataDurability::PERSISTENT, - stateExpirationSettings.maxEntryExpiration - 1); + stateExpirationSettings.maxEntryExpiration - 2); checkContractDataExpirationLedger( - "key2", ContractDataDurability::PERSISTENT, maxExpiration); + "key2", ContractDataDurability::PERSISTENT, maxExpiration - 1); // Autobump should only add a single ledger to bring expiration to max put("key2", 1, ContractDataDurability::PERSISTENT); From 652cac13b22b8125de350fe7b11850f63b9d45da Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 9 Aug 2023 20:23:17 -0700 Subject: [PATCH 3/3] Make minimum MAXIMUM_ENTRY_LIFETIME 31 days --- src/ledger/NetworkConfig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ledger/NetworkConfig.h b/src/ledger/NetworkConfig.h index f3d314ab5f..e1bc888159 100644 --- a/src/ledger/NetworkConfig.h +++ b/src/ledger/NetworkConfig.h @@ -129,7 +129,7 @@ struct MinimumSorobanNetworkConfig static constexpr uint32_t MAX_CONTRACT_SIZE = 5000; static constexpr uint32_t MINIMUM_PERSISTENT_ENTRY_LIFETIME = 100; - static constexpr uint32_t MAXIMUM_ENTRY_LIFETIME = 259200; // 15 days + static constexpr uint32_t MAXIMUM_ENTRY_LIFETIME = 535680; // 31 days }; // Wrapper for the contract-related network configuration.