Skip to content

Commit

Permalink
Merge branch 'large_containers' of https://github.com/dmkozh/rs-sorob…
Browse files Browse the repository at this point in the history
…an-env into large_containers
  • Loading branch information
dmkozh committed Nov 21, 2023
2 parents 313836c + 2677f53 commit e32c723
Show file tree
Hide file tree
Showing 235 changed files with 117,332 additions and 53,428 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

complete:
if: always()
needs: [fmt, cargo-deny, check-git-rev-deps, build-and-test, publish-dry-run]
needs: [fmt, cackle, cargo-deny, check-git-rev-deps, build-and-test, publish-dry-run]
runs-on: ubuntu-latest
steps:
- if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
Expand Down
8 changes: 8 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions cackle.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ no_auto_detect = [
"syn",
]

[api.env]
no_auto_detect = [
"soroban-env-common",
]

[pkg.thiserror-impl]
allow_proc_macro = true
allow_apis = [
Expand Down
12 changes: 12 additions & 0 deletions soroban-env-common/src/arbitrary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,20 @@ impl<'a> Arbitrary<'a> for Error {
let error = Error::from(scerror);
Ok(error)
}

fn size_hint(depth: usize) -> (usize, Option<usize>) {
<ScError as Arbitrary>::size_hint(depth)
}
}

impl<'a> Arbitrary<'a> for Void {
fn arbitrary(_u: &mut Unstructured<'a>) -> arbitrary::Result<Self> {
Ok(Val::VOID)
}

fn size_hint(_depth: usize) -> (usize, Option<usize>) {
(0, Some(0))
}
}

impl<'a> Arbitrary<'a> for Symbol {
Expand Down Expand Up @@ -48,4 +56,8 @@ impl<'a> Arbitrary<'a> for StorageType {
])
.map(|x| *x)
}

fn size_hint(depth: usize) -> (usize, Option<usize>) {
<usize as Arbitrary>::size_hint(depth)
}
}
2 changes: 2 additions & 0 deletions soroban-env-host/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ wasmi = { workspace = true }
stellar-strkey = "0.0.8"
static_assertions = "1.1.0"
sha2 = "0.10.0"
hex-literal = "0.4.1"
hmac = "0.12.1"
ed25519-dalek = {version = "2.0.0", features = ["rand_core"] }
# NB: this must match the same rand version used by ed25519-dalek above
rand = "0.8.5"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
" 0 begin": "cpu:0, mem:0, prngs:-/d8a09d57, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 end": "cpu:3, mem:3, prngs:-/d8a09d57, objs:-/1@e6201d48, vmem:-, evt:-, store:-/-"
" 0 begin": "cpu:9996, mem:0, prngs:-/9b4a753, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 end": "cpu:3, mem:3, prngs:-/9b4a753, objs:-/1@e6201d48, vmem:-, evt:-, store:-/-"
}
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
{
" 0 begin": "cpu:0, mem:0, prngs:-/d8a09d57, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 call bytes_new_from_slice(1430)": "cpu:255",
" 2 ret bytes_new_from_slice -> Ok(Bytes(obj#1))": "cpu:3229, mem:1510, objs:-/1@49b32091",
" 0 begin": "cpu:9996, mem:0, prngs:-/9b4a753, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 call bytes_new_from_slice(1430)": "cpu:10251",
" 2 ret bytes_new_from_slice -> Ok(Bytes(obj#1))": "cpu:13225, mem:1510, objs:-/1@49b32091",
" 3 call upload_wasm(Bytes(obj#1))": "",
" 4 ret upload_wasm -> Ok(Bytes(obj#3))": "cpu:1831409, mem:1305750, objs:-/2@ae5efa2c, store:-/1@a9043b01",
" 5 call bytes_new_from_slice(32)": "cpu:1832550, mem:1305814, objs:-/3@bafa2950",
" 6 ret bytes_new_from_slice -> Ok(Bytes(obj#7))": "cpu:1835339, mem:1305926, objs:-/4@c31ddac8",
" 4 ret upload_wasm -> Ok(Bytes(obj#3))": "cpu:1843053, mem:1305758, objs:-/2@ae5efa2c, store:-/1@a9043b01",
" 5 call bytes_new_from_slice(32)": "cpu:1844194, mem:1305822, objs:-/3@5dcca3f7",
" 6 ret bytes_new_from_slice -> Ok(Bytes(obj#7))": "cpu:1846983, mem:1305934, objs:-/4@5ee3074d",
" 7 call create_contract(Address(obj#5), Bytes(obj#3), Bytes(obj#7))": "",
" 8 call obj_cmp(Address(obj#9), Address(obj#5))": "cpu:1840324, mem:1306104, objs:-/5@6a8e40fa",
" 9 ret obj_cmp -> Ok(0)": "cpu:1841010",
" 10 call get_ledger_network_id()": "cpu:1841268",
" 11 ret get_ledger_network_id -> Ok(Bytes(obj#11))": "cpu:1844165, mem:1306216, objs:-/6@424981b3",
" 12 ret create_contract -> Ok(Address(obj#13))": "cpu:1882030, mem:1307762, objs:-/7@fc93e172, store:-/2@af08bee4",
" 13 call call(Address(obj#13), Symbol(bin_word), Vec(obj#15))": "cpu:1884816, mem:1307850, objs:-/8@e987f830",
" 14 push VM:b85823fc:bin_word(U32(2864434397))": "cpu:3674884, mem:2612584, objs:-/9@6a4e7a26, vmem:1114112@528368ce",
" 15 call bytes_new_from_linear_memory(U32(1048572), U32(4))": "cpu:3677655, mem:2612630, vmem:-",
" 16 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#19))": "cpu:3681254, mem:2612714, objs:-/10@8ec1a5c",
" 17 pop VM:b85823fc:bin_word -> Ok(Bytes(obj#19))": "cpu:3682503, mem:2612738, objs:1@7f18fa80/10@8ec1a5c, vmem:1114112@c065e26",
" 18 ret call -> Ok(Bytes(obj#19))": "cpu:3682611, objs:-/10@8ec1a5c, vmem:-",
" 19 call obj_cmp(Bytes(obj#19), Bytes(obj#21))": "cpu:3685396, mem:2612822, objs:-/11@1174986c",
" 20 ret obj_cmp -> Ok(0)": "cpu:3686078",
" 21 call vec_new()": "cpu:3688863, mem:2612906, objs:-/12@c27242db",
" 22 ret vec_new -> Ok(Vec(obj#25))": "cpu:3690112, mem:2612970, objs:-/13@9da093ac",
" 8 call obj_cmp(Address(obj#9), Address(obj#5))": "cpu:1851968, mem:1306112, objs:-/5@10f62211",
" 9 ret obj_cmp -> Ok(0)": "cpu:1852654",
" 10 call get_ledger_network_id()": "cpu:1852912",
" 11 ret get_ledger_network_id -> Ok(Bytes(obj#11))": "cpu:1855809, mem:1306224, objs:-/6@833a1428",
" 12 ret create_contract -> Ok(Address(obj#13))": "cpu:1893674, mem:1307730, objs:-/7@cafa8590, store:-/2@69d1d3f9",
" 13 call call(Address(obj#13), Symbol(bin_word), Vec(obj#15))": "cpu:1896460, mem:1307818, objs:-/8@6ae69d47",
" 14 push VM:b85823fc:bin_word(U32(2864434397))": "cpu:3688176, mem:2612560, objs:-/9@b5b8dd27, vmem:1114112@528368ce",
" 15 call bytes_new_from_linear_memory(U32(1048572), U32(4))": "cpu:3690947, mem:2612606, vmem:-",
" 16 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#19))": "cpu:3694546, mem:2612690, objs:-/10@a22e2307",
" 17 pop VM:b85823fc:bin_word -> Ok(Bytes(obj#19))": "cpu:3695795, mem:2612714, objs:1@7f18fa80/10@a22e2307, vmem:1114112@c065e26",
" 18 ret call -> Ok(Bytes(obj#19))": "cpu:3695903, objs:-/10@a22e2307, vmem:-",
" 19 call obj_cmp(Bytes(obj#19), Bytes(obj#21))": "cpu:3698688, mem:2612798, objs:-/11@6e6f85ca",
" 20 ret obj_cmp -> Ok(0)": "cpu:3699370",
" 21 call vec_new()": "cpu:3702155, mem:2612882, objs:-/12@255a4219",
" 22 ret vec_new -> Ok(Vec(obj#25))": "cpu:3703404, mem:2612946, objs:-/13@aed49016",
" 23 call vec_push_back(Vec(obj#25), Bytes(obj#23))": "",
" 24 ret vec_push_back -> Ok(Vec(obj#27))": "cpu:3693330, mem:2613058, objs:-/14@433764c0",
" 24 ret vec_push_back -> Ok(Vec(obj#27))": "cpu:3706622, mem:2613034, objs:-/14@53265ea2",
" 25 call call(Address(obj#13), Symbol(bin_inc), Vec(obj#27))": "",
" 26 push VM:b85823fc:bin_inc(Bytes(obj#23))": "cpu:5483398, mem:3917792, objs:-/15@8633f0d3, vmem:1114112@528368ce",
" 27 call bytes_len(Bytes(obj#23))": "cpu:5487310, mem:3917862, objs:1@b5962073/15@8633f0d3, vmem:-",
" 28 ret bytes_len -> Ok(U32(4))": "cpu:5488815",
" 26 push VM:b85823fc:bin_inc(Bytes(obj#23))": "cpu:5498338, mem:3917776, objs:-/15@6a077d0b, vmem:1114112@528368ce",
" 27 call bytes_len(Bytes(obj#23))": "cpu:5502250, mem:3917846, objs:1@b5962073/15@6a077d0b, vmem:-",
" 28 ret bytes_len -> Ok(U32(4))": "cpu:5503755",
" 29 call bytes_copy_to_linear_memory(Bytes(obj#23), U32(0), U32(1048572), U32(4))": "",
" 30 ret bytes_copy_to_linear_memory -> Ok(Void)": "cpu:5489544",
" 30 ret bytes_copy_to_linear_memory -> Ok(Void)": "cpu:5504484",
" 31 call bytes_new_from_linear_memory(U32(1048572), U32(4))": "",
" 32 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#31))": "cpu:5493455, mem:3917946, objs:1@b5962073/16@26fb4caa",
" 33 pop VM:b85823fc:bin_inc -> Ok(Bytes(obj#31))": "cpu:5494704, mem:3917970, objs:2@a8b6a51c/16@26fb4caa, vmem:1114112@8660dfa5",
" 34 ret call -> Ok(Bytes(obj#31))": "cpu:5494812, objs:-/16@26fb4caa, vmem:-",
" 35 call obj_cmp(Bytes(obj#31), Bytes(obj#33))": "cpu:5497597, mem:3918054, objs:-/17@29112e91",
" 36 ret obj_cmp -> Ok(0)": "cpu:5498279",
" 37 end": "cpu:5498279, mem:3918054, prngs:-/d8a09d57, objs:-/17@29112e91, vmem:-, evt:-, store:-/2@af08bee4"
" 32 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#31))": "cpu:5508395, mem:3917930, objs:1@b5962073/16@9528ec5e",
" 33 pop VM:b85823fc:bin_inc -> Ok(Bytes(obj#31))": "cpu:5509644, mem:3917954, objs:2@a8b6a51c/16@9528ec5e, vmem:1114112@8660dfa5",
" 34 ret call -> Ok(Bytes(obj#31))": "cpu:5509752, objs:-/16@9528ec5e, vmem:-",
" 35 call obj_cmp(Bytes(obj#31), Bytes(obj#33))": "cpu:5512537, mem:3918038, objs:-/17@59e86228",
" 36 ret obj_cmp -> Ok(0)": "cpu:5513219",
" 37 end": "cpu:5513219, mem:3918038, prngs:-/9b4a753, objs:-/17@59e86228, vmem:-, evt:-, store:-/2@69d1d3f9"
}
76 changes: 38 additions & 38 deletions soroban-env-host/observations/test__complex__run_complex_1.json
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
{
" 0 begin": "cpu:0, mem:0, prngs:-/d8a09d57, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 call bytes_new_from_slice(873)": "cpu:255",
" 2 ret bytes_new_from_slice -> Ok(Bytes(obj#1))": "cpu:3155, mem:953, objs:-/1@bd1353e0",
" 0 begin": "cpu:9996, mem:0, prngs:-/9b4a753, objs:-/-, vmem:-, evt:-, store:-/-",
" 1 call bytes_new_from_slice(873)": "cpu:10251",
" 2 ret bytes_new_from_slice -> Ok(Bytes(obj#1))": "cpu:13151, mem:953, objs:-/1@bd1353e0",
" 3 call upload_wasm(Bytes(obj#1))": "",
" 4 ret upload_wasm -> Ok(Bytes(obj#3))": "cpu:1508636, mem:1282530, objs:-/2@cbd8127, store:-/1@a9492805",
" 5 call bytes_new_from_slice(32)": "cpu:1509777, mem:1282594, objs:-/3@6f8c3fdf",
" 6 ret bytes_new_from_slice -> Ok(Bytes(obj#7))": "cpu:1512566, mem:1282706, objs:-/4@15baab16",
" 4 ret upload_wasm -> Ok(Bytes(obj#3))": "cpu:1520280, mem:1282538, objs:-/2@cbd8127, store:-/1@a9492805",
" 5 call bytes_new_from_slice(32)": "cpu:1521421, mem:1282602, objs:-/3@60d2ddac",
" 6 ret bytes_new_from_slice -> Ok(Bytes(obj#7))": "cpu:1524210, mem:1282714, objs:-/4@291b4d82",
" 7 call create_contract(Address(obj#5), Bytes(obj#3), Bytes(obj#7))": "",
" 8 call obj_cmp(Address(obj#9), Address(obj#5))": "cpu:1517551, mem:1282884, objs:-/5@5817c41f",
" 9 ret obj_cmp -> Ok(0)": "cpu:1518237",
" 10 call get_ledger_network_id()": "cpu:1518495",
" 11 ret get_ledger_network_id -> Ok(Bytes(obj#11))": "cpu:1521392, mem:1282996, objs:-/6@bcb925a0",
" 12 ret create_contract -> Ok(Address(obj#13))": "cpu:1559257, mem:1284542, objs:-/7@67648a87, store:-/2@d83cdc92",
" 13 call call(Address(obj#13), Symbol(go), Vec(obj#15))": "cpu:1560398, mem:1284606, objs:-/8@f1649732",
" 14 push VM:6272789f:go()": "cpu:3045820, mem:2566661, objs:-/9@3be9f557, vmem:1114112@c58cc467",
" 15 call get_ledger_network_id()": "cpu:3048589, mem:2566691, vmem:-",
" 16 ret get_ledger_network_id -> Ok(Bytes(obj#19))": "cpu:3055583, mem:2566803, objs:-/10@f7df1c78",
" 17 call get_ledger_version()": "cpu:3056832, mem:2566827, objs:1@7f18fa80/10@f7df1c78",
" 18 ret get_ledger_version -> Ok(U32(20))": "cpu:3057095",
" 8 call obj_cmp(Address(obj#9), Address(obj#5))": "cpu:1529195, mem:1282892, objs:-/5@46c36775",
" 9 ret obj_cmp -> Ok(0)": "cpu:1529881",
" 10 call get_ledger_network_id()": "cpu:1530139",
" 11 ret get_ledger_network_id -> Ok(Bytes(obj#11))": "cpu:1533036, mem:1283004, objs:-/6@f4750998",
" 12 ret create_contract -> Ok(Address(obj#13))": "cpu:1570901, mem:1284510, objs:-/7@b9ea8b1c, store:-/2@db395b4",
" 13 call call(Address(obj#13), Symbol(go), Vec(obj#15))": "cpu:1572042, mem:1284574, objs:-/8@1973bcdc",
" 14 push VM:6272789f:go()": "cpu:3059112, mem:2566637, objs:-/9@78a6849c, vmem:1114112@c58cc467",
" 15 call get_ledger_network_id()": "cpu:3061881, mem:2566667, vmem:-",
" 16 ret get_ledger_network_id -> Ok(Bytes(obj#19))": "cpu:3068875, mem:2566779, objs:-/10@13725652",
" 17 call get_ledger_version()": "cpu:3070124, mem:2566803, objs:1@7f18fa80/10@13725652",
" 18 ret get_ledger_version -> Ok(U32(20))": "cpu:3070387",
" 19 call get_ledger_sequence()": "",
" 20 ret get_ledger_sequence -> Ok(U32(1234))": "cpu:3057358",
" 20 ret get_ledger_sequence -> Ok(U32(1234))": "cpu:3070650",
" 21 call get_ledger_timestamp()": "",
" 22 ret get_ledger_timestamp -> Ok(U64(1234))": "cpu:3057621",
" 22 ret get_ledger_timestamp -> Ok(U64(1234))": "cpu:3070913",
" 23 call compute_hash_sha256(Bytes(obj#19))": "",
" 24 ret compute_hash_sha256 -> Ok(Bytes(obj#21))": "cpu:3063262, mem:2566931, objs:1@7f18fa80/11@a7a0c69b",
" 25 call bytes_copy_to_linear_memory(Bytes(obj#21), U32(0), U32(1048504), U32(32))": "cpu:3064511, mem:2566955, objs:2@6b9b82ef/11@a7a0c69b",
" 26 ret bytes_copy_to_linear_memory -> Ok(Void)": "cpu:3065244",
" 24 ret compute_hash_sha256 -> Ok(Bytes(obj#21))": "cpu:3078202, mem:2566915, objs:1@7f18fa80/11@73fbc3cb",
" 25 call bytes_copy_to_linear_memory(Bytes(obj#21), U32(0), U32(1048504), U32(32))": "cpu:3079451, mem:2566939, objs:2@6b9b82ef/11@73fbc3cb",
" 26 ret bytes_copy_to_linear_memory -> Ok(Void)": "cpu:3080184",
" 27 call bytes_new_from_linear_memory(U32(1048504), U32(16))": "",
" 28 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#23))": "cpu:3068041, mem:2567051, objs:2@6b9b82ef/12@840dfa02",
" 29 call vec_new()": "cpu:3069290, mem:2567075, objs:3@6a4b7989/12@840dfa02",
" 30 ret vec_new -> Ok(Vec(obj#25))": "cpu:3070694, mem:2567139, objs:3@6a4b7989/13@97b4d4d7",
" 31 call vec_push_back(Vec(obj#25), Bytes(obj#23))": "cpu:3071943, mem:2567163, objs:4@93597833/13@97b4d4d7",
" 32 ret vec_push_back -> Ok(Vec(obj#27))": "cpu:3075640, mem:2567251, objs:4@93597833/14@76d456e2",
" 33 call vec_new_from_linear_memory(U32(1048544), U32(1))": "cpu:3076889, mem:2567275, objs:5@93e8cf26/14@76d456e2",
" 34 ret vec_new_from_linear_memory -> Ok(Vec(obj#29))": "cpu:3080560, mem:2567363, objs:5@93e8cf26/15@934a61d9",
" 35 call contract_event(Vec(obj#29), Bytes(obj#21))": "cpu:3081809, mem:2567387, objs:6@e37e9bd8/15@934a61d9",
" 36 ret contract_event -> Ok(Void)": "cpu:3086981, mem:2567564, objs:6@e37e9bd8/16@64866f90, evt:1@4403228c",
" 28 ret bytes_new_from_linear_memory -> Ok(Bytes(obj#23))": "cpu:3082981, mem:2567035, objs:2@6b9b82ef/12@85ed014d",
" 29 call vec_new()": "cpu:3084230, mem:2567059, objs:3@6a4b7989/12@85ed014d",
" 30 ret vec_new -> Ok(Vec(obj#25))": "cpu:3085634, mem:2567123, objs:3@6a4b7989/13@6cceedb6",
" 31 call vec_push_back(Vec(obj#25), Bytes(obj#23))": "cpu:3086883, mem:2567147, objs:4@93597833/13@6cceedb6",
" 32 ret vec_push_back -> Ok(Vec(obj#27))": "cpu:3090580, mem:2567235, objs:4@93597833/14@c6b13ef6",
" 33 call vec_new_from_linear_memory(U32(1048544), U32(1))": "cpu:3091829, mem:2567259, objs:5@93e8cf26/14@c6b13ef6",
" 34 ret vec_new_from_linear_memory -> Ok(Vec(obj#29))": "cpu:3095500, mem:2567347, objs:5@93e8cf26/15@ecec05b9",
" 35 call contract_event(Vec(obj#29), Bytes(obj#21))": "cpu:3096749, mem:2567371, objs:6@e37e9bd8/15@ecec05b9",
" 36 ret contract_event -> Ok(Void)": "cpu:3101921, mem:2567548, objs:6@e37e9bd8/16@47186a7, evt:1@4403228c",
" 37 call map_new_from_linear_memory(U32(1048600), U32(1048544), U32(4))": "",
" 38 call obj_cmp(Symbol(obj#33), Symbol(seq))": "cpu:3097151, mem:2567862, objs:6@e37e9bd8/17@9d10386b",
" 39 ret obj_cmp -> Ok(-1)": "cpu:3097617",
" 40 ret map_new_from_linear_memory -> Ok(Map(obj#35))": "cpu:3098758, mem:2567926, objs:6@e37e9bd8/18@648b89ed",
" 41 call put_contract_data(Symbol(data), Map(obj#35), Temporary)": "cpu:3100007, mem:2567950, objs:7@929806d2/18@648b89ed",
" 42 ret put_contract_data -> Ok(Void)": "cpu:3126208, mem:2569582, store:-/3@2bee78c2",
" 38 call obj_cmp(Symbol(obj#33), Symbol(seq))": "cpu:3112091, mem:2567846, objs:6@e37e9bd8/17@c3b02257",
" 39 ret obj_cmp -> Ok(-1)": "cpu:3112557",
" 40 ret map_new_from_linear_memory -> Ok(Map(obj#35))": "cpu:3113698, mem:2567910, objs:6@e37e9bd8/18@c5b9547b",
" 41 call put_contract_data(Symbol(data), Map(obj#35), Temporary)": "cpu:3114947, mem:2567934, objs:7@929806d2/18@c5b9547b",
" 42 ret put_contract_data -> Ok(Void)": "cpu:3141148, mem:2569566, store:-/3@92f38776",
" 43 pop VM:6272789f:go -> Ok(Void)": " vmem:1114112@6ea60965",
" 44 ret call -> Ok(Void)": " objs:-/18@648b89ed, vmem:-",
" 45 end": "cpu:3126208, mem:2569582, prngs:-/d8a09d57, objs:-/18@648b89ed, vmem:-, evt:1@4403228c, store:-/3@2bee78c2"
" 44 ret call -> Ok(Void)": " objs:-/18@c5b9547b, vmem:-",
" 45 end": "cpu:3141148, mem:2569566, prngs:-/9b4a753, objs:-/18@c5b9547b, vmem:-, evt:1@4403228c, store:-/3@92f38776"
}
Loading

0 comments on commit e32c723

Please sign in to comment.