diff --git a/.cargo/config b/.cargo/config
index 77ddee744f4d2..004789605a37f 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -44,4 +44,7 @@ mysql-clippy = [
rustflags = ["-C", "force-frame-pointers=yes", "-C", "force-unwind-tables=yes"]
[net]
-git-fetch-with-cli = true
\ No newline at end of file
+git-fetch-with-cli = true
+
+[target.x86_64-unknown-linux-gnu]
+rustflags = ["-C", "link-arg=-fuse-ld=lld", "-C", "target-cpu=native"]
\ No newline at end of file
diff --git a/.changeset/seven-chicken-occur.md b/.changeset/seven-chicken-occur.md
deleted file mode 100644
index fc618ebc9b4c8..0000000000000
--- a/.changeset/seven-chicken-occur.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@mysten/sui': patch
----
-
-Mark subscription methods as deprecated.
diff --git a/.changeset/shaggy-cows-decide.md b/.changeset/shaggy-cows-decide.md
deleted file mode 100644
index 17760047724e4..0000000000000
--- a/.changeset/shaggy-cows-decide.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-'@mysten/ledgerjs-hw-app-sui': patch
-'@mysten/graphql-transport': patch
-'@mysten/wallet-standard': patch
-'@mysten/suins-toolkit': patch
-'@mysten/create-dapp': patch
-'@mysten/sui': patch
-'@mysten/dapp-kit': patch
-'@mysten/deepbook': patch
-'@mysten/zklogin': patch
-'@mysten/zksend': patch
-'@mysten/enoki': patch
-'@mysten/kiosk': patch
-'@mysten/bcs': patch
----
-
-Update dependencies
diff --git a/.config/nextest.toml b/.config/nextest.toml
index 56d8cf0561154..757ed7769622b 100644
--- a/.config/nextest.toml
+++ b/.config/nextest.toml
@@ -8,7 +8,7 @@ fail-fast = false
# Retry failing tests in order to not block builds on flaky tests
retries = 5
# Timeout tests after 4 minutes
-slow-timeout = { period = "60s", terminate-after = 4 }
+slow-timeout = { period = "60s", terminate-after = 5 }
[profile.narwhalnightly]
# Print out output for failing tests as soon as they fail, and also at the end
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 55648d37c670c..d9188b7d2852b 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -20,4 +20,5 @@ For each box you select, include information after the relevant heading that des
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
-- [ ] Rust SDK:
+- [ ] Rust SDK:
+- [ ] REST API:
diff --git a/.github/workflows/build-suiop-cli.yml b/.github/workflows/build-suiop-cli.yml
index 06fb1b36b1915..2a4c2bceadf9d 100644
--- a/.github/workflows/build-suiop-cli.yml
+++ b/.github/workflows/build-suiop-cli.yml
@@ -24,5 +24,5 @@ jobs:
# we could generate a different secret for this
# for separation of concerns:
token: ${{ secrets.CHANGESETS_DEPLOY_DISPATCH }}
- event-type: build-binaries
+ event-type: build-suiop-cli-binaries
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
diff --git a/.github/workflows/cargo-llvm-cov.yml b/.github/workflows/cargo-llvm-cov.yml
index 58fd8b8c1cdcc..73f6cb5057650 100644
--- a/.github/workflows/cargo-llvm-cov.yml
+++ b/.github/workflows/cargo-llvm-cov.yml
@@ -54,7 +54,7 @@ jobs:
swap-size-gb: 256
- name: Run code coverage for nextest
- run: SUI_SKIP_SIMTESTS=1 cargo llvm-cov --ignore-run-fail --lcov --output-path lcov.info nextest -vv
+ run: RUSTFLAGS="-C debuginfo=0" SUI_SKIP_SIMTESTS=1 cargo llvm-cov --ignore-run-fail --lcov --output-path lcov.info nextest -vv
- name: Upload report to Codecov for nextest
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # pin v4.0.1
diff --git a/.github/workflows/external.yml b/.github/workflows/external.yml
index c6a9dd00af93f..2ded81bc787b3 100644
--- a/.github/workflows/external.yml
+++ b/.github/workflows/external.yml
@@ -118,7 +118,7 @@ jobs:
uses: actions-rs/cargo@ae10961054e4aa8b4aa7dffede299aaf087aa33b # pin@v1.0.3
with:
command: fmt
- args: --check
+ args: --check --all
cargo-deny:
name: cargo-deny (advisories, licenses, bans, ...)
diff --git a/Cargo.lock b/Cargo.lock
index 249b7ad5120b1..0ea4e18f5bccc 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -79,20 +79,23 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"once_cell",
"version_check",
]
[[package]]
name = "ahash"
-version = "0.8.2"
+version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
+ "const-random",
+ "getrandom 0.2.15",
"once_cell",
"version_check",
+ "zerocopy",
]
[[package]]
@@ -158,7 +161,7 @@ dependencies = [
[[package]]
name = "anemo"
version = "0.0.0"
-source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7"
+source = "git+https://github.com/mystenlabs/anemo.git?rev=dbb5a074c2d25660525ab5d36d65ff0cb8051949#dbb5a074c2d25660525ab5d36d65ff0cb8051949"
dependencies = [
"anyhow",
"async-trait",
@@ -167,17 +170,17 @@ dependencies = [
"ed25519 1.5.3",
"futures",
"hex",
- "http",
+ "http 1.1.0",
"matchit 0.5.0",
"pin-project-lite",
"pkcs8 0.9.0",
"quinn",
"quinn-proto",
"rand 0.8.5",
- "rcgen",
- "ring 0.16.20",
- "rustls 0.21.12",
- "rustls-webpki 0.101.7",
+ "rcgen 0.13.1",
+ "ring 0.17.8",
+ "rustls 0.23.12",
+ "rustls-webpki 0.102.6",
"serde",
"serde_json",
"socket2 0.5.6",
@@ -190,21 +193,50 @@ dependencies = [
"x509-parser",
]
+[[package]]
+name = "anemo-benchmark"
+version = "0.0.0"
+dependencies = [
+ "anemo",
+ "anemo-build",
+ "clap",
+ "mysten-network",
+ "rand 0.8.5",
+ "telemetry-subscribers",
+ "tokio",
+]
+
[[package]]
name = "anemo-build"
version = "0.0.0"
-source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7"
+source = "git+https://github.com/mystenlabs/anemo.git?rev=dbb5a074c2d25660525ab5d36d65ff0cb8051949#dbb5a074c2d25660525ab5d36d65ff0cb8051949"
dependencies = [
- "prettyplease 0.1.25",
+ "prettyplease 0.2.17",
"proc-macro2 1.0.78",
"quote 1.0.35",
- "syn 1.0.107",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "anemo-cli"
+version = "0.0.0"
+source = "git+https://github.com/mystenlabs/anemo.git?rev=dbb5a074c2d25660525ab5d36d65ff0cb8051949#dbb5a074c2d25660525ab5d36d65ff0cb8051949"
+dependencies = [
+ "anemo",
+ "anemo-tower",
+ "bytes",
+ "clap",
+ "dashmap",
+ "rand 0.8.5",
+ "tokio",
+ "tower",
+ "tracing",
]
[[package]]
name = "anemo-tower"
version = "0.0.0"
-source = "git+https://github.com/mystenlabs/anemo.git?rev=26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7#26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7"
+source = "git+https://github.com/mystenlabs/anemo.git?rev=dbb5a074c2d25660525ab5d36d65ff0cb8051949#dbb5a074c2d25660525ab5d36d65ff0cb8051949"
dependencies = [
"anemo",
"bytes",
@@ -225,6 +257,15 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "anstream"
version = "0.6.13"
@@ -502,12 +543,232 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
[[package]]
name = "arrayvec"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+[[package]]
+name = "arrow"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05048a8932648b63f21c37d88b552ccc8a65afb6dfe9fc9f30ce79174c2e7a85"
+dependencies = [
+ "arrow-arith",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-csv",
+ "arrow-data",
+ "arrow-ipc",
+ "arrow-json",
+ "arrow-ord",
+ "arrow-row",
+ "arrow-schema",
+ "arrow-select",
+ "arrow-string",
+]
+
+[[package]]
+name = "arrow-arith"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d8a57966e43bfe9a3277984a14c24ec617ad874e4c0e1d2a1b083a39cfbf22c"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half 2.4.1",
+ "num",
+]
+
+[[package]]
+name = "arrow-array"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16f4a9468c882dc66862cef4e1fd8423d47e67972377d85d80e022786427768c"
+dependencies = [
+ "ahash 0.8.11",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half 2.4.1",
+ "hashbrown 0.14.5",
+ "num",
+]
+
+[[package]]
+name = "arrow-buffer"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c975484888fc95ec4a632cdc98be39c085b1bb518531b0c80c5d462063e5daa1"
+dependencies = [
+ "bytes",
+ "half 2.4.1",
+ "num",
+]
+
+[[package]]
+name = "arrow-cast"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da26719e76b81d8bc3faad1d4dbdc1bcc10d14704e63dc17fc9f3e7e1e567c8e"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "atoi",
+ "base64 0.22.1",
+ "chrono",
+ "half 2.4.1",
+ "lexical-core",
+ "num",
+ "ryu",
+]
+
+[[package]]
+name = "arrow-csv"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c13c36dc5ddf8c128df19bab27898eea64bf9da2b555ec1cd17a8ff57fba9ec2"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "csv",
+ "csv-core",
+ "lazy_static",
+ "lexical-core",
+ "regex",
+]
+
+[[package]]
+name = "arrow-data"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd9d6f18c65ef7a2573ab498c374d8ae364b4a4edf67105357491c031f716ca5"
+dependencies = [
+ "arrow-buffer",
+ "arrow-schema",
+ "half 2.4.1",
+ "num",
+]
+
+[[package]]
+name = "arrow-ipc"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e786e1cdd952205d9a8afc69397b317cfbb6e0095e445c69cda7e8da5c1eeb0f"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "flatbuffers",
+]
+
+[[package]]
+name = "arrow-json"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb22284c5a2a01d73cebfd88a33511a3234ab45d66086b2ca2d1228c3498e445"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half 2.4.1",
+ "indexmap 2.2.6",
+ "lexical-core",
+ "num",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "arrow-ord"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42745f86b1ab99ef96d1c0bcf49180848a64fe2c7a7a0d945bc64fa2b21ba9bc"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "half 2.4.1",
+ "num",
+]
+
+[[package]]
+name = "arrow-row"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd09a518c602a55bd406bcc291a967b284cfa7a63edfbf8b897ea4748aad23c"
+dependencies = [
+ "ahash 0.8.11",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "half 2.4.1",
+]
+
+[[package]]
+name = "arrow-schema"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e972cd1ff4a4ccd22f86d3e53e835c2ed92e0eea6a3e8eadb72b4f1ac802cf8"
+
+[[package]]
+name = "arrow-select"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "600bae05d43483d216fb3494f8c32fdbefd8aa4e1de237e790dbb3d9f44690a3"
+dependencies = [
+ "ahash 0.8.11",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "num",
+]
+
+[[package]]
+name = "arrow-string"
+version = "52.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0dc1985b67cb45f6606a248ac2b4a288849f196bab8c657ea5589f47cdd55e6"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "memchr",
+ "num",
+ "regex",
+ "regex-syntax 0.8.4",
+]
+
[[package]]
name = "asn1-rs"
version = "0.5.1"
@@ -575,6 +836,19 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "async-compression"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa"
+dependencies = [
+ "flate2",
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+]
+
[[package]]
name = "async-lock"
version = "2.6.0"
@@ -601,7 +875,7 @@ dependencies = [
"portable-atomic 1.7.0",
"rand 0.8.5",
"regex",
- "ring 0.17.3",
+ "ring 0.17.8",
"rustls-native-certs 0.7.1",
"rustls-pemfile 2.1.2",
"rustls-webpki 0.102.6",
@@ -683,12 +957,50 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82"
+[[package]]
+name = "asynchronous-codec"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568"
+dependencies = [
+ "bytes",
+ "futures-sink",
+ "futures-util",
+ "memchr",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "atoi"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
[[package]]
name = "atomic_float"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62af46d040ba9df09edc6528dae9d8e49f5f3e82f55b7d2ec31a733c38dbc49d"
+[[package]]
+name = "atomicwrites"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb8f2cd6962fa53c0e2a9d3f97eaa7dbd1e3cbbeeb4745403515b42ae07b3ff6"
+dependencies = [
+ "tempfile",
+ "winapi",
+]
+
[[package]]
name = "auto_impl"
version = "1.1.0"
@@ -742,8 +1054,8 @@ dependencies = [
"bytes",
"fastrand 2.0.0",
"hex",
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.26",
"ring 0.16.20",
"time",
"tokio",
@@ -777,8 +1089,8 @@ dependencies = [
"aws-smithy-types",
"aws-types",
"bytes",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"lazy_static",
"percent-encoding",
"pin-project-lite",
@@ -801,7 +1113,7 @@ dependencies = [
"aws-smithy-types",
"aws-types",
"fastrand 2.0.0",
- "http",
+ "http 0.2.9",
"percent-encoding",
"tracing",
"uuid 1.2.2",
@@ -826,7 +1138,33 @@ dependencies = [
"aws-types",
"bytes",
"fastrand 2.0.0",
- "http",
+ "http 0.2.9",
+ "regex",
+ "tokio-stream",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sdk-ec2"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c58f098f12b70166afd023949291df62f7f716cb5866ac4256178cd3321d1b1b"
+dependencies = [
+ "aws-credential-types",
+ "aws-http",
+ "aws-runtime",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-query",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "fastrand 2.0.0",
+ "http 0.2.9",
"regex",
"tokio-stream",
"tracing",
@@ -854,8 +1192,8 @@ dependencies = [
"aws-smithy-xml",
"aws-types",
"bytes",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"once_cell",
"percent-encoding",
"regex",
@@ -882,7 +1220,7 @@ dependencies = [
"aws-smithy-types",
"aws-types",
"bytes",
- "http",
+ "http 0.2.9",
"regex",
"tokio-stream",
"tracing",
@@ -907,7 +1245,7 @@ dependencies = [
"aws-smithy-types",
"aws-smithy-xml",
"aws-types",
- "http",
+ "http 0.2.9",
"regex",
"tracing",
]
@@ -923,8 +1261,8 @@ dependencies = [
"bytes",
"form_urlencoded",
"hex",
- "hmac",
- "http",
+ "hmac 0.12.1",
+ "http 0.2.9",
"once_cell",
"percent-encoding",
"regex",
@@ -957,9 +1295,9 @@ dependencies = [
"crc32c",
"crc32fast",
"hex",
- "http",
- "http-body",
- "md-5",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "md-5 0.10.6",
"pin-project-lite",
"sha1",
"sha2 0.10.6",
@@ -978,9 +1316,9 @@ dependencies = [
"aws-smithy-types",
"bytes",
"fastrand 2.0.0",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"hyper-rustls 0.24.0",
"lazy_static",
"pin-project-lite",
@@ -1012,9 +1350,9 @@ dependencies = [
"bytes",
"bytes-utils",
"futures-core",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"once_cell",
"percent-encoding",
"pin-project-lite",
@@ -1033,8 +1371,8 @@ dependencies = [
"aws-smithy-http",
"aws-smithy-types",
"bytes",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"pin-project-lite",
"tower",
"tracing",
@@ -1072,8 +1410,8 @@ dependencies = [
"aws-smithy-types",
"bytes",
"fastrand 2.0.0",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"once_cell",
"pin-project-lite",
"pin-utils",
@@ -1091,7 +1429,7 @@ dependencies = [
"aws-smithy-http",
"aws-smithy-types",
"bytes",
- "http",
+ "http 0.2.9",
"tokio",
"tracing",
]
@@ -1130,7 +1468,7 @@ dependencies = [
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-types",
- "http",
+ "http 0.2.9",
"rustc_version",
"tracing",
]
@@ -1148,9 +1486,9 @@ dependencies = [
"bytes",
"futures-util",
"headers",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"itoa",
"matchit 0.7.0",
"memchr",
@@ -1180,14 +1518,33 @@ dependencies = [
"async-trait",
"bytes",
"futures-util",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"mime",
"rustversion",
"tower-layer",
"tower-service",
]
+[[package]]
+name = "axum-extra"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a320103719de37b7b4da4c8eb629d4573f6bcfd3dfe80d3208806895ccf81d"
+dependencies = [
+ "axum",
+ "bytes",
+ "futures-util",
+ "http 0.2.9",
+ "mime",
+ "pin-project-lite",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tower-layer",
+ "tower-service",
+]
+
[[package]]
name = "axum-server"
version = "0.5.1"
@@ -1197,9 +1554,9 @@ dependencies = [
"arc-swap",
"bytes",
"futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"pin-project-lite",
"rustls 0.21.12",
"rustls-pemfile 1.0.2",
@@ -1215,7 +1572,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
dependencies = [
"futures-core",
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"instant",
"pin-project-lite",
"rand 0.8.5",
@@ -1237,6 +1594,15 @@ dependencies = [
"rustc-demangle",
]
+[[package]]
+name = "backtrace-ext"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
+dependencies = [
+ "backtrace",
+]
+
[[package]]
name = "base-x"
version = "0.2.11"
@@ -1298,6 +1664,17 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+[[package]]
+name = "bcrypt-pbkdf"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2"
+dependencies = [
+ "blowfish",
+ "pbkdf2 0.12.1",
+ "sha2 0.10.6",
+]
+
[[package]]
name = "bcs"
version = "0.1.6"
@@ -1367,9 +1744,15 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "bimap"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7"
+
[[package]]
name = "bin-version"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"const-str",
"git-version",
@@ -1400,7 +1783,7 @@ dependencies = [
"proc-macro2 1.0.78",
"quote 1.0.35",
"regex",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"shlex",
"syn 2.0.48",
]
@@ -1412,7 +1795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b"
dependencies = [
"bs58 0.4.0",
- "hmac",
+ "hmac 0.12.1",
"k256 0.11.6",
"once_cell",
"pbkdf2 0.11.0",
@@ -1485,6 +1868,9 @@ name = "bitflags"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+dependencies = [
+ "serde",
+]
[[package]]
name = "bitmaps"
@@ -1535,7 +1921,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
dependencies = [
"arrayref",
- "arrayvec",
+ "arrayvec 0.7.2",
"constant_time_eq",
]
@@ -1546,7 +1932,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae"
dependencies = [
"arrayref",
- "arrayvec",
+ "arrayvec 0.7.2",
"constant_time_eq",
]
@@ -1584,6 +1970,16 @@ dependencies = [
"generic-array",
]
+[[package]]
+name = "blowfish"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
+dependencies = [
+ "byteorder",
+ "cipher",
+]
+
[[package]]
name = "blst"
version = "0.3.11"
@@ -1779,9 +2175,9 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
[[package]]
name = "camino"
-version = "1.1.2"
+version = "1.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055"
+checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
dependencies = [
"serde",
]
@@ -1863,16 +2259,37 @@ dependencies = [
]
[[package]]
-name = "cfg-if"
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+[[package]]
+name = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
[[package]]
name = "chrono"
-version = "0.4.31"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
@@ -1880,7 +2297,7 @@ dependencies = [
"num-traits",
"serde",
"wasm-bindgen",
- "windows-targets 0.48.0",
+ "windows-targets 0.52.0",
]
[[package]]
@@ -1907,7 +2324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
dependencies = [
"ciborium-io",
- "half",
+ "half 1.8.2",
]
[[package]]
@@ -1972,6 +2389,17 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
[[package]]
name = "codespan"
version = "0.11.1"
@@ -2002,7 +2430,7 @@ dependencies = [
"bs58 0.5.0",
"coins-core",
"digest 0.10.7",
- "hmac",
+ "hmac 0.12.1",
"k256 0.13.1",
"serde",
"sha2 0.10.6",
@@ -2017,7 +2445,7 @@ checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528"
dependencies = [
"bitvec 1.0.1",
"coins-bip32",
- "hmac",
+ "hmac 0.12.1",
"once_cell",
"pbkdf2 0.12.1",
"rand 0.8.5",
@@ -2051,6 +2479,33 @@ version = "0.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a"
+[[package]]
+name = "color-eyre"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5"
+dependencies = [
+ "backtrace",
+ "color-spantrace",
+ "eyre",
+ "indenter",
+ "once_cell",
+ "owo-colors 3.5.0",
+ "tracing-error",
+]
+
+[[package]]
+name = "color-spantrace"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2"
+dependencies = [
+ "once_cell",
+ "owo-colors 3.5.0",
+ "tracing-core",
+ "tracing-error",
+]
+
[[package]]
name = "colorchoice"
version = "1.0.0"
@@ -2068,6 +2523,17 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "colored-diff"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "410208eb08c3f3ad44b95b51c4fc0d5993cbcc9dd39cfadb4214b9115a97dcb5"
+dependencies = [
+ "ansi_term",
+ "dissimilar",
+ "itertools 0.10.5",
+]
+
[[package]]
name = "combine"
version = "4.6.6"
@@ -2078,6 +2544,18 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "comfy-table"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba"
+dependencies = [
+ "crossterm 0.26.1",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "unicode-width",
+]
+
[[package]]
name = "consensus-config"
version = "0.1.0"
@@ -2109,8 +2587,8 @@ dependencies = [
"enum_dispatch",
"fastcrypto",
"futures",
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.26",
"hyper-rustls 0.24.0",
"itertools 0.10.5",
"mockall",
@@ -2153,7 +2631,7 @@ version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9b6515d269224923b26b5febea2ed42b2d5f2ce37284a4dd670fedd6cb8347a"
dependencies = [
- "encode_unicode",
+ "encode_unicode 0.3.6",
"lazy_static",
"libc",
"unicode-width",
@@ -2203,6 +2681,26 @@ version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+[[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom 0.2.15",
+ "once_cell",
+ "tiny-keccak",
+]
+
[[package]]
name = "const-str"
version = "0.5.6"
@@ -2215,6 +2713,30 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
+[[package]]
+name = "containers-api"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56082e32f18a6d60f06c736b49e234deffb93b13cb87091a39e0dec053d03819"
+dependencies = [
+ "chrono",
+ "flate2",
+ "futures-util",
+ "http 0.2.9",
+ "hyper 0.14.26",
+ "hyperlocal",
+ "log",
+ "mime",
+ "paste",
+ "pin-project",
+ "serde",
+ "serde_json",
+ "tar",
+ "thiserror",
+ "tokio",
+ "url",
+]
+
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -2349,6 +2871,30 @@ dependencies = [
"itertools 0.10.5",
]
+[[package]]
+name = "cron"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f8c3e73077b4b4a6ab1ea5047c37c57aee77657bc8ecd6f29b0af082d0b0c07"
+dependencies = [
+ "chrono",
+ "nom",
+ "once_cell",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
[[package]]
name = "crossbeam-channel"
version = "0.5.13"
@@ -2377,6 +2923,15 @@ dependencies = [
"crossbeam-utils",
]
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
@@ -2399,6 +2954,22 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "crossterm"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
+dependencies = [
+ "bitflags 1.3.2",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot 0.12.1",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
[[package]]
name = "crossterm_winapi"
version = "0.9.0"
@@ -2449,6 +3020,16 @@ dependencies = [
"typenum",
]
+[[package]]
+name = "crypto-mac"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
[[package]]
name = "csv"
version = "1.2.1"
@@ -2502,6 +3083,7 @@ dependencies = [
"fiat-crypto",
"rustc_version",
"subtle",
+ "zeroize",
]
[[package]]
@@ -2572,6 +3154,16 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core 0.13.4",
+ "darling_macro 0.13.4",
+]
+
[[package]]
name = "darling"
version = "0.14.2"
@@ -2592,6 +3184,20 @@ dependencies = [
"darling_macro 0.20.10",
]
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "strsim 0.10.0",
+ "syn 1.0.107",
+]
+
[[package]]
name = "darling_core"
version = "0.14.2"
@@ -2620,6 +3226,17 @@ dependencies = [
"syn 2.0.48",
]
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
+dependencies = [
+ "darling_core 0.13.4",
+ "quote 1.0.35",
+ "syn 1.0.107",
+]
+
[[package]]
name = "darling_macro"
version = "0.14.2"
@@ -2649,7 +3266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [
"cfg-if",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.5",
"lock_api",
"once_cell",
"parking_lot_core 0.9.9",
@@ -2691,6 +3308,12 @@ dependencies = [
"walkdir",
]
+[[package]]
+name = "debug-ignore"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe7ed1d93f4553003e20b629abe9085e1e81b1429520f897f8f8860bc6dfc21"
+
[[package]]
name = "debugid"
version = "0.8.0"
@@ -2823,6 +3446,23 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "determinator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c644b91adb5bcc66d3533607b6d3ee5c1c2d858d2d95e41dd6aae673e29e0509"
+dependencies = [
+ "camino",
+ "globset",
+ "guppy",
+ "guppy-workspace-hack",
+ "once_cell",
+ "petgraph 0.6.2",
+ "rayon",
+ "serde",
+ "toml 0.5.11",
+]
+
[[package]]
name = "diesel"
version = "2.1.4"
@@ -2904,6 +3544,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+[[package]]
+name = "diffus"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c0ff24a73b51d9009c40897faf87d31b77345c90ffbf4dc3a1d2957032c5653"
+dependencies = [
+ "itertools 0.10.5",
+]
+
[[package]]
name = "diffy"
version = "0.3.0"
@@ -2940,7 +3589,16 @@ version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
dependencies = [
- "dirs-sys",
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys 0.4.1",
]
[[package]]
@@ -2964,6 +3622,18 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
@@ -2998,6 +3668,43 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+[[package]]
+name = "docker-api"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "522a3ae33cf4fc165de192eb9c563b755bc43cda9bd6f442b2d511b84514b917"
+dependencies = [
+ "asynchronous-codec",
+ "base64 0.13.1",
+ "byteorder",
+ "bytes",
+ "chrono",
+ "containers-api",
+ "docker-api-stubs",
+ "futures-util",
+ "http 0.2.9",
+ "hyper 0.14.26",
+ "log",
+ "paste",
+ "serde",
+ "serde_json",
+ "tar",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "docker-api-stubs"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5872f5e057625a972acce1a51b461284eab32b7e594e18f8fc2f63724075da47"
+dependencies = [
+ "chrono",
+ "serde",
+ "serde_json",
+ "serde_with 2.1.0",
+]
+
[[package]]
name = "dotenvy"
version = "0.15.7"
@@ -3022,6 +3729,20 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+[[package]]
+name = "duration-str"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f037c488d179e21c87ef5fa9c331e8e62f5dddfa84618b41bb197da03edff1"
+dependencies = [
+ "chrono",
+ "nom",
+ "rust_decimal",
+ "serde",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "dyn-clone"
version = "1.0.16"
@@ -3070,6 +3791,7 @@ version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
dependencies = [
+ "pkcs8 0.10.2",
"signature 2.0.0",
]
@@ -3096,9 +3818,12 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
dependencies = [
"curve25519-dalek",
"ed25519 2.2.3",
+ "rand_core 0.6.4",
+ "serde",
"sha2 0.10.6",
"signature 2.0.0",
"subtle",
+ "zeroize",
]
[[package]]
@@ -3155,6 +3880,12 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+[[package]]
+name = "encode_unicode"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
+
[[package]]
name = "encoding_rs"
version = "0.8.31"
@@ -3164,6 +3895,12 @@ dependencies = [
"cfg-if",
]
+[[package]]
+name = "endian-type"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
+
[[package]]
name = "enr"
version = "0.8.1"
@@ -3201,6 +3938,29 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "env_filter"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
[[package]]
name = "equivalent"
version = "1.0.1"
@@ -3236,6 +3996,16 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
[[package]]
name = "eth-keystore"
version = "0.5.0"
@@ -3246,7 +4016,7 @@ dependencies = [
"ctr",
"digest 0.10.7",
"hex",
- "hmac",
+ "hmac 0.12.1",
"pbkdf2 0.11.0",
"rand 0.8.5",
"scrypt",
@@ -3363,13 +4133,13 @@ dependencies = [
"ethers-core",
"ethers-etherscan",
"eyre",
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"hex",
"prettyplease 0.1.25",
"proc-macro2 1.0.78",
"quote 1.0.35",
"regex",
- "reqwest",
+ "reqwest 0.11.20",
"serde",
"serde_json",
"syn 1.0.107",
@@ -3399,7 +4169,7 @@ version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40bf114f1017ace0f622f1652f59c2c5e1abfe7d88891cca0c43da979b351de0"
dependencies = [
- "arrayvec",
+ "arrayvec 0.7.2",
"bytes",
"cargo_metadata 0.15.4",
"chrono",
@@ -3407,7 +4177,7 @@ dependencies = [
"elliptic-curve 0.13.4",
"ethabi",
"generic-array",
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"hex",
"k256 0.13.1",
"num_enum 0.5.11",
@@ -3433,8 +4203,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8920b59cf81e357df2c8102d6a9dc81c2d68f7409543ff3b6868851ecf007807"
dependencies = [
"ethers-core",
- "getrandom 0.2.9",
- "reqwest",
+ "getrandom 0.2.15",
+ "reqwest 0.11.20",
"semver 1.0.16",
"serde",
"serde_json",
@@ -3459,7 +4229,7 @@ dependencies = [
"futures-locks",
"futures-util",
"instant",
- "reqwest",
+ "reqwest 0.11.20",
"serde",
"serde_json",
"thiserror",
@@ -3484,14 +4254,14 @@ dependencies = [
"futures-core",
"futures-timer",
"futures-util",
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"hashers",
"hex",
- "http",
+ "http 0.2.9",
"instant",
"once_cell",
"pin-project",
- "reqwest",
+ "reqwest 0.11.20",
"serde",
"serde_json",
"thiserror",
@@ -3570,7 +4340,7 @@ dependencies = [
[[package]]
name = "fastcrypto"
version = "0.1.8"
-source = "git+https://github.com/MystenLabs/fastcrypto?rev=55e7e568842939e01c8545a71d72e2402ad74538#55e7e568842939e01c8545a71d72e2402ad74538"
+source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597"
dependencies = [
"aes",
"aes-gcm",
@@ -3605,12 +4375,12 @@ dependencies = [
"rand 0.8.5",
"readonly",
"rfc6979 0.4.0",
- "rsa",
+ "rsa 0.8.2",
"schemars",
"secp256k1",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"sha2 0.10.6",
"sha3 0.10.6",
"signature 2.0.0",
@@ -3624,7 +4394,7 @@ dependencies = [
[[package]]
name = "fastcrypto-derive"
version = "0.1.3"
-source = "git+https://github.com/MystenLabs/fastcrypto?rev=55e7e568842939e01c8545a71d72e2402ad74538#55e7e568842939e01c8545a71d72e2402ad74538"
+source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597"
dependencies = [
"quote 1.0.35",
"syn 1.0.107",
@@ -3633,7 +4403,7 @@ dependencies = [
[[package]]
name = "fastcrypto-tbls"
version = "0.1.0"
-source = "git+https://github.com/MystenLabs/fastcrypto?rev=55e7e568842939e01c8545a71d72e2402ad74538#55e7e568842939e01c8545a71d72e2402ad74538"
+source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597"
dependencies = [
"bcs",
"digest 0.10.7",
@@ -3646,12 +4416,13 @@ dependencies = [
"tap",
"tracing",
"typenum",
+ "zeroize",
]
[[package]]
name = "fastcrypto-vdf"
version = "0.1.0"
-source = "git+https://github.com/MystenLabs/fastcrypto?rev=55e7e568842939e01c8545a71d72e2402ad74538#55e7e568842939e01c8545a71d72e2402ad74538"
+source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597"
dependencies = [
"bcs",
"fastcrypto",
@@ -3663,13 +4434,12 @@ dependencies = [
"rand 0.8.5",
"rand_chacha 0.3.1",
"serde",
- "serde_with 2.1.0",
]
[[package]]
name = "fastcrypto-zkp"
version = "0.1.3"
-source = "git+https://github.com/MystenLabs/fastcrypto?rev=55e7e568842939e01c8545a71d72e2402ad74538#55e7e568842939e01c8545a71d72e2402ad74538"
+source = "git+https://github.com/MystenLabs/fastcrypto?rev=5f2c63266a065996d53f98156f0412782b468597#5f2c63266a065996d53f98156f0412782b468597"
dependencies = [
"ark-bls12-381",
"ark-bn254",
@@ -3691,7 +4461,7 @@ dependencies = [
"num-bigint 0.4.4",
"once_cell",
"regex",
- "reqwest",
+ "reqwest 0.12.4",
"schemars",
"serde",
"serde_json",
@@ -3713,6 +4483,17 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+[[package]]
+name = "fd-lock"
+version = "3.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
+dependencies = [
+ "cfg-if",
+ "rustix 0.38.34",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "fdlimit"
version = "0.2.1"
@@ -3767,6 +4548,18 @@ version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
+[[package]]
+name = "field_names"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cca4fdab1b9b7e274e7de51202e37f9cfa542b28c77f8d09b817d77a726b4807"
+dependencies = [
+ "darling 0.13.4",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.107",
+]
+
[[package]]
name = "filetime"
version = "0.2.22"
@@ -3827,6 +4620,16 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+[[package]]
+name = "flatbuffers"
+version = "24.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8add37afff2d4ffa83bc748a70b4b1370984f6980768554182424ef71447c35f"
+dependencies = [
+ "bitflags 1.3.2",
+ "rustc_version",
+]
+
[[package]]
name = "flate2"
version = "1.0.28"
@@ -4052,9 +4855,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.9"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"js-sys",
@@ -4174,6 +4977,56 @@ dependencies = [
"subtle",
]
+[[package]]
+name = "guppy"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f822a2716041492e071691606474f5a7e4fa7c2acbfd7da7b29884fb448291c7"
+dependencies = [
+ "camino",
+ "cargo_metadata 0.15.4",
+ "cfg-if",
+ "debug-ignore",
+ "fixedbitset 0.4.2",
+ "guppy-summaries",
+ "guppy-workspace-hack",
+ "indexmap 1.9.3",
+ "itertools 0.10.5",
+ "nested",
+ "once_cell",
+ "pathdiff",
+ "petgraph 0.6.2",
+ "rayon",
+ "semver 1.0.16",
+ "serde",
+ "serde_json",
+ "smallvec",
+ "static_assertions",
+ "target-spec",
+ "toml 0.5.11",
+]
+
+[[package]]
+name = "guppy-summaries"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bd039b8f587513b48754811cfa37c2ba079df537b490b602fa641ce18f6e72a"
+dependencies = [
+ "camino",
+ "cfg-if",
+ "diffus",
+ "guppy-workspace-hack",
+ "semver 1.0.16",
+ "serde",
+ "toml 0.5.11",
+]
+
+[[package]]
+name = "guppy-workspace-hack"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92620684d99f750bae383ecb3be3748142d6095760afd5cbcf2261e9a279d780"
+
[[package]]
name = "h2"
version = "0.3.26"
@@ -4185,7 +5038,26 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
- "http",
+ "http 0.2.9",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http 1.1.0",
"indexmap 2.2.6",
"slab",
"tokio",
@@ -4193,12 +5065,51 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "hakari"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2af0223111b69beda15417ad6a960bffb093c916f0eaa559036c7036efa2d199"
+dependencies = [
+ "atomicwrites",
+ "bimap",
+ "camino",
+ "cfg-if",
+ "debug-ignore",
+ "diffy",
+ "guppy",
+ "guppy-workspace-hack",
+ "include_dir",
+ "indenter",
+ "itertools 0.10.5",
+ "owo-colors 3.5.0",
+ "pathdiff",
+ "rayon",
+ "serde",
+ "tabular",
+ "target-spec",
+ "toml 0.5.11",
+ "toml_edit 0.17.1",
+ "twox-hash",
+]
+
[[package]]
name = "half"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+[[package]]
+name = "half"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+ "num-traits",
+]
+
[[package]]
name = "hashbrown"
version = "0.12.3"
@@ -4214,16 +5125,16 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.11",
]
[[package]]
name = "hashbrown"
-version = "0.14.1"
+version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
- "ahash 0.8.2",
+ "ahash 0.8.11",
"allocator-api2",
]
@@ -4260,7 +5171,7 @@ dependencies = [
"bitflags 1.3.2",
"bytes",
"headers-core",
- "http",
+ "http 0.2.9",
"httpdate",
"mime",
"sha1",
@@ -4272,7 +5183,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
dependencies = [
- "http",
+ "http 0.2.9",
]
[[package]]
@@ -4329,7 +5240,17 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
dependencies = [
- "hmac",
+ "hmac 0.12.1",
+]
+
+[[package]]
+name = "hmac"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
+dependencies = [
+ "crypto-mac",
+ "digest 0.9.0",
]
[[package]]
@@ -4367,6 +5288,17 @@ dependencies = [
"itoa",
]
+[[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
[[package]]
name = "http-body"
version = "0.4.5"
@@ -4374,7 +5306,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
"bytes",
- "http",
+ "http 0.2.9",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.1",
"pin-project-lite",
]
@@ -4412,9 +5367,9 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
"httparse",
"httpdate",
"itoa",
@@ -4426,14 +5381,34 @@ dependencies = [
"want",
]
+[[package]]
+name = "hyper"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "httparse",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
[[package]]
name = "hyper-rustls"
version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
dependencies = [
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.26",
"log",
"rustls 0.20.7",
"rustls-native-certs 0.6.2",
@@ -4448,8 +5423,8 @@ version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
dependencies = [
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.26",
"log",
"rustls 0.21.12",
"rustls-native-certs 0.6.2",
@@ -4458,18 +5433,68 @@ dependencies = [
"webpki-roots 0.23.1",
]
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.4.1",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+]
+
[[package]]
name = "hyper-timeout"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
dependencies = [
- "hyper",
+ "hyper 0.14.26",
"pin-project-lite",
"tokio",
"tokio-io-timeout",
]
+[[package]]
+name = "hyper-util"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "hyper 1.4.1",
+ "pin-project-lite",
+ "socket2 0.5.6",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "hyperlocal"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c"
+dependencies = [
+ "futures-util",
+ "hex",
+ "hyper 0.14.26",
+ "pin-project",
+ "tokio",
+]
+
[[package]]
name = "iana-time-zone"
version = "0.1.53"
@@ -4596,6 +5621,26 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "include_dir"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"
+dependencies = [
+ "glob",
+ "include_dir_macros",
+]
+
+[[package]]
+name = "include_dir_macros"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+]
+
[[package]]
name = "indenter"
version = "0.3.3"
@@ -4620,7 +5665,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
dependencies = [
"equivalent",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.5",
"serde",
]
@@ -4666,6 +5711,22 @@ dependencies = [
"generic-array",
]
+[[package]]
+name = "inquire"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c33e7c1ddeb15c9abcbfef6029d8e29f69b52b6d6c891031b88ed91b5065803b"
+dependencies = [
+ "bitflags 1.3.2",
+ "crossterm 0.25.0",
+ "dyn-clone",
+ "lazy_static",
+ "newline-converter",
+ "thiserror",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
[[package]]
name = "insta"
version = "1.26.0"
@@ -4689,6 +5750,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
"cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
]
[[package]]
@@ -4713,6 +5777,15 @@ version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+[[package]]
+name = "ipnetwork"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "iri-string"
version = "0.4.1"
@@ -4723,17 +5796,42 @@ dependencies = [
]
[[package]]
-name = "is-terminal"
-version = "0.4.7"
+name = "is-docker"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
dependencies = [
- "hermit-abi 0.3.2",
+ "once_cell",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+dependencies = [
+ "hermit-abi 0.3.2",
"io-lifetimes",
"rustix 0.37.7",
"windows-sys 0.48.0",
]
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "is_ci"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
+
[[package]]
name = "itertools"
version = "0.10.5"
@@ -4761,6 +5859,15 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
version = "1.0.5"
@@ -4807,6 +5914,12 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "json_comments"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105"
+
[[package]]
name = "json_to_table"
version = "0.6.0"
@@ -4816,6 +5929,17 @@ dependencies = [
"tabled",
]
+[[package]]
+name = "jsonpath_lib"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f"
+dependencies = [
+ "log",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "jsonrpsee"
version = "0.16.2"
@@ -4836,7 +5960,7 @@ version = "0.16.2"
source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8"
dependencies = [
"futures-util",
- "http",
+ "http 0.2.9",
"jsonrpsee-core",
"jsonrpsee-types",
"pin-project",
@@ -4856,7 +5980,7 @@ version = "0.16.2"
source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8"
dependencies = [
"anyhow",
- "arrayvec",
+ "arrayvec 0.7.2",
"async-lock",
"async-trait",
"beef",
@@ -4864,11 +5988,11 @@ dependencies = [
"futures-timer",
"futures-util",
"globset",
- "hyper",
+ "hyper 0.14.26",
"jsonrpsee-types",
"parking_lot 0.12.1",
"rand 0.8.5",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"serde",
"serde_json",
"soketto",
@@ -4883,11 +6007,11 @@ version = "0.16.2"
source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8"
dependencies = [
"async-trait",
- "hyper",
+ "hyper 0.14.26",
"hyper-rustls 0.23.2",
"jsonrpsee-core",
"jsonrpsee-types",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"serde",
"serde_json",
"thiserror",
@@ -4914,8 +6038,8 @@ source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcd
dependencies = [
"futures-channel",
"futures-util",
- "http",
- "hyper",
+ "http 0.2.9",
+ "hyper 0.14.26",
"jsonrpsee-core",
"jsonrpsee-types",
"serde",
@@ -4946,12 +6070,27 @@ name = "jsonrpsee-ws-client"
version = "0.16.2"
source = "git+https://github.com/wlmyng/jsonrpsee.git?rev=b1b300784795f6a64d0fcdf8f03081a9bc38bde8#b1b300784795f6a64d0fcdf8f03081a9bc38bde8"
dependencies = [
- "http",
+ "http 0.2.9",
"jsonrpsee-client-transport",
"jsonrpsee-core",
"jsonrpsee-types",
]
+[[package]]
+name = "jsonwebtoken"
+version = "9.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
+dependencies = [
+ "base64 0.21.2",
+ "js-sys",
+ "pem 3.0.4",
+ "ring 0.17.8",
+ "serde",
+ "serde_json",
+ "simple_asn1",
+]
+
[[package]]
name = "k256"
version = "0.11.6"
@@ -5029,11 +6168,75 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
[[package]]
name = "libc"
-version = "0.2.152"
+version = "0.2.155"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "libloading"
@@ -5150,7 +6353,19 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
dependencies = [
- "hashbrown 0.14.1",
+ "hashbrown 0.14.5",
+]
+
+[[package]]
+name = "lsp-server"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
]
[[package]]
@@ -5220,18 +6435,36 @@ checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
[[package]]
name = "md-5"
-version = "0.10.5"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
+dependencies = [
+ "block-buffer 0.9.0",
+ "digest 0.9.0",
+ "opaque-debug",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [
+ "cfg-if",
"digest 0.10.7",
]
+[[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
[[package]]
name = "memchr"
-version = "2.5.0"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memmap2"
@@ -5242,6 +6475,46 @@ dependencies = [
"libc",
]
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miette"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1"
+dependencies = [
+ "backtrace",
+ "backtrace-ext",
+ "cfg-if",
+ "miette-derive",
+ "owo-colors 4.0.0",
+ "supports-color",
+ "supports-hyperlinks",
+ "supports-unicode",
+ "terminal_size",
+ "textwrap",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
[[package]]
name = "migrations_internals"
version = "2.1.0"
@@ -5378,6 +6651,34 @@ dependencies = [
name = "move-abstract-stack"
version = "0.0.1"
+[[package]]
+name = "move-analyzer"
+version = "1.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "codespan-reporting",
+ "crossbeam",
+ "derivative",
+ "dunce",
+ "im",
+ "itertools 0.10.5",
+ "json_comments",
+ "lsp-server",
+ "lsp-types",
+ "move-command-line-common",
+ "move-compiler",
+ "move-ir-types",
+ "move-package",
+ "move-symbol-pool",
+ "serde",
+ "serde_json",
+ "sha2 0.9.9",
+ "tempfile",
+ "url",
+ "vfs",
+]
+
[[package]]
name = "move-binary-format"
version = "0.0.3"
@@ -5491,7 +6792,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"clap",
- "crossterm",
+ "crossterm 0.25.0",
"move-binary-format",
"move-bytecode-source-map",
"move-disassembler",
@@ -5755,7 +7056,7 @@ dependencies = [
"serde_yaml",
"sha2 0.9.9",
"tempfile",
- "toml 0.5.10",
+ "toml 0.5.11",
"toml_edit 0.14.4",
"treeline",
"vfs",
@@ -5789,7 +7090,7 @@ dependencies = [
"once_cell",
"serde",
"simplelog",
- "toml 0.5.10",
+ "toml 0.5.11",
]
[[package]]
@@ -6045,7 +7346,7 @@ dependencies = [
[[package]]
name = "msim"
version = "0.1.0"
-source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=594c417e3716fc909b71a0a8ffd01ee5b25bf4b0#594c417e3716fc909b71a0a8ffd01ee5b25bf4b0"
+source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=220f52a15804a768610ac0ae3b8da7de4a5c4d2b#220f52a15804a768610ac0ae3b8da7de4a5c4d2b"
dependencies = [
"ahash 0.7.6",
"async-task",
@@ -6066,7 +7367,7 @@ dependencies = [
"socket2 0.4.9",
"tap",
"tokio-util 0.7.10 (git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=e47aafebf98e9c1734a8848a1876d5946c44bdd1)",
- "toml 0.5.10",
+ "toml 0.5.11",
"tracing",
"tracing-subscriber",
]
@@ -6074,7 +7375,7 @@ dependencies = [
[[package]]
name = "msim-macros"
version = "0.1.0"
-source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=594c417e3716fc909b71a0a8ffd01ee5b25bf4b0#594c417e3716fc909b71a0a8ffd01ee5b25bf4b0"
+source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=220f52a15804a768610ac0ae3b8da7de4a5c4d2b#220f52a15804a768610ac0ae3b8da7de4a5c4d2b"
dependencies = [
"darling 0.14.2",
"proc-macro2 1.0.78",
@@ -6189,7 +7490,7 @@ dependencies = [
"bytes",
"eyre",
"futures",
- "http",
+ "http 0.2.9",
"multiaddr",
"pin-project-lite",
"serde",
@@ -6203,6 +7504,22 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "mysten-service"
+version = "0.0.1"
+dependencies = [
+ "anyhow",
+ "axum",
+ "mysten-metrics",
+ "prometheus",
+ "serde",
+ "serde_json",
+ "telemetry-subscribers",
+ "tokio",
+ "tower",
+ "tracing",
+]
+
[[package]]
name = "mysten-util-mem"
version = "0.11.0"
@@ -6377,7 +7694,7 @@ dependencies = [
"pretty_assertions",
"prometheus",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"serde-reflection",
"serde_yaml",
"sui-keys",
@@ -6431,7 +7748,7 @@ dependencies = [
"prometheus",
"proptest",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"sui-macros",
"sui-protocol-config",
"tap",
@@ -6536,7 +7853,7 @@ dependencies = [
"rustversion",
"serde",
"serde_test",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"sui-protocol-config",
"thiserror",
"tokio",
@@ -6574,7 +7891,7 @@ dependencies = [
"narwhal-types",
"prometheus",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"sui-protocol-config",
"tap",
"telemetry-subscribers",
@@ -6606,6 +7923,74 @@ dependencies = [
"trait-set",
]
+[[package]]
+name = "nested"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b420f638f07fe83056b55ea190bb815f609ec5a35e7017884a10f78839c9e"
+
+[[package]]
+name = "newline-converter"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f71d09d5c87634207f894c6b31b6a2b2c64ea3bdcf71bd5599fdbbe1600c00f"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "nexlint"
+version = "0.1.0"
+source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5"
+dependencies = [
+ "camino",
+ "debug-ignore",
+ "determinator",
+ "guppy",
+ "hakari",
+ "hex",
+ "once_cell",
+ "serde",
+]
+
+[[package]]
+name = "nexlint-lints"
+version = "0.1.0"
+source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5"
+dependencies = [
+ "anyhow",
+ "camino",
+ "colored-diff",
+ "globset",
+ "guppy",
+ "nexlint",
+ "regex",
+ "serde",
+ "toml 0.5.11",
+]
+
+[[package]]
+name = "nibble_vec"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "nix"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
+dependencies = [
+ "bitflags 1.3.2",
+ "cc",
+ "cfg-if",
+ "libc",
+ "memoffset",
+]
+
[[package]]
name = "nix"
version = "0.24.3"
@@ -6626,7 +8011,7 @@ dependencies = [
"data-encoding",
"ed25519 2.2.3",
"ed25519-dalek",
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"log",
"rand 0.8.5",
"signatory",
@@ -6648,6 +8033,15 @@ dependencies = [
"minimal-lexical",
]
+[[package]]
+name = "nom8"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "nonempty"
version = "0.9.0"
@@ -6685,6 +8079,15 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "ntest"
version = "0.9.0"
@@ -6801,15 +8204,26 @@ dependencies = [
]
[[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "num-derive"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
- "autocfg",
- "num-traits",
-]
-
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
[[package]]
name = "num-iter"
version = "0.1.43"
@@ -6939,25 +8353,25 @@ dependencies = [
[[package]]
name = "object_store"
-version = "0.7.0"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d359e231e5451f4f9fa889d56e3ce34f8724f1a61db2107739359717cf2bbf08"
+checksum = "e6da452820c715ce78221e8202ccc599b4a52f3e1eb3eedb487b680c81a8e3f3"
dependencies = [
"async-trait",
- "base64 0.21.2",
+ "base64 0.22.1",
"bytes",
"chrono",
"futures",
"humantime",
- "hyper",
- "itertools 0.10.5",
+ "hyper 1.4.1",
+ "itertools 0.13.0",
+ "md-5 0.10.6",
"parking_lot 0.12.1",
"percent-encoding",
"quick-xml",
"rand 0.8.5",
- "reqwest",
- "ring 0.16.20",
- "rustls-pemfile 1.0.2",
+ "reqwest 0.12.4",
+ "ring 0.17.8",
"serde",
"serde_json",
"snafu",
@@ -6995,9 +8409,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "oorandom"
@@ -7011,13 +8425,24 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+[[package]]
+name = "open"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
[[package]]
name = "open-fastrlp"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce"
dependencies = [
- "arrayvec",
+ "arrayvec 0.7.2",
"auto_impl",
"bytes",
"ethereum-types",
@@ -7071,7 +8496,7 @@ checksum = "7e5e5a5c4135864099f3faafbe939eb4d7f9b80ebf68a8448da961b32a7c1275"
dependencies = [
"async-trait",
"futures-core",
- "http",
+ "http 0.2.9",
"opentelemetry-proto",
"opentelemetry-semantic-conventions",
"opentelemetry_api",
@@ -7142,6 +8567,12 @@ dependencies = [
"tokio-stream",
]
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
[[package]]
name = "ordered-float"
version = "3.9.1"
@@ -7196,6 +8627,18 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+[[package]]
+name = "owo-colors"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+
+[[package]]
+name = "owo-colors"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
+
[[package]]
name = "p256"
version = "0.13.2"
@@ -7234,7 +8677,7 @@ version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909"
dependencies = [
- "arrayvec",
+ "arrayvec 0.7.2",
"bitvec 0.20.4",
"byte-slice-cast",
"impl-trait-for-tuples",
@@ -7248,7 +8691,7 @@ version = "3.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb"
dependencies = [
- "arrayvec",
+ "arrayvec 0.7.2",
"bitvec 1.0.1",
"byte-slice-cast",
"impl-trait-for-tuples",
@@ -7385,6 +8828,17 @@ dependencies = [
"typeshare",
]
+[[package]]
+name = "password-hash"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
+]
+
[[package]]
name = "pasta_curves"
version = "0.5.1"
@@ -7408,6 +8862,15 @@ version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+dependencies = [
+ "camino",
+]
+
[[package]]
name = "pbkdf2"
version = "0.11.0"
@@ -7415,6 +8878,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
dependencies = [
"digest 0.10.7",
+ "hmac 0.12.1",
+ "password-hash",
+ "sha2 0.10.6",
]
[[package]]
@@ -7424,7 +8890,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31"
dependencies = [
"digest 0.10.7",
- "hmac",
+ "hmac 0.12.1",
]
[[package]]
@@ -7442,6 +8908,16 @@ dependencies = [
"base64 0.13.1",
]
+[[package]]
+name = "pem"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
+dependencies = [
+ "base64 0.22.1",
+ "serde",
+]
+
[[package]]
name = "pem-rfc7468"
version = "0.6.0"
@@ -7468,10 +8944,11 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
[[package]]
name = "pest"
-version = "2.7.2"
+version = "2.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a"
+checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95"
dependencies = [
+ "memchr",
"thiserror",
"ucd-trie",
]
@@ -7626,6 +9103,17 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der 0.7.5",
+ "pkcs8 0.10.2",
+ "spki 0.7.1",
+]
+
[[package]]
name = "pkcs8"
version = "0.9.0"
@@ -7680,6 +9168,17 @@ dependencies = [
"plotters-backend",
]
+[[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
[[package]]
name = "polyval"
version = "0.6.0"
@@ -7721,7 +9220,7 @@ dependencies = [
"findshlibs",
"libc",
"log",
- "nix",
+ "nix 0.24.3",
"once_cell",
"parking_lot 0.12.1",
"smallvec",
@@ -7807,6 +9306,20 @@ dependencies = [
"syn 2.0.48",
]
+[[package]]
+name = "prettytable-rs"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a"
+dependencies = [
+ "csv",
+ "encode_unicode 1.0.0",
+ "is-terminal",
+ "lazy_static",
+ "term",
+ "unicode-width",
+]
+
[[package]]
name = "primeorder"
version = "0.13.0"
@@ -7849,7 +9362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
dependencies = [
"thiserror",
- "toml 0.5.10",
+ "toml 0.5.11",
]
[[package]]
@@ -7924,6 +9437,17 @@ dependencies = [
"protobuf",
]
+[[package]]
+name = "prometheus-parse"
+version = "0.2.3"
+source = "git+https://github.com/asonnino/prometheus-parser.git?rev=75334db#75334dbe2d286edf6d4424abba92a74643333096"
+dependencies = [
+ "chrono",
+ "itertools 0.10.5",
+ "lazy_static",
+ "regex",
+]
+
[[package]]
name = "proptest"
version = "1.1.0"
@@ -8107,9 +9631,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
[[package]]
name = "quick-xml"
-version = "0.28.2"
+version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc"
dependencies = [
"memchr",
"serde",
@@ -8117,17 +9641,18 @@ dependencies = [
[[package]]
name = "quinn"
-version = "0.10.1"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21252f1c0fc131f1b69182db8f34837e8a69737b8251dff75636a9be0518c324"
+checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156"
dependencies = [
"bytes",
"futures-io",
"pin-project-lite",
"quinn-proto",
"quinn-udp",
- "rustc-hash",
- "rustls 0.21.12",
+ "rustc-hash 2.0.0",
+ "rustls 0.23.12",
+ "socket2 0.5.6",
"thiserror",
"tokio",
"tracing",
@@ -8135,15 +9660,14 @@ dependencies = [
[[package]]
name = "quinn-proto"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c78e758510582acc40acb90458401172d41f1016f8c9dde89e49677afb7eec1"
+version = "0.11.3"
+source = "git+https://github.com/quinn-rs/quinn.git?rev=f0fa66f871b80b9d2d7075d76967c649aecc0b77#f0fa66f871b80b9d2d7075d76967c649aecc0b77"
dependencies = [
"bytes",
"rand 0.8.5",
- "ring 0.16.20",
- "rustc-hash",
- "rustls 0.21.12",
+ "ring 0.17.8",
+ "rustc-hash 2.0.0",
+ "rustls 0.23.12",
"slab",
"thiserror",
"tinyvec",
@@ -8152,15 +9676,15 @@ dependencies = [
[[package]]
name = "quinn-udp"
-version = "0.4.0"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6df19e284d93757a9fb91d63672f7741b129246a669db09d1c0063071debc0c0"
+checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285"
dependencies = [
- "bytes",
"libc",
+ "once_cell",
"socket2 0.5.6",
"tracing",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -8204,6 +9728,16 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+[[package]]
+name = "radix_trie"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
+dependencies = [
+ "endian-type",
+ "nibble_vec",
+]
+
[[package]]
name = "rand"
version = "0.7.3"
@@ -8263,7 +9797,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
]
[[package]]
@@ -8328,12 +9862,25 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"
dependencies = [
- "pem",
+ "pem 1.1.0",
"ring 0.16.20",
"time",
"yasna",
]
+[[package]]
+name = "rcgen"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779"
+dependencies = [
+ "pem 3.0.4",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "time",
+ "yasna",
+]
+
[[package]]
name = "readonly"
version = "0.2.3"
@@ -8396,7 +9943,7 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"redox_syscall 0.2.16",
"thiserror",
]
@@ -8465,6 +10012,12 @@ version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+[[package]]
+name = "regex-syntax"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+
[[package]]
name = "reqwest"
version = "0.11.20"
@@ -8476,11 +10029,10 @@ dependencies = [
"encoding_rs",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-rustls 0.24.0",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"ipnet",
"js-sys",
"log",
@@ -8488,13 +10040,54 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
- "rustls 0.21.12",
- "rustls-pemfile 1.0.2",
"serde",
"serde_json",
"serde_urlencoded",
"tokio",
- "tokio-rustls 0.24.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg 0.50.0",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+dependencies = [
+ "async-compression 0.4.12",
+ "base64 0.22.1",
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "http-body-util",
+ "hyper 1.4.1",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-native-certs 0.7.1",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tokio-rustls 0.25.0",
"tokio-util 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
"tower-service",
"url",
@@ -8502,8 +10095,56 @@ dependencies = [
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
- "webpki-roots 0.25.2",
- "winreg",
+ "webpki-roots 0.26.3",
+ "winreg 0.52.0",
+]
+
+[[package]]
+name = "reqwest-middleware"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http 1.1.0",
+ "reqwest 0.12.4",
+ "serde",
+ "thiserror",
+ "tower-service",
+]
+
+[[package]]
+name = "reqwest-retry"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40f342894422862af74c50e1e9601cf0931accc9c6981e5eb413c46603b616b5"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "chrono",
+ "futures",
+ "getrandom 0.2.15",
+ "http 1.1.0",
+ "hyper 1.4.1",
+ "parking_lot 0.11.2",
+ "reqwest 0.12.4",
+ "reqwest-middleware",
+ "retry-policies",
+ "tokio",
+ "tracing",
+ "wasm-timer",
+]
+
+[[package]]
+name = "retry-policies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "493b4243e32d6eedd29f9a398896e35c6943a123b55eec97dcaee98310d25810"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "rand 0.8.5",
]
[[package]]
@@ -8513,7 +10154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb"
dependencies = [
"crypto-bigint 0.4.9",
- "hmac",
+ "hmac 0.12.1",
"zeroize",
]
@@ -8523,7 +10164,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
dependencies = [
- "hmac",
+ "hmac 0.12.1",
"subtle",
]
@@ -8544,16 +10185,17 @@ dependencies = [
[[package]]
name = "ring"
-version = "0.17.3"
+version = "0.17.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
dependencies = [
"cc",
- "getrandom 0.2.9",
+ "cfg-if",
+ "getrandom 0.2.15",
"libc",
"spin 0.9.8",
"untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -8607,6 +10249,18 @@ dependencies = [
"librocksdb-sys",
]
+[[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64 0.21.2",
+ "bitflags 2.4.1",
+ "serde",
+ "serde_derive",
+]
+
[[package]]
name = "rsa"
version = "0.8.2"
@@ -8619,7 +10273,7 @@ dependencies = [
"num-integer",
"num-iter",
"num-traits",
- "pkcs1",
+ "pkcs1 0.4.1",
"pkcs8 0.9.0",
"rand_core 0.6.4",
"sha2 0.10.6",
@@ -8628,6 +10282,27 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "rsa"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72f1471dbb4be5de45050e8ef7040625298ccb9efe941419ac2697088715925f"
+dependencies = [
+ "byteorder",
+ "const-oid",
+ "digest 0.10.7",
+ "num-bigint-dig",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "pkcs1 0.7.5",
+ "pkcs8 0.10.2",
+ "rand_core 0.6.4",
+ "signature 2.0.0",
+ "subtle",
+ "zeroize",
+]
+
[[package]]
name = "rstest"
version = "0.16.0"
@@ -8655,22 +10330,202 @@ dependencies = [
]
[[package]]
-name = "rustc-demangle"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc-hex"
-version = "2.1.0"
+name = "rusoto_core"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
+checksum = "1db30db44ea73551326269adcf7a2169428a054f14faf9e1768f2163494f2fa2"
+dependencies = [
+ "async-trait",
+ "base64 0.13.1",
+ "bytes",
+ "crc32fast",
+ "futures",
+ "http 0.2.9",
+ "hyper 0.14.26",
+ "hyper-rustls 0.23.2",
+ "lazy_static",
+ "log",
+ "rusoto_credential",
+ "rusoto_signature",
+ "rustc_version",
+ "serde",
+ "serde_json",
+ "tokio",
+ "xml-rs",
+]
+
+[[package]]
+name = "rusoto_credential"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee0a6c13db5aad6047b6a44ef023dbbc21a056b6dab5be3b79ce4283d5c02d05"
+dependencies = [
+ "async-trait",
+ "chrono",
+ "dirs-next",
+ "futures",
+ "hyper 0.14.26",
+ "serde",
+ "serde_json",
+ "shlex",
+ "tokio",
+ "zeroize",
+]
+
+[[package]]
+name = "rusoto_kms"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e1fc19cfcfd9f6b2f96e36d5b0dddda9004d2cbfc2d17543e3b9f10cc38fce8"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures",
+ "rusoto_core",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "rusoto_signature"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5ae95491c8b4847931e291b151127eccd6ff8ca13f33603eb3d0035ecb05272"
+dependencies = [
+ "base64 0.13.1",
+ "bytes",
+ "chrono",
+ "digest 0.9.0",
+ "futures",
+ "hex",
+ "hmac 0.11.0",
+ "http 0.2.9",
+ "hyper 0.14.26",
+ "log",
+ "md-5 0.9.1",
+ "percent-encoding",
+ "pin-project-lite",
+ "rusoto_credential",
+ "rustc_version",
+ "serde",
+ "sha2 0.9.9",
+ "tokio",
+]
+
+[[package]]
+name = "russh"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae0efcc0f4cd6c062c07e572ce4b806e3967fa029fcbfcc0aa98fb5910a37925"
+dependencies = [
+ "aes",
+ "aes-gcm",
+ "async-trait",
+ "bitflags 2.4.1",
+ "byteorder",
+ "chacha20",
+ "ctr",
+ "curve25519-dalek",
+ "digest 0.10.7",
+ "flate2",
+ "futures",
+ "generic-array",
+ "hex-literal 0.4.1",
+ "hmac 0.12.1",
+ "log",
+ "num-bigint 0.4.4",
+ "once_cell",
+ "poly1305",
+ "rand 0.8.5",
+ "russh-cryptovec",
+ "russh-keys",
+ "sha1",
+ "sha2 0.10.6",
+ "subtle",
+ "thiserror",
+ "tokio",
+ "tokio-util 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "russh-cryptovec"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fadd2c0ab350e21c66556f94ee06f766d8bdae3213857ba7610bfd8e10e51880"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "russh-keys"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "557ab9190022dff78116ebed5e391abbd3f424b06cd643dfe262346ab91ed8c9"
+dependencies = [
+ "aes",
+ "async-trait",
+ "bcrypt-pbkdf",
+ "bit-vec",
+ "block-padding 0.3.2",
+ "byteorder",
+ "cbc",
+ "ctr",
+ "data-encoding",
+ "dirs 5.0.1",
+ "ed25519-dalek",
+ "futures",
+ "hmac 0.12.1",
+ "inout",
+ "log",
+ "md5",
+ "num-bigint 0.4.4",
+ "num-integer",
+ "pbkdf2 0.11.0",
+ "rand 0.7.3",
+ "rand_core 0.6.4",
+ "russh-cryptovec",
+ "serde",
+ "sha2 0.10.6",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "yasna",
+]
+
+[[package]]
+name = "rust_decimal"
+version = "1.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a"
+dependencies = [
+ "arrayvec 0.7.2",
+ "num-traits",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc-hash"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
+
+[[package]]
+name = "rustc-hex"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6"
[[package]]
name = "rustc_version"
@@ -8706,9 +10561,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.38.28"
+version = "0.38.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
dependencies = [
"bitflags 2.4.1",
"errno",
@@ -8736,19 +10591,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
dependencies = [
"log",
- "ring 0.17.3",
+ "ring 0.17.8",
"rustls-webpki 0.101.7",
"sct",
]
+[[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.6",
+ "subtle",
+ "zeroize",
+]
+
[[package]]
name = "rustls"
version = "0.23.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
dependencies = [
+ "log",
"once_cell",
- "ring 0.17.3",
+ "ring 0.17.8",
"rustls-pki-types",
"rustls-webpki 0.102.6",
"subtle",
@@ -8821,7 +10691,7 @@ version = "0.101.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
dependencies = [
- "ring 0.17.3",
+ "ring 0.17.8",
"untrusted 0.9.0",
]
@@ -8831,7 +10701,7 @@ version = "0.102.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
dependencies = [
- "ring 0.17.3",
+ "ring 0.17.8",
"rustls-pki-types",
"untrusted 0.9.0",
]
@@ -8854,11 +10724,46 @@ dependencies = [
"wait-timeout",
]
+[[package]]
+name = "rustyline"
+version = "9.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "clipboard-win",
+ "dirs-next",
+ "fd-lock",
+ "libc",
+ "log",
+ "memchr",
+ "nix 0.23.2",
+ "radix_trie",
+ "scopeguard",
+ "smallvec",
+ "unicode-segmentation",
+ "unicode-width",
+ "utf8parse",
+ "winapi",
+]
+
+[[package]]
+name = "rustyline-derive"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "107c3d5d7f370ac09efa62a78375f94d94b8a33c61d8c278b96683fb4dbf2d8d"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.107",
+]
+
[[package]]
name = "ryu"
-version = "1.0.12"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "salsa20"
@@ -8963,7 +10868,7 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d"
dependencies = [
- "hmac",
+ "hmac 0.12.1",
"pbkdf2 0.11.0",
"salsa20",
"sha2 0.10.6",
@@ -9411,6 +11316,21 @@ dependencies = [
"serde_repr",
]
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "shellexpand"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs 4.0.0",
+]
+
[[package]]
name = "shlex"
version = "1.3.0"
@@ -9485,6 +11405,18 @@ version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
+[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint 0.4.4",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "simplelog"
version = "0.9.0"
@@ -9581,6 +11513,12 @@ version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+[[package]]
+name = "smawk"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
+
[[package]]
name = "snafu"
version = "0.7.4"
@@ -9609,6 +11547,48 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
+[[package]]
+name = "snowflake-api"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c7f29746a86845a74953b3728029b378c9bac2fb15c2defd54a8177cabcc452"
+dependencies = [
+ "arrow",
+ "async-trait",
+ "base64 0.22.1",
+ "bytes",
+ "futures",
+ "glob",
+ "log",
+ "object_store",
+ "regex",
+ "reqwest 0.12.4",
+ "reqwest-middleware",
+ "reqwest-retry",
+ "serde",
+ "serde_json",
+ "snowflake-jwt",
+ "thiserror",
+ "tokio",
+ "url",
+ "uuid 1.2.2",
+]
+
+[[package]]
+name = "snowflake-jwt"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f1c0c8818bb7400e821b166075ec771c8e8a012af41a8982b34eefaad4739fd"
+dependencies = [
+ "base64 0.22.1",
+ "jsonwebtoken",
+ "rsa 0.9.1",
+ "serde",
+ "sha2 0.10.6",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "socket2"
version = "0.4.9"
@@ -9638,7 +11618,7 @@ dependencies = [
"base64 0.13.1",
"bytes",
"futures",
- "http",
+ "http 0.2.9",
"httparse",
"log",
"rand 0.8.5",
@@ -9657,6 +11637,17 @@ version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+[[package]]
+name = "spinners"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82"
+dependencies = [
+ "lazy_static",
+ "maplit",
+ "strum 0.24.1",
+]
+
[[package]]
name = "spki"
version = "0.6.0"
@@ -9703,8 +11694,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
-name = "strsim"
-version = "0.10.0"
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "strip-ansi-escapes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8"
+dependencies = [
+ "vte",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
@@ -9795,6 +11801,101 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142"
+[[package]]
+name = "sui"
+version = "1.30.1"
+dependencies = [
+ "anemo",
+ "anyhow",
+ "assert_cmd",
+ "async-recursion",
+ "async-trait",
+ "axum",
+ "bcs",
+ "bin-version",
+ "bip32",
+ "camino",
+ "clap",
+ "colored",
+ "csv",
+ "datatest-stable",
+ "diesel",
+ "expect-test",
+ "fastcrypto",
+ "fastcrypto-zkp",
+ "fs_extra",
+ "futures",
+ "http 0.2.9",
+ "im",
+ "inquire",
+ "insta",
+ "jemalloc-ctl",
+ "json_to_table",
+ "miette",
+ "move-analyzer",
+ "move-binary-format",
+ "move-bytecode-verifier-meter",
+ "move-command-line-common",
+ "move-core-types",
+ "move-package",
+ "move-vm-config",
+ "move-vm-profiler",
+ "msim",
+ "num-bigint 0.4.4",
+ "prometheus",
+ "rand 0.8.5",
+ "regex",
+ "reqwest 0.12.4",
+ "rusoto_core",
+ "rusoto_kms",
+ "rustyline",
+ "rustyline-derive",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "shared-crypto",
+ "shell-words",
+ "shlex",
+ "signature 1.6.4",
+ "sui-bridge",
+ "sui-config",
+ "sui-execution",
+ "sui-faucet",
+ "sui-genesis-builder",
+ "sui-indexer",
+ "sui-json",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-macros",
+ "sui-move",
+ "sui-move-build",
+ "sui-package-management",
+ "sui-protocol-config",
+ "sui-replay",
+ "sui-sdk 1.30.1",
+ "sui-simulator",
+ "sui-source-validation",
+ "sui-swarm",
+ "sui-swarm-config",
+ "sui-test-transaction-builder",
+ "sui-transaction-builder",
+ "sui-types",
+ "tabled",
+ "tap",
+ "telemetry-subscribers",
+ "tempfile",
+ "test-cluster",
+ "thiserror",
+ "tokio",
+ "toml 0.7.4",
+ "tower",
+ "tower-http",
+ "tracing",
+ "unescape",
+ "url",
+ "uuid 1.2.2",
+]
+
[[package]]
name = "sui-adapter-latest"
version = "0.1.0"
@@ -9907,7 +12008,7 @@ dependencies = [
[[package]]
name = "sui-archival"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"byteorder",
@@ -9949,9 +12050,91 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "sui-aws-orchestrator"
+version = "0.0.1"
+dependencies = [
+ "async-trait",
+ "aws-config",
+ "aws-sdk-ec2",
+ "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "clap",
+ "color-eyre",
+ "crossterm 0.25.0",
+ "eyre",
+ "futures",
+ "mysten-metrics",
+ "narwhal-config",
+ "prettytable-rs",
+ "prometheus-parse",
+ "reqwest 0.12.4",
+ "russh",
+ "russh-keys",
+ "serde",
+ "serde_json",
+ "sui-config",
+ "sui-swarm-config",
+ "sui-types",
+ "tempfile",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "sui-benchmark"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bcs",
+ "clap",
+ "comfy-table",
+ "duration-str",
+ "fastcrypto-zkp",
+ "futures",
+ "hdrhistogram",
+ "indicatif",
+ "itertools 0.10.5",
+ "move-core-types",
+ "mysten-metrics",
+ "narwhal-node",
+ "prometheus",
+ "rand 0.8.5",
+ "regex",
+ "roaring",
+ "serde",
+ "serde_json",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-config",
+ "sui-core",
+ "sui-framework",
+ "sui-framework-snapshot",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-macros",
+ "sui-network",
+ "sui-protocol-config",
+ "sui-sdk 1.30.1",
+ "sui-simulator",
+ "sui-storage",
+ "sui-surfer",
+ "sui-swarm-config",
+ "sui-test-transaction-builder",
+ "sui-types",
+ "sysinfo",
+ "telemetry-subscribers",
+ "test-cluster",
+ "tokio",
+ "tokio-util 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tracing",
+ "typed-store",
+]
+
[[package]]
name = "sui-bridge"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"arc-swap",
@@ -9975,18 +12158,18 @@ dependencies = [
"once_cell",
"prometheus",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"rocksdb",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"shared-crypto",
- "sui-common",
+ "sui-authority-aggregation",
"sui-config",
"sui-json-rpc-api",
"sui-json-rpc-types",
"sui-keys",
- "sui-sdk 1.29.2",
+ "sui-sdk 1.30.1",
"sui-test-transaction-builder",
"sui-types",
"tap",
@@ -10001,12 +12184,59 @@ dependencies = [
]
[[package]]
-name = "sui-common"
+name = "sui-bridge-cli"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "clap",
+ "ethers",
+ "fastcrypto",
+ "futures",
+ "move-core-types",
+ "reqwest 0.12.4",
+ "serde",
+ "serde_json",
+ "serde_with 3.8.1",
+ "shared-crypto",
+ "sui-bridge",
+ "sui-config",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-sdk 1.30.1",
+ "sui-types",
+ "telemetry-subscribers",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "sui-bridge-indexer"
version = "0.1.0"
dependencies = [
+ "anyhow",
+ "async-trait",
+ "backoff",
+ "bcs",
+ "bin-version",
+ "clap",
+ "diesel",
+ "ethers",
"futures",
+ "hex-literal 0.3.4",
"mysten-metrics",
+ "prometheus",
+ "serde",
+ "serde_yaml",
+ "sui-bridge",
+ "sui-config",
+ "sui-data-ingestion-core",
+ "sui-json-rpc-types",
+ "sui-sdk 1.30.1",
+ "sui-test-transaction-builder",
"sui-types",
+ "tap",
+ "telemetry-subscribers",
+ "test-cluster",
"tokio",
"tracing",
]
@@ -10019,8 +12249,9 @@ dependencies = [
"anyhow",
"bcs",
"clap",
+ "consensus-config",
"csv",
- "dirs",
+ "dirs 4.0.0",
"fastcrypto",
"insta",
"narwhal-config",
@@ -10028,9 +12259,9 @@ dependencies = [
"once_cell",
"prometheus",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"serde",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
"sui-keys",
"sui-protocol-config",
@@ -10102,7 +12333,7 @@ dependencies = [
"prometheus",
"rand 0.8.5",
"rayon",
- "reqwest",
+ "reqwest 0.12.4",
"roaring",
"rocksdb",
"rstest",
@@ -10110,7 +12341,7 @@ dependencies = [
"serde",
"serde-reflection",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
"shared-crypto",
"signature 1.6.4",
@@ -10149,9 +12380,31 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "sui-cost"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bcs",
+ "insta",
+ "move-cli",
+ "move-disassembler",
+ "serde",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-config",
+ "sui-json-rpc-types",
+ "sui-move-build",
+ "sui-swarm-config",
+ "sui-test-transaction-builder",
+ "sui-types",
+ "test-cluster",
+ "tokio",
+]
+
[[package]]
name = "sui-data-ingestion"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"async-trait",
@@ -10213,23 +12466,85 @@ dependencies = [
]
[[package]]
-name = "sui-enum-compat-util"
-version = "0.1.0"
-dependencies = [
- "serde_yaml",
-]
-
-[[package]]
-name = "sui-execution"
-version = "0.1.0"
+name = "sui-e2e-tests"
+version = "1.30.1"
dependencies = [
- "cargo_metadata 0.15.4",
- "move-abstract-interpreter",
- "move-abstract-interpreter-v2",
+ "anyhow",
+ "assert_cmd",
+ "async-trait",
+ "bcs",
+ "clap",
+ "coset",
+ "expect-test",
+ "fastcrypto",
+ "fastcrypto-zkp",
+ "fs_extra",
+ "futures",
+ "indexmap 2.2.6",
+ "insta",
+ "jsonrpsee",
"move-binary-format",
- "move-bytecode-verifier",
- "move-bytecode-verifier-meter",
- "move-bytecode-verifier-v0",
+ "move-core-types",
+ "move-package",
+ "mysten-metrics",
+ "p256",
+ "passkey-authenticator",
+ "passkey-client",
+ "passkey-types",
+ "prometheus",
+ "rand 0.8.5",
+ "serde",
+ "serde_json",
+ "shared-crypto",
+ "sui",
+ "sui-bridge",
+ "sui-config",
+ "sui-core",
+ "sui-framework",
+ "sui-json-rpc",
+ "sui-json-rpc-api",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-macros",
+ "sui-move-build",
+ "sui-network",
+ "sui-node",
+ "sui-protocol-config",
+ "sui-rest-api",
+ "sui-sdk 1.30.1",
+ "sui-simulator",
+ "sui-storage",
+ "sui-swarm",
+ "sui-swarm-config",
+ "sui-test-transaction-builder",
+ "sui-tool",
+ "sui-types",
+ "telemetry-subscribers",
+ "tempfile",
+ "test-cluster",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "sui-enum-compat-util"
+version = "0.1.0"
+dependencies = [
+ "serde_yaml",
+]
+
+[[package]]
+name = "sui-execution"
+version = "0.1.0"
+dependencies = [
+ "cargo_metadata 0.15.4",
+ "move-abstract-interpreter",
+ "move-abstract-interpreter-v2",
+ "move-binary-format",
+ "move-bytecode-verifier",
+ "move-bytecode-verifier-meter",
+ "move-bytecode-verifier-v0",
"move-bytecode-verifier-v1",
"move-bytecode-verifier-v2",
"move-vm-config",
@@ -10254,6 +12569,58 @@ dependencies = [
"sui-verifier-v2",
]
+[[package]]
+name = "sui-execution-cut"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "expect-test",
+ "tempfile",
+ "thiserror",
+ "toml 0.7.4",
+ "toml_edit 0.19.10",
+]
+
+[[package]]
+name = "sui-faucet"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "async-recursion",
+ "async-trait",
+ "axum",
+ "clap",
+ "eyre",
+ "futures",
+ "http 0.2.9",
+ "mysten-metrics",
+ "parking_lot 0.12.1",
+ "prometheus",
+ "rocksdb",
+ "scopeguard",
+ "serde",
+ "shared-crypto",
+ "sui-config",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-sdk 1.30.1",
+ "sui-types",
+ "tap",
+ "telemetry-subscribers",
+ "tempfile",
+ "test-cluster",
+ "thiserror",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "ttl_cache",
+ "typed-store",
+ "typed-store-derive",
+ "uuid 1.2.2",
+]
+
[[package]]
name = "sui-framework"
version = "0.1.0"
@@ -10275,7 +12642,7 @@ dependencies = [
[[package]]
name = "sui-framework-snapshot"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"bcs",
@@ -10288,6 +12655,25 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "sui-framework-tests"
+version = "0.1.0"
+dependencies = [
+ "move-bytecode-verifier",
+ "move-bytecode-verifier-meter",
+ "move-cli",
+ "move-package",
+ "move-unit-test",
+ "prometheus",
+ "sui-adapter-latest",
+ "sui-framework",
+ "sui-move",
+ "sui-move-build",
+ "sui-protocol-config",
+ "sui-types",
+ "sui-verifier-latest",
+]
+
[[package]]
name = "sui-genesis-builder"
version = "0.0.0"
@@ -10302,7 +12688,7 @@ dependencies = [
"prometheus",
"rand 0.8.5",
"serde",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
"shared-crypto",
"sui-config",
@@ -10318,7 +12704,7 @@ dependencies = [
[[package]]
name = "sui-indexer"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"async-trait",
@@ -10349,7 +12735,7 @@ dependencies = [
"secrecy",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"simulacrum",
"sui-data-ingestion-core",
"sui-json",
@@ -10362,7 +12748,7 @@ dependencies = [
"sui-package-resolver",
"sui-protocol-config",
"sui-rest-api",
- "sui-sdk 1.29.2",
+ "sui-sdk 1.30.1",
"sui-test-transaction-builder",
"sui-transaction-builder",
"sui-types",
@@ -10411,7 +12797,7 @@ dependencies = [
"eyre",
"fastcrypto",
"futures",
- "hyper",
+ "hyper 0.14.26",
"indexmap 2.2.6",
"itertools 0.10.5",
"jsonrpsee",
@@ -10470,6 +12856,43 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "sui-json-rpc-tests"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bcs",
+ "hyper 0.14.26",
+ "jsonrpsee",
+ "move-core-types",
+ "move-package",
+ "prometheus",
+ "rand 0.8.5",
+ "reqwest 0.12.4",
+ "sui-config",
+ "sui-core",
+ "sui-json",
+ "sui-json-rpc",
+ "sui-json-rpc-api",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-macros",
+ "sui-move-build",
+ "sui-open-rpc",
+ "sui-open-rpc-macros",
+ "sui-protocol-config",
+ "sui-sdk 1.30.1",
+ "sui-simulator",
+ "sui-swarm-config",
+ "sui-test-transaction-builder",
+ "sui-types",
+ "telemetry-subscribers",
+ "test-cluster",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "sui-json-rpc-types"
version = "0.0.0"
@@ -10488,7 +12911,7 @@ dependencies = [
"schemars",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"sui-enum-compat-util",
"sui-json",
"sui-macros",
@@ -10518,6 +12941,30 @@ dependencies = [
"tiny-bip39",
]
+[[package]]
+name = "sui-light-client"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bcs",
+ "bytes",
+ "clap",
+ "move-binary-format",
+ "move-core-types",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sui-config",
+ "sui-json",
+ "sui-json-rpc-types",
+ "sui-package-resolver",
+ "sui-rest-api",
+ "sui-sdk 1.30.1",
+ "sui-types",
+ "tokio",
+]
+
[[package]]
name = "sui-macros"
version = "0.7.0"
@@ -10530,7 +12977,7 @@ dependencies = [
[[package]]
name = "sui-move"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"assert_cmd",
@@ -10572,7 +13019,7 @@ dependencies = [
[[package]]
name = "sui-move-build"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"datatest-stable",
@@ -10594,6 +13041,16 @@ dependencies = [
"tempfile",
]
+[[package]]
+name = "sui-move-lsp"
+version = "1.30.1"
+dependencies = [
+ "bin-version",
+ "clap",
+ "move-analyzer",
+ "tokio",
+]
+
[[package]]
name = "sui-move-natives-latest"
version = "0.1.0"
@@ -10716,13 +13173,15 @@ dependencies = [
[[package]]
name = "sui-node"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anemo",
"anemo-tower",
"anyhow",
"arc-swap",
"axum",
+ "base64 0.21.2",
+ "bcs",
"bin-version",
"clap",
"fastcrypto",
@@ -10736,7 +13195,7 @@ dependencies = [
"narwhal-network",
"narwhal-worker",
"prometheus",
- "reqwest",
+ "reqwest 0.12.4",
"serde",
"snap",
"sui-archival",
@@ -10765,7 +13224,7 @@ dependencies = [
[[package]]
name = "sui-open-rpc"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"bcs",
@@ -10799,16 +13258,46 @@ dependencies = [
"unescape",
]
+[[package]]
+name = "sui-oracle"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "bcs",
+ "chrono",
+ "clap",
+ "dirs 4.0.0",
+ "jsonpath_lib",
+ "mysten-metrics",
+ "once_cell",
+ "prometheus",
+ "rand 0.8.5",
+ "reqwest 0.12.4",
+ "serde",
+ "serde_json",
+ "shared-crypto",
+ "sui-config",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-move-build",
+ "sui-sdk 1.30.1",
+ "sui-types",
+ "tap",
+ "telemetry-subscribers",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "sui-package-management"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"move-core-types",
"move-package",
"move-symbol-pool",
"sui-json-rpc-types",
- "sui-sdk 1.29.2",
+ "sui-sdk 1.30.1",
"sui-types",
"tracing",
]
@@ -10820,7 +13309,7 @@ dependencies = [
"async-trait",
"bcs",
"eyre",
- "hyper",
+ "hyper 0.14.26",
"insta",
"lru 0.10.0",
"move-binary-format",
@@ -10857,7 +13346,7 @@ dependencies = [
"move-vm-config",
"schemars",
"serde",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"sui-protocol-config-macros",
"tracing",
]
@@ -10872,42 +13361,205 @@ dependencies = [
]
[[package]]
-name = "sui-rest-api"
-version = "0.1.0"
+name = "sui-proxy"
+version = "0.0.2"
dependencies = [
"anyhow",
- "async-trait",
"axum",
- "bcs",
- "diffy",
+ "axum-server",
+ "bin-version",
+ "bytes",
+ "clap",
+ "const-str",
"fastcrypto",
+ "hex",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
+ "ipnetwork",
"itertools 0.10.5",
"mime",
- "mysten-network",
- "openapiv3",
+ "multiaddr",
+ "mysten-metrics",
+ "once_cell",
"prometheus",
+ "prost 0.12.3",
+ "prost-build",
+ "protobuf",
"rand 0.8.5",
- "reqwest",
- "schemars",
+ "reqwest 0.12.4",
+ "rustls 0.21.12",
+ "rustls-pemfile 1.0.2",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
- "sui-protocol-config",
- "sui-sdk 0.0.0",
+ "snap",
+ "sui-tls",
"sui-types",
- "tap",
- "thiserror",
+ "telemetry-subscribers",
"tokio",
+ "tower",
+ "tower-http",
+ "tracing",
]
[[package]]
-name = "sui-sdk"
-version = "0.0.0"
-source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=be6a30039723bf8fabd64a8869b7e89596141551#be6a30039723bf8fabd64a8869b7e89596141551"
+name = "sui-replay"
+version = "0.1.0"
dependencies = [
- "base64ct",
+ "anyhow",
+ "async-recursion",
+ "async-trait",
+ "bcs",
+ "clap",
+ "futures",
+ "http 0.2.9",
+ "jsonrpsee",
+ "lru 0.10.0",
+ "move-binary-format",
+ "move-bytecode-utils",
+ "move-core-types",
+ "move-vm-config",
+ "parking_lot 0.12.1",
+ "prometheus",
+ "rand 0.8.5",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_with 3.8.1",
+ "serde_yaml",
+ "shared-crypto",
+ "shellexpand",
+ "similar",
+ "sui-config",
+ "sui-core",
+ "sui-execution",
+ "sui-framework",
+ "sui-json-rpc",
+ "sui-json-rpc-api",
+ "sui-json-rpc-types",
+ "sui-protocol-config",
+ "sui-sdk 1.30.1",
+ "sui-storage",
+ "sui-transaction-checks",
+ "sui-types",
+ "tabled",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-util 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tracing",
+]
+
+[[package]]
+name = "sui-rest-api"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "axum",
+ "bcs",
+ "diffy",
+ "fastcrypto",
+ "itertools 0.10.5",
+ "mime",
+ "mysten-network",
+ "openapiv3",
+ "prometheus",
+ "rand 0.8.5",
+ "reqwest 0.12.4",
+ "schemars",
+ "serde",
+ "serde_json",
+ "serde_with 3.8.1",
+ "serde_yaml",
+ "sui-protocol-config",
+ "sui-sdk 0.0.0",
+ "sui-types",
+ "tap",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "sui-rosetta"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "axum",
+ "axum-extra",
+ "bcs",
+ "clap",
+ "eyre",
+ "fastcrypto",
+ "futures",
+ "hyper 0.14.26",
+ "move-core-types",
+ "mysten-metrics",
+ "once_cell",
+ "rand 0.8.5",
+ "reqwest 0.12.4",
+ "serde",
+ "serde_json",
+ "shared-crypto",
+ "signature 1.6.4",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-config",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-move-build",
+ "sui-node",
+ "sui-sdk 1.30.1",
+ "sui-swarm-config",
+ "sui-types",
+ "telemetry-subscribers",
+ "tempfile",
+ "test-cluster",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "typed-store",
+]
+
+[[package]]
+name = "sui-rpc-loadgen"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "clap",
+ "dashmap",
+ "dirs 4.0.0",
+ "futures",
+ "itertools 0.10.5",
+ "serde",
+ "serde_json",
+ "shared-crypto",
+ "shellexpand",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-json-rpc",
+ "sui-json-rpc-types",
+ "sui-keys",
+ "sui-sdk 1.30.1",
+ "sui-types",
+ "telemetry-subscribers",
+ "test-cluster",
+ "tokio",
+ "tonic 0.11.0",
+ "tracing",
+]
+
+[[package]]
+name = "sui-sdk"
+version = "0.0.0"
+source = "git+https://github.com/mystenlabs/sui-rust-sdk.git?rev=9a125ed5764fb5bcc1acb6074064bc8f9ea85b38#9a125ed5764fb5bcc1acb6074064bc8f9ea85b38"
+dependencies = [
+ "base64ct",
"bcs",
+ "blake2",
"bnum",
"bs58 0.5.0",
"hex",
@@ -10922,7 +13574,7 @@ dependencies = [
[[package]]
name = "sui-sdk"
-version = "1.29.2"
+version = "1.30.1"
dependencies = [
"anyhow",
"async-recursion",
@@ -10931,17 +13583,17 @@ dependencies = [
"bcs",
"clap",
"colored",
- "dirs",
+ "dirs 4.0.0",
"fastcrypto",
"futures",
"futures-core",
"jsonrpsee",
"move-core-types",
"rand 0.8.5",
- "reqwest",
+ "reqwest 0.12.4",
"serde",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"shared-crypto",
"sui-config",
"sui-json",
@@ -10956,6 +13608,30 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "sui-security-watchdog"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "arrow-array",
+ "async-trait",
+ "chrono",
+ "clap",
+ "env_logger",
+ "lexical-util",
+ "mysten-metrics",
+ "prometheus",
+ "reqwest 0.12.4",
+ "serde",
+ "serde_json",
+ "snowflake-api",
+ "telemetry-subscribers",
+ "tokio",
+ "tokio-cron-scheduler",
+ "tracing",
+ "uuid 1.2.2",
+]
+
[[package]]
name = "sui-simulator"
version = "0.7.0"
@@ -10979,6 +13655,40 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "sui-single-node-benchmark"
+version = "1.30.1"
+dependencies = [
+ "async-trait",
+ "bcs",
+ "clap",
+ "fs_extra",
+ "futures",
+ "move-binary-format",
+ "move-bytecode-utils",
+ "move-core-types",
+ "move-package",
+ "once_cell",
+ "prometheus",
+ "serde",
+ "serde_json",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-config",
+ "sui-core",
+ "sui-macros",
+ "sui-move-build",
+ "sui-protocol-config",
+ "sui-simulator",
+ "sui-storage",
+ "sui-test-transaction-builder",
+ "sui-transaction-checks",
+ "sui-types",
+ "telemetry-subscribers",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "sui-snapshot"
version = "0.1.0"
@@ -11007,6 +13717,74 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "sui-source-validation"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "colored",
+ "expect-test",
+ "flate2",
+ "futures",
+ "move-binary-format",
+ "move-bytecode-source-map",
+ "move-command-line-common",
+ "move-compiler",
+ "move-core-types",
+ "move-package",
+ "move-symbol-pool",
+ "rand 0.8.5",
+ "sui-json-rpc-types",
+ "sui-move-build",
+ "sui-sdk 1.30.1",
+ "sui-test-transaction-builder",
+ "sui-types",
+ "tar",
+ "tempfile",
+ "test-cluster",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "ureq",
+]
+
+[[package]]
+name = "sui-source-validation-service"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "axum",
+ "bin-version",
+ "clap",
+ "expect-test",
+ "fs_extra",
+ "hyper 0.14.26",
+ "jsonrpsee",
+ "move-compiler",
+ "move-core-types",
+ "move-package",
+ "move-symbol-pool",
+ "mysten-metrics",
+ "prometheus",
+ "reqwest 0.12.4",
+ "serde",
+ "sui",
+ "sui-json-rpc-types",
+ "sui-move",
+ "sui-move-build",
+ "sui-sdk 1.30.1",
+ "sui-source-validation",
+ "telemetry-subscribers",
+ "tempfile",
+ "test-cluster",
+ "tokio",
+ "toml 0.7.4",
+ "tower",
+ "tower-http",
+ "tracing",
+ "url",
+]
+
[[package]]
name = "sui-storage"
version = "0.1.0"
@@ -11024,7 +13802,7 @@ dependencies = [
"eyre",
"fastcrypto",
"futures",
- "hyper",
+ "hyper 0.14.26",
"hyper-rustls 0.24.0",
"indicatif",
"integer-encoding",
@@ -11042,7 +13820,7 @@ dependencies = [
"percent-encoding",
"pretty_assertions",
"prometheus",
- "reqwest",
+ "reqwest 0.12.4",
"rocksdb",
"serde",
"serde_json",
@@ -11064,6 +13842,34 @@ dependencies = [
"zstd",
]
+[[package]]
+name = "sui-surfer"
+version = "1.30.1"
+dependencies = [
+ "async-trait",
+ "bcs",
+ "clap",
+ "futures",
+ "indexmap 2.2.6",
+ "move-binary-format",
+ "move-core-types",
+ "move-package",
+ "prometheus",
+ "rand 0.8.5",
+ "sui-core",
+ "sui-json-rpc-types",
+ "sui-macros",
+ "sui-move-build",
+ "sui-protocol-config",
+ "sui-simulator",
+ "sui-swarm-config",
+ "sui-types",
+ "telemetry-subscribers",
+ "test-cluster",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "sui-swarm"
version = "0.0.0"
@@ -11103,7 +13909,7 @@ dependencies = [
"prometheus",
"rand 0.8.5",
"serde",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
"shared-crypto",
"sui-config",
@@ -11121,7 +13927,7 @@ dependencies = [
name = "sui-telemetry"
version = "0.1.0"
dependencies = [
- "reqwest",
+ "reqwest 0.12.4",
"serde",
"sui-core",
"tracing",
@@ -11136,10 +13942,14 @@ dependencies = [
"shared-crypto",
"sui-genesis-builder",
"sui-move-build",
- "sui-sdk 1.29.2",
+ "sui-sdk 1.30.1",
"sui-types",
]
+[[package]]
+name = "sui-test-validator"
+version = "1.30.1"
+
[[package]]
name = "sui-tls"
version = "0.0.0"
@@ -11151,8 +13961,8 @@ dependencies = [
"fastcrypto",
"pkcs8 0.9.0",
"rand 0.8.5",
- "rcgen",
- "reqwest",
+ "rcgen 0.9.3",
+ "reqwest 0.12.4",
"rustls 0.21.12",
"rustls-webpki 0.101.7",
"tokio",
@@ -11161,6 +13971,55 @@ dependencies = [
"x509-parser",
]
+[[package]]
+name = "sui-tool"
+version = "1.30.1"
+dependencies = [
+ "anemo",
+ "anemo-cli",
+ "anyhow",
+ "bcs",
+ "bin-version",
+ "clap",
+ "colored",
+ "comfy-table",
+ "diesel",
+ "eyre",
+ "fastcrypto",
+ "futures",
+ "hex",
+ "indicatif",
+ "itertools 0.10.5",
+ "move-core-types",
+ "narwhal-storage",
+ "narwhal-types",
+ "num_cpus",
+ "object_store",
+ "prometheus",
+ "rocksdb",
+ "ron",
+ "serde",
+ "serde_json",
+ "strum 0.24.1",
+ "strum_macros 0.24.3",
+ "sui-archival",
+ "sui-config",
+ "sui-core",
+ "sui-indexer",
+ "sui-network",
+ "sui-protocol-config",
+ "sui-replay",
+ "sui-sdk 1.30.1",
+ "sui-snapshot",
+ "sui-storage",
+ "sui-types",
+ "telemetry-subscribers",
+ "tempfile",
+ "tokio",
+ "tracing",
+ "typed-store",
+]
+
[[package]]
name = "sui-transaction-builder"
version = "0.0.0"
@@ -11252,7 +14111,7 @@ dependencies = [
"serde",
"serde-name",
"serde_json",
- "serde_with 2.1.0",
+ "serde_with 3.8.1",
"serde_yaml",
"shared-crypto",
"signature 1.6.4",
@@ -11272,6 +14131,20 @@ dependencies = [
"url",
]
+[[package]]
+name = "sui-upgrade-compatibility-transactional-tests"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "datatest-stable",
+ "insta",
+ "move-binary-format",
+ "move-command-line-common",
+ "move-compiler",
+ "move-package",
+ "sui-move-build",
+]
+
[[package]]
name = "sui-verifier-latest"
version = "0.1.0"
@@ -11289,48 +14162,138 @@ dependencies = [
]
[[package]]
-name = "sui-verifier-v0"
-version = "0.1.0"
+name = "sui-verifier-v0"
+version = "0.1.0"
+dependencies = [
+ "move-abstract-stack",
+ "move-binary-format",
+ "move-bytecode-utils",
+ "move-bytecode-verifier-meter",
+ "move-bytecode-verifier-v0",
+ "move-core-types",
+ "move-vm-config",
+ "sui-protocol-config",
+ "sui-types",
+]
+
+[[package]]
+name = "sui-verifier-v1"
+version = "0.1.0"
+dependencies = [
+ "move-abstract-stack",
+ "move-binary-format",
+ "move-bytecode-utils",
+ "move-bytecode-verifier-meter",
+ "move-bytecode-verifier-v1",
+ "move-core-types",
+ "move-vm-config",
+ "sui-types",
+]
+
+[[package]]
+name = "sui-verifier-v2"
+version = "0.1.0"
+dependencies = [
+ "move-abstract-stack",
+ "move-binary-format",
+ "move-bytecode-utils",
+ "move-bytecode-verifier-meter",
+ "move-bytecode-verifier-v2",
+ "move-core-types",
+ "move-vm-config",
+ "sui-protocol-config",
+ "sui-types",
+]
+
+[[package]]
+name = "suins-indexer"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "backoff",
+ "base64-url",
+ "bcs",
+ "bytes",
+ "diesel",
+ "dotenvy",
+ "futures",
+ "move-core-types",
+ "mysten-metrics",
+ "mysten-service",
+ "notify",
+ "object_store",
+ "prometheus",
+ "rand 0.8.5",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sui-data-ingestion-core",
+ "sui-json-rpc",
+ "sui-storage",
+ "sui-types",
+ "telemetry-subscribers",
+ "tempfile",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "suiop-cli"
+version = "0.2.5"
+dependencies = [
+ "anyhow",
+ "axum",
+ "base64 0.21.2",
+ "chrono",
+ "clap",
+ "colored",
+ "dirs 4.0.0",
+ "docker-api",
+ "field_names",
+ "include_dir",
+ "inquire",
+ "open",
+ "prettytable-rs",
+ "rand 0.8.5",
+ "regex",
+ "reqwest 0.12.4",
+ "semver 1.0.16",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sha2 0.10.6",
+ "spinners",
+ "strum 0.24.1",
+ "tabled",
+ "tempfile",
+ "tokio",
+ "toml_edit 0.19.10",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "supports-color"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
dependencies = [
- "move-abstract-stack",
- "move-binary-format",
- "move-bytecode-utils",
- "move-bytecode-verifier-meter",
- "move-bytecode-verifier-v0",
- "move-core-types",
- "move-vm-config",
- "sui-protocol-config",
- "sui-types",
+ "is_ci",
]
[[package]]
-name = "sui-verifier-v1"
-version = "0.1.0"
-dependencies = [
- "move-abstract-stack",
- "move-binary-format",
- "move-bytecode-utils",
- "move-bytecode-verifier-meter",
- "move-bytecode-verifier-v1",
- "move-core-types",
- "move-vm-config",
- "sui-types",
-]
+name = "supports-hyperlinks"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee"
[[package]]
-name = "sui-verifier-v2"
-version = "0.1.0"
-dependencies = [
- "move-abstract-stack",
- "move-binary-format",
- "move-bytecode-utils",
- "move-bytecode-verifier-meter",
- "move-bytecode-verifier-v2",
- "move-core-types",
- "move-vm-config",
- "sui-protocol-config",
- "sui-types",
-]
+name = "supports-unicode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
[[package]]
name = "symbolic-common"
@@ -11406,6 +14369,21 @@ dependencies = [
"unicode-xid 0.2.4",
]
+[[package]]
+name = "sysinfo"
+version = "0.27.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
+]
+
[[package]]
name = "tabled"
version = "0.12.2"
@@ -11430,6 +14408,16 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "tabular"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9a2882c514780a1973df90de9d68adcd8871bacc9a6331c3f28e6d2ff91a3d1"
+dependencies = [
+ "strip-ansi-escapes",
+ "unicode-width",
+]
+
[[package]]
name = "tagptr"
version = "0.2.0"
@@ -11442,6 +14430,35 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+[[package]]
+name = "tar"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+[[package]]
+name = "target-spec"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bf4306559bd50cb358e7af5692694d6f6fad95cf2c0bea2571dd419f5298e12"
+dependencies = [
+ "cfg-expr",
+ "guppy-workspace-hack",
+ "serde",
+ "target-lexicon",
+]
+
[[package]]
name = "telemetry-subscribers"
version = "0.2.0"
@@ -11452,7 +14469,7 @@ dependencies = [
"camino",
"clap",
"console-subscriber",
- "crossterm",
+ "crossterm 0.25.0",
"futures",
"once_cell",
"opentelemetry",
@@ -11478,10 +14495,21 @@ dependencies = [
"cfg-if",
"fastrand 2.0.0",
"redox_syscall 0.3.5",
- "rustix 0.38.28",
+ "rustix 0.38.34",
"windows-sys 0.48.0",
]
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
[[package]]
name = "termcolor"
version = "1.1.3"
@@ -11497,7 +14525,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
dependencies = [
- "rustix 0.38.28",
+ "rustix 0.38.34",
"windows-sys 0.48.0",
]
@@ -11531,7 +14559,7 @@ dependencies = [
"sui-macros",
"sui-node",
"sui-protocol-config",
- "sui-sdk 1.29.2",
+ "sui-sdk 1.30.1",
"sui-simulator",
"sui-swarm",
"sui-swarm-config",
@@ -11598,6 +14626,17 @@ dependencies = [
"test-fuzz-internal",
]
+[[package]]
+name = "textwrap"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+dependencies = [
+ "smawk",
+ "unicode-linebreak",
+ "unicode-width",
+]
+
[[package]]
name = "thiserror"
version = "1.0.56"
@@ -11672,11 +14711,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861"
dependencies = [
"anyhow",
- "hmac",
+ "hmac 0.12.1",
"once_cell",
"pbkdf2 0.11.0",
"rand 0.8.5",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"sha2 0.10.6",
"thiserror",
"unicode-normalization",
@@ -11738,6 +14777,21 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "tokio-cron-scheduler"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c2e3a88f827f597799cf70a6f673074e62f3fc5ba5993b2873345c618a29af"
+dependencies = [
+ "chrono",
+ "cron",
+ "num-derive",
+ "num-traits",
+ "tokio",
+ "tracing",
+ "uuid 1.2.2",
+]
+
[[package]]
name = "tokio-io-timeout"
version = "1.2.0"
@@ -11801,6 +14855,17 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+]
+
[[package]]
name = "tokio-rustls"
version = "0.26.0"
@@ -11847,7 +14912,7 @@ dependencies = [
"futures-io",
"futures-sink",
"futures-util",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.5",
"pin-project-lite",
"tokio",
"tracing",
@@ -11863,7 +14928,7 @@ dependencies = [
"futures-io",
"futures-sink",
"futures-util",
- "hashbrown 0.14.1",
+ "hashbrown 0.14.5",
"pin-project-lite",
"real_tokio",
"slab",
@@ -11872,10 +14937,11 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.5.10"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
+ "indexmap 1.9.3",
"serde",
]
@@ -11885,12 +14951,19 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
dependencies = [
+ "indexmap 1.9.3",
"serde",
"serde_spanned",
- "toml_datetime",
+ "toml_datetime 0.6.2",
"toml_edit 0.19.10",
]
+[[package]]
+name = "toml_datetime"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5"
+
[[package]]
name = "toml_datetime"
version = "0.6.2"
@@ -11912,6 +14985,18 @@ dependencies = [
"serde",
]
+[[package]]
+name = "toml_edit"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a34cc558345efd7e88b9eda9626df2138b80bb46a7606f695e751c892bc7dac6"
+dependencies = [
+ "indexmap 1.9.3",
+ "itertools 0.10.5",
+ "nom8",
+ "toml_datetime 0.5.1",
+]
+
[[package]]
name = "toml_edit"
version = "0.19.10"
@@ -11921,7 +15006,7 @@ dependencies = [
"indexmap 1.9.3",
"serde",
"serde_spanned",
- "toml_datetime",
+ "toml_datetime 0.6.2",
"winnow 0.4.6",
]
@@ -11937,10 +15022,10 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"hyper-timeout",
"percent-encoding",
"pin-project",
@@ -11964,10 +15049,10 @@ dependencies = [
"axum",
"base64 0.21.2",
"bytes",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"hyper-timeout",
"percent-encoding",
"pin-project",
@@ -11991,10 +15076,10 @@ dependencies = [
"axum",
"base64 0.21.2",
"bytes",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.26",
"hyper-timeout",
"percent-encoding",
"pin-project",
@@ -12073,14 +15158,14 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858"
dependencies = [
- "async-compression",
+ "async-compression 0.3.15",
"base64 0.13.1",
"bitflags 1.3.2",
"bytes",
"futures-core",
"futures-util",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"http-range-header",
"httpdate",
"iri-string",
@@ -12153,6 +15238,16 @@ dependencies = [
"valuable",
]
+[[package]]
+name = "tracing-error"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
+dependencies = [
+ "tracing",
+ "tracing-subscriber",
+]
+
[[package]]
name = "tracing-futures"
version = "0.2.5"
@@ -12233,6 +15328,23 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "transaction-fuzzer"
+version = "0.1.0"
+dependencies = [
+ "move-core-types",
+ "once_cell",
+ "proptest",
+ "proptest-derive",
+ "rand 0.8.5",
+ "sui-core",
+ "sui-move-build",
+ "sui-protocol-config",
+ "sui-types",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "treeline"
version = "0.1.0"
@@ -12262,6 +15374,15 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "ttl_cache"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a"
+dependencies = [
+ "linked-hash-map",
+]
+
[[package]]
name = "tui"
version = "0.19.0"
@@ -12270,7 +15391,7 @@ checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
dependencies = [
"bitflags 1.3.2",
"cassowary",
- "crossterm",
+ "crossterm 0.25.0",
"unicode-segmentation",
"unicode-width",
]
@@ -12284,7 +15405,7 @@ dependencies = [
"byteorder",
"bytes",
"data-encoding",
- "http",
+ "http 0.2.9",
"httparse",
"log",
"rand 0.8.5",
@@ -12301,7 +15422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if",
- "rand 0.7.3",
+ "rand 0.8.5",
"static_assertions",
]
@@ -12441,6 +15562,12 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
[[package]]
name = "unicode-normalization"
version = "0.1.22"
@@ -12513,6 +15640,22 @@ dependencies = [
"syn 1.0.107",
]
+[[package]]
+name = "ureq"
+version = "2.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a"
+dependencies = [
+ "base64 0.22.1",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls 0.23.12",
+ "rustls-pki-types",
+ "url",
+ "webpki-roots 0.26.3",
+]
+
[[package]]
name = "url"
version = "2.3.1"
@@ -12549,7 +15692,7 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"serde",
]
@@ -12559,7 +15702,7 @@ version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
dependencies = [
- "getrandom 0.2.9",
+ "getrandom 0.2.15",
"rand 0.8.5",
]
@@ -12613,6 +15756,27 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+[[package]]
+name = "vte"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
+dependencies = [
+ "arrayvec 0.5.2",
+ "utf8parse",
+ "vte_generate_state_changes",
+]
+
+[[package]]
+name = "vte_generate_state_changes"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+]
+
[[package]]
name = "wait-timeout"
version = "0.2.0"
@@ -12694,9 +15858,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.33"
+version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
dependencies = [
"cfg-if",
"js-sys",
@@ -12735,9 +15899,9 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wasm-streams"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
dependencies = [
"futures-util",
"js-sys",
@@ -12746,11 +15910,26 @@ dependencies = [
"web-sys",
]
+[[package]]
+name = "wasm-timer"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot 0.11.2",
+ "pin-utils",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
[[package]]
name = "web-sys"
-version = "0.3.60"
+version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -12786,9 +15965,12 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "0.25.2"
+version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+dependencies = [
+ "rustls-pki-types",
+]
[[package]]
name = "which"
@@ -13090,6 +16272,16 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
[[package]]
name = "ws_stream_wasm"
version = "0.7.4"
@@ -13124,6 +16316,17 @@ dependencies = [
"tap",
]
+[[package]]
+name = "x"
+version = "1.30.1"
+dependencies = [
+ "anyhow",
+ "camino",
+ "clap",
+ "nexlint",
+ "nexlint-lints",
+]
+
[[package]]
name = "x509-parser"
version = "0.14.0"
@@ -13142,6 +16345,23 @@ dependencies = [
"time",
]
+[[package]]
+name = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.4.12",
+ "rustix 0.38.34",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601"
+
[[package]]
name = "xmlparser"
version = "0.13.5"
@@ -13165,13 +16385,35 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
[[package]]
name = "yasna"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4"
+checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
dependencies = [
+ "bit-vec",
+ "num-bigint 0.4.4",
"time",
]
+[[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
[[package]]
name = "zeroize"
version = "1.7.0"
@@ -13214,11 +16456,10 @@ dependencies = [
[[package]]
name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.12+zstd.1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13"
dependencies = [
"cc",
- "libc",
"pkg-config",
]
diff --git a/Cargo.toml b/Cargo.toml
index 7c7614af05af3..9d6d4fb066496 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,15 +2,16 @@
resolver = "2"
exclude = [
- # "external-crates/move/crates/bytecode-interpreter-crypto",
- # "external-crates/move/crates/bytecode-verifier-libfuzzer",
- # "external-crates/move/crates/bytecode-verifier-tests",
- # "external-crates/move/crates/bytecode-verifier-prop-tests",
- # "external-crates/move/crates/bytecode-verifier-transactional-tests",
- # "external-crates/move/crates/enum-compat-util",
- # "external-crates/move/crates/invalid-mutations",
- # "external-crates/move/crates/language-benchmarks",
- # "external-crates/move/crates/module-generation",
+ "examples/tic-tac-toe/cli",
+ "external-crates/move/crates/bytecode-interpreter-crypto",
+ "external-crates/move/crates/bytecode-verifier-libfuzzer",
+ "external-crates/move/crates/bytecode-verifier-tests",
+ "external-crates/move/crates/bytecode-verifier-prop-tests",
+ "external-crates/move/crates/bytecode-verifier-transactional-tests",
+ "external-crates/move/crates/enum-compat-util",
+ "external-crates/move/crates/invalid-mutations",
+ "external-crates/move/crates/language-benchmarks",
+ "external-crates/move/crates/module-generation",
"external-crates/move/crates/move-abstract-interpreter",
"external-crates/move/crates/move-abstract-stack",
"external-crates/move/crates/move-analyzer",
@@ -20,25 +21,25 @@ exclude = [
"external-crates/move/crates/move-bytecode-utils",
"external-crates/move/crates/move-bytecode-verifier",
"external-crates/move/crates/move-bytecode-verifier-meter",
- # "external-crates/move/crates/move-bytecode-viewer",
+ "external-crates/move/crates/move-bytecode-viewer",
"external-crates/move/crates/move-cli",
"external-crates/move/crates/move-command-line-common",
"external-crates/move/crates/move-compiler",
- # "external-crates/move/crates/move-compiler-transactional-tests",
+ "external-crates/move/crates/move-compiler-transactional-tests",
"external-crates/move/crates/move-core-types",
- # "external-crates/move/crates/move-coverage",
+ "external-crates/move/crates/move-coverage",
"external-crates/move/crates/move-disassembler",
- # "external-crates/move/crates/move-docgen",
- # "external-crates/move/crates/move-ir-compiler",
- # "external-crates/move/crates/move-ir-compiler-transactional-tests",
- # "external-crates/move/crates/move-ir-to-bytecode",
- # "external-crates/move/crates/move-ir-to-bytecode-syntax",
+ "external-crates/move/crates/move-docgen",
+ "external-crates/move/crates/move-ir-compiler",
+ "external-crates/move/crates/move-ir-compiler-transactional-tests",
+ "external-crates/move/crates/move-ir-to-bytecode",
+ "external-crates/move/crates/move-ir-to-bytecode-syntax",
"external-crates/move/crates/move-ir-types",
"external-crates/move/crates/move-model",
"external-crates/move/crates/move-package",
- # "external-crates/move/crates/move-proc-macros",
+ "external-crates/move/crates/move-proc-macros",
"external-crates/move/crates/move-prover",
- # "external-crates/move/crates/move-prover-test-utils",
+ "external-crates/move/crates/move-prover-test-utils",
"external-crates/move/crates/move-stackless-bytecode",
"external-crates/move/crates/move-stdlib",
"external-crates/move/crates/move-stdlib-natives",
@@ -46,14 +47,14 @@ exclude = [
"external-crates/move/crates/move-transactional-test-runner",
"external-crates/move/crates/move-unit-test",
"external-crates/move/crates/move-vm-config",
- # "external-crates/move/crates/move-vm-integration-tests",
+ "external-crates/move/crates/move-vm-integration-tests",
"external-crates/move/crates/move-vm-profiler",
"external-crates/move/crates/move-vm-runtime",
"external-crates/move/crates/move-vm-test-utils",
- # "external-crates/move/crates/move-vm-transactional-tests",
+ "external-crates/move/crates/move-vm-transactional-tests",
"external-crates/move/crates/move-vm-types",
- # "external-crates/move/crates/serializer-tests",
- # "external-crates/move/crates/test-generation",
+ "external-crates/move/crates/serializer-tests",
+ "external-crates/move/crates/test-generation",
"external-crates/move/move-execution/v0/crates/move-bytecode-verifier",
"external-crates/move/move-execution/v0/crates/move-stdlib-natives",
"external-crates/move/move-execution/v0/crates/move-vm-runtime",
@@ -64,141 +65,140 @@ exclude = [
"external-crates/move/move-execution/v2/crates/move-bytecode-verifier",
"external-crates/move/move-execution/v2/crates/move-stdlib-natives",
"external-crates/move/move-execution/v2/crates/move-vm-runtime",
- # "sdk/move-bytecode-template",
+ "sdk/move-bytecode-template",
]
members = [
- # "consensus/config",
- # "consensus/core",
- # "crates/anemo-benchmark",
+ "consensus/config",
+ "consensus/core",
+ "crates/anemo-benchmark",
"crates/bin-version",
"crates/mysten-common",
"crates/mysten-metrics",
"crates/mysten-network",
- # "crates/mysten-service",
+ "crates/mysten-service",
"crates/mysten-util-mem",
"crates/mysten-util-mem-derive",
"crates/prometheus-closure-metric",
"crates/shared-crypto",
"crates/simulacrum",
- # "crates/sui",
+ "crates/sui",
# "crates/sui-adapter-transactional-tests",
# "crates/sui-analytics-indexer",
# "crates/sui-analytics-indexer-derive",
"crates/sui-archival",
"crates/sui-authority-aggregation",
- # "crates/sui-aws-orchestrator",
- # "crates/sui-benchmark",
+ "crates/sui-aws-orchestrator",
+ "crates/sui-benchmark",
"crates/sui-bridge",
- # "crates/sui-bridge-cli",
- # "crates/sui-bridge-indexer",
+ "crates/sui-bridge-cli",
+ "crates/sui-bridge-indexer",
# "crates/sui-cluster-test",
- "crates/sui-common",
"crates/sui-config",
"crates/sui-core",
- # "crates/sui-cost",
+ "crates/sui-cost",
"crates/sui-data-ingestion",
"crates/sui-data-ingestion-core",
- # "crates/sui-e2e-tests",
+ "crates/sui-e2e-tests",
"crates/sui-enum-compat-util",
- # "crates/sui-faucet",
+ "crates/sui-faucet",
"crates/sui-framework",
"crates/sui-framework-snapshot",
- # "crates/sui-framework-tests",
+ "crates/sui-framework-tests",
"crates/sui-genesis-builder",
- # "crates/sui-graphql-config",sui-indexer
+ # "crates/sui-graphql-config",
# "crates/sui-graphql-e2e-tests",
# "crates/sui-graphql-rpc",
# "crates/sui-graphql-rpc-client",
# "crates/sui-graphql-rpc-headers",
"crates/sui-indexer",
"crates/sui-json",
- # "crates/sui-json-rpc",
- # "crates/sui-json-rpc-api",
- # "crates/sui-json-rpc-tests",
- # "crates/sui-json-rpc-types",
+ "crates/sui-json-rpc",
+ "crates/sui-json-rpc-api",
+ "crates/sui-json-rpc-tests",
+ "crates/sui-json-rpc-types",
"crates/sui-keys",
- # "crates/sui-light-client",
+ "crates/sui-light-client",
"crates/sui-macros",
# "crates/sui-metric-checker",
"crates/sui-move",
"crates/sui-move-build",
- # "crates/sui-move-lsp",
+ "crates/sui-move-lsp",
"crates/sui-network",
"crates/sui-node",
"crates/sui-open-rpc",
"crates/sui-open-rpc-macros",
- # "crates/sui-oracle",
- # "crates/sui-package-management",
+ "crates/sui-oracle",
+ "crates/sui-package-management",
"crates/sui-package-resolver",
"crates/sui-proc-macros",
"crates/sui-protocol-config",
"crates/sui-protocol-config-macros",
- # "crates/sui-proxy",
- # "crates/sui-replay",
+ "crates/sui-proxy",
+ "crates/sui-replay",
"crates/sui-rest-api",
- # "crates/sui-rosetta",
- # "crates/sui-rpc-loadgen",
+ "crates/sui-rosetta",
+ "crates/sui-rpc-loadgen",
"crates/sui-sdk",
- # "crates/sui-security-watchdog",
+ "crates/sui-security-watchdog",
"crates/sui-simulator",
- # "crates/sui-single-node-benchmark",
+ "crates/sui-single-node-benchmark",
"crates/sui-snapshot",
- # "crates/sui-source-validation",
- # "crates/sui-source-validation-service",
- # "crates/sui-storage",
- # "crates/sui-surfer",
+ "crates/sui-source-validation",
+ "crates/sui-source-validation-service",
+ "crates/sui-storage",
+ "crates/sui-surfer",
"crates/sui-swarm",
"crates/sui-swarm-config",
"crates/sui-telemetry",
"crates/sui-test-transaction-builder",
- # "crates/sui-test-validator",
+ "crates/sui-test-validator",
"crates/sui-tls",
- # "crates/sui-tool",
+ "crates/sui-tool",
"crates/sui-transaction-builder",
"crates/sui-transaction-checks",
# "crates/sui-transactional-test-runner",
- # "crates/sui-types",
- # "crates/sui-upgrade-compatibility-transactional-tests",
+ "crates/sui-types",
+ "crates/sui-upgrade-compatibility-transactional-tests",
# "crates/sui-verifier-transactional-tests",
- # "crates/suins-indexer",
- # "crates/suiop-cli",
+ "crates/suins-indexer",
+ "crates/suiop-cli",
"crates/telemetry-subscribers",
- # "crates/test-cluster",
- # "crates/transaction-fuzzer",
+ "crates/test-cluster",
+ "crates/transaction-fuzzer",
"crates/typed-store",
"crates/typed-store-derive",
"crates/typed-store-error",
- # "crates/x",
- # "narwhal/config",
- # "narwhal/crypto",
- # "narwhal/executor",
- # "narwhal/network",
- # "narwhal/node",
- # "narwhal/primary",
- # "narwhal/storage",
- # "narwhal/test-utils",
- # "narwhal/types",
- # "narwhal/worker",
+ "crates/x",
+ "narwhal/config",
+ "narwhal/crypto",
+ "narwhal/executor",
+ "narwhal/network",
+ "narwhal/node",
+ "narwhal/primary",
+ "narwhal/storage",
+ "narwhal/test-utils",
+ "narwhal/types",
+ "narwhal/worker",
"sui-execution",
- # "sui-execution/cut",
- # "sui-execution/latest/sui-adapter",
- # "sui-execution/latest/sui-move-natives",
- # "sui-execution/latest/sui-verifier",
- # "sui-execution/v0/sui-adapter",
- # "sui-execution/v0/sui-move-natives",
- # "sui-execution/v0/sui-verifier",
- # "sui-execution/v1/sui-adapter",
- # "sui-execution/v1/sui-move-natives",
- # "sui-execution/v1/sui-verifier",
- # "sui-execution/v2/sui-adapter",
- # "sui-execution/v2/sui-move-natives",
- # "sui-execution/v2/sui-verifier",
+ "sui-execution/cut",
+ "sui-execution/latest/sui-adapter",
+ "sui-execution/latest/sui-move-natives",
+ "sui-execution/latest/sui-verifier",
+ "sui-execution/v0/sui-adapter",
+ "sui-execution/v0/sui-move-natives",
+ "sui-execution/v0/sui-verifier",
+ "sui-execution/v1/sui-adapter",
+ "sui-execution/v1/sui-move-natives",
+ "sui-execution/v1/sui-verifier",
+ "sui-execution/v2/sui-adapter",
+ "sui-execution/v2/sui-move-natives",
+ "sui-execution/v2/sui-verifier",
]
[workspace.package]
# This version string will be inherited by sui-core, sui-faucet, sui-node, sui-tools, sui-sdk, sui-move-build, and sui crates.
-version = "1.29.2"
+version = "1.30.1"
[profile.release]
# debug = 1 means line charts only, which is minimum needed for good stack traces
@@ -209,6 +209,11 @@ split-debuginfo = 'packed'
strip = 'debuginfo'
# Exit process with SIGABRT when any thread panics
panic = 'abort'
+# custom
+opt-level = 3
+lto = true
+incremental = false
+codegen-units = 1
# Same as release, but build binary with debug symbols (binary size will be ~ 1GB).
[profile.release-dbgsym]
@@ -216,6 +221,7 @@ inherits = "release"
split-debuginfo = 'off'
strip = 'none'
+
# Inherits from the release profile above.
[profile.bench]
# For convenience.
@@ -227,9 +233,9 @@ strip = 'none'
opt-level = 2
[profile.simulator]
+inherits = "test"
debug = true
debug-assertions = true
-inherits = "test"
overflow-checks = true
# opt-level 1 gives >5x speedup for simulator tests without slowing down build times very much.
opt-level = 1
@@ -237,8 +243,9 @@ opt-level = 1
# Dependencies that should be kept in sync through the whole workspace
[workspace.dependencies]
anyhow = "1.0.71"
+arrow = "52"
+arrow-array = "52"
arc-swap = { version = "1.5.1", features = ["serde"] }
-arrow-array = "50.0.0"
assert_cmd = "2.0.6"
async-graphql = "6.0.7"
async-graphql-axum = "6.0.7"
@@ -247,8 +254,8 @@ async-recursion = "1.0.4"
async-trait = "0.1.61"
atomic_float = "0.1"
aws-config = "0.56"
-aws-sdk-dynamodb = "0.29.0"
aws-sdk-ec2 = "0.29.0"
+aws-sdk-dynamodb = "0.29.0"
aws-sdk-s3 = "0.29.0"
aws-smithy-http = "0.56"
aws-smithy-runtime-api = "0.56"
@@ -290,8 +297,8 @@ cfg-if = "1.0.0"
chrono = { version = "0.4.26", features = ["clock", "serde"] }
clap = { version = "4.4", features = ["derive", "wrap_help"] }
collectable = "0.0.2"
-color-eyre = "0.6.2"
colored = "2.0.0"
+color-eyre = "0.6.2"
comfy-table = "6.1.3"
console-subscriber = "0.2"
const-str = "0.5.3"
@@ -324,6 +331,7 @@ duration-str = "0.5.0"
ed25519 = { version = "1.5.0", features = ["pkcs8", "alloc", "zeroize"] }
ed25519-consensus = { version = "2.0.1", features = ["serde"] }
either = "1.8.0"
+petgraph = "0.5.1"
enum_dispatch = "^0.3"
expect-test = "1.4.0"
eyre = "0.6.8"
@@ -339,7 +347,7 @@ hashbrown = "0.12"
hdrhistogram = "7.5.1"
hex = "0.4.3"
hex-literal = "0.3.4"
-# highlight = "all"
+highlight = "all"
http = "0.2.8"
http-body = "0.4.5"
humantime = "2.1.0"
@@ -355,7 +363,6 @@ integer-encoding = "3.0.1"
ipnetwork = "0.20.0"
itertools = "0.10.5"
jemalloc-ctl = "^0.5"
-json_to_table = { git = "https://github.com/zhiburt/tabled/", rev = "e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" }
jsonrpsee = { git = "https://github.com/wlmyng/jsonrpsee.git", rev = "b1b300784795f6a64d0fcdf8f03081a9bc38bde8", features = [
"server",
"macros",
@@ -363,6 +370,7 @@ jsonrpsee = { git = "https://github.com/wlmyng/jsonrpsee.git", rev = "b1b3007847
"http-client",
"jsonrpsee-core",
] }
+json_to_table = { git = "https://github.com/zhiburt/tabled/", rev = "e449317a1c02eb6b29e409ad6617e5d9eb7b3bd4" }
leb128 = "0.2.5"
lru = "0.10"
markdown-gen = "1.2.1"
@@ -375,8 +383,8 @@ moka = { version = "0.12", default-features = false, features = [
"atomic64",
] }
more-asserts = "0.3.1"
-msim = { git = "https://github.com/MystenLabs/mysten-sim.git", rev = "594c417e3716fc909b71a0a8ffd01ee5b25bf4b0", package = "msim" }
-msim-macros = { git = "https://github.com/MystenLabs/mysten-sim.git", rev = "594c417e3716fc909b71a0a8ffd01ee5b25bf4b0", package = "msim-macros" }
+msim = { git = "https://github.com/MystenLabs/mysten-sim.git", rev = "220f52a15804a768610ac0ae3b8da7de4a5c4d2b", package = "msim" }
+msim-macros = { git = "https://github.com/MystenLabs/mysten-sim.git", rev = "220f52a15804a768610ac0ae3b8da7de4a5c4d2b", package = "msim-macros" }
multiaddr = "0.17.0"
nexlint = { git = "https://github.com/nextest-rs/nexlint.git", rev = "94da5c787636dad779c340affa65219134d127f5" }
nexlint-lints = { git = "https://github.com/nextest-rs/nexlint.git", rev = "94da5c787636dad779c340affa65219134d127f5" }
@@ -386,19 +394,18 @@ ntest = "0.9.0"
num-bigint = "0.4.4"
num_cpus = "1.15.0"
num_enum = "0.6.1"
-object_store = { version = "0.7", features = ["aws", "gcp", "azure", "http"] }
+object_store = { version = "0.10", features = ["aws", "azure", "http"] }
once_cell = "1.18.0"
ouroboros = "0.17"
parking_lot = "0.12.1"
-parquet = "50.0.0"
-petgraph = "0.5.1"
+parquet = "52"
pkcs8 = { version = "0.9.0", features = ["std"] }
pprof = { version = "0.11.0", features = ["cpp", "frame-pointer"] }
pretty_assertions = "1.3.0"
prettytable-rs = "0.10.0"
proc-macro2 = "1.0.47"
prometheus = "0.13.3"
-prometheus-http-query = { version = "0.6.6", default_features = false, features = [
+prometheus-http-query = { version = "0.8", default_features = false, features = [
"rustls-tls",
] }
prometheus-parse = { git = "https://github.com/asonnino/prometheus-parser.git", rev = "75334db" }
@@ -408,13 +415,13 @@ prost = "0.12.3"
prost-build = "0.12.3"
protobuf = { version = "2.28", features = ["with-bytes"] }
protobuf-src = "1.1.0"
-quinn-proto = "^0.10.5"
+quinn-proto = "0.11"
quote = "1.0.23"
rand = "0.8.5"
-rayon = "1.10.0"
+rayon = "1.5.3"
rcgen = "0.9.2"
regex = "1.7.1"
-reqwest = { version = "0.11.20", default_features = false, features = [
+reqwest = { version = "0.12", default_features = false, features = [
"blocking",
"json",
"rustls-tls",
@@ -445,6 +452,7 @@ rustyline = "9.1.2"
rustyline-derive = "0.7.0"
schemars = { version = "0.8.21", features = ["either"] }
scopeguard = "1.1"
+serial_test = "2.0.0"
serde = { version = "1.0.144", features = ["derive", "rc"] }
serde-name = "0.2.1"
serde-reflection = "0.3.6"
@@ -454,8 +462,7 @@ serde_json = { version = "1.0.95", features = [
] }
serde_repr = "0.1"
serde_test = "1.0.147"
-serde_with = { version = "2.1.0", features = ["hex"] }
-serial_test = "2.0.0"
+serde_with = "3.8"
# serde_yaml = "0.9.21"
serde_yaml = "0.8.26"
shell-words = "1.1.0"
@@ -465,6 +472,7 @@ similar = "2.4.0"
slip10_ed25519 = "0.1.3"
smallvec = "1.10.0"
snap = "1.1.0"
+snowflake-api = "0.9.0"
static_assertions = "1.1.0"
strum = { version = "0.24", features = ["derive"] }
strum_macros = "0.24.3"
@@ -506,10 +514,8 @@ tower-http = { version = "0.3.4", features = [
"set-header",
"propagate-header",
] }
-# tower-http = { version="0.4", features = ["trace"] }
-linked-hash-map = "0.5.6"
-shlex = "1.3.0"
tower-layer = "0.3.2"
+twox-hash = "1.6.3"
tracing = "0.1.37"
tracing-appender = "0.2.2"
tracing-subscriber = { version = "0.3.15", default-features = false, features = [
@@ -523,53 +529,53 @@ tracing-subscriber = { version = "0.3.15", default-features = false, features =
"env-filter",
] }
ttl_cache = "0.5.1"
-twox-hash = "1.6.3"
uint = "0.9.4"
unescape = "0.1.0"
ureq = "2.9.1"
url = "2.3.1"
uuid = { version = "1.1.2", features = ["v4", "fast-rng"] }
-versions = "4.1.0"
webpki = { version = "0.101.0", package = "rustls-webpki", features = [
"alloc",
"std",
] }
x509-parser = "0.14.0"
-zeroize = "1.6.0"
zstd = "0.12.3"
+zeroize = "1.6.0"
+versions = "4.1.0"
+linked-hash-map = "0.5.6"
+shlex = "1.3.0"
+
# Move dependencies
-move-abstract-interpreter = { path = "external-crates/move/crates/move-abstract-interpreter" }
-move-abstract-stack = { path = "external-crates/move/crates/move-abstract-stack" }
-move-analyzer = { path = "external-crates/move/crates/move-analyzer" }
move-binary-format = { path = "external-crates/move/crates/move-binary-format" }
move-bytecode-utils = { path = "external-crates/move/crates/move-bytecode-utils" }
-# move-bytecode-source-map = { path = "external-crates/move/crates/move-bytecode-source-map" }
+move-bytecode-source-map = { path = "external-crates/move/crates/move-bytecode-source-map" }
move-bytecode-verifier-meter = { path = "external-crates/move/crates/move-bytecode-verifier-meter" }
move-cli = { path = "external-crates/move/crates/move-cli" }
-move-command-line-common = { path = "external-crates/move/crates/move-command-line-common" }
move-compiler = { path = "external-crates/move/crates/move-compiler" }
move-core-types = { path = "external-crates/move/crates/move-core-types" }
move-disassembler = { path = "external-crates/move/crates/move-disassembler" }
-move-ir-types = { path = "external-crates/move/crates/move-ir-types" }
move-package = { path = "external-crates/move/crates/move-package" }
-move-prover = { path = "external-crates/move/crates/move-prover" }
-move-stackless-bytecode = { path = "external-crates/move/crates/move-stackless-bytecode" }
-move-symbol-pool = { path = "external-crates/move/crates/move-symbol-pool" }
-move-transactional-test-runner = { path = "external-crates/move/crates/move-transactional-test-runner" }
move-unit-test = { path = "external-crates/move/crates/move-unit-test" }
move-vm-config = { path = "external-crates/move/crates/move-vm-config" }
-move-vm-profiler = { path = "external-crates/move/crates/move-vm-profiler" }
move-vm-test-utils = { path = "external-crates/move/crates/move-vm-test-utils/", features = [
"tiered-gas",
] }
move-vm-types = { path = "external-crates/move/crates/move-vm-types" }
-# move-transactional-test-runner = { path = "external-crates/move/crates/move-transactional-test-runner" }
-# move-stackless-bytecode = { path = "external-crates/move/crates/move-stackless-bytecode" }
-# move-analyzer = { path = "external-crates/move/crates/move-analyzer" }
-fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "55e7e568842939e01c8545a71d72e2402ad74538" }
-fastcrypto-tbls = { git = "https://github.com/MystenLabs/fastcrypto", rev = "55e7e568842939e01c8545a71d72e2402ad74538" }
-fastcrypto-zkp = { git = "https://github.com/MystenLabs/fastcrypto", rev = "55e7e568842939e01c8545a71d72e2402ad74538", package = "fastcrypto-zkp" }
-fastcrypto-vdf = { git = "https://github.com/MystenLabs/fastcrypto", rev = "55e7e568842939e01c8545a71d72e2402ad74538", features = [
+move-vm-profiler = { path = "external-crates/move/crates/move-vm-profiler" }
+move-command-line-common = { path = "external-crates/move/crates/move-command-line-common" }
+move-transactional-test-runner = { path = "external-crates/move/crates/move-transactional-test-runner" }
+move-ir-types = { path = "external-crates/move/crates/move-ir-types" }
+move-prover = { path = "external-crates/move/crates/move-prover" }
+move-stackless-bytecode = { path = "external-crates/move/crates/move-stackless-bytecode" }
+move-symbol-pool = { path = "external-crates/move/crates/move-symbol-pool" }
+move-abstract-interpreter = { path = "external-crates/move/crates/move-abstract-interpreter" }
+move-abstract-stack = { path = "external-crates/move/crates/move-abstract-stack" }
+move-analyzer = { path = "external-crates/move/crates/move-analyzer" }
+
+fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "5f2c63266a065996d53f98156f0412782b468597" }
+fastcrypto-tbls = { git = "https://github.com/MystenLabs/fastcrypto", rev = "5f2c63266a065996d53f98156f0412782b468597" }
+fastcrypto-zkp = { git = "https://github.com/MystenLabs/fastcrypto", rev = "5f2c63266a065996d53f98156f0412782b468597", package = "fastcrypto-zkp" }
+fastcrypto-vdf = { git = "https://github.com/MystenLabs/fastcrypto", rev = "5f2c63266a065996d53f98156f0412782b468597", features = [
"experimental",
] }
passkey-types = { version = "0.2.0" }
@@ -578,54 +584,51 @@ passkey-authenticator = { version = "0.2.0" }
coset = "0.3"
p256 = { version = "0.13.2", features = ["ecdsa"] }
-# # anemo dependencies
-anemo = { git = "https://github.com/mystenlabs/anemo.git", rev = "26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" }
-anemo-build = { git = "https://github.com/mystenlabs/anemo.git", rev = "26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" }
-# anemo-cli = { git = "https://github.com/mystenlabs/anemo.git", rev = "26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" }
-anemo-tower = { git = "https://github.com/mystenlabs/anemo.git", rev = "26d415eb9aa6a2417be3c03c57d6e93c30bd1ad7" }
+# anemo dependencies
+anemo = { git = "https://github.com/mystenlabs/anemo.git", rev = "dbb5a074c2d25660525ab5d36d65ff0cb8051949" }
+anemo-build = { git = "https://github.com/mystenlabs/anemo.git", rev = "dbb5a074c2d25660525ab5d36d65ff0cb8051949" }
+anemo-cli = { git = "https://github.com/mystenlabs/anemo.git", rev = "dbb5a074c2d25660525ab5d36d65ff0cb8051949" }
+anemo-tower = { git = "https://github.com/mystenlabs/anemo.git", rev = "dbb5a074c2d25660525ab5d36d65ff0cb8051949" }
# core-types with json format for REST api
-sui-sdk2 = { package = "sui-sdk", git = "https://github.com/mystenlabs/sui-rust-sdk.git", rev = "be6a30039723bf8fabd64a8869b7e89596141551", features = [
+sui-sdk2 = { package = "sui-sdk", git = "https://github.com/mystenlabs/sui-rust-sdk.git", rev = "9a125ed5764fb5bcc1acb6074064bc8f9ea85b38", features = [
+ "hash",
"serde",
"schemars",
] }
### Workspace Members ###
-# anemo-benchmark = { path = "crates/anemo-benchmark" }
+anemo-benchmark = { path = "crates/anemo-benchmark" }
bin-version = { path = "crates/bin-version" }
mysten-common = { path = "crates/mysten-common" }
mysten-metrics = { path = "crates/mysten-metrics" }
mysten-network = { path = "crates/mysten-network" }
-# mysten-service = { path = "crates/mysten-service" }
+mysten-service = { path = "crates/mysten-service" }
mysten-util-mem = { path = "crates/mysten-util-mem" }
mysten-util-mem-derive = { path = "crates/mysten-util-mem-derive" }
prometheus-closure-metric = { path = "crates/prometheus-closure-metric" }
shared-crypto = { path = "crates/shared-crypto" }
simulacrum = { path = "crates/simulacrum" }
-# sui = { path = "crates/sui" }
+sui = { path = "crates/sui" }
# sui-adapter-transactional-tests = { path = "crates/sui-adapter-transactional-tests" }
# sui-analytics-indexer = { path = "crates/sui-analytics-indexer" }
# sui-analytics-indexer-derive = { path = "crates/sui-analytics-indexer-derive" }
sui-archival = { path = "crates/sui-archival" }
sui-authority-aggregation = { path = "crates/sui-authority-aggregation" }
-# sui-benchmark = { path = "crates/sui-benchmark" }
+sui-benchmark = { path = "crates/sui-benchmark" }
sui-bridge = { path = "crates/sui-bridge" }
# sui-cluster-test = { path = "crates/sui-cluster-test" }
-sui-common = { path = "crates/sui-common" }
sui-config = { path = "crates/sui-config" }
sui-core = { path = "crates/sui-core" }
-# sui-cost = { path = "crates/sui-cost" }
-# sui-data-ingestion = { path = "crates/sui-data-ingestion" }
+sui-cost = { path = "crates/sui-cost" }
+sui-data-ingestion = { path = "crates/sui-data-ingestion" }
sui-data-ingestion-core = { path = "crates/sui-data-ingestion-core" }
+sui-e2e-tests = { path = "crates/sui-e2e-tests" }
sui-enum-compat-util = { path = "crates/sui-enum-compat-util" }
-# sui-faucet = { path = "crates/sui-faucet" }
+sui-faucet = { path = "crates/sui-faucet" }
sui-framework = { path = "crates/sui-framework" }
sui-framework-snapshot = { path = "crates/sui-framework-snapshot" }
-sui-graphql-config = { path = "crates/sui-graphql-config" }
-sui-graphql-rpc = { path = "crates/sui-graphql-rpc" }
-sui-graphql-rpc-client = { path = "crates/sui-graphql-rpc-client" }
-sui-graphql-rpc-headers = { path = "crates/sui-graphql-rpc-headers" }
-# sui-framework-tests = { path = "crates/sui-framework-tests" }
+sui-framework-tests = { path = "crates/sui-framework-tests" }
# sui-graphql-config = { path = "crates/sui-graphql-config" }
# sui-graphql-rpc = { path = "crates/sui-graphql-rpc" }
# sui-graphql-rpc-client = { path = "crates/sui-graphql-rpc-client" }
@@ -641,7 +644,7 @@ sui-macros = { path = "crates/sui-macros" }
# sui-metric-checker = { path = "crates/sui-metric-checker" }
sui-move = { path = "crates/sui-move" }
sui-move-build = { path = "crates/sui-move-build" }
-# sui-move-lsp = { path = "crates/sui-move-lsp" }
+sui-move-lsp = { path = "crates/sui-move-lsp" }
sui-network = { path = "crates/sui-network" }
sui-node = { path = "crates/sui-node" }
sui-open-rpc = { path = "crates/sui-open-rpc" }
@@ -651,38 +654,38 @@ sui-package-resolver = { path = "crates/sui-package-resolver" }
sui-proc-macros = { path = "crates/sui-proc-macros" }
sui-protocol-config = { path = "crates/sui-protocol-config" }
sui-protocol-config-macros = { path = "crates/sui-protocol-config-macros" }
-# sui-proxy = { path = "crates/sui-proxy" }
-# sui-replay = { path = "crates/sui-replay" }
-# sui-rosetta = { path = "crates/sui-rosetta" }
-# sui-rpc-loadgen = { path = "crates/sui-rpc-loadgen" }
+sui-proxy = { path = "crates/sui-proxy" }
+sui-replay = { path = "crates/sui-replay" }
+sui-rosetta = { path = "crates/sui-rosetta" }
+sui-rpc-loadgen = { path = "crates/sui-rpc-loadgen" }
sui-sdk = { path = "crates/sui-sdk" }
sui-simulator = { path = "crates/sui-simulator" }
sui-snapshot = { path = "crates/sui-snapshot" }
-# sui-source-validation = { path = "crates/sui-source-validation" }
-# sui-source-validation-service = { path = "crates/sui-source-validation-service" }
+sui-source-validation = { path = "crates/sui-source-validation" }
+sui-source-validation-service = { path = "crates/sui-source-validation-service" }
sui-storage = { path = "crates/sui-storage" }
-# sui-surfer = { path = "crates/sui-surfer" }
+sui-surfer = { path = "crates/sui-surfer" }
sui-swarm = { path = "crates/sui-swarm" }
sui-swarm-config = { path = "crates/sui-swarm-config" }
sui-telemetry = { path = "crates/sui-telemetry" }
sui-test-transaction-builder = { path = "crates/sui-test-transaction-builder" }
-# sui-test-validator = { path = "crates/sui-test-validator" }
+sui-test-validator = { path = "crates/sui-test-validator" }
sui-tls = { path = "crates/sui-tls" }
sui-rest-api = { path = "crates/sui-rest-api" }
-# sui-tool = { path = "crates/sui-tool" }
+sui-tool = { path = "crates/sui-tool" }
sui-transaction-builder = { path = "crates/sui-transaction-builder" }
sui-transaction-checks = { path = "crates/sui-transaction-checks" }
# sui-transactional-test-runner = { path = "crates/sui-transactional-test-runner" }
sui-types = { path = "crates/sui-types" }
-# sui-upgrade-compatibility-transactional-tests = { path = "crates/sui-upgrade-compatibility-transactional-tests" }
+sui-upgrade-compatibility-transactional-tests = { path = "crates/sui-upgrade-compatibility-transactional-tests" }
# sui-verifier-transactional-tests = { path = "crates/sui-verifier-transactional-tests" }
telemetry-subscribers = { path = "crates/telemetry-subscribers" }
test-cluster = { path = "crates/test-cluster" }
-# transaction-fuzzer = { path = "crates/transaction-fuzzer" }
+transaction-fuzzer = { path = "crates/transaction-fuzzer" }
typed-store = { path = "crates/typed-store" }
typed-store-derive = { path = "crates/typed-store-derive" }
typed-store-error = { path = "crates/typed-store-error" }
-# x = { path = "crates/x" }
+x = { path = "crates/x" }
consensus-config = { path = "consensus/config" }
consensus-core = { path = "consensus/core" }
@@ -692,8 +695,8 @@ narwhal-crypto = { path = "narwhal/crypto" }
narwhal-executor = { path = "narwhal/executor" }
narwhal-network = { path = "narwhal/network" }
narwhal-node = { path = "narwhal/node" }
-# narwhal-primary = { path = "narwhal/primary" }
-# narwhal-storage = { path = "narwhal/storage" }
+narwhal-primary = { path = "narwhal/primary" }
+narwhal-storage = { path = "narwhal/storage" }
narwhal-test-utils = { path = "narwhal/test-utils" }
narwhal-types = { path = "narwhal/types" }
narwhal-worker = { path = "narwhal/worker" }
@@ -706,12 +709,14 @@ sui-execution = { path = "sui-execution" }
# move-vm-runtime = { path = "external-crates/move/move-vm/runtime" }
# move-bytecode-verifier = { path = "external-crates/move/move-bytecode-verifier" }
-
-odin = { git = "ssh://git@github.com/nightly-labs/alexandria.git", rev = "ce64446", package = "odin" }
-
# suiop dependencies
docker-api = "0.12.2"
field_names = "0.2.0"
-include_dir = "0.7.3"
semver = "1.0.16"
spinners = "4.1.0"
+include_dir = "0.7.3"
+
+odin = { git = "ssh://git@github.com/nightly-labs/alexandria.git", rev = "ce64446", package = "odin" }
+
+[patch.crates-io]
+quinn-proto = { git = "https://github.com/quinn-rs/quinn.git", rev = "f0fa66f871b80b9d2d7075d76967c649aecc0b77" }
diff --git a/SECURITY.md b/SECURITY.md
index 7d99223164226..acb097c361d21 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -84,7 +84,7 @@ Bug reports covering previously-discovered bugs are not eligible for any reward
| ------------- | ------------- |
| In our staking contract, we have the concept of pool tokens and keep track of exchange rates between pool tokens and SUI tokens of all epochs, which increase as more rewards are added to the staking pools. When a user withdraws their stake, we retrieve from that record both the exchange rate at staking time and the current exchange rate (at withdrawing time), and calculate the rewards to be paid out based on the difference in exchange rates. While doing this calculation, we do conversions both ways: pool tokens -> SUI and SUI -> pool tokens. Rounding may happen along the way due to integer division. The exchange rate between the two tokens should stay roughly the same since we will be burning a proportional amount of pool tokens as SUI is withdrawn. However, in the extreme case where a user is unstaking 1 MIST, this rounding error may cause ZERO pool tokens to be burnt, causing the pool token to effectively depreciate. If an attacker has a lot of 1 MIST stakes, they can withdraw them one by one, causing the pool token exchange rate to drop and other takers to “lose” their staking rewards. I put quotation marks around “lose” because the attacker themselves won’t get any of that rewards so this attacker doesn’t actually make economic sense. Rather the rewards stay in the rewards pool and will become dust. This issue is mitigated by enforcing a minimum staking amount of 1 SUI or 10^9 MIST in this PR: https://github.com/MystenLabs/sui/pull/9961 | Critical - Any other issue leading to theft or loss of valuable objects, with severity depending on the consequences of the issue and the preconditions for exploiting it |
| Excessive storage rebate on 0x5 object right after epoch change:
-Each on-chain object is associated with a storage rebate, which would be refunded to the owner if it ever gets deleted. Epoch change transactions are special in that they are system transactions without a sender, hence any excessive storage rebate generated in that transaction is kept in the 0x5 object. This means that the first person touching the 0x5 object in each epoch may be able to obtain those excessive rebate by simply touching this object (e.g. a failed staking request). We will look into a way to evenly distribute those excessive rebates such that is does not lead to any undesired behaviors. | |
+Each on-chain object is associated with a storage rebate, which would be refunded to the owner if it ever gets deleted. Epoch change transactions are special in that they are system transactions without a sender, hence any storage rebate generated in that transaction is kept in the 0x5 object. This means that the first person touching the 0x5 object in each epoch may be able to obtain these storage rebates by simply touching this object (e.g. a failed staking request). We will look into a way to evenly distribute any these rebates such that it does not lead to any undesired behaviors. | |
| Crash Validator by providing a gas price of u64:max | Network not being able to confirm new transactions (total network shutdown) |
diff --git a/apps/wallet/src/shared/experimentation/features.ts b/apps/wallet/src/shared/experimentation/features.ts
index d887ea49262dd..44168f162820a 100644
--- a/apps/wallet/src/shared/experimentation/features.ts
+++ b/apps/wallet/src/shared/experimentation/features.ts
@@ -29,6 +29,7 @@ export enum FEATURES {
WALLET_DEFI = 'wallet-defi',
WALLET_FEE_ADDRESS = 'wallet-fee-address',
DEEP_BOOK_CONFIGS = 'deep-book-configs',
+ TOKEN_METADATA_OVERRIDES = 'token-metadata-overrides',
}
export function setAttributes(network?: { apiEnv: API_ENV; customRPC?: string | null }) {
diff --git a/apps/wallet/src/ui/app/components/coin-icon/index.tsx b/apps/wallet/src/ui/app/components/coin-icon/index.tsx
index 4f11b17f47b26..7a4fc107c09a3 100644
--- a/apps/wallet/src/ui/app/components/coin-icon/index.tsx
+++ b/apps/wallet/src/ui/app/components/coin-icon/index.tsx
@@ -7,6 +7,8 @@ import { Sui, Unstaked } from '@mysten/icons';
import { SUI_TYPE_ARG } from '@mysten/sui/utils';
import { cva, type VariantProps } from 'class-variance-authority';
+import { useCoinMetadataOverrides } from '../../hooks/useCoinMetadataOverride';
+
const imageStyle = cva(['rounded-full flex'], {
variants: {
size: {
@@ -38,11 +40,13 @@ type NonSuiCoinProps = {
function NonSuiCoin({ coinType }: NonSuiCoinProps) {
const { data: coinMeta } = useCoinMetadata(coinType);
+ const coinMetadataOverrides = useCoinMetadataOverrides();
+
return (
{coinMeta?.iconUrl ? (
(
+ FEATURES.TOKEN_METADATA_OVERRIDES,
+ ).value;
+
+ return coinMetadataOverrides || {};
+}
diff --git a/apps/wallet/src/ui/app/pages/home/tokens/TokensDetails.tsx b/apps/wallet/src/ui/app/pages/home/tokens/TokensDetails.tsx
index b2676a7fe0816..0f33077f2d644 100644
--- a/apps/wallet/src/ui/app/pages/home/tokens/TokensDetails.tsx
+++ b/apps/wallet/src/ui/app/pages/home/tokens/TokensDetails.tsx
@@ -27,6 +27,7 @@ import { AccountsList } from '_src/ui/app/components/accounts/AccountsList';
import { UnlockAccountButton } from '_src/ui/app/components/accounts/UnlockAccountButton';
import { BuyNLargeHomePanel } from '_src/ui/app/components/buynlarge/HomePanel';
import { useActiveAccount } from '_src/ui/app/hooks/useActiveAccount';
+import { useCoinMetadataOverrides } from '_src/ui/app/hooks/useCoinMetadataOverride';
import { usePinnedCoinTypes } from '_src/ui/app/hooks/usePinnedCoinTypes';
import FaucetRequestButton from '_src/ui/app/shared/faucet/FaucetRequestButton';
import PageTitle from '_src/ui/app/shared/PageTitle';
@@ -120,6 +121,7 @@ export function TokenRow({
const isRenderSwapButton = allowedSwapCoinsList.includes(coinType);
+ const coinMetadataOverrides = useCoinMetadataOverrides();
return (
- {coinMeta?.name || symbol}
+ {coinMetadataOverrides[coinBalance.coinType]?.name || coinMeta?.name || symbol}
{renderActions && (
diff --git a/binary-build-list.json b/binary-build-list.json
index 4855c1b2a220b..344be336436a8 100644
--- a/binary-build-list.json
+++ b/binary-build-list.json
@@ -7,7 +7,6 @@
"sui-data-ingestion",
"sui-bridge",
"sui-bridge-cli",
- "sui-graphql-rpc",
"sui-test-validator",
"move-analyzer"
],
diff --git a/bridge/move/tokens/btc/Move.toml b/bridge/move/tokens/btc/Move.toml
index cbd69d8556431..47824231423d3 100644
--- a/bridge/move/tokens/btc/Move.toml
+++ b/bridge/move/tokens/btc/Move.toml
@@ -1,6 +1,7 @@
[package]
name = "BridgedBTC"
version = "0.0.1"
+edition = "legacy"
[dependencies]
MoveStdlib = { local = "../../../../crates/sui-framework/packages/move-stdlib" }
@@ -8,4 +9,3 @@ Sui = { local = "../../../../crates/sui-framework/packages/sui-framework" }
[addresses]
bridged_btc = "0x0"
-
diff --git a/bridge/move/tokens/eth/Move.toml b/bridge/move/tokens/eth/Move.toml
index 215aa37ce8687..1a21898cc0355 100644
--- a/bridge/move/tokens/eth/Move.toml
+++ b/bridge/move/tokens/eth/Move.toml
@@ -1,6 +1,7 @@
[package]
name = "BridgedETH"
version = "0.0.1"
+edition = "legacy"
[dependencies]
MoveStdlib = { local = "../../../../crates/sui-framework/packages/move-stdlib" }
@@ -8,4 +9,3 @@ Sui = { local = "../../../../crates/sui-framework/packages/sui-framework" }
[addresses]
bridged_eth = "0x0"
-
diff --git a/bridge/move/tokens/mock/ka/Move.toml b/bridge/move/tokens/mock/ka/Move.toml
index ad08496bd39e1..1fbdf04ca2975 100644
--- a/bridge/move/tokens/mock/ka/Move.toml
+++ b/bridge/move/tokens/mock/ka/Move.toml
@@ -1,6 +1,7 @@
[package]
name = "BridgedKa"
version = "0.0.1"
+edition = "legacy"
[dependencies]
MoveStdlib = { local = "../../../../../crates/sui-framework/packages/move-stdlib" }
@@ -8,4 +9,3 @@ Sui = { local = "../../../../../crates/sui-framework/packages/sui-framework" }
[addresses]
bridged_ka = "0x0"
-
diff --git a/bridge/move/tokens/usdc/Move.toml b/bridge/move/tokens/usdc/Move.toml
index e98ae4d71c621..a956409c0839f 100644
--- a/bridge/move/tokens/usdc/Move.toml
+++ b/bridge/move/tokens/usdc/Move.toml
@@ -1,6 +1,7 @@
[package]
name = "BridgedUSDC"
version = "0.0.1"
+edition = "legacy"
[dependencies]
MoveStdlib = { local = "../../../../crates/sui-framework/packages/move-stdlib" }
@@ -8,4 +9,3 @@ Sui = { local = "../../../../crates/sui-framework/packages/sui-framework" }
[addresses]
bridged_usdc = "0x0"
-
diff --git a/bridge/move/tokens/usdt/Move.toml b/bridge/move/tokens/usdt/Move.toml
index 699123ddb0325..1d86a908fdd8e 100644
--- a/bridge/move/tokens/usdt/Move.toml
+++ b/bridge/move/tokens/usdt/Move.toml
@@ -1,6 +1,7 @@
[package]
name = "BridgedUSDT"
version = "0.0.1"
+edition = "legacy"
[dependencies]
MoveStdlib = { local = "../../../../crates/sui-framework/packages/move-stdlib" }
@@ -8,4 +9,3 @@ Sui = { local = "../../../../crates/sui-framework/packages/sui-framework" }
[addresses]
bridged_usdt = "0x0"
-
diff --git a/consensus/config/src/parameters.rs b/consensus/config/src/parameters.rs
index 46eb809b9263b..4b3a85906c19a 100644
--- a/consensus/config/src/parameters.rs
+++ b/consensus/config/src/parameters.rs
@@ -14,9 +14,10 @@ use serde::{Deserialize, Serialize};
/// should not need to specify any field, except db_path.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Parameters {
- /// The database path.
- /// Required.
- pub db_path: Option
,
+ /// Path to consensus DB for this epoch. Required when initializing consensus.
+ /// This is calculated based on user configuration for base directory.
+ #[serde(skip)]
+ pub db_path: PathBuf,
/// Time to wait for parent round leader before sealing a block.
#[serde(default = "Parameters::default_leader_timeout")]
@@ -143,7 +144,7 @@ impl Parameters {
impl Default for Parameters {
fn default() -> Self {
Self {
- db_path: None,
+ db_path: PathBuf::default(),
leader_timeout: Parameters::default_leader_timeout(),
min_round_delay: Parameters::default_min_round_delay(),
max_forward_time_drift: Parameters::default_max_forward_time_drift(),
diff --git a/consensus/config/tests/snapshots/parameters_test__parameters.snap b/consensus/config/tests/snapshots/parameters_test__parameters.snap
index 094e39364a10e..b764571ffe0a2 100644
--- a/consensus/config/tests/snapshots/parameters_test__parameters.snap
+++ b/consensus/config/tests/snapshots/parameters_test__parameters.snap
@@ -2,7 +2,6 @@
source: consensus/config/tests/parameters_test.rs
expression: parameters
---
-db_path: ~
leader_timeout:
secs: 0
nanos: 250000000
@@ -29,4 +28,3 @@ tonic:
sync_last_proposed_block_timeout:
secs: 0
nanos: 0
-
diff --git a/consensus/core/src/authority_node.rs b/consensus/core/src/authority_node.rs
index 4cfbbccfac4b7..06e57b10c0846 100644
--- a/consensus/core/src/authority_node.rs
+++ b/consensus/core/src/authority_node.rs
@@ -182,14 +182,7 @@ where
))
};
- let store_path = context
- .parameters
- .db_path
- .as_ref()
- .expect("DB path is not set")
- .as_path()
- .to_str()
- .unwrap();
+ let store_path = context.parameters.db_path.as_path().to_str().unwrap();
let store = Arc::new(RocksDBStore::new(store_path));
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store.clone())));
@@ -244,15 +237,16 @@ where
let leader_timeout_handle =
LeaderTimeoutTask::start(core_dispatcher.clone(), &signals_receivers, context.clone());
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let synchronizer = Synchronizer::start(
network_client.clone(),
context.clone(),
core_dispatcher.clone(),
+ commit_vote_monitor.clone(),
block_verifier.clone(),
dag_state.clone(),
);
- let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let commit_syncer = CommitSyncer::new(
context.clone(),
core_dispatcher.clone(),
@@ -318,7 +312,7 @@ where
);
// First shutdown components calling into Core.
- self.synchronizer.stop().await;
+ self.synchronizer.stop().await.ok();
self.commit_syncer.stop().await;
self.leader_timeout_handle.stop().await;
// Shutdown Core to stop block productions and broadcast.
@@ -349,6 +343,7 @@ where
mod tests {
#![allow(non_snake_case)]
+ use std::sync::Mutex;
use std::{collections::BTreeSet, sync::Arc, time::Duration};
use consensus_config::{local_committee_and_keys, Parameters};
@@ -373,7 +368,7 @@ mod tests {
let temp_dir = TempDir::new().unwrap();
let parameters = Parameters {
- db_path: Some(temp_dir.into_path()),
+ db_path: temp_dir.into_path(),
..Default::default()
};
let txn_verifier = NoopTransactionVerifier {};
@@ -494,6 +489,170 @@ mod tests {
}
}
+ #[rstest]
+ #[tokio::test(flavor = "current_thread")]
+ async fn test_amnesia_success(
+ #[values(ConsensusNetwork::Anemo, ConsensusNetwork::Tonic)] network_type: ConsensusNetwork,
+ ) {
+ telemetry_subscribers::init_for_testing();
+ let db_registry = Registry::new();
+ DBMetrics::init(&db_registry);
+
+ let (committee, keypairs) = local_committee_and_keys(0, vec![1, 1, 1, 1]);
+ let mut output_receivers = vec![];
+ let mut authorities = vec![];
+
+ for (index, _authority_info) in committee.authorities() {
+ let (authority, receiver) = make_authority(
+ index,
+ &TempDir::new().unwrap(),
+ committee.clone(),
+ keypairs.clone(),
+ network_type,
+ )
+ .await;
+ output_receivers.push(receiver);
+ authorities.push(authority);
+ }
+
+ const NUM_TRANSACTIONS: u8 = 15;
+ let mut submitted_transactions = BTreeSet::>::new();
+ for i in 0..NUM_TRANSACTIONS {
+ let txn = vec![i; 16];
+ submitted_transactions.insert(txn.clone());
+ authorities[i as usize % authorities.len()]
+ .transaction_client()
+ .submit(vec![txn])
+ .await
+ .unwrap();
+ }
+
+ for receiver in &mut output_receivers {
+ let mut expected_transactions = submitted_transactions.clone();
+ loop {
+ let committed_subdag =
+ tokio::time::timeout(Duration::from_secs(1), receiver.recv())
+ .await
+ .unwrap()
+ .unwrap();
+ for b in committed_subdag.blocks {
+ for txn in b.transactions().iter().map(|t| t.data().to_vec()) {
+ assert!(
+ expected_transactions.remove(&txn),
+ "Transaction not submitted or already seen: {:?}",
+ txn
+ );
+ }
+ }
+ assert_eq!(committed_subdag.reputation_scores_desc, vec![]);
+ if expected_transactions.is_empty() {
+ break;
+ }
+ }
+ }
+
+ // Stop authority 1.
+ let index = committee.to_authority_index(1).unwrap();
+ authorities.remove(index.value()).stop().await;
+ sleep(Duration::from_secs(5)).await;
+
+ // now create a new directory to simulate amnesia. The node will start having participated previously
+ // to consensus but now will attempt to synchronize the last own block and recover from there.
+ let (authority, mut receiver) = make_authority(
+ index,
+ &TempDir::new().unwrap(),
+ committee.clone(),
+ keypairs,
+ network_type,
+ )
+ .await;
+ authorities.insert(index.value(), authority);
+ sleep(Duration::from_secs(5)).await;
+
+ // We wait until we see at least one committed block authored from this authority
+ 'outer: while let Some(result) = receiver.recv().await {
+ for block in result.blocks {
+ if block.author() == index {
+ break 'outer;
+ }
+ }
+ }
+
+ // Stop all authorities and exit.
+ for authority in authorities {
+ authority.stop().await;
+ }
+ }
+
+ #[rstest]
+ #[tokio::test]
+ async fn test_amnesia_failure(
+ #[values(ConsensusNetwork::Anemo, ConsensusNetwork::Tonic)] network_type: ConsensusNetwork,
+ ) {
+ telemetry_subscribers::init_for_testing();
+
+ let occurred_panic = Arc::new(Mutex::new(None));
+ let occurred_panic_cloned = occurred_panic.clone();
+
+ let default_panic_handler = std::panic::take_hook();
+ std::panic::set_hook(Box::new(move |panic| {
+ let mut l = occurred_panic_cloned.lock().unwrap();
+ *l = Some(panic.to_string());
+ default_panic_handler(panic);
+ }));
+
+ let db_registry = Registry::new();
+ DBMetrics::init(&db_registry);
+
+ let (committee, keypairs) = local_committee_and_keys(0, vec![1, 1, 1, 1]);
+ let mut output_receivers = vec![];
+ let mut authorities = vec![];
+
+ for (index, _authority_info) in committee.authorities() {
+ let (authority, receiver) = make_authority(
+ index,
+ &TempDir::new().unwrap(),
+ committee.clone(),
+ keypairs.clone(),
+ network_type,
+ )
+ .await;
+ output_receivers.push(receiver);
+ authorities.push(authority);
+ }
+
+ // Let the network run for a few seconds
+ sleep(Duration::from_secs(5)).await;
+
+ // Stop all authorities
+ while let Some(authority) = authorities.pop() {
+ authority.stop().await;
+ }
+
+ sleep(Duration::from_secs(2)).await;
+
+ let index = AuthorityIndex::new_for_test(0);
+ let (_authority, _receiver) = make_authority(
+ index,
+ &TempDir::new().unwrap(),
+ committee,
+ keypairs,
+ network_type,
+ )
+ .await;
+ sleep(Duration::from_secs(5)).await;
+
+ // Now reset the panic hook
+ let _default_panic_handler = std::panic::take_hook();
+
+ // We expect this test to panic as all the other peers are down and the node that tries to
+ // recover its last produced block fails.
+ let panic_info = occurred_panic.lock().unwrap().take().unwrap();
+ assert!(panic_info.contains(
+ "No peer has returned any acceptable result, can not safely update min round"
+ ));
+ }
+
// TODO: create a fixture
async fn make_authority(
index: AuthorityIndex,
@@ -506,10 +665,11 @@ mod tests {
// Cache less blocks to exercise commit sync.
let parameters = Parameters {
- db_path: Some(db_dir.path().to_path_buf()),
+ db_path: db_dir.path().to_path_buf(),
dag_state_cached_rounds: 5,
commit_sync_parallel_fetches: 3,
commit_sync_batch_size: 3,
+ sync_last_proposed_block_timeout: Duration::from_millis(2_000),
..Default::default()
};
let txn_verifier = NoopTransactionVerifier {};
diff --git a/consensus/core/src/authority_service.rs b/consensus/core/src/authority_service.rs
index 8c158e249200c..feac2741570cc 100644
--- a/consensus/core/src/authority_service.rs
+++ b/consensus/core/src/authority_service.rs
@@ -29,6 +29,8 @@ use crate::{
CommitIndex, Round,
};
+pub(crate) const COMMIT_LAG_MULTIPLIER: u32 = 5;
+
/// Authority's network service implementation, agnostic to the actual networking stack used.
pub(crate) struct AuthorityService {
context: Arc,
@@ -182,7 +184,6 @@ impl NetworkService for AuthorityService {
let quorum_commit_index = self.commit_vote_monitor.quorum_commit_index();
// The threshold to ignore block should be larger than commit_sync_batch_size,
// to avoid excessive block rejections and synchronizations.
- const COMMIT_LAG_MULTIPLIER: u32 = 5;
if last_commit_index
+ self.context.parameters.commit_sync_batch_size * COMMIT_LAG_MULTIPLIER
< quorum_commit_index
@@ -693,10 +694,12 @@ mod tests {
let network_client = Arc::new(FakeNetworkClient::default());
let store = Arc::new(MemStore::new());
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store.clone())));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let synchronizer = Synchronizer::start(
network_client,
context.clone(),
core_dispatcher.clone(),
+ commit_vote_monitor,
block_verifier.clone(),
dag_state.clone(),
);
@@ -749,10 +752,12 @@ mod tests {
let network_client = Arc::new(FakeNetworkClient::default());
let store = Arc::new(MemStore::new());
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store.clone())));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let synchronizer = Synchronizer::start(
network_client,
context.clone(),
core_dispatcher.clone(),
+ commit_vote_monitor,
block_verifier.clone(),
dag_state.clone(),
);
diff --git a/consensus/core/src/commit_observer.rs b/consensus/core/src/commit_observer.rs
index 652eb5af24604..34cf4871234f0 100644
--- a/consensus/core/src/commit_observer.rs
+++ b/consensus/core/src/commit_observer.rs
@@ -121,7 +121,7 @@ impl CommitObserver {
.scan_commits(((last_processed_commit_index + 1)..=CommitIndex::MAX).into())
.expect("Scanning commits should not fail");
- debug!("Recovering commit observer after index {last_processed_commit_index} with last commit {:?} and {} unsent commits", last_commit, unsent_commits.len());
+ info!("Recovering commit observer after index {last_processed_commit_index} with last commit {} and {} unsent commits", last_commit.map(|c|c.index()).unwrap_or_default(), unsent_commits.len());
// Resend all the committed subdags to the consensus output channel
// for all the commits above the last processed index.
@@ -144,6 +144,7 @@ impl CommitObserver {
vec![]
};
+ info!("Sending commit {} during recovery", commit.index());
let committed_sub_dag =
load_committed_subdag_from_store(self.store.as_ref(), commit, reputation_scores);
self.sender.send(committed_sub_dag).unwrap_or_else(|e| {
@@ -156,7 +157,7 @@ impl CommitObserver {
last_sent_commit_index += 1;
}
- debug!(
+ info!(
"Commit observer recovery completed, took {:?}",
now.elapsed()
);
diff --git a/consensus/core/src/commit_syncer.rs b/consensus/core/src/commit_syncer.rs
index d55e123d462aa..6737561786168 100644
--- a/consensus/core/src/commit_syncer.rs
+++ b/consensus/core/src/commit_syncer.rs
@@ -330,8 +330,8 @@ impl CommitSyncer {
fetch_state: Arc>,
commit_range: CommitRange,
) -> ConsensusResult<(Vec, Vec)> {
- const FETCH_COMMITS_TIMEOUT: Duration = Duration::from_secs(10);
- const FETCH_BLOCKS_TIMEOUT: Duration = Duration::from_secs(60);
+ const FETCH_COMMITS_TIMEOUT: Duration = Duration::from_secs(30);
+ const FETCH_BLOCKS_TIMEOUT: Duration = Duration::from_secs(120);
const FETCH_RETRY_BASE_INTERVAL: Duration = Duration::from_secs(1);
const FETCH_RETRY_INTERVAL_LIMIT: u32 = 30;
const MAX_RETRY_INTERVAL: Duration = Duration::from_secs(1);
diff --git a/consensus/core/src/context.rs b/consensus/core/src/context.rs
index 84ed3989c9cdf..64467cf72ca73 100644
--- a/consensus/core/src/context.rs
+++ b/consensus/core/src/context.rs
@@ -67,7 +67,7 @@ impl Context {
AuthorityIndex::new_for_test(0),
committee,
Parameters {
- db_path: Some(temp_dir.into_path()),
+ db_path: temp_dir.into_path(),
..Default::default()
},
ProtocolConfig::get_for_max_version_UNSAFE(),
diff --git a/consensus/core/src/core.rs b/consensus/core/src/core.rs
index f58098551d214..f2c59a9a9f447 100644
--- a/consensus/core/src/core.rs
+++ b/consensus/core/src/core.rs
@@ -204,7 +204,7 @@ impl Core {
.unwrap();
}
- debug!(
+ info!(
"Core recovery completed with last proposed block {:?}",
self.last_proposed_block
);
diff --git a/consensus/core/src/error.rs b/consensus/core/src/error.rs
index b18f17557e6f7..d9fdb99e37ed0 100644
--- a/consensus/core/src/error.rs
+++ b/consensus/core/src/error.rs
@@ -51,6 +51,14 @@ pub(crate) enum ConsensusError {
block_ref: BlockRef,
},
+ #[error(
+ "Unexpected block {block_ref} returned while fetching last own block from peer {index}"
+ )]
+ UnexpectedLastOwnBlock {
+ index: AuthorityIndex,
+ block_ref: BlockRef,
+ },
+
#[error("Too many blocks have been returned from authority {0} when requesting to fetch missing blocks")]
TooManyFetchedBlocksReturned(AuthorityIndex),
diff --git a/consensus/core/src/metrics.rs b/consensus/core/src/metrics.rs
index 58e057de50d65..f6b2e470c0eea 100644
--- a/consensus/core/src/metrics.rs
+++ b/consensus/core/src/metrics.rs
@@ -120,6 +120,7 @@ pub(crate) struct NodeMetrics {
pub(crate) dag_state_store_read_count: IntCounterVec,
pub(crate) dag_state_store_write_count: IntCounter,
pub(crate) fetch_blocks_scheduler_inflight: IntGauge,
+ pub(crate) fetch_blocks_scheduler_skipped: IntCounterVec,
pub(crate) synchronizer_fetched_blocks_by_peer: IntCounterVec,
pub(crate) synchronizer_fetched_blocks_by_authority: IntCounterVec,
pub(crate) invalid_blocks: IntCounterVec,
@@ -131,6 +132,7 @@ pub(crate) struct NodeMetrics {
pub(crate) last_committed_authority_round: IntGaugeVec,
pub(crate) last_committed_leader_round: IntGauge,
pub(crate) last_commit_index: IntGauge,
+ pub(crate) last_known_own_block_round: IntGauge,
pub(crate) commit_round_advancement_interval: Histogram,
pub(crate) last_decided_leader_round: IntGauge,
pub(crate) leader_timeout_total: IntCounterVec,
@@ -302,6 +304,12 @@ impl NodeMetrics {
"Designates whether the synchronizer scheduler task to fetch blocks is currently running",
registry,
).unwrap(),
+ fetch_blocks_scheduler_skipped: register_int_counter_vec_with_registry!(
+ "fetch_blocks_scheduler_skipped",
+ "Number of times the scheduler skipped fetching blocks",
+ &["reason"],
+ registry
+ ).unwrap(),
synchronizer_fetched_blocks_by_peer: register_int_counter_vec_with_registry!(
"synchronizer_fetched_blocks_by_peer",
"Number of fetched blocks per peer authority via the synchronizer and also by block authority",
@@ -314,6 +322,11 @@ impl NodeMetrics {
&["authority", "type"],
registry,
).unwrap(),
+ last_known_own_block_round: register_int_gauge_with_registry!(
+ "last_known_own_block_round",
+ "The highest round of our own block as this has been synced from peers during an amnesia recovery",
+ registry,
+ ).unwrap(),
// TODO: add a short status label.
invalid_blocks: register_int_counter_vec_with_registry!(
"invalid_blocks",
diff --git a/consensus/core/src/network/connection_monitor.rs b/consensus/core/src/network/connection_monitor.rs
index 2baa3f46044cf..928fc8b41a040 100644
--- a/consensus/core/src/network/connection_monitor.rs
+++ b/consensus/core/src/network/connection_monitor.rs
@@ -248,11 +248,11 @@ impl AnemoConnectionMonitor {
self.connection_metrics
.network_peer_udp_transmits
.with_label_values(&[peer_id, hostname, "transmitted"])
- .set(stats.udp_tx.transmits as i64);
+ .set(stats.udp_tx.ios as i64);
self.connection_metrics
.network_peer_udp_transmits
.with_label_values(&[peer_id, hostname, "received"])
- .set(stats.udp_rx.transmits as i64);
+ .set(stats.udp_rx.ios as i64);
}
}
diff --git a/consensus/core/src/network/tonic_network.rs b/consensus/core/src/network/tonic_network.rs
index cc12d15dd00c5..b6c184c069e65 100644
--- a/consensus/core/src/network/tonic_network.rs
+++ b/consensus/core/src/network/tonic_network.rs
@@ -69,6 +69,10 @@ const MAX_TOTAL_FETCHED_BYTES: usize = 128 * 1024 * 1024;
#[cfg(not(msim))]
const MAX_CONNECTIONS_BACKLOG: u32 = 1024;
+// The time we are willing to wait for a connection to get gracefully shutdown before we attempt to
+// forcefully shutdown its task.
+const CONNECTION_SHUTDOWN_GRACE_PERIOD: Duration = Duration::from_secs(1);
+
// Implements Tonic RPC client for Consensus.
pub(crate) struct TonicClient {
context: Arc,
@@ -655,7 +659,7 @@ impl NetworkManager for TonicManager {
.with_label_values(&["tonic"])
.set(1);
- debug!("Starting tonic service");
+ info!("Starting tonic service");
let authority = self.context.committee.authority(self.context.own_index);
// Bind to localhost in unit tests since only local networking is needed.
@@ -738,10 +742,14 @@ impl NetworkManager for TonicManager {
};
}
+ info!("Binding tonic server to address {:?}", own_address);
+
// Create TcpListener via TCP socket.
let socket = create_socket(&own_address);
match socket.bind(own_address) {
- Ok(_) => {}
+ Ok(_) => {
+ info!("Successfully bound tonic server to address {:?}", own_address)
+ }
Err(e) => {
warn!("Error binding to {own_address}: {e:?}");
tokio::time::sleep(Duration::from_secs(1)).await;
@@ -797,10 +805,10 @@ impl NetworkManager for TonicManager {
},
_ = shutdown_notif.wait() => {
info!("Received shutdown. Stopping consensus service.");
- if timeout(Duration::from_secs(5), async {
+ if timeout(CONNECTION_SHUTDOWN_GRACE_PERIOD, async {
while connection_handlers.join_next().await.is_some() {}
}).await.is_err() {
- warn!("Failed to stop all connection handlers in 5s. Forcing shutdown.");
+ warn!("Failed to stop all connection handlers in {CONNECTION_SHUTDOWN_GRACE_PERIOD:?}. Forcing shutdown.");
connection_handlers.shutdown().await;
}
return;
diff --git a/consensus/core/src/synchronizer.rs b/consensus/core/src/synchronizer.rs
index 237eec4b1b436..504cd63249b6e 100644
--- a/consensus/core/src/synchronizer.rs
+++ b/consensus/core/src/synchronizer.rs
@@ -19,13 +19,16 @@ use parking_lot::{Mutex, RwLock};
#[cfg(not(test))]
use rand::{prelude::SliceRandom, rngs::ThreadRng};
use sui_macros::fail_point_async;
+use tap::TapFallible;
use tokio::{
sync::{mpsc::error::TrySendError, oneshot},
- task::JoinSet,
+ task::{JoinError, JoinSet},
time::{sleep, sleep_until, timeout, Instant},
};
-use tracing::{debug, error, info, warn};
+use tracing::{debug, error, info, trace, warn};
+use crate::authority_service::COMMIT_LAG_MULTIPLIER;
+use crate::commit_syncer::CommitVoteMonitor;
use crate::{
block::{BlockRef, SignedBlock, VerifiedBlock},
block_verifier::BlockVerifier,
@@ -34,7 +37,7 @@ use crate::{
dag_state::DagState,
error::{ConsensusError, ConsensusResult},
network::NetworkClient,
- BlockAPI, Round,
+ BlockAPI, CommitIndex, Round,
};
/// The number of concurrent fetch blocks requests per authority
@@ -159,12 +162,13 @@ enum Command {
peer_index: AuthorityIndex,
result: oneshot::Sender>,
},
+ FetchOwnLastBlock,
KickOffScheduler,
}
pub(crate) struct SynchronizerHandle {
commands_sender: Sender,
- tasks: Mutex>,
+ tasks: tokio::sync::Mutex>,
}
impl SynchronizerHandle {
@@ -187,9 +191,13 @@ impl SynchronizerHandle {
receiver.await.map_err(|_err| ConsensusError::Shutdown)?
}
- pub(crate) async fn stop(&self) {
- let mut tasks = self.tasks.lock();
+ pub(crate) async fn stop(&self) -> Result<(), JoinError> {
+ let mut tasks = self.tasks.lock().await;
tasks.abort_all();
+ while let Some(result) = tasks.join_next().await {
+ result?
+ }
+ Ok(())
}
}
@@ -210,13 +218,19 @@ impl SynchronizerHandle {
/// missing blocks that were not ancestors of a received block via the "block send" path.
/// The scheduler operates on either a fixed periodic basis or is triggered immediately
/// after explicit fetches described in (1), ensuring continued block retrieval if gaps persist.
+///
+/// Additionally to the above, the synchronizer can synchronize and fetch the last own proposed block
+/// from the network peers as best effort approach to recover node from amnesia and avoid making the
+/// node equivocate.
pub(crate) struct Synchronizer {
context: Arc,
commands_receiver: Receiver,
fetch_block_senders: BTreeMap>,
core_dispatcher: Arc,
+ commit_vote_monitor: Arc,
dag_state: Arc>,
fetch_blocks_scheduler_task: JoinSet<()>,
+ fetch_own_last_block_task: JoinSet<()>,
network_client: Arc,
block_verifier: Arc,
inflight_blocks_map: Arc,
@@ -228,6 +242,7 @@ impl Synchronizer,
context: Arc,
core_dispatcher: Arc,
+ commit_vote_monitor: Arc,
block_verifier: Arc,
dag_state: Arc>,
) -> Arc {
@@ -266,6 +281,12 @@ impl Synchronizer Synchronizer Synchronizer {
+ if self.fetch_own_last_block_task.is_empty() {
+ self.start_fetch_own_last_block_task();
+ }
+ }
Command::KickOffScheduler => {
// just reset the scheduler timeout timer to run immediately if not already running.
// If the scheduler is already running then just reduce the remaining time to run.
@@ -352,6 +380,19 @@ impl Synchronizer {
+ match result {
+ Ok(()) => {},
+ Err(e) => {
+ if e.is_cancelled() {
+ } else if e.is_panic() {
+ std::panic::resume_unwind(e.into_panic());
+ } else {
+ panic!("fetch our last block task failed: {e}");
+ }
+ },
+ };
+ },
Some(result) = self.fetch_blocks_scheduler_task.join_next(), if !self.fetch_blocks_scheduler_task.is_empty() => {
match result {
Ok(()) => {},
@@ -649,7 +690,128 @@ impl Synchronizer, authority_index: AuthorityIndex| -> ConsensusResult> {
+ let mut result = Vec::new();
+ for serialized_block in blocks {
+ let signed_block = bcs::from_bytes(&serialized_block).map_err(ConsensusError::MalformedBlock)?;
+ block_verifier.verify(&signed_block).tap_err(|err|{
+ context
+ .metrics
+ .node_metrics
+ .invalid_blocks
+ .with_label_values(&[&signed_block.author().to_string(), "synchronizer_own_block"])
+ .inc();
+ warn!("Invalid block received from {}: {}", authority_index, err);
+ })?;
+
+ let verified_block = VerifiedBlock::new_verified(signed_block, serialized_block);
+ if verified_block.author() != context.own_index {
+ return Err(ConsensusError::UnexpectedLastOwnBlock { index: authority_index, block_ref: verified_block.reference()});
+ }
+ result.push(verified_block);
+ }
+ Ok(result)
+ };
+
+ // Get the highest of all the results
+ let mut total_stake = 0;
+ let mut highest_round = 0;
+ loop {
+ tokio::select! {
+ result = results.next() => {
+ let Some((result, authority_index)) = result else {
+ break;
+ };
+ match result {
+ Ok(result) => {
+ match process_blocks(result, authority_index) {
+ Ok(blocks) => {
+ let max_round = blocks.into_iter().map(|b|b.round()).max().unwrap_or(0);
+ highest_round = highest_round.max(max_round);
+
+ total_stake += context.committee.stake(authority_index);
+ },
+ Err(err) => {
+ warn!("Invalid result returned from {authority_index} while fetching last own block: {err}");
+ }
+ }
+ },
+ Err(err) => {
+ warn!("Error {err} while fetching our own block from peer {authority_index}. Will retry.");
+ results.push(fetch_own_block(authority_index, FETCH_OWN_BLOCK_RETRY_DELAY));
+ }
+ }
+ },
+ () = &mut timer => {
+ info!("Timeout while trying to sync our own last block from peers");
+ break;
+ }
+ }
+ }
+
+ // Update the Core with the highest detected round
+ if total_stake == 0 {
+ panic!("No peer has returned any acceptable result, can not safely update min round");
+ }
+
+ context.metrics.node_metrics.last_known_own_block_round.set(highest_round as i64);
+
+ info!("{} out of {} total stake returned acceptable results for our own last block with highest round {}", total_stake, context.committee.total_stake(), highest_round);
+ if let Err(err) = core_dispatcher.set_last_known_proposed_round(highest_round) {
+ warn!("Error received while calling dispatcher, probably dispatcher is shutting down, will now exit: {err:?}");
+ }
+ }));
+ }
+
async fn start_fetch_missing_blocks_task(&mut self) -> ConsensusResult<()> {
+ let (commit_lagging, last_commit_index, quorum_commit_index) = self.is_commit_lagging();
+ if commit_lagging {
+ trace!("Scheduled synchronizer temporarily disabled as local commit is falling behind from quorum {last_commit_index} << {quorum_commit_index}");
+ self.context
+ .metrics
+ .node_metrics
+ .fetch_blocks_scheduler_skipped
+ .with_label_values(&["commit_lagging"])
+ .inc();
+ return Ok(());
+ }
+
let missing_blocks = self
.core_dispatcher
.get_missing_blocks()
@@ -700,6 +862,18 @@ impl Synchronizer (bool, CommitIndex, CommitIndex) {
+ let last_commit_index = self.dag_state.read().last_commit_index();
+ let quorum_commit_index = self.commit_vote_monitor.quorum_commit_index();
+ let commit_threshold = last_commit_index
+ + self.context.parameters.commit_sync_batch_size * COMMIT_LAG_MULTIPLIER;
+ (
+ commit_threshold < quorum_commit_index,
+ last_commit_index,
+ quorum_commit_index,
+ )
+ }
+
/// Fetches the `missing_blocks` from available peers. The method will attempt to split the load amongst multiple (random) peers.
/// The method returns a vector with the fetched blocks from each peer that successfully responded and any corresponding additional ancestor blocks.
/// Each element of the vector is a tuple which contains the requested missing block refs, the returned blocks and the peer authority index.
@@ -818,10 +992,13 @@ mod tests {
use async_trait::async_trait;
use bytes::Bytes;
- use consensus_config::AuthorityIndex;
+ use consensus_config::{AuthorityIndex, Parameters};
use parking_lot::RwLock;
- use tokio::time::sleep;
+ use tokio::{sync::Mutex, time::sleep};
+ use crate::authority_service::COMMIT_LAG_MULTIPLIER;
+ use crate::commit::{CommitVote, TrustedCommit};
+ use crate::commit_syncer::CommitVoteMonitor;
use crate::{
block::{BlockDigest, BlockRef, Round, TestBlock, VerifiedBlock},
block_verifier::NoopBlockVerifier,
@@ -835,25 +1012,32 @@ mod tests {
synchronizer::{
InflightBlocksMap, Synchronizer, FETCH_BLOCKS_CONCURRENCY, FETCH_REQUEST_TIMEOUT,
},
+ CommitDigest, CommitIndex,
};
// TODO: create a complete Mock for thread dispatcher to be used from several tests
#[derive(Default)]
struct MockCoreThreadDispatcher {
- add_blocks: tokio::sync::Mutex>,
- missing_blocks: tokio::sync::Mutex>,
+ add_blocks: Mutex>,
+ missing_blocks: Mutex>,
+ last_known_proposed_round: parking_lot::Mutex>,
}
impl MockCoreThreadDispatcher {
async fn get_add_blocks(&self) -> Vec {
- let lock = self.add_blocks.lock().await;
- lock.to_vec()
+ let mut lock = self.add_blocks.lock().await;
+ lock.drain(0..).collect()
}
async fn stub_missing_blocks(&self, block_refs: BTreeSet) {
let mut lock = self.missing_blocks.lock().await;
lock.extend(block_refs);
}
+
+ async fn get_last_own_proposed_round(&self) -> Vec {
+ let lock = self.last_known_proposed_round.lock();
+ lock.clone()
+ }
}
#[async_trait]
@@ -868,7 +1052,7 @@ mod tests {
}
async fn new_block(&self, _round: Round, _force: bool) -> Result<(), CoreError> {
- todo!()
+ Ok(())
}
async fn get_missing_blocks(&self) -> Result, CoreError> {
@@ -882,17 +1066,23 @@ mod tests {
todo!()
}
- fn set_last_known_proposed_round(&self, _round: Round) -> Result<(), CoreError> {
- todo!()
+ fn set_last_known_proposed_round(&self, round: Round) -> Result<(), CoreError> {
+ let mut lock = self.last_known_proposed_round.lock();
+ lock.push(round);
+ Ok(())
}
}
type FetchRequestKey = (Vec, AuthorityIndex);
type FetchRequestResponse = (Vec, Option);
+ type FetchLatestBlockKey = (AuthorityIndex, Vec);
+ type FetchLatestBlockResponse = (Vec, Option);
#[derive(Default)]
struct MockNetworkClient {
- fetch_blocks_requests: tokio::sync::Mutex>,
+ fetch_blocks_requests: Mutex>,
+ fetch_latest_blocks_requests:
+ Mutex>,
}
impl MockNetworkClient {
@@ -909,6 +1099,17 @@ mod tests {
.collect::>();
lock.insert((block_refs, peer), (blocks, latency));
}
+
+ async fn stub_fetch_latest_blocks(
+ &self,
+ blocks: Vec,
+ peer: AuthorityIndex,
+ authorities: Vec,
+ latency: Option,
+ ) {
+ let mut lock = self.fetch_latest_blocks_requests.lock().await;
+ lock.insert((peer, authorities), (blocks, latency));
+ }
}
#[async_trait]
@@ -971,11 +1172,28 @@ mod tests {
async fn fetch_latest_blocks(
&self,
- _peer: AuthorityIndex,
- _authorities: Vec,
+ peer: AuthorityIndex,
+ authorities: Vec,
_timeout: Duration,
) -> ConsensusResult> {
- todo!()
+ let mut lock = self.fetch_latest_blocks_requests.lock().await;
+ let response = lock
+ .remove(&(peer, authorities))
+ .expect("Unexpected fetch blocks request made");
+
+ let serialised = response
+ .0
+ .into_iter()
+ .map(|block| block.serialized().clone())
+ .collect::>();
+
+ if let Some(latency) = response.1 {
+ sleep(latency).await;
+ }
+
+ drop(lock);
+
+ Ok(serialised)
}
}
@@ -1057,11 +1275,13 @@ mod tests {
let network_client = Arc::new(MockNetworkClient::default());
let store = Arc::new(MemStore::new());
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store)));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let handle = Synchronizer::start(
network_client.clone(),
context,
core_dispatcher.clone(),
+ commit_vote_monitor,
block_verifier,
dag_state,
);
@@ -1102,11 +1322,13 @@ mod tests {
let network_client = Arc::new(MockNetworkClient::default());
let store = Arc::new(MemStore::new());
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store)));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
let handle = Synchronizer::start(
network_client.clone(),
context,
core_dispatcher.clone(),
+ commit_vote_monitor,
block_verifier,
dag_state,
);
@@ -1158,6 +1380,7 @@ mod tests {
let network_client = Arc::new(MockNetworkClient::default());
let store = Arc::new(MemStore::new());
let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store)));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
// Create some test blocks
let expected_blocks = (0..10)
@@ -1196,6 +1419,7 @@ mod tests {
network_client.clone(),
context,
core_dispatcher.clone(),
+ commit_vote_monitor,
block_verifier,
dag_state,
);
@@ -1213,4 +1437,186 @@ mod tests {
.unwrap()
.is_empty());
}
+
+ #[tokio::test(flavor = "current_thread", start_paused = true)]
+ async fn synchronizer_periodic_task_skip_when_commit_lagging() {
+ // GIVEN
+ let (context, _) = Context::new_for_test(4);
+ let context = Arc::new(context);
+ let block_verifier = Arc::new(NoopBlockVerifier {});
+ let core_dispatcher = Arc::new(MockCoreThreadDispatcher::default());
+ let network_client = Arc::new(MockNetworkClient::default());
+ let store = Arc::new(MemStore::new());
+ let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store)));
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
+
+ // AND stub some missing blocks
+ let expected_blocks = (0..10)
+ .map(|round| VerifiedBlock::new_for_test(TestBlock::new(round, 0).build()))
+ .collect::>();
+ let missing_blocks = expected_blocks
+ .iter()
+ .map(|block| block.reference())
+ .collect::>();
+ core_dispatcher
+ .stub_missing_blocks(missing_blocks.clone())
+ .await;
+
+ // AND stub the requests for authority 1 & 2
+ // Make the first authority timeout, so the second will be called. "We" are authority = 0, so
+ // we are skipped anyways.
+ network_client
+ .stub_fetch_blocks(
+ expected_blocks.clone(),
+ AuthorityIndex::new_for_test(1),
+ Some(FETCH_REQUEST_TIMEOUT),
+ )
+ .await;
+ network_client
+ .stub_fetch_blocks(
+ expected_blocks.clone(),
+ AuthorityIndex::new_for_test(2),
+ None,
+ )
+ .await;
+
+ // Now create some blocks to simulate a commit lag
+ let round = context.parameters.commit_sync_batch_size * COMMIT_LAG_MULTIPLIER * 2;
+ let commit_index: CommitIndex = round - 1;
+ let blocks = (0..4)
+ .map(|authority| {
+ let commit_votes = vec![CommitVote::new(commit_index, CommitDigest::MIN)];
+ let block = TestBlock::new(round, authority)
+ .set_commit_votes(commit_votes)
+ .build();
+
+ VerifiedBlock::new_for_test(block)
+ })
+ .collect::>();
+
+ // Pass them through the commit vote monitor - so now there will be a big commit lag to prevent
+ // the scheduled synchronizer from running
+ for block in blocks {
+ commit_vote_monitor.observe(&block);
+ }
+
+ // WHEN start the synchronizer and wait for a couple of seconds where normally the synchronizer should have kicked in.
+ let _handle = Synchronizer::start(
+ network_client.clone(),
+ context.clone(),
+ core_dispatcher.clone(),
+ commit_vote_monitor.clone(),
+ block_verifier,
+ dag_state.clone(),
+ );
+
+ sleep(4 * FETCH_REQUEST_TIMEOUT).await;
+
+ // Since we should be in commit lag mode none of the missed blocks should have been fetched - hence nothing should be
+ // sent to core for processing.
+ let added_blocks = core_dispatcher.get_add_blocks().await;
+ assert_eq!(added_blocks, vec![]);
+
+ // AND advance now the local commit index by adding a new commit that matches the commit index
+ // of quorum
+ {
+ let mut d = dag_state.write();
+ for index in 1..=commit_index {
+ let commit =
+ TrustedCommit::new_for_test(index, CommitDigest::MIN, 0, BlockRef::MIN, vec![]);
+
+ d.add_commit(commit);
+ }
+
+ assert_eq!(
+ d.last_commit_index(),
+ commit_vote_monitor.quorum_commit_index()
+ );
+ }
+
+ sleep(2 * FETCH_REQUEST_TIMEOUT).await;
+
+ // THEN the missing blocks should now be fetched and added to core
+ let added_blocks = core_dispatcher.get_add_blocks().await;
+ assert_eq!(added_blocks, expected_blocks);
+ }
+
+ #[tokio::test(flavor = "current_thread", start_paused = true)]
+ async fn synchronizer_fetch_own_last_block() {
+ // GIVEN
+ let (context, _) = Context::new_for_test(4);
+ let context = Arc::new(context.with_parameters(Parameters {
+ sync_last_proposed_block_timeout: Duration::from_millis(2_000),
+ ..Default::default()
+ }));
+ let block_verifier = Arc::new(NoopBlockVerifier {});
+ let core_dispatcher = Arc::new(MockCoreThreadDispatcher::default());
+ let network_client = Arc::new(MockNetworkClient::default());
+ let commit_vote_monitor = Arc::new(CommitVoteMonitor::new(context.clone()));
+ let store = Arc::new(MemStore::new());
+ let dag_state = Arc::new(RwLock::new(DagState::new(context.clone(), store)));
+ let our_index = AuthorityIndex::new_for_test(0);
+
+ // Create some test blocks
+ let mut expected_blocks = (9..=10)
+ .map(|round| VerifiedBlock::new_for_test(TestBlock::new(round, 0).build()))
+ .collect::>();
+
+ // Now set different latest blocks for the peers
+ // For peer 1 we give the block of round 10 (highest)
+ network_client
+ .stub_fetch_latest_blocks(
+ vec![expected_blocks.pop().unwrap()],
+ AuthorityIndex::new_for_test(1),
+ vec![our_index],
+ None,
+ )
+ .await;
+
+ // For peer 2 we give the block of round 9
+ network_client
+ .stub_fetch_latest_blocks(
+ vec![expected_blocks.pop().unwrap()],
+ AuthorityIndex::new_for_test(2),
+ vec![our_index],
+ None,
+ )
+ .await;
+
+ // For peer 3 we don't give any block - and it should return an empty vector
+ network_client
+ .stub_fetch_latest_blocks(
+ vec![],
+ AuthorityIndex::new_for_test(3),
+ vec![our_index],
+ None,
+ )
+ .await;
+
+ // WHEN start the synchronizer and wait for a couple of seconds
+ let handle = Synchronizer::start(
+ network_client.clone(),
+ context.clone(),
+ core_dispatcher.clone(),
+ commit_vote_monitor,
+ block_verifier,
+ dag_state,
+ );
+
+ // Wait at least for the timeout time
+ sleep(context.parameters.sync_last_proposed_block_timeout * 2).await;
+
+ // Assert that core has been called to set the min propose round
+ assert_eq!(
+ core_dispatcher.get_last_own_proposed_round().await,
+ vec![10]
+ );
+
+ // Ensure that no panic occurred
+ if let Err(err) = handle.stop().await {
+ if err.is_panic() {
+ std::panic::resume_unwind(err.into_panic());
+ }
+ }
+ }
}
diff --git a/crates/mysten-common/src/sync/mod.rs b/crates/mysten-common/src/sync/mod.rs
index c405ff1269755..5d8dfc5edfb86 100644
--- a/crates/mysten-common/src/sync/mod.rs
+++ b/crates/mysten-common/src/sync/mod.rs
@@ -1,7 +1,7 @@
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
+/// Low level utilities shared across Sui.
pub mod async_once_cell;
-/// Low level ultilities shared between Sui and Narwhal.
pub mod notify_once;
pub mod notify_read;
diff --git a/crates/mysten-metrics/Cargo.toml b/crates/mysten-metrics/Cargo.toml
index a5516cda25f93..2a26c989a9451 100644
--- a/crates/mysten-metrics/Cargo.toml
+++ b/crates/mysten-metrics/Cargo.toml
@@ -19,5 +19,4 @@ uuid.workspace = true
parking_lot.workspace = true
futures.workspace = true
async-trait.workspace = true
-
prometheus-closure-metric.workspace = true
diff --git a/crates/mysten-metrics/src/lib.rs b/crates/mysten-metrics/src/lib.rs
index b7ec2be8e85fe..4a2c01c97f01a 100644
--- a/crates/mysten-metrics/src/lib.rs
+++ b/crates/mysten-metrics/src/lib.rs
@@ -11,9 +11,12 @@ use std::task::{Context, Poll};
use std::time::Instant;
use once_cell::sync::OnceCell;
-use prometheus::{register_int_gauge_vec_with_registry, IntGaugeVec, Registry, TextEncoder};
+use prometheus::{
+ register_histogram_with_registry, register_int_gauge_vec_with_registry, Histogram, IntGaugeVec,
+ Registry, TextEncoder,
+};
use tap::TapFallible;
-use tracing::warn;
+use tracing::{warn, Span};
pub use scopeguard;
use uuid::Uuid;
@@ -22,11 +25,18 @@ mod guards;
pub mod histogram;
pub mod metered_channel;
pub mod monitored_mpsc;
+pub mod thread_stall_monitor;
pub use guards::*;
pub const TX_TYPE_SINGLE_WRITER_TX: &str = "single_writer";
pub const TX_TYPE_SHARED_OBJ_TX: &str = "shared_object";
+pub const LATENCY_SEC_BUCKETS: &[f64] = &[
+ 0.001, 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6,
+ 0.7, 0.8, 0.9, 1., 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2., 2.5, 3., 3.5, 4., 4.5, 5.,
+ 6., 7., 8., 9., 10., 15., 20., 25., 30., 60., 90.,
+];
+
#[derive(Debug)]
pub struct Metrics {
pub tasks: IntGaugeVec,
@@ -37,6 +47,7 @@ pub struct Metrics {
pub scope_iterations: IntGaugeVec,
pub scope_duration_ns: IntGaugeVec,
pub scope_entrance: IntGaugeVec,
+ pub thread_stall_duration_sec: Histogram,
}
impl Metrics {
@@ -98,6 +109,12 @@ impl Metrics {
registry,
)
.unwrap(),
+ thread_stall_duration_sec: register_histogram_with_registry!(
+ "thread_stall_duration_sec",
+ "Duration of thread stalls in seconds.",
+ registry,
+ )
+ .unwrap(),
}
}
}
@@ -129,18 +146,18 @@ macro_rules! monitored_future {
};
async move {
- let metrics = mysten_metrics::get_metrics();
+ let metrics = $crate::get_metrics();
let _metrics_guard = if let Some(m) = metrics {
m.$metric.with_label_values(&[location]).inc();
- Some(mysten_metrics::scopeguard::guard(m, |metrics| {
+ Some($crate::scopeguard::guard(m, |_| {
m.$metric.with_label_values(&[location]).dec();
}))
} else {
None
};
let _logging_guard = if $logging_enabled {
- Some(mysten_metrics::scopeguard::guard((), |_| {
+ Some($crate::scopeguard::guard((), |_| {
tracing::event!(
tracing::Level::$logging_level,
"Future {} completed",
@@ -167,28 +184,22 @@ macro_rules! monitored_future {
#[macro_export]
macro_rules! spawn_monitored_task {
($fut: expr) => {
- tokio::task::spawn(mysten_metrics::monitored_future!(
- tasks, $fut, "", INFO, false
- ))
+ tokio::task::spawn($crate::monitored_future!(tasks, $fut, "", INFO, false))
};
}
#[macro_export]
macro_rules! spawn_logged_monitored_task {
($fut: expr) => {
- tokio::task::spawn(mysten_metrics::monitored_future!(
- tasks, $fut, "", INFO, true
- ))
+ tokio::task::spawn($crate::monitored_future!(tasks, $fut, "", INFO, true))
};
($fut: expr, $name: expr) => {
- tokio::task::spawn(mysten_metrics::monitored_future!(
- tasks, $fut, $name, INFO, true
- ))
+ tokio::task::spawn($crate::monitored_future!(tasks, $fut, $name, INFO, true))
};
($fut: expr, $name: expr, $logging_level: ident) => {
- tokio::task::spawn(mysten_metrics::monitored_future!(
+ tokio::task::spawn($crate::monitored_future!(
tasks,
$fut,
$name,
@@ -266,6 +277,70 @@ impl Future for MonitoredScopeFuture {
}
}
+pub struct CancelMonitor {
+ finished: bool,
+ inner: Pin>,
+}
+
+impl CancelMonitor
+where
+ F: Future,
+{
+ pub fn new(inner: F) -> Self {
+ Self {
+ finished: false,
+ inner: Box::pin(inner),
+ }
+ }
+
+ pub fn is_finished(&self) -> bool {
+ self.finished
+ }
+}
+
+impl Future for CancelMonitor
+where
+ F: Future,
+{
+ type Output = F::Output;
+
+ fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll {
+ match self.inner.as_mut().poll(cx) {
+ Poll::Ready(output) => {
+ self.finished = true;
+ Poll::Ready(output)
+ }
+ Poll::Pending => Poll::Pending,
+ }
+ }
+}
+
+impl Drop for CancelMonitor {
+ fn drop(&mut self) {
+ if !self.finished {
+ Span::current().record("cancelled", true);
+ }
+ }
+}
+
+/// MonitorCancellation records a cancelled = true span attribute if the future it
+/// is decorating is dropped before completion. The cancelled attribute must be added
+/// at span creation, as you cannot add new attributes after the span is created.
+pub trait MonitorCancellation {
+ fn monitor_cancellation(self) -> CancelMonitor
+ where
+ Self: Sized + Future;
+}
+
+impl MonitorCancellation for T
+where
+ T: Future,
+{
+ fn monitor_cancellation(self) -> CancelMonitor {
+ CancelMonitor::new(self)
+ }
+}
+
pub type RegistryID = Uuid;
/// A service to manage the prometheus registries. This service allow us to create
diff --git a/crates/mysten-metrics/src/thread_stall_monitor.rs b/crates/mysten-metrics/src/thread_stall_monitor.rs
new file mode 100644
index 0000000000000..a23c0d2783465
--- /dev/null
+++ b/crates/mysten-metrics/src/thread_stall_monitor.rs
@@ -0,0 +1,56 @@
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+use std::sync::Once;
+
+use tracing::{error, info};
+
+use crate::{get_metrics, spawn_logged_monitored_task};
+
+static THREAD_STALL_MONITOR: Once = Once::new();
+
+const MONITOR_INTERVAL: std::time::Duration = std::time::Duration::from_millis(500);
+
+/// Monitors temporary stalls in tokio scheduling every MONITOR_INTERVAL.
+/// Logs an error and increments a metric if more than 2 * MONITOR_INTERVAL has elapsed,
+/// which means the stall lasted longer than MONITOR_INTERVAL.
+pub fn start_thread_stall_monitor() {
+ let mut called = true;
+ THREAD_STALL_MONITOR.call_once(|| {
+ called = false;
+ });
+ if called {
+ return;
+ }
+ if tokio::runtime::Handle::try_current().is_err() {
+ info!("Not running in a tokio runtime, not starting thread stall monitor.");
+ return;
+ }
+
+ spawn_logged_monitored_task!(
+ async move {
+ let Some(metrics) = get_metrics() else {
+ info!("Metrics uninitialized, not starting thread stall monitor.");
+ return;
+ };
+ let mut last_sleep_time = tokio::time::Instant::now();
+ loop {
+ tokio::time::sleep(MONITOR_INTERVAL).await;
+ let current_time = tokio::time::Instant::now();
+ let stalled_duration = current_time - last_sleep_time - MONITOR_INTERVAL;
+ last_sleep_time = current_time;
+ if stalled_duration > MONITOR_INTERVAL {
+ metrics
+ .thread_stall_duration_sec
+ .observe(stalled_duration.as_secs_f64());
+ // TODO: disable this in simulation tests with artificial thread stalls?
+ error!(
+ "Thread stalled for {}s. Possible causes include CPU overload or too much blocking calls.",
+ stalled_duration.as_secs_f64()
+ );
+ }
+ }
+ },
+ "ThreadStallMonitor"
+ );
+}
diff --git a/crates/mysten-network/src/client.rs b/crates/mysten-network/src/client.rs
index 1d7a1fafed231..3a213b2edc1dc 100644
--- a/crates/mysten-network/src/client.rs
+++ b/crates/mysten-network/src/client.rs
@@ -52,13 +52,6 @@ fn endpoint_from_multiaddr(addr: &Multiaddr) -> Result {
let uri = format!("{http_or_https}://{socket_addr}");
MyEndpoint::try_from_uri(uri)?
}
- // Protocol::Memory(_) => todo!(),
- #[cfg(unix)]
- Protocol::Unix(_) => {
- let (path, http_or_https) = crate::multiaddr::parse_unix(addr)?;
- let uri = format!("{http_or_https}://localhost");
- MyEndpoint::try_from_uri(uri)?.with_uds_connector(path.as_ref().into())
- }
unsupported => return Err(eyre!("unsupported protocol {unsupported}")),
};
@@ -67,17 +60,11 @@ fn endpoint_from_multiaddr(addr: &Multiaddr) -> Result {
struct MyEndpoint {
endpoint: Endpoint,
- #[cfg(unix)]
- uds_connector: Option,
}
impl MyEndpoint {
fn new(endpoint: Endpoint) -> Self {
- Self {
- endpoint,
- #[cfg(unix)]
- uds_connector: None,
- }
+ Self { endpoint }
}
fn try_from_uri(uri: String) -> Result {
@@ -88,50 +75,16 @@ impl MyEndpoint {
Ok(Self::new(endpoint))
}
- #[cfg(unix)]
- fn with_uds_connector(self, path: std::path::PathBuf) -> Self {
- Self {
- endpoint: self.endpoint,
- uds_connector: Some(path),
- }
- }
-
fn apply_config(mut self, config: &Config) -> Self {
self.endpoint = apply_config_to_endpoint(config, self.endpoint);
self
}
fn connect_lazy(self) -> Channel {
- #[cfg(unix)]
- if let Some(path) = self.uds_connector {
- return self
- .endpoint
- .connect_with_connector_lazy(tower::service_fn(move |_: Uri| {
- let path = path.clone();
-
- // Connect to a Uds socket
- tokio::net::UnixStream::connect(path)
- }));
- }
-
self.endpoint.connect_lazy()
}
async fn connect(self) -> Result {
- #[cfg(unix)]
- if let Some(path) = self.uds_connector {
- return self
- .endpoint
- .connect_with_connector(tower::service_fn(move |_: Uri| {
- let path = path.clone();
-
- // Connect to a Uds socket
- tokio::net::UnixStream::connect(path)
- }))
- .await
- .map_err(Into::into);
- }
-
self.endpoint.connect().await.map_err(Into::into)
}
}
diff --git a/crates/mysten-network/src/multiaddr.rs b/crates/mysten-network/src/multiaddr.rs
index 206363623786d..181ec0deb0031 100644
--- a/crates/mysten-network/src/multiaddr.rs
+++ b/crates/mysten-network/src/multiaddr.rs
@@ -101,6 +101,16 @@ impl Multiaddr {
Ok(SocketAddr::new(ip, tcp_port))
}
+ // Returns true if the third component in the multiaddr is `Protocol::Tcp`
+ pub fn is_loosely_valid_tcp_addr(&self) -> bool {
+ let mut iter = self.iter();
+ iter.next(); // Skip the ip/dns part
+ match iter.next() {
+ Some(Protocol::Tcp(_)) => true,
+ _ => false, // including `None` and `Some(other)`
+ }
+ }
+
/// Set the ip address to `0.0.0.0`. For instance, it converts the following address
/// `/ip4/155.138.174.208/tcp/1500/http` into `/ip4/0.0.0.0/tcp/1500/http`.
/// This is useful when starting a server and you want to listen on all interfaces.
@@ -330,24 +340,6 @@ pub(crate) fn parse_ip6(address: &Multiaddr) -> Result<(SocketAddr, &'static str
Ok((socket_addr, http_or_https))
}
-// Parse a full /unix/-/{http,https} address
-#[cfg(unix)]
-pub(crate) fn parse_unix(address: &Multiaddr) -> Result<(Cow<'_, str>, &'static str)> {
- let mut iter = address.iter();
-
- let path = match iter
- .next()
- .ok_or_else(|| eyre!("unexpected end of multiaddr"))?
- {
- Protocol::Unix(path) => path,
- other => return Err(eyre!("expected unix found {other}")),
- };
- let http_or_https = parse_http_https(&mut iter)?;
- parse_end(&mut iter)?;
-
- Ok((path, http_or_https))
-}
-
#[cfg(test)]
mod test {
use super::Multiaddr;
@@ -376,6 +368,26 @@ mod test {
.expect_err("DNS is unsupported");
}
+ #[test]
+ fn test_is_loosely_valid_tcp_addr() {
+ let multi_addr_ipv4 = Multiaddr(multiaddr!(Ip4([127, 0, 0, 1]), Tcp(10500u16)));
+ assert!(multi_addr_ipv4.is_loosely_valid_tcp_addr());
+ let multi_addr_ipv6 = Multiaddr(multiaddr!(Ip6([172, 0, 0, 1, 1, 1, 1, 1]), Tcp(10500u16)));
+ assert!(multi_addr_ipv6.is_loosely_valid_tcp_addr());
+ let multi_addr_dns = Multiaddr(multiaddr!(Dnsaddr("mysten.sui"), Tcp(10500u16)));
+ assert!(multi_addr_dns.is_loosely_valid_tcp_addr());
+
+ let multi_addr_ipv4 = Multiaddr(multiaddr!(Ip4([127, 0, 0, 1]), Udp(10500u16)));
+ assert!(!multi_addr_ipv4.is_loosely_valid_tcp_addr());
+ let multi_addr_ipv6 = Multiaddr(multiaddr!(Ip6([172, 0, 0, 1, 1, 1, 1, 1]), Udp(10500u16)));
+ assert!(!multi_addr_ipv6.is_loosely_valid_tcp_addr());
+ let multi_addr_dns = Multiaddr(multiaddr!(Dnsaddr("mysten.sui"), Udp(10500u16)));
+ assert!(!multi_addr_dns.is_loosely_valid_tcp_addr());
+
+ let invalid_multi_addr_ipv4 = Multiaddr(multiaddr!(Ip4([127, 0, 0, 1])));
+ assert!(!invalid_multi_addr_ipv4.is_loosely_valid_tcp_addr());
+ }
+
#[test]
fn test_get_hostname_port() {
let multi_addr_ip4 = Multiaddr(multiaddr!(Ip4([127, 0, 0, 1]), Tcp(10500u16)));
diff --git a/crates/mysten-network/src/server.rs b/crates/mysten-network/src/server.rs
index bbeb4d63d33c3..0a0d4ac70a7bc 100644
--- a/crates/mysten-network/src/server.rs
+++ b/crates/mysten-network/src/server.rs
@@ -193,19 +193,6 @@ impl ServerBuilder {
);
(local_addr, server)
}
- // Protocol::Memory(_) => todo!(),
- #[cfg(unix)]
- Protocol::Unix(_) => {
- let (path, _http_or_https) = crate::multiaddr::parse_unix(addr)?;
- let uds = tokio::net::UnixListener::bind(path.as_ref())?;
- let uds_stream = tokio_stream::wrappers::UnixListenerStream::new(uds);
- let local_addr = addr.to_owned();
- let server = Box::pin(
- self.router
- .serve_with_incoming_shutdown(uds_stream, rx_cancellation),
- );
- (local_addr, server)
- }
unsupported => return Err(eyre!("unsupported protocol {unsupported}")),
};
@@ -456,17 +443,6 @@ mod test {
let address: Multiaddr = "/ip6/::1/tcp/0/http".parse().unwrap();
test_multiaddr(address).await;
}
-
- #[cfg(unix)]
- #[tokio::test]
- async fn unix() {
- // Note that this only works when constructing a multiaddr by hand and not via the
- // human-readable format
- let path = "unix-domain-socket";
- let address = Multiaddr::new_internal(multiaddr::multiaddr!(Unix(path), Http));
- test_multiaddr(address).await;
- std::fs::remove_file(path).unwrap();
- }
}
#[derive(Clone)]
diff --git a/crates/simulacrum/src/lib.rs b/crates/simulacrum/src/lib.rs
index 1c121756684c1..c7dc6e949d353 100644
--- a/crates/simulacrum/src/lib.rs
+++ b/crates/simulacrum/src/lib.rs
@@ -222,13 +222,13 @@ impl Simulacrum {
let round = self.epoch_state.next_consensus_round();
let timestamp_ms = self.store.get_clock().timestamp_ms() + duration.as_millis() as u64;
- // TODO(zhewu): use V3 once graphql tests are upgraded to protocol version 49.
let consensus_commit_prologue_transaction =
- VerifiedTransaction::new_consensus_commit_prologue_v2(
+ VerifiedTransaction::new_consensus_commit_prologue_v3(
epoch,
round,
timestamp_ms,
ConsensusCommitDigest::default(),
+ Vec::new(),
);
self.execute_transaction(consensus_commit_prologue_transaction.into())
diff --git a/crates/sui-adapter-transactional-tests/tests/call/simple.exp b/crates/sui-adapter-transactional-tests/tests/call/simple.exp
index 077688f342b1f..a29b44b63a756 100644
--- a/crates/sui-adapter-transactional-tests/tests/call/simple.exp
+++ b/crates/sui-adapter-transactional-tests/tests/call/simple.exp
@@ -1,16 +1,19 @@
processed 4 tasks
-task 1 'publish'. lines 6-25:
+task 1, lines 6-25:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5570800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 27-27:
+task 2, line 27:
+//# run Test::M1::create --args 0 @A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2302800, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 3 'view-object'. lines 29-29:
+task 3, line 29:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: Test::M1::Object {
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/count_decremented.exp b/crates/sui-adapter-transactional-tests/tests/child_count/count_decremented.exp
index ebabb9f47fe91..0698bf30028bd 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/count_decremented.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/count_decremented.exp
@@ -3,17 +3,20 @@ processed 17 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-51:
+task 1, lines 9-51:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 7516400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 53-53:
+task 2, line 53:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 55-55:
+task 3, line 55:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -24,17 +27,20 @@ Contents: test::m::S {
},
}
-task 4 'run'. lines 57-57:
+task 4, line 57:
+//# run test::m::add --sender A --args object(2,0) 1
created: object(4,0), object(4,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 5 'run'. lines 59-59:
+task 5, line 59:
+//# run test::m::remove --sender A --args object(2,0) 1
mutated: object(0,0), object(2,0)
deleted: object(4,0), object(4,1)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 5801004, non_refundable_storage_fee: 58596
-task 6 'view-object'. lines 61-65:
+task 6, lines 61-65:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 4
Contents: test::m::S {
@@ -45,12 +51,14 @@ Contents: test::m::S {
},
}
-task 7 'run'. lines 67-67:
+task 7, line 67:
+//# run test::m::mint --sender A
created: object(7,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 8 'view-object'. lines 69-69:
+task 8, line 69:
+//# view-object 7,0
Owner: Account Address ( A )
Version: 5
Contents: test::m::S {
@@ -61,16 +69,19 @@ Contents: test::m::S {
},
}
-task 9 'run'. lines 71-71:
+task 9, line 71:
+//# run test::m::add --sender A --args object(7,0) 1
created: object(9,0), object(9,1)
mutated: object(0,0), object(7,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 10 'run'. lines 73-73:
+task 10, line 73:
+//# run test::m::remove_and_add --sender A --args object(7,0) 1
mutated: object(0,0), object(7,0), object(9,0), object(9,1)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 5801004, non_refundable_storage_fee: 58596
-task 11 'view-object'. lines 75-79:
+task 11, lines 75-79:
+//# view-object 7,0
Owner: Account Address ( A )
Version: 7
Contents: test::m::S {
@@ -81,12 +92,14 @@ Contents: test::m::S {
},
}
-task 12 'run'. lines 81-81:
+task 12, line 81:
+//# run test::m::mint --sender A
created: object(12,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 13 'view-object'. lines 83-83:
+task 13, line 83:
+//# view-object 12,0
Owner: Account Address ( A )
Version: 8
Contents: test::m::S {
@@ -97,18 +110,21 @@ Contents: test::m::S {
},
}
-task 14 'run'. lines 85-85:
+task 14, line 85:
+//# run test::m::add --sender A --args object(12,0) 1
created: object(14,0), object(14,1)
mutated: object(0,0), object(12,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 15 'run'. lines 87-87:
+task 15, line 87:
+//# run test::m::remove_and_wrap --sender A --args object(12,0) 1
created: object(15,0)
mutated: object(0,0), object(12,0), object(14,0)
wrapped: object(14,1)
gas summary: computation_cost: 1000000, storage_cost: 6102800, storage_rebate: 5801004, non_refundable_storage_fee: 58596
-task 16 'view-object'. lines 89-89:
+task 16, line 89:
+//# view-object 12,0
Owner: Account Address ( A )
Version: 10
Contents: test::m::S {
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap.exp b/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap.exp
index 1017e2e60c433..60a7ee7507993 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap.exp
@@ -3,22 +3,26 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-37:
+task 1, lines 9-37:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6513200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 39-39:
+task 2, line 39:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 41-41:
+task 3, line 41:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 43-43:
+task 4, line 43:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,7 +33,8 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 45-45:
+task 5, line 45:
+//# run test::m::wrap --sender A --args object(2,0)
created: object(5,0)
mutated: object(0,0)
wrapped: object(2,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap_one_txn.exp b/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap_one_txn.exp
index b754dc6b3f79b..a30398551a826 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap_one_txn.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/delete_by_wrap_one_txn.exp
@@ -3,12 +3,14 @@ processed 3 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-31:
+task 1, lines 9-31:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6102800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 33-33:
+task 2, line 33:
+//# run test::m::test_wrap --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 6102800, storage_rebate: 0, non_refundable_storage_fee: 0
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_invalid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_invalid.exp
index 5eccc69f1cb4b..eff21ad36e01f 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_invalid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_invalid.exp
@@ -3,22 +3,26 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-32:
+task 1, lines 9-32:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6026800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 34-34:
+task 2, line 34:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 36-36:
+task 3, line 36:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 38-38:
+task 4, line 38:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,7 +33,8 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 40-40:
+task 5, line 40:
+//# run test::m::delete --sender A --args object(2,0)
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2174436, non_refundable_storage_fee: 21964
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid.exp
index f0a4d29a2a860..ece9cad433248 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid.exp
@@ -3,22 +3,26 @@ processed 7 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-57:
+task 1, lines 9-57:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 7987600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 58-58:
+task 2, line 58:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 60-60:
+task 3, line 60:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 62-62:
+task 4, line 62:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,12 +33,14 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 64-64:
+task 5, line 64:
+//# run test::m::remove --sender A --args object(2,0) 0
mutated: object(0,0), object(2,0)
deleted: object(3,0), object(3,1)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 5801004, non_refundable_storage_fee: 58596
-task 6 'run'. lines 66-66:
+task 6, line 66:
+//# run test::m::delete --sender A --args object(2,0)
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2174436, non_refundable_storage_fee: 21964
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid_one_txn.exp b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid_one_txn.exp
index 7d41f1507bc15..6bfc0fe13f297 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid_one_txn.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/delete_parent_valid_one_txn.exp
@@ -3,22 +3,26 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 10-69:
+task 1, lines 10-69:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 8382800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 71-71:
+task 2, line 71:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 73-73:
+task 3, line 73:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 75-75:
+task 4, line 75:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,7 +33,8 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 77-77:
+task 5, line 77:
+//# run test::m::remove_and_delete --sender A --args object(2,0) 0
mutated: object(0,0)
deleted: object(2,0), object(3,0), object(3,1)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 5801004, non_refundable_storage_fee: 58596
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_invalid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_invalid.exp
index 31346a8d01427..c5fd4ee8cd8fe 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_invalid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_invalid.exp
@@ -3,22 +3,26 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-61:
+task 1, lines 9-61:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 8458800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 63-63:
+task 2, line 63:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 65-65:
+task 3, line 65:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 67-67:
+task 4, line 67:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,6 +33,7 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 69-69:
+task 5, line 69:
+//# run test::m::freeze_object --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 2174436, non_refundable_storage_fee: 21964
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid.exp
index c1dde3f330210..68cae8aefc4e5 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid.exp
@@ -3,22 +3,26 @@ processed 7 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-61:
+task 1, lines 9-61:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 8458800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 63-63:
+task 2, line 63:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 65-65:
+task 3, line 65:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 67-67:
+task 4, line 67:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,11 +33,13 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 69-69:
+task 5, line 69:
+//# run test::m::remove --sender A --args object(2,0) 0
mutated: object(0,0), object(2,0)
deleted: object(3,0), object(3,1)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 5801004, non_refundable_storage_fee: 58596
-task 6 'run'. lines 71-71:
+task 6, line 71:
+//# run test::m::freeze_object --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 2174436, non_refundable_storage_fee: 21964
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid_one_txn.exp b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid_one_txn.exp
index 0ef139284d97f..a397264673d63 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid_one_txn.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/freeze_parent_valid_one_txn.exp
@@ -3,22 +3,26 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 10-64:
+task 1, lines 10-64:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 8610800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 66-66:
+task 2, line 66:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 68-68:
+task 3, line 68:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'view-object'. lines 70-70:
+task 4, line 70:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -29,7 +33,8 @@ Contents: test::m::S {
},
}
-task 5 'run'. lines 72-72:
+task 5, line 72:
+//# run test::m::remove_and_freeze --sender A --args object(2,0) 0
mutated: object(0,0), object(2,0)
deleted: object(3,0), object(3,1)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 5801004, non_refundable_storage_fee: 58596
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid.exp
index 8ef03fce40fbe..b2aa81d5b4dbb 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid.exp
@@ -3,17 +3,20 @@ processed 10 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-45:
+task 1, lines 9-45:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6976800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 47-47:
+task 2, line 47:
+//# run test::m::mint_and_share --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 49-53:
+task 3, lines 49-53:
+//# view-object 2,1
Owner: Shared( 2 )
Version: 2
Contents: test::m::S {
@@ -24,16 +27,19 @@ Contents: test::m::S {
},
}
-task 4 'run'. lines 55-55:
+task 4, line 55:
+//# run test::m::mint --sender A
created: object(4,0), object(4,1), object(4,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 57-57:
+task 5, line 57:
+//# run test::m::transfer --sender A --args object(4,2) @B
mutated: object(0,0), object(4,2)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 6 'view-object'. lines 59-63:
+task 6, lines 59-63:
+//# view-object 4,2
Owner: Account Address ( B )
Version: 4
Contents: test::m::S {
@@ -44,16 +50,19 @@ Contents: test::m::S {
},
}
-task 7 'run'. lines 65-65:
+task 7, line 65:
+//# run test::m::mint --sender A
created: object(7,0), object(7,1), object(7,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 8 'transfer-object'. lines 67-67:
+task 8, line 67:
+//# transfer-object 7,1 --sender A --recipient B
mutated: object(0,0), object(7,1)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 9 'view-object'. lines 69-69:
+task 9, line 69:
+//# view-object 7,1
Owner: Account Address ( B )
Version: 6
Contents: test::m::S {
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid_one_txn.exp b/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid_one_txn.exp
index ba63f86559cf5..025f1ba6aa2c2 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid_one_txn.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/non_zero_child_count_valid_one_txn.exp
@@ -3,17 +3,20 @@ processed 4 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 10-35:
+task 1, lines 10-35:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 5950800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 37-37:
+task 2, line 37:
+//# run test::m::share --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 39-39:
+task 3, line 39:
+//# view-object 2,1
Owner: Shared( 2 )
Version: 2
Contents: test::m::S {
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/temp_parent_invalid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/temp_parent_invalid.exp
index cbecdb6dbb902..a9f9dd825812e 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/temp_parent_invalid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/temp_parent_invalid.exp
@@ -3,12 +3,14 @@ processed 3 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-22:
+task 1, lines 9-22:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 5266800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 24-24:
+task 2, line 24:
+//# run test::m::t --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4651200, storage_rebate: 0, non_refundable_storage_fee: 0
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored.exp b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored.exp
index cd0197863757d..e248cfe7e1a87 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored.exp
@@ -3,17 +3,20 @@ processed 4 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-37:
+task 1, lines 9-37:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 5836800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 39-39:
+task 2, line 39:
+//# run test::m::create --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2439600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 41-41:
+task 3, line 41:
+//# run test::m::delete --args object(2,0) --sender A
mutated: object(0,0)
deleted: object(2,0)
unwrapped_then_deleted: object(_)
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored_transfer.exp b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored_transfer.exp
index 299b0ae7533b4..7350332af8274 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored_transfer.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_never_stored_transfer.exp
@@ -3,17 +3,20 @@ processed 4 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-36:
+task 1, lines 9-36:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6072400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 38-38:
+task 2, line 38:
+//# run test::m::create --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2439600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 40-40:
+task 3, line 40:
+//# run test::m::unwrap_and_transfer --args object(2,0) --sender A
mutated: object(0,0)
unwrapped: object(3,0)
deleted: object(2,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_then_delete_invalid.exp b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_then_delete_invalid.exp
index bb440aa6b5643..e5e6275dde75b 100644
--- a/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_then_delete_invalid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/child_count/unwrap_then_delete_invalid.exp
@@ -3,22 +3,26 @@ processed 5 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 9-44:
+task 1, lines 9-44:
+//# publish
created: object(1,0)
mutated: object(0,2)
gas summary: computation_cost: 1000000, storage_cost: 6688000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 46-46:
+task 2, line 46:
+//# run test::m::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2196400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 48-48:
+task 3, line 48:
+//# run test::m::add --sender A --args object(2,0) 0
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5859600, storage_rebate: 2174436, non_refundable_storage_fee: 21964
-task 4 'run'. lines 50-50:
+task 4, line 50:
+//# run test::m::wrap --sender A --args object(2,0)
created: object(4,0)
mutated: object(0,0)
wrapped: object(2,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp b/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp
index 6d842863bb7ea..50606a46cb29c 100644
--- a/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp
@@ -3,32 +3,38 @@ processed 9 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-17:
+task 1, lines 6-17:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 5183200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'publish'. lines 19-45:
+task 2, lines 19-45:
+//# publish --dependencies t3
created: object(2,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 7668400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 3 'publish'. lines 48-72:
+task 3, lines 48-72:
+//# publish --dependencies t2 t3
created: object(3,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 8215600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 74-74:
+task 4, line 74:
+//# run t3::o3::create --sender A
created: object(4,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2226800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 5 'run'. lines 76-76:
+task 5, line 76:
+//# run t2::o2::create_shared --args object(4,0) --sender A
created: object(5,0), object(5,1)
mutated: object(0,0), object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 5920400, storage_rebate: 2204532, non_refundable_storage_fee: 22268
-task 6 'view-object'. lines 78-78:
+task 6, line 78:
+//# view-object 4,0
Owner: Object ID: ( fake(5,0) )
Version: 3
Contents: t3::o3::Obj3 {
@@ -39,7 +45,8 @@ Contents: t3::o3::Obj3 {
},
}
-task 7 'view-object'. lines 80-82:
+task 7, lines 80-82:
+//# view-object 5,1
Owner: Shared( 3 )
Version: 3
Contents: t2::o2::Obj2 {
@@ -50,5 +57,6 @@ Contents: t2::o2::Obj2 {
},
}
-task 8 'run'. lines 83-83:
+task 8, line 83:
+//# run t1::o1::use_o2_o3 --args object(5,1) object(4,0) --sender A
Error: Error checking transaction input objects: InvalidChildObjectArgument { child_id: object(4,0), parent_id: object(5,0) }
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_and_undeny.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_and_undeny.exp
index 9b9560640f4ff..dd9905b7af3dd 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_and_undeny.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_and_undeny.exp
@@ -3,16 +3,19 @@ processed 14 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 12-35:
+task 1, lines 12-35:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 18316000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'view-object'. lines 37-37:
+task 2, line 37:
+//# view-object 1,0
1,0::regulated_coin
-task 3 'view-object'. lines 39-39:
+task 3, line 39:
+//# view-object 1,1
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::Coin {
@@ -26,7 +29,8 @@ Contents: sui::coin::Coin {
},
}
-task 4 'view-object'. lines 41-41:
+task 4, line 41:
+//# view-object 1,2
Owner: Immutable
Version: 2
Contents: sui::coin::CoinMetadata {
@@ -89,7 +93,8 @@ Contents: sui::coin::CoinMetadata {
},
}
-task 5 'view-object'. lines 43-43:
+task 5, line 43:
+//# view-object 1,3
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::DenyCap {
@@ -100,7 +105,8 @@ Contents: sui::coin::DenyCap {
},
}
-task 6 'view-object'. lines 45-45:
+task 6, line 45:
+//# view-object 1,4
Owner: Immutable
Version: 2
Contents: sui::coin::RegulatedCoinMetadata {
@@ -117,7 +123,8 @@ Contents: sui::coin::RegulatedCoinMetadata
},
}
-task 7 'view-object'. lines 47-49:
+task 7, lines 47-49:
+//# view-object 1,5
Owner: Immutable
Version: 2
Contents: sui::coin::TreasuryCap {
@@ -131,29 +138,35 @@ Contents: sui::coin::TreasuryCap {
},
}
-task 8 'run'. lines 50-52:
+task 8, lines 50-52:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(8,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 9 'run'. lines 53-55:
+task 9, lines 53-55:
+//# run sui::coin::deny_list_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(9,0), object(9,1)
mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
gas summary: computation_cost: 1000000, storage_cost: 11415200, storage_rebate: 2723688, non_refundable_storage_fee: 27512
-task 10 'transfer-object'. lines 56-58:
+task 10, lines 56-58:
+//# transfer-object 8,0 --sender B --recipient A
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 11 'run'. lines 59-61:
+task 11, lines 59-61:
+//# run sui::pay::split_and_transfer --args object(8,0) 1 @A --type-args test::regulated_coin::REGULATED_COIN --sender B
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 12 'run'. lines 62-64:
+task 12, lines 62-64:
+//# run sui::coin::deny_list_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(9,1)
deleted: object(9,0)
gas summary: computation_cost: 1000000, storage_cost: 9522800, storage_rebate: 11301048, non_refundable_storage_fee: 114152
-task 13 'transfer-object'. lines 65-65:
+task 13, line 65:
+//# transfer-object 8,0 --sender B --recipient A
mutated: object(0,1), object(8,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 2462400, storage_rebate: 1459656, non_refundable_storage_fee: 14744
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_multiple_per_module.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_multiple_per_module.exp
index 7378bbf95380f..967ae5fae8523 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_multiple_per_module.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_multiple_per_module.exp
@@ -3,16 +3,19 @@ processed 16 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-56:
+task 1, lines 9-56:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5), object(1,6), object(1,7), object(1,8), object(1,9), object(1,10)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 33082800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'view-object'. lines 58-58:
+task 2, line 58:
+//# view-object 1,0
1,0::{first_coin, second_coin}
-task 3 'view-object'. lines 60-60:
+task 3, line 60:
+//# view-object 1,1
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::Coin {
@@ -26,7 +29,8 @@ Contents: sui::coin::Coin {
},
}
-task 4 'view-object'. lines 62-62:
+task 4, line 62:
+//# view-object 1,2
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::Coin {
@@ -40,7 +44,8 @@ Contents: sui::coin::Coin {
},
}
-task 5 'view-object'. lines 64-64:
+task 5, line 64:
+//# view-object 1,3
Owner: Immutable
Version: 2
Contents: sui::coin::CoinMetadata {
@@ -103,7 +108,8 @@ Contents: sui::coin::CoinMetadata {
},
}
-task 6 'view-object'. lines 66-66:
+task 6, line 66:
+//# view-object 1,4
Owner: Immutable
Version: 2
Contents: sui::coin::CoinMetadata {
@@ -166,7 +172,8 @@ Contents: sui::coin::CoinMetadata {
},
}
-task 7 'view-object'. lines 68-68:
+task 7, line 68:
+//# view-object 1,5
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::DenyCap {
@@ -177,7 +184,8 @@ Contents: sui::coin::DenyCap {
},
}
-task 8 'view-object'. lines 70-70:
+task 8, line 70:
+//# view-object 1,6
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::DenyCap {
@@ -188,7 +196,8 @@ Contents: sui::coin::DenyCap {
},
}
-task 9 'view-object'. lines 72-72:
+task 9, line 72:
+//# view-object 1,7
Owner: Immutable
Version: 2
Contents: sui::coin::RegulatedCoinMetadata {
@@ -205,7 +214,8 @@ Contents: sui::coin::RegulatedCoinMetadata {
},
}
-task 10 'view-object'. lines 74-74:
+task 10, line 74:
+//# view-object 1,8
Owner: Immutable
Version: 2
Contents: sui::coin::RegulatedCoinMetadata {
@@ -222,7 +232,8 @@ Contents: sui::coin::RegulatedCoinMetadata {
},
}
-task 11 'view-object'. lines 76-76:
+task 11, line 76:
+//# view-object 1,9
Owner: Immutable
Version: 2
Contents: sui::coin::TreasuryCap {
@@ -236,7 +247,8 @@ Contents: sui::coin::TreasuryCap {
},
}
-task 12 'view-object'. lines 78-80:
+task 12, lines 78-80:
+//# view-object 1,10
Owner: Immutable
Version: 2
Contents: sui::coin::TreasuryCap {
@@ -250,15 +262,18 @@ Contents: sui::coin::TreasuryCap {
},
}
-task 13 'run'. lines 81-83:
+task 13, lines 81-83:
+//# run sui::coin::deny_list_add --args object(0x403) object(1,5) @A --type-args test::first_coin::FIRST_COIN --sender A
created: object(13,0), object(13,1)
mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,5)
gas summary: computation_cost: 1000000, storage_cost: 11293600, storage_rebate: 2663496, non_refundable_storage_fee: 26904
-task 14 'transfer-object'. lines 84-86:
+task 14, lines 84-86:
+//# transfer-object 1,1 --sender A --recipient A
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @A, coin_type: "object(1,0)::first_coin::FIRST_COIN" }
-task 15 'transfer-object'. lines 87-87:
+task 15, line 87:
+//# transfer-object 1,2 --sender A --recipient A
mutated: object(0,0), object(1,2)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 2416800, storage_rebate: 2392632, non_refundable_storage_fee: 24168
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_tto.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_tto.exp
index f48eafa74987b..b2ddbd85a258f 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_tto.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v1/coin_deny_tto.exp
@@ -3,13 +3,15 @@ processed 13 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-47:
+task 1, lines 8-47:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5), object(1,6)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 21766400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'view-object'. lines 49-49:
+task 2, line 49:
+//# view-object 1,0
Owner: Account Address ( A )
Version: 2
Contents: test::regulated_coin::Wallet {
@@ -20,10 +22,12 @@ Contents: test::regulated_coin::Wallet {
},
}
-task 3 'view-object'. lines 51-51:
+task 3, line 51:
+//# view-object 1,1
1,1::regulated_coin
-task 4 'view-object'. lines 53-53:
+task 4, line 53:
+//# view-object 1,2
Owner: Account Address ( fake(1,0) )
Version: 2
Contents: sui::coin::Coin {
@@ -37,7 +41,8 @@ Contents: sui::coin::Coin {
},
}
-task 5 'view-object'. lines 55-55:
+task 5, line 55:
+//# view-object 1,3
Owner: Immutable
Version: 2
Contents: sui::coin::CoinMetadata {
@@ -100,7 +105,8 @@ Contents: sui::coin::CoinMetadata {
},
}
-task 6 'view-object'. lines 57-57:
+task 6, line 57:
+//# view-object 1,4
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::DenyCap {
@@ -111,7 +117,8 @@ Contents: sui::coin::DenyCap {
},
}
-task 7 'view-object'. lines 59-59:
+task 7, line 59:
+//# view-object 1,5
Owner: Immutable
Version: 2
Contents: sui::coin::RegulatedCoinMetadata {
@@ -128,7 +135,8 @@ Contents: sui::coin::RegulatedCoinMetadata
},
}
-task 8 'view-object'. lines 61-63:
+task 8, lines 61-63:
+//# view-object 1,6
Owner: Immutable
Version: 2
Contents: sui::coin::TreasuryCap {
@@ -142,20 +150,24 @@ Contents: sui::coin::TreasuryCap {
},
}
-task 9 'run'. lines 64-66:
+task 9, lines 64-66:
+//# run sui::coin::deny_list_add --args object(0x403) object(1,4) @A --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(9,0), object(9,1)
mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,4)
gas summary: computation_cost: 1000000, storage_cost: 11415200, storage_rebate: 2723688, non_refundable_storage_fee: 27512
-task 10 'run'. lines 67-69:
+task 10, lines 67-69:
+//# run test::regulated_coin::receive_coin --args object(1,0) receiving(1,2) --sender A
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @A, coin_type: "object(1,1)::regulated_coin::REGULATED_COIN" }
-task 11 'run'. lines 70-72:
+task 11, lines 70-72:
+//# run sui::coin::deny_list_remove --args object(0x403) object(1,4) @A --type-args test::regulated_coin::REGULATED_COIN --sender A
mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,4), object(9,1)
deleted: object(9,0)
gas summary: computation_cost: 1000000, storage_cost: 9522800, storage_rebate: 11301048, non_refundable_storage_fee: 114152
-task 12 'run'. lines 73-73:
+task 12, line 73:
+//# run test::regulated_coin::receive_coin --args object(1,0) receiving(1,2) --sender A
mutated: object(0,0), object(1,0), object(1,2)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3807600, storage_rebate: 3769524, non_refundable_storage_fee: 38076
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_receiver.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_receiver.exp
index 0346f766948e9..69b28c7550c5c 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_receiver.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_receiver.exp
@@ -3,49 +3,59 @@ processed 11 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 12-37:
+task 1, lines 12-37:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 18392000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 38-40:
+task 2, lines 38-40:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(2,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 3 'run'. lines 41-43:
+task 3, lines 41-43:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 99, 99, 98, 54, 101, 48, 54, 98, 100, 51, 53, 102, 54, 52, 99, 102, 101, 57, 54, 54, 52, 51, 51, 53, 51, 57, 57, 99, 98, 51, 48, 101, 98, 52, 55, 54, 49, 49, 101, 49, 99, 56, 97, 50, 56, 56, 102, 56, 48, 56, 52, 52, 57, 52, 56, 51, 98, 98, 51, 102, 50, 102, 51, 101, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 111, 92, 117, 216, 246, 218, 26, 172, 163, 34, 123, 188, 238, 245, 77, 153, 179, 41, 124, 6, 21, 158, 75, 211, 154, 61, 181, 219, 3, 222, 9, 251] }
created: object(3,0), object(3,1), object(3,2)
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
-task 4 'run'. lines 44-44:
+task 4, line 44:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(4,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 5 'advance-epoch'. lines 46-48:
+task 5, lines 46-48:
+//# advance-epoch
Epoch advanced: 1
-task 6 'run'. lines 49-51:
+task 6, lines 49-51:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
Error: Transaction Effects Status: Address B is denied for coin test::regulated_coin::REGULATED_COIN
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: AddressDeniedForCoin { address: B, coin_type: "test::regulated_coin::REGULATED_COIN" }, source: None, command: None } }
-task 7 'run'. lines 52-54:
+task 7, lines 52-54:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(3,1)
gas summary: computation_cost: 1000000, storage_cost: 6862800, storage_rebate: 6794172, non_refundable_storage_fee: 68628
-task 8 'run'. lines 55-55:
+task 8, line 55:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
Error: Transaction Effects Status: Address B is denied for coin test::regulated_coin::REGULATED_COIN
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: AddressDeniedForCoin { address: B, coin_type: "test::regulated_coin::REGULATED_COIN" }, source: None, command: None } }
-task 9 'advance-epoch'. lines 57-59:
+task 9, lines 57-59:
+//# advance-epoch
Epoch advanced: 2
-task 10 'run'. lines 60-60:
+task 10, line 60:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(10,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_sender.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_sender.exp
index f89821c918df6..d375ea62d6c1c 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_sender.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_deny_and_undeny_sender.exp
@@ -3,13 +3,15 @@ processed 11 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 13-48:
+task 1, lines 13-48:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 19471200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'view-object'. lines 49-51:
+task 2, lines 49-51:
+//# view-object 1,3
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::DenyCapV2 {
@@ -21,40 +23,48 @@ Contents: sui::coin::DenyCapV2 {
allow_global_pause: false,
}
-task 3 'run'. lines 52-54:
+task 3, lines 52-54:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(3,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 4 'run'. lines 55-57:
+task 4, lines 55-57:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 51, 57, 57, 50, 48, 100, 100, 53, 50, 49, 99, 56, 48, 55, 101, 54, 98, 97, 99, 54, 99, 56, 97, 98, 51, 52, 102, 54, 49, 52, 48, 54, 49, 49, 53, 56, 56, 56, 49, 57, 57, 55, 56, 56, 52, 52, 98, 52, 51, 53, 57, 52, 53, 56, 57, 100, 55, 102, 56, 56, 98, 100, 57, 57, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 79, 194, 17, 174, 74, 227, 253, 26, 173, 100, 153, 228, 250, 55, 174, 175, 17, 33, 34, 53, 27, 207, 230, 188, 240, 54, 6, 177, 124, 66, 182, 148] }
created: object(4,0), object(4,1), object(4,2)
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
-task 5 'run'. lines 58-60:
+task 5, lines 58-60:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B true --sender A
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'transfer-object'. lines 61-63:
+task 6, lines 61-63:
+//# transfer-object 3,0 --sender B --recipient A
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 7 'run'. lines 64-66:
+task 7, lines 64-66:
+//# run sui::pay::split_and_transfer --args object(3,0) 1 @A --type-args test::regulated_coin::REGULATED_COIN --sender B
Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 8 'run'. lines 67-69:
+task 8, lines 67-69:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
deleted: object(4,1)
gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
-task 9 'run'. lines 70-72:
+task 9, lines 70-72:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 10 'transfer-object'. lines 73-73:
+task 10, line 73:
+//# transfer-object 3,0 --sender B --recipient A
mutated: object(0,1), object(3,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 2462400, storage_rebate: 1459656, non_refundable_storage_fee: 14744
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_global_pause.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_global_pause.exp
index eb440d6ba1d85..fb65a0feb6335 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_global_pause.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/coin_global_pause.exp
@@ -3,99 +3,120 @@ processed 22 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 10-72:
+task 1, lines 10-72:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 21964000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 73-75:
+task 2, lines 73-75:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
created: object(2,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 3 'run'. lines 76-78:
+task 3, lines 76-78:
+//# run test::regulated_coin::partial_wrap --args object(1,1) --sender A
created: object(3,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 4119200, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 4 'run'. lines 79-81:
+task 4, lines 79-81:
+//# run test::regulated_coin::partial_wrap --args object(1,1) --sender A
created: object(4,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 4119200, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 5 'run'. lines 82-84:
+task 5, lines 82-84:
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 54, 101, 99, 53, 53, 52, 55, 102, 50, 98, 99, 101, 48, 55, 97, 49, 48, 97, 102, 50, 57, 49, 57, 101, 97, 48, 101, 97, 57, 54, 97, 97, 102, 97, 56, 57, 54, 57, 56, 55, 56, 55, 50, 49, 50, 56, 55, 101, 98, 102, 54, 54, 102, 52, 48, 51, 100, 50, 100, 54, 99, 53, 57, 50, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 254, 127, 25, 0, 75, 139, 142, 51, 141, 181, 23, 12, 237, 165, 178, 199, 150, 191, 43, 48, 121, 145, 70, 28, 15, 98, 69, 101, 83, 67, 172, 114] }
created: object(5,0), object(5,1), object(5,2)
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
gas summary: computation_cost: 1000000, storage_cost: 11985200, storage_rebate: 2746260, non_refundable_storage_fee: 27740
-task 6 'run'. lines 85-87:
+task 6, lines 85-87:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) true --sender A
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 7 'run'. lines 88-90:
+task 7, lines 88-90:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
Error: Error checking transaction input objects: CoinTypeGlobalPause { coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 8 'transfer-object'. lines 91-93:
+task 8, lines 91-93:
+//# transfer-object 2,0 --sender B --recipient A
Error: Error checking transaction input objects: CoinTypeGlobalPause { coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 9 'run'. lines 94-97:
+task 9, lines 94-97:
+//# run sui::pay::split_and_transfer --args object(2,0) 1 @A --type-args test::regulated_coin::REGULATED_COIN --sender B
Error: Error checking transaction input objects: CoinTypeGlobalPause { coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 10 'run'. lines 98-98:
+task 10, line 98:
+//# run test::regulated_coin::unwrap --args object(3,0) --sender A
mutated: object(0,0)
unwrapped: object(10,0)
deleted: object(3,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 2462400, storage_rebate: 2618352, non_refundable_storage_fee: 26448
-task 11 'advance-epoch'. lines 100-103:
+task 11, lines 100-103:
+//# advance-epoch
Epoch advanced: 1
-task 12 'run'. lines 104-106:
+task 12, lines 104-106:
+//# run test::regulated_coin::unwrap --args object(4,0) --sender A
Error: Transaction Effects Status: Coin type is globally paused for use: test::regulated_coin::REGULATED_COIN
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CoinTypeGlobalPause { coin_type: "test::regulated_coin::REGULATED_COIN" }, source: None, command: None } }
-task 13 'run'. lines 107-109:
+task 13, lines 107-109:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
Error: Error checking transaction input objects: CoinTypeGlobalPause { coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
-task 14 'run'. lines 110-112:
+task 14, lines 110-112:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) true --sender A
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 15 'run'. lines 113-115:
+task 15, lines 113-115:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(5,1)
gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 6591024, non_refundable_storage_fee: 66576
-task 16 'run'. lines 116-118:
+task 16, lines 116-118:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 17 'run'. lines 119-121:
+task 17, lines 119-121:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
Error: Transaction Effects Status: Coin type is globally paused for use: test::regulated_coin::REGULATED_COIN
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CoinTypeGlobalPause { coin_type: "test::regulated_coin::REGULATED_COIN" }, source: None, command: None } }
-task 18 'run'. lines 122-125:
+task 18, lines 122-125:
+//# run test::regulated_coin::full_wrap --args object(1,1) --sender A
created: object(18,0)
mutated: object(0,0)
wrapped: object(1,1)
gas summary: computation_cost: 1000000, storage_cost: 2644800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
-task 19 'run'. lines 126-126:
+task 19, line 126:
+//# run test::regulated_coin::unwrap --args object(18,0) --sender A
Error: Transaction Effects Status: Coin type is globally paused for use: test::regulated_coin::REGULATED_COIN
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CoinTypeGlobalPause { coin_type: "test::regulated_coin::REGULATED_COIN" }, source: None, command: None } }
-task 20 'advance-epoch'. lines 128-130:
+task 20, lines 128-130:
+//# advance-epoch
Epoch advanced: 2
-task 21 'run'. lines 131-131:
+task 21, line 131:
+//# run test::regulated_coin::unwrap --args object(18,0) --sender A
mutated: object(0,0)
unwrapped: object(1,1)
deleted: object(18,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.exp
new file mode 100644
index 0000000000000..e01bfc13ed5ff
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.exp
@@ -0,0 +1,120 @@
+processed 12 tasks
+
+init:
+A: object(0,0), B: object(0,1)
+
+task 1, lines 9-53:
+//# publish --sender A
+created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 20428800, storage_rebate: 0, non_refundable_storage_fee: 0
+
+task 2, lines 54-56:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 48, 51, 51, 49, 100, 56, 101, 49, 98, 99, 98, 101, 55, 102, 100, 51, 97, 54, 101, 48, 97, 102, 102, 55, 99, 56, 56, 98, 50, 53, 97, 57, 54, 51, 102, 48, 51, 56, 102, 48, 51, 98, 97, 49, 53, 48, 51, 101, 48, 53, 98, 57, 56, 49, 102, 102, 101, 98, 56, 56, 98, 101, 98, 52, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 116, 239, 154, 198, 227, 43, 235, 247, 62, 51, 2, 238, 1, 255, 251, 178, 127, 24, 217, 192, 109, 173, 216, 65, 206, 45, 158, 164, 2, 239, 79, 140] }
+created: object(2,0), object(2,1), object(2,2)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
+
+task 3, lines 57-59:
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+created: object(3,0)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 4356396, non_refundable_storage_fee: 44004
+
+task 4, line 60:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 3
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 5, lines 62-64:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 4
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 6, lines 65-67:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 7, lines 68-70:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6591024, non_refundable_storage_fee: 66576
+
+task 8, line 71:
+//# view-object 2,1
+No object at id 2,1
+
+task 9, lines 73-75:
+//# view-object 3,0
+No object at id 3,0
+
+task 10, lines 76-78:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
+
+task 11, line 79:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.move b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.move
new file mode 100644
index 0000000000000..e401c3f1d7436
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_same_epoch.move
@@ -0,0 +1,79 @@
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+// This test verifies the correct deletion of the Config's setting object within the same epoch
+// that it was created
+
+//# init --accounts A B --addresses test=0x0
+
+//# publish --sender A
+module test::regulated_coin {
+ use sui::coin;
+ use sui::deny_list::DenyList;
+
+ public struct REGULATED_COIN has drop {}
+
+ fun init(otw: REGULATED_COIN, ctx: &mut TxContext) {
+ let (mut treasury_cap, deny_cap, metadata) = coin::create_regulated_currency_v2(
+ otw,
+ 9,
+ b"RC",
+ b"REGULATED_COIN",
+ b"A new regulated coin",
+ option::none(),
+ true,
+ ctx
+ );
+ let coin = coin::mint(&mut treasury_cap, 10000, ctx);
+ transfer::public_transfer(coin, tx_context::sender(ctx));
+ transfer::public_transfer(deny_cap, tx_context::sender(ctx));
+ transfer::public_freeze_object(treasury_cap);
+ transfer::public_freeze_object(metadata);
+ }
+
+ entry fun assert_address_deny_status(
+ deny_list: &DenyList,
+ addr: address,
+ expected: bool,
+ ) {
+ let status = coin::deny_list_v2_contains_next_epoch(deny_list, addr);
+ assert!(status == expected, 0);
+ }
+
+ entry fun assert_global_pause_status(
+ deny_list: &DenyList,
+ expected: bool,
+ ) {
+ let status =
+ coin::deny_list_v2_is_global_pause_enabled_next_epoch(deny_list);
+ assert!(status == expected, 0);
+ }
+}
+
+// Deny account B.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Enable global pause.
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// View the setting objects
+//# view-object 2,1
+
+//# view-object 3,0
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Disable global pause.
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Verify the setting objects are deleted
+//# view-object 2,1
+
+//# view-object 3,0
+
+// Assert that the address is no longer denied.
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+
+// Assert that global pause is disabled.
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.exp
new file mode 100644
index 0000000000000..fe5a650405754
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.exp
@@ -0,0 +1,202 @@
+processed 18 tasks
+
+init:
+A: object(0,0), B: object(0,1)
+
+task 1, lines 9-53:
+//# publish --sender A
+created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 20428800, storage_rebate: 0, non_refundable_storage_fee: 0
+
+task 2, lines 54-56:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 48, 51, 51, 49, 100, 56, 101, 49, 98, 99, 98, 101, 55, 102, 100, 51, 97, 54, 101, 48, 97, 102, 102, 55, 99, 56, 56, 98, 50, 53, 97, 57, 54, 51, 102, 48, 51, 56, 102, 48, 51, 98, 97, 49, 53, 48, 51, 101, 48, 53, 98, 57, 56, 49, 102, 102, 101, 98, 56, 56, 98, 101, 98, 52, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 116, 239, 154, 198, 227, 43, 235, 247, 62, 51, 2, 238, 1, 255, 251, 178, 127, 24, 217, 192, 109, 173, 216, 65, 206, 45, 158, 164, 2, 239, 79, 140] }
+created: object(2,0), object(2,1), object(2,2)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
+
+task 3, lines 57-59:
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+created: object(3,0)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 4356396, non_refundable_storage_fee: 44004
+
+task 4, line 60:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 3
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 5, line 62:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 4
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 6, lines 64-66:
+//# advance-epoch
+Epoch advanced: 1
+
+task 7, lines 67-69:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 6862800, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 8, lines 70-72:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 6591024, non_refundable_storage_fee: 66576
+
+task 9, line 73:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 5
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 1u64,
+ newer_value: std::option::Option {
+ vec: vector[],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 10, line 75:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 6
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 1u64,
+ newer_value: std::option::Option {
+ vec: vector[],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 11, lines 77-79:
+//# advance-epoch
+Epoch advanced: 2
+
+task 12, lines 80-82:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 13, lines 83-85:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6591024, non_refundable_storage_fee: 66576
+
+task 14, line 86:
+//# view-object 2,1
+No object at id 2,1
+
+task 15, lines 88-90:
+//# view-object 3,0
+No object at id 3,0
+
+task 16, lines 91-93:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
+
+task 17, line 94:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.move b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.move
new file mode 100644
index 0000000000000..046c50efe70b3
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_once.move
@@ -0,0 +1,94 @@
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+// This test verifies the correct deletion of the Config's setting object after the epoch it was
+// created. THe value is set only in one epoch.
+
+//# init --accounts A B --addresses test=0x0
+
+//# publish --sender A
+module test::regulated_coin {
+ use sui::coin;
+ use sui::deny_list::DenyList;
+
+ public struct REGULATED_COIN has drop {}
+
+ fun init(otw: REGULATED_COIN, ctx: &mut TxContext) {
+ let (mut treasury_cap, deny_cap, metadata) = coin::create_regulated_currency_v2(
+ otw,
+ 9,
+ b"RC",
+ b"REGULATED_COIN",
+ b"A new regulated coin",
+ option::none(),
+ true,
+ ctx
+ );
+ let coin = coin::mint(&mut treasury_cap, 10000, ctx);
+ transfer::public_transfer(coin, tx_context::sender(ctx));
+ transfer::public_transfer(deny_cap, tx_context::sender(ctx));
+ transfer::public_freeze_object(treasury_cap);
+ transfer::public_freeze_object(metadata);
+ }
+
+ entry fun assert_address_deny_status(
+ deny_list: &DenyList,
+ addr: address,
+ expected: bool,
+ ) {
+ let status = coin::deny_list_v2_contains_next_epoch(deny_list, addr);
+ assert!(status == expected, 0);
+ }
+
+ entry fun assert_global_pause_status(
+ deny_list: &DenyList,
+ expected: bool,
+ ) {
+ let status =
+ coin::deny_list_v2_is_global_pause_enabled_next_epoch(deny_list);
+ assert!(status == expected, 0);
+ }
+}
+
+// Deny account B.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Enable global pause.
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// View the setting objects
+//# view-object 2,1
+
+//# view-object 3,0
+
+//# advance-epoch
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Disable global pause.
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Verify the setting objects are still present
+//# view-object 2,1
+
+//# view-object 3,0
+
+//# advance-epoch
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Disable global pause.
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Verify the setting objects are deleted
+//# view-object 2,1
+
+//# view-object 3,0
+
+// Assert that the address is no longer denied.
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+
+// Assert that global pause is disabled.
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.exp
new file mode 100644
index 0000000000000..105efd1fbcf79
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.exp
@@ -0,0 +1,284 @@
+processed 23 tasks
+
+init:
+A: object(0,0), B: object(0,1)
+
+task 1, lines 9-53:
+//# publish --sender A
+created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 20428800, storage_rebate: 0, non_refundable_storage_fee: 0
+
+task 2, lines 54-56:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 48, 51, 51, 49, 100, 56, 101, 49, 98, 99, 98, 101, 55, 102, 100, 51, 97, 54, 101, 48, 97, 102, 102, 55, 99, 56, 56, 98, 50, 53, 97, 57, 54, 51, 102, 48, 51, 56, 102, 48, 51, 98, 97, 49, 53, 48, 51, 101, 48, 53, 98, 57, 56, 49, 102, 102, 101, 98, 56, 56, 98, 101, 98, 52, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 116, 239, 154, 198, 227, 43, 235, 247, 62, 51, 2, 238, 1, 255, 251, 178, 127, 24, 217, 192, 109, 173, 216, 65, 206, 45, 158, 164, 2, 239, 79, 140] }
+created: object(2,0), object(2,1), object(2,2)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
+
+task 3, lines 57-59:
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+created: object(3,0)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 4356396, non_refundable_storage_fee: 44004
+
+task 4, line 60:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 3
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 5, line 62:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 4
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 0u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 6, lines 64-66:
+//# advance-epoch
+Epoch advanced: 1
+
+task 7, lines 67-69:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 6870400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 8, lines 70-72:
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 6665200, storage_rebate: 6591024, non_refundable_storage_fee: 66576
+
+task 9, line 73:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 5
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 1u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 10, line 75:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 6
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 1u64,
+ newer_value: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 11, lines 77-79:
+//# advance-epoch
+Epoch advanced: 2
+
+task 12, lines 80-82:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 6862800, storage_rebate: 6801696, non_refundable_storage_fee: 68704
+
+task 13, lines 83-85:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 6657600, storage_rebate: 6598548, non_refundable_storage_fee: 66652
+
+task 14, line 86:
+//# view-object 2,1
+Owner: Object ID: ( fake(2,0) )
+Version: 7
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(2,1),
+ },
+ },
+ name: sui::deny_list::AddressKey {
+ pos0: B,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 2u64,
+ newer_value: std::option::Option {
+ vec: vector[],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 15, line 88:
+//# view-object 3,0
+Owner: Object ID: ( fake(2,0) )
+Version: 8
+Contents: sui::dynamic_field::Field> {
+ id: sui::object::UID {
+ id: sui::object::ID {
+ bytes: fake(3,0),
+ },
+ },
+ name: sui::deny_list::GlobalPauseKey {
+ dummy_field: false,
+ },
+ value: sui::config::Setting {
+ data: std::option::Option> {
+ vec: vector[
+ sui::config::SettingData {
+ newer_value_epoch: 2u64,
+ newer_value: std::option::Option {
+ vec: vector[],
+ },
+ older_value_opt: std::option::Option {
+ vec: vector[
+ true,
+ ],
+ },
+ },
+ ],
+ },
+ },
+}
+
+task 16, lines 90-92:
+//# advance-epoch
+Epoch advanced: 3
+
+task 17, lines 93-95:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(2,1)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 18, lines 96-98:
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(3,0)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6591024, non_refundable_storage_fee: 66576
+
+task 19, line 99:
+//# view-object 2,1
+No object at id 2,1
+
+task 20, lines 101-103:
+//# view-object 3,0
+No object at id 3,0
+
+task 21, lines 104-106:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
+
+task 22, line 107:
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.move b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.move
new file mode 100644
index 0000000000000..7699e38603431
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/delete_setting_object_set_twice.move
@@ -0,0 +1,107 @@
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+// This test verifies the correct deletion of the Config's setting object after the epoch it was
+// created. THe value is set twice over multiple epochs.
+
+//# init --accounts A B --addresses test=0x0
+
+//# publish --sender A
+module test::regulated_coin {
+ use sui::coin;
+ use sui::deny_list::DenyList;
+
+ public struct REGULATED_COIN has drop {}
+
+ fun init(otw: REGULATED_COIN, ctx: &mut TxContext) {
+ let (mut treasury_cap, deny_cap, metadata) = coin::create_regulated_currency_v2(
+ otw,
+ 9,
+ b"RC",
+ b"REGULATED_COIN",
+ b"A new regulated coin",
+ option::none(),
+ true,
+ ctx
+ );
+ let coin = coin::mint(&mut treasury_cap, 10000, ctx);
+ transfer::public_transfer(coin, tx_context::sender(ctx));
+ transfer::public_transfer(deny_cap, tx_context::sender(ctx));
+ transfer::public_freeze_object(treasury_cap);
+ transfer::public_freeze_object(metadata);
+ }
+
+ entry fun assert_address_deny_status(
+ deny_list: &DenyList,
+ addr: address,
+ expected: bool,
+ ) {
+ let status = coin::deny_list_v2_contains_next_epoch(deny_list, addr);
+ assert!(status == expected, 0);
+ }
+
+ entry fun assert_global_pause_status(
+ deny_list: &DenyList,
+ expected: bool,
+ ) {
+ let status =
+ coin::deny_list_v2_is_global_pause_enabled_next_epoch(deny_list);
+ assert!(status == expected, 0);
+ }
+}
+
+// Deny account B.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Enable global pause.
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// View the setting objects
+//# view-object 2,1
+
+//# view-object 3,0
+
+//# advance-epoch
+
+// Deny account B.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Enable global pause.
+//# run sui::coin::deny_list_v2_enable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// View the setting objects
+//# view-object 2,1
+
+//# view-object 3,0
+
+//# advance-epoch
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Disable global pause.
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Verify the setting objects are still present
+//# view-object 2,1
+
+//# view-object 3,0
+
+//# advance-epoch
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Disable global pause.
+//# run sui::coin::deny_list_v2_disable_global_pause --args object(0x403) object(1,3) --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Verify the setting objects are deleted
+//# view-object 2,1
+
+//# view-object 3,0
+
+// Assert that the address is no longer denied.
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+
+// Assert that global pause is disabled.
+//# run test::regulated_coin::assert_global_pause_status --args immshared(0x403) false --sender A
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.exp
new file mode 100644
index 0000000000000..74a83b7602756
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.exp
@@ -0,0 +1,62 @@
+processed 11 tasks
+
+init:
+A: object(0,0), B: object(0,1)
+
+task 1, lines 9-44:
+//# publish --sender A
+created: object(1,0), object(1,1), object(1,2), object(1,3), object(1,4), object(1,5)
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 19471200, storage_rebate: 0, non_refundable_storage_fee: 0
+
+task 2, lines 45-47:
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+created: object(2,0)
+mutated: object(0,0), object(1,1)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 2437776, non_refundable_storage_fee: 24624
+
+task 3, lines 48-50:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+events: Event { package_id: sui, transaction_module: Identifier("coin"), sender: A, type_: StructTag { address: sui, module: Identifier("deny_list"), name: Identifier("PerTypeConfigCreated"), type_params: [] }, contents: [0, 0, 0, 0, 0, 0, 0, 0, 96, 51, 57, 57, 50, 48, 100, 100, 53, 50, 49, 99, 56, 48, 55, 101, 54, 98, 97, 99, 54, 99, 56, 97, 98, 51, 52, 102, 54, 49, 52, 48, 54, 49, 49, 53, 56, 56, 56, 49, 57, 57, 55, 56, 56, 52, 52, 98, 52, 51, 53, 57, 52, 53, 56, 57, 100, 55, 102, 56, 56, 98, 100, 57, 57, 58, 58, 114, 101, 103, 117, 108, 97, 116, 101, 100, 95, 99, 111, 105, 110, 58, 58, 82, 69, 71, 85, 76, 65, 84, 69, 68, 95, 67, 79, 73, 78, 79, 194, 17, 174, 74, 227, 253, 26, 173, 100, 153, 228, 250, 55, 174, 175, 17, 33, 34, 53, 27, 207, 230, 188, 240, 54, 6, 177, 124, 66, 182, 148] }
+created: object(3,0), object(3,1), object(3,2)
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+gas summary: computation_cost: 1000000, storage_cost: 12190400, storage_rebate: 2746260, non_refundable_storage_fee: 27740
+
+task 4, lines 51-53:
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3), object(3,1)
+gas summary: computation_cost: 1000000, storage_cost: 6862800, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 5, lines 54-56:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B true --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
+
+task 6, lines 57-59:
+//# transfer-object 2,0 --sender B --recipient A
+Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
+
+task 7, lines 60-62:
+//# run sui::pay::split_and_transfer --args object(2,0) 1 @A --type-args test::regulated_coin::REGULATED_COIN --sender B
+Error: Error checking transaction input objects: AddressDeniedForCoin { address: @B, coin_type: "object(1,0)::regulated_coin::REGULATED_COIN" }
+
+task 8, lines 63-65:
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+mutated: 0x0000000000000000000000000000000000000000000000000000000000000403, object(0,0), object(1,3)
+deleted: object(3,1)
+gas summary: computation_cost: 1000000, storage_cost: 4400400, storage_rebate: 6794172, non_refundable_storage_fee: 68628
+
+task 9, lines 66-68:
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+mutated: object(0,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
+
+task 10, line 69:
+//# transfer-object 2,0 --sender B --recipient A
+mutated: object(0,1), object(2,0)
+unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
+gas summary: computation_cost: 1000000, storage_cost: 2462400, storage_rebate: 1459656, non_refundable_storage_fee: 14744
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.move b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.move
new file mode 100644
index 0000000000000..9f6bedad50171
--- /dev/null
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/double_add.move
@@ -0,0 +1,69 @@
+// Copyright (c) Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+// This test verifies double adding an address to the deny list does not panic and still
+// ensures the correct behavior when removing
+
+//# init --accounts A B --addresses test=0x0
+
+//# publish --sender A
+module test::regulated_coin {
+ use sui::coin;
+ use sui::deny_list::DenyList;
+
+ public struct REGULATED_COIN has drop {}
+
+ fun init(otw: REGULATED_COIN, ctx: &mut TxContext) {
+ let (mut treasury_cap, deny_cap, metadata) = coin::create_regulated_currency_v2(
+ otw,
+ 9,
+ b"RC",
+ b"REGULATED_COIN",
+ b"A new regulated coin",
+ option::none(),
+ false,
+ ctx
+ );
+ let coin = coin::mint(&mut treasury_cap, 10000, ctx);
+ transfer::public_transfer(coin, tx_context::sender(ctx));
+ transfer::public_transfer(deny_cap, tx_context::sender(ctx));
+ transfer::public_freeze_object(treasury_cap);
+ transfer::public_freeze_object(metadata);
+ }
+
+ entry fun assert_address_deny_status(
+ deny_list: &DenyList,
+ addr: address,
+ expected: bool,
+ ) {
+ let status = coin::deny_list_v2_contains_next_epoch(deny_list, addr);
+ assert!(status == expected, 0);
+ }
+}
+
+// Transfer away the newly minted coin works normally.
+//# run sui::pay::split_and_transfer --args object(1,1) 1 @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Deny account B.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Deny account B a second time. This should not change anything.
+//# run sui::coin::deny_list_v2_add --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Assert that the address is denied.
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B true --sender A
+
+// Try transfer the coin from B. This should now be denied.
+//# transfer-object 2,0 --sender B --recipient A
+
+// Try using the coin in a Move call. This should also be denied.
+//# run sui::pay::split_and_transfer --args object(2,0) 1 @A --type-args test::regulated_coin::REGULATED_COIN --sender B
+
+// Undeny account B.
+//# run sui::coin::deny_list_v2_remove --args object(0x403) object(1,3) @B --type-args test::regulated_coin::REGULATED_COIN --sender A
+
+// Assert that the address is no longer denied.
+//# run test::regulated_coin::assert_address_deny_status --args immshared(0x403) @B false --sender A
+
+// This time the transfer should work.
+//# transfer-object 2,0 --sender B --recipient A
diff --git a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/send_many_coins_unregulated.exp b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/send_many_coins_unregulated.exp
index 0d9d31c957e95..5fc41f49bce3b 100644
--- a/crates/sui-adapter-transactional-tests/tests/deny_list_v2/send_many_coins_unregulated.exp
+++ b/crates/sui-adapter-transactional-tests/tests/deny_list_v2/send_many_coins_unregulated.exp
@@ -3,13 +3,15 @@ processed 6 tasks
init:
A: object(0,0), B: object(0,1)
-task 1 'publish'. lines 6-52:
+task 1, lines 6-52:
+//# publish --sender A
created: object(1,0), object(1,1), object(1,2), object(1,3)
mutated: object(0,0)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 15048000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'view-object'. lines 54-54:
+task 2, line 54:
+//# view-object 1,1
Owner: Account Address ( A )
Version: 2
Contents: sui::coin::Coin {
@@ -23,19 +25,22 @@ Contents: sui::coin::Coin {
},
}
-task 3 'run'. lines 56-56:
+task 3, line 56:
+//# run test::coin::send_1 --args object(1,1) --sender A
created: object(3,0)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 1000000, storage_cost: 3632800, storage_rebate: 2287296, non_refundable_storage_fee: 23104
-task 4 'run'. lines 58-58:
+task 4, line 58:
+//# run test::coin::send_10 --args object(1,1) --sender A
created: object(4,0), object(4,1), object(4,2), object(4,3), object(4,4), object(4,5), object(4,6), object(4,7), object(4,8), object(4,9)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
gas summary: computation_cost: 2000000, storage_cost: 15534400, storage_rebate: 2287296, non_refundable_storage_fee: 23104
-task 5 'run'. lines 60-60:
+task 5, line 60:
+//# run test::coin::send_100 --args object(1,1) --sender A
created: object(5,0), object(5,1), object(5,2), object(5,3), object(5,4), object(5,5), object(5,6), object(5,7), object(5,8), object(5,9), object(5,10), object(5,11), object(5,12), object(5,13), object(5,14), object(5,15), object(5,16), object(5,17), object(5,18), object(5,19), object(5,20), object(5,21), object(5,22), object(5,23), object(5,24), object(5,25), object(5,26), object(5,27), object(5,28), object(5,29), object(5,30), object(5,31), object(5,32), object(5,33), object(5,34), object(5,35), object(5,36), object(5,37), object(5,38), object(5,39), object(5,40), object(5,41), object(5,42), object(5,43), object(5,44), object(5,45), object(5,46), object(5,47), object(5,48), object(5,49), object(5,50), object(5,51), object(5,52), object(5,53), object(5,54), object(5,55), object(5,56), object(5,57), object(5,58), object(5,59), object(5,60), object(5,61), object(5,62), object(5,63), object(5,64), object(5,65), object(5,66), object(5,67), object(5,68), object(5,69), object(5,70), object(5,71), object(5,72), object(5,73), object(5,74), object(5,75), object(5,76), object(5,77), object(5,78), object(5,79), object(5,80), object(5,81), object(5,82), object(5,83), object(5,84), object(5,85), object(5,86), object(5,87), object(5,88), object(5,89), object(5,90), object(5,91), object(5,92), object(5,93), object(5,94), object(5,95), object(5,96), object(5,97), object(5,98), object(5,99)
mutated: object(0,0), object(1,1)
unchanged_shared: 0x0000000000000000000000000000000000000000000000000000000000000403
diff --git a/crates/sui-adapter-transactional-tests/tests/dev_inspect/load_old_object.exp b/crates/sui-adapter-transactional-tests/tests/dev_inspect/load_old_object.exp
index 9c7081a1e55ca..e96c9e7b170d6 100644
--- a/crates/sui-adapter-transactional-tests/tests/dev_inspect/load_old_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dev_inspect/load_old_object.exp
@@ -3,17 +3,22 @@ processed 10 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-30:
+task 1, lines 8-30:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 5274400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 32-34:
+task 2, lines 32-34:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2257200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 36-36:
+task 3, line 36:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -25,11 +30,14 @@ Contents: test::m::S {
value: 0u64,
}
-task 4 'programmable'. lines 38-39:
+task 4, lines 38-39:
+//# programmable --sender A --inputs object(2,0) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2257200, storage_rebate: 2234628, non_refundable_storage_fee: 22572
-task 5 'view-object'. lines 41-44:
+task 5, lines 41-44:
+//# view-object 2,0
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -41,18 +49,27 @@ Contents: test::m::S {
value: 112u64,
}
-task 6 'programmable'. lines 46-47:
+task 6, lines 46-47:
+//# programmable --sender A --inputs object(2,0)@2 0 --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,0)
gas summary: computation_cost: 500000, storage_cost: 2257200, storage_rebate: 1256508, non_refundable_storage_fee: 12692
-task 7 'programmable'. lines 49-53:
+task 7, lines 49-53:
+//# programmable --sender A --inputs object(2,0)@3 112 --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
mutated: object(_), object(2,0)
gas summary: computation_cost: 500000, storage_cost: 2257200, storage_rebate: 1256508, non_refundable_storage_fee: 12692
-task 8 'programmable'. lines 55-56:
+task 8, lines 55-56:
+//# programmable --sender A --inputs object(2,0)@2 112 --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 2, instruction: 8, function_name: Some("check") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 2, instruction: 8, function_name: Some("check") }, 0) in command 0
-task 9 'programmable'. lines 58-59:
+task 9, lines 58-59:
+//# programmable --sender A --inputs object(2,0)@3 0 --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 2, instruction: 8, function_name: Some("check") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 2, instruction: 8, function_name: Some("check") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate.exp
index 68190f5392a68..bfe08830ee72f 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-28:
+task 1, lines 9-28:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 5867200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 30-30:
+task 2, line 30:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 3678400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 32-32:
+task 3, line 32:
+//# run a::m::t2 --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::add (function index 0) at offset 15, Abort Code: 0
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 0, instruction: 15, function_name: Some("add") }, 0), source: Some(VMError { major_status: ABORTED, sub_status: Some(0), message: Some("sui::dynamic_field::add at offset 15"), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 15)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate_object.exp
index 8fa87f1b59aa3..348313e963c8c 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/add_duplicate_object.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-29:
+task 1, lines 10-29:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6026800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 31-31:
+task 2, line 31:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 33-33:
+task 3, line 33:
+//# run a::m::t2 --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::add (function index 0) at offset 15, Abort Code: 0
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 0, instruction: 15, function_name: Some("add") }, 0), source: Some(VMError { major_status: ABORTED, sub_status: Some(0), message: Some("sui::dynamic_field::add at offset 15"), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 15)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/bench.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/bench.exp
index 038c3c14b702c..5245576b9a043 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/bench.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/bench.exp
@@ -3,12 +3,14 @@ processed 7 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-60:
+task 1, lines 9-60:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 8603200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 62-62:
+task 2, line 62:
+//# run a::m::t0 --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 0, non_refundable_storage_fee: 0
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type.exp
index 2b739c74dc2b4..2e41ae1801082 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type.exp
@@ -3,20 +3,24 @@ processed 5 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-32:
+task 1, lines 9-32:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6505600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 34-34:
+task 2, line 34:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 3678400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 36-36:
+task 3, line 36:
+//# run a::m::t2 --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object (function index 11) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(11), 0)] }), command: Some(0) } }
-task 4 'run'. lines 38-38:
+task 4, line 38:
+//# run a::m::t3 --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object_mut (function index 12) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 12, instruction: 0, function_name: Some("borrow_child_object_mut") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(12), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type_object.exp
index 1e859ff9e344a..52ec75749a4fc 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/borrow_wrong_type_object.exp
@@ -3,20 +3,24 @@ processed 5 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-37:
+task 1, lines 10-37:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 7075600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 39-39:
+task 2, line 39:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 41-41:
+task 3, line 41:
+//# run a::m::t2 --sender A --args object(2,1)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object (function index 11) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(11), 0)] }), command: Some(0) } }
-task 4 'run'. lines 43-43:
+task 4, line 43:
+//# run a::m::t3 --sender A --args object(2,1)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object_mut (function index 12) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 12, instruction: 0, function_name: Some("borrow_child_object_mut") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(12), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/dynamic_object_field_swap.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/dynamic_object_field_swap.exp
index 914a47e70c554..78f6f0053e551 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/dynamic_object_field_swap.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/dynamic_object_field_swap.exp
@@ -3,27 +3,32 @@ processed 8 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-59:
+task 1, lines 6-59:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 8937600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 61-61:
+task 2, line 61:
+//# run test::m::parent --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2470000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 63-63:
+task 3, line 63:
+//# run test::m::child --sender A
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2287600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 65-65:
+task 4, line 65:
+//# run test::m::add_field --sender A --args object(2,0) object(3,0)
created: object(4,0)
mutated: object(0,0), object(2,0), object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 6224400, storage_rebate: 3731904, non_refundable_storage_fee: 37696
-task 5 'view-object'. lines 67-67:
+task 5, line 67:
+//# view-object 3,0
Owner: Object ID: ( fake(4,0) )
Version: 4
Contents: test::m::Child {
@@ -35,13 +40,15 @@ Contents: test::m::Child {
value: 0u64,
}
-task 6 'run'. lines 69-69:
+task 6, line 69:
+//# run test::m::buy --sender A --args object(2,0)
created: object(6,0)
mutated: object(0,0), object(2,0), object(3,0)
deleted: object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 5251600, storage_rebate: 6162156, non_refundable_storage_fee: 62244
-task 7 'view-object'. lines 71-71:
+task 7, line 71:
+//# view-object 3,0
Owner: Account Address ( A )
Version: 5
Contents: test::m::Child {
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive.exp
index 88749a0ec05a7..acffb3adead09 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive.exp
@@ -3,47 +3,57 @@ processed 11 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-77:
+task 1, lines 9-77:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 12205600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 79-79:
+task 2, line 79:
+//# run a::m::t0 --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 81-81:
+task 3, line 81:
+//# run a::m::t1 --sender A --args object(2,0)
created: object(3,0), object(3,1), object(3,2)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 6513200, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 4 'run'. lines 83-83:
+task 4, line 83:
+//# run a::m::t2 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 5 'run'. lines 85-85:
+task 5, line 85:
+//# run a::m::t3 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 6 'run'. lines 87-87:
+task 6, line 87:
+//# run a::m::t4 --sender A --args object(2,0)
mutated: object(0,0), object(2,0), object(3,0), object(3,1), object(3,2)
gas summary: computation_cost: 1000000, storage_cost: 6513200, storage_rebate: 6448068, non_refundable_storage_fee: 65132
-task 7 'run'. lines 89-89:
+task 7, line 89:
+//# run a::m::t5 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 8 'run'. lines 91-91:
+task 8, line 91:
+//# run a::m::t6 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
deleted: object(3,1), object(3,2)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 5048604, non_refundable_storage_fee: 50996
-task 9 'run'. lines 93-93:
+task 9, line 93:
+//# run a::m::t7 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 10 'run'. lines 95-95:
+task 10, line 95:
+//# run a::m::t8 --sender A --args object(2,0)
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2189484, non_refundable_storage_fee: 22116
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive_object.exp
index 13ec07f8e4727..09a5182880387 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/exhaustive_object.exp
@@ -3,47 +3,57 @@ processed 11 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-102:
+task 1, lines 10-102:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 13482400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 104-104:
+task 2, line 104:
+//# run a::m::t0 --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 106-106:
+task 3, line 106:
+//# run a::m::t1 --sender A --args object(2,0)
created: object(3,0), object(3,1), object(3,2), object(3,3), object(3,4), object(3,5)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 13421600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 4 'run'. lines 108-108:
+task 4, line 108:
+//# run a::m::t2 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 5 'run'. lines 110-110:
+task 5, line 110:
+//# run a::m::t3 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 6 'run'. lines 112-112:
+task 6, line 112:
+//# run a::m::t4 --sender A --args object(2,0)
mutated: object(0,0), object(2,0), object(3,0), object(3,1), object(3,2)
gas summary: computation_cost: 1000000, storage_cost: 6156000, storage_rebate: 6094440, non_refundable_storage_fee: 61560
-task 7 'run'. lines 114-114:
+task 7, line 114:
+//# run a::m::t5 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 8 'run'. lines 116-116:
+task 8, line 116:
+//# run a::m::t6 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
deleted: object(3,1), object(3,2), object(3,4), object(3,5)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 9608148, non_refundable_storage_fee: 97052
-task 9 'run'. lines 118-118:
+task 9, line 118:
+//# run a::m::t7 --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 10 'run'. lines 120-120:
+task 10, line 120:
+//# run a::m::t8 --sender A --args object(2,0)
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2189484, non_refundable_storage_fee: 22116
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/read_field_from_immutable.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/read_field_from_immutable.exp
index 1bd04f8a30a13..39788273c8bfb 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/read_field_from_immutable.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/read_field_from_immutable.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-28:
+task 1, lines 9-28:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6133200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 30-30:
+task 2, line 30:
+//# run a::m::add_then_freeze --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 3678400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 32-32:
+task 3, line 32:
+//# run a::m::read_from_frozen --sender A --args object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/receive_remove_add_back_and_remove_type.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/receive_remove_add_back_and_remove_type.exp
index 96a171bdbc13b..80ab758630ff0 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/receive_remove_add_back_and_remove_type.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/receive_remove_add_back_and_remove_type.exp
@@ -3,48 +3,57 @@ processed 10 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 11-87:
+task 1, lines 11-87:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 12897200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 89-89:
+task 2, line 89:
+//# run test::m1::create --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4689200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 91-91:
+task 3, line 91:
+//# run test::m1::test_dof --args object(2,2) receiving(2,0) receiving(2,1) --sender A
mutated: object(0,0), object(2,0), object(2,2)
deleted: object(2,1)
gas summary: computation_cost: 1000000, storage_cost: 3465600, storage_rebate: 4642308, non_refundable_storage_fee: 46892
-task 4 'run'. lines 93-93:
+task 4, line 93:
+//# run test::m1::create --sender A
created: object(4,0), object(4,1), object(4,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4689200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 95-95:
+task 5, line 95:
+//# run test::m1::test_df --args object(4,2) receiving(4,0) receiving(4,1) --sender A
mutated: object(0,0), object(4,0), object(4,2)
deleted: object(4,1)
gas summary: computation_cost: 1000000, storage_cost: 3465600, storage_rebate: 4642308, non_refundable_storage_fee: 46892
-task 6 'run'. lines 97-97:
+task 6, line 97:
+//# run test::m1::create --sender A
created: object(6,0), object(6,1), object(6,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4689200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 7 'run'. lines 99-99:
+task 7, line 99:
+//# run test::m1::test_dof_wrapper --args object(6,2) receiving(6,0) receiving(6,1) --sender A
created: object(7,0)
mutated: object(0,0), object(6,2)
wrapped: object(6,0)
gas summary: computation_cost: 1000000, storage_cost: 4050800, storage_rebate: 3430944, non_refundable_storage_fee: 34656
-task 8 'run'. lines 101-101:
+task 8, line 101:
+//# run test::m1::create --sender A
created: object(8,0), object(8,1), object(8,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4689200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 9 'run'. lines 103-103:
+task 9, line 103:
+//# run test::m1::test_df_wrapper --args object(8,2) receiving(8,0) receiving(8,1) --sender A
created: object(9,0)
mutated: object(0,0), object(8,2)
wrapped: object(8,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove.exp
index 7971695029a80..25e84e85a3d0a 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove.exp
@@ -3,42 +3,50 @@ processed 9 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 11-52:
+task 1, lines 11-52:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 9614000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 54-56:
+task 2, lines 54-56:
+//# run test::m1::create --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2249600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 57-57:
+task 3, line 57:
+//# run test::m1::add_child --args object(2,0) --sender A
created: object(3,0), object(3,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5950800, storage_rebate: 2227104, non_refundable_storage_fee: 22496
-task 4 'run'. lines 59-61:
+task 4, lines 59-61:
+//# run test::m1::transfer_child --args object(2,0) --sender A
mutated: object(0,0), object(2,0), object(3,1)
deleted: object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 3496000, storage_rebate: 5891292, non_refundable_storage_fee: 59508
-task 5 'run'. lines 62-62:
+task 5, line 62:
+//# run test::m1::add_child --args object(2,0) --sender A
created: object(3,0), object(5,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5950800, storage_rebate: 2227104, non_refundable_storage_fee: 22496
-task 6 'run'. lines 64-66:
+task 6, lines 64-66:
+//# run test::m1::delete_child --args object(2,0) --sender A
mutated: object(0,0), object(2,0)
deleted: object(3,0), object(5,0)
gas summary: computation_cost: 1000000, storage_cost: 2249600, storage_rebate: 5891292, non_refundable_storage_fee: 59508
-task 7 'run'. lines 67-67:
+task 7, line 67:
+//# run test::m1::add_child --args object(2,0) --sender A
created: object(3,0), object(7,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5950800, storage_rebate: 2227104, non_refundable_storage_fee: 22496
-task 8 'run'. lines 69-69:
+task 8, line 69:
+//# run test::m1::wrap_child --args object(2,0) --sender A
mutated: object(0,0), object(2,0)
deleted: object(3,0)
wrapped: object(7,0)
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove_type.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove_type.exp
index 62efeacf4f8d6..2a6416a6d3095 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove_type.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_add_back_and_remove_type.exp
@@ -3,20 +3,24 @@ processed 5 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 11-48:
+task 1, lines 11-48:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 8762800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 50-50:
+task 2, line 50:
+//# run test::m1::create --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2242000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 52-52:
+task 3, line 52:
+//# run test::m1::test_dof --args object(2,0) --sender A
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2242000, storage_rebate: 2219580, non_refundable_storage_fee: 22420
-task 4 'run'. lines 54-54:
+task 4, line 54:
+//# run test::m1::test_df --args object(2,0) --sender A
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2242000, storage_rebate: 2219580, non_refundable_storage_fee: 22420
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type.exp
index 0dc8bb4f79c43..db2e7c92f9aca 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 9-29:
+task 1, lines 9-29:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6019200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 31-31:
+task 2, line 31:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 3678400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 33-33:
+task 3, line 33:
+//# run a::m::t2 --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::remove_child_object (function index 13) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 13, instruction: 0, function_name: Some("remove_child_object") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(13), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type_object.exp
index 6e646b87c5200..9a253c6513722 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/remove_wrong_type_object.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-34:
+task 1, lines 10-34:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6695600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 36-36:
+task 2, line 36:
+//# run a::m::t1 --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 38-38:
+task 3, line 38:
+//# run a::m::t2 --sender A --args object(2,1)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::remove_child_object (function index 13) at offset 0, Abort Code: 2
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 13, instruction: 0, function_name: Some("remove_child_object") }, 2), source: Some(VMError { major_status: ABORTED, sub_status: Some(2), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(13), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/shared_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/shared_object.exp
index e37673ebf90fb..e920aa9b07ba4 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/shared_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/shared_object.exp
@@ -3,26 +3,31 @@ processed 9 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-72:
+task 1, lines 8-72:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 9690000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 74-74:
+task 2, line 74:
+//# run test::m::parent --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2470000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 76-78:
+task 3, lines 76-78:
+//# run test::m::child --sender A
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2287600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 79-79:
+task 4, line 79:
+//# run test::m::add_field --sender A --args object(2,0) object(3,0)
Error: Transaction Effects Status: The shared object operation is not allowed.
Debug of error: SharedObjectOperationNotAllowed at command None
-task 5 'view-object'. lines 81-81:
+task 5, line 81:
+//# view-object 3,0
Owner: Shared( 3 )
Version: 4
Contents: test::m::Child {
@@ -34,11 +39,13 @@ Contents: test::m::Child {
value: 0u64,
}
-task 6 'run'. lines 83-83:
+task 6, line 83:
+//# run test::m::buy --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object (function index 11) at offset 0, Abort Code: 1
Debug of error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) at command Some(0)
-task 7 'view-object'. lines 85-85:
+task 7, line 85:
+//# view-object 3,0
Owner: Shared( 3 )
Version: 4
Contents: test::m::Child {
@@ -50,6 +57,7 @@ Contents: test::m::Child {
value: 0u64,
}
-task 8 'run'. lines 87-87:
+task 8, line 87:
+//# run test::m::make_dynamic_remove_and_then_share
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object (function index 11) at offset 0, Abort Code: 1
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1), source: Some(VMError { major_status: ABORTED, sub_status: Some(1), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(11), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/transfer_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/transfer_object.exp
index 2b0aa95ade003..e160db7b95b1f 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/transfer_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/transfer_object.exp
@@ -3,48 +3,58 @@ processed 11 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-65:
+task 1, lines 10-65:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 9317600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 67-67:
+task 2, line 67:
+//# run a::m::create --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 69-69:
+task 3, line 69:
+//# run a::m::create --sender A
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 71-71:
+task 4, line 71:
+//# run a::m::add_counter --sender A --args object(2,0)
created: object(4,0), object(4,1)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 5981200, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 5 'run'. lines 73-73:
+task 5, line 73:
+//# run a::m::obj_bump --sender A --args object(2,0)
mutated: object(0,0), object(2,0), object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 3526400, storage_rebate: 3491136, non_refundable_storage_fee: 35264
-task 6 'run'. lines 75-75:
+task 6, line 75:
+//# run a::m::assert_count --sender A --args object(2,0) 1
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 7 'run'. lines 77-77:
+task 7, line 77:
+//# run a::m::transfer --sender A --args object(2,0) object(3,0)
created: object(7,0)
mutated: object(0,0), object(2,0), object(3,0), object(4,0)
deleted: object(4,1)
gas summary: computation_cost: 1000000, storage_cost: 7204800, storage_rebate: 7132752, non_refundable_storage_fee: 72048
-task 8 'run'. lines 79-79:
+task 8, line 79:
+//# run a::m::obj_bump --sender A --args object(3,0)
mutated: object(0,0), object(3,0), object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 3526400, storage_rebate: 3491136, non_refundable_storage_fee: 35264
-task 9 'run'. lines 81-81:
+task 9, line 81:
+//# run a::m::assert_count --sender A --args object(3,0) 2
mutated: object(0,0), object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 10 'run'. lines 83-83:
+task 10, line 83:
+//# run a::m::obj_bump --sender A --args object(2,0)
Error: Transaction Effects Status: Move Runtime Abort. Location: sui::dynamic_field::borrow_child_object_mut (function index 12) at offset 0, Abort Code: 1
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 12, instruction: 0, function_name: Some("borrow_child_object_mut") }, 1), source: Some(VMError { major_status: ABORTED, sub_status: Some(1), message: None, exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("dynamic_field") }), indices: [], offsets: [(FunctionDefinitionIndex(12), 0)] }), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/unwrap_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/unwrap_object.exp
index 58f165cbbe97a..a34226c7b2b70 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/unwrap_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/unwrap_object.exp
@@ -3,24 +3,28 @@ processed 10 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-39:
+task 1, lines 8-39:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 7478400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 41-41:
+task 2, line 41:
+//# run a::m::mint --sender A
created: object(2,0), object(2,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4157200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 43-43:
+task 3, line 43:
+//# run a::m::take_and_wrap --sender A --args object(2,0)
created: object(3,1)
mutated: object(0,0), object(2,0)
unwrapped: object(3,0)
deleted: object(2,1)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 4115628, non_refundable_storage_fee: 41572
-task 4 'view-object'. lines 45-45:
+task 4, line 45:
+//# view-object 3,0
Owner: Object ID: ( fake(3,1) )
Version: 3
Contents: a::m::Obj {
@@ -31,29 +35,34 @@ Contents: a::m::Obj {
},
}
-task 5 'run'. lines 48-48:
+task 5, line 48:
+//# run a::m::mint --sender A
created: object(5,0), object(5,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4157200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'run'. lines 50-50:
+task 6, line 50:
+//# run a::m::take_and_destroy --sender A --args object(5,0)
mutated: object(0,0), object(5,0)
deleted: object(5,1)
unwrapped_then_deleted: object(_)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 4115628, non_refundable_storage_fee: 41572
-task 7 'run'. lines 53-53:
+task 7, line 53:
+//# run a::m::mint --sender A
created: object(7,0), object(7,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4157200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 8 'run'. lines 56-56:
+task 8, line 56:
+//# run a::m::take_and_take --sender A --args object(7,0)
mutated: object(0,0), object(7,0)
unwrapped: object(8,0)
deleted: object(7,1)
gas summary: computation_cost: 1000000, storage_cost: 3435200, storage_rebate: 4115628, non_refundable_storage_fee: 41572
-task 9 'view-object'. lines 58-58:
+task 9, line 58:
+//# view-object 7,0
Owner: Account Address ( A )
Version: 7
Contents: a::m::Obj {
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrap_object.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrap_object.exp
index e9d4d32f48624..8e2a09abe3f97 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrap_object.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrap_object.exp
@@ -3,17 +3,20 @@ processed 12 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-39:
+task 1, lines 8-39:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 7478400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 41-41:
+task 2, line 41:
+//# run a::m::mint --sender A
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 43-43:
+task 3, line 43:
+//# view-object 2,1
Owner: Object ID: ( fake(2,2) )
Version: 2
Contents: a::m::Obj {
@@ -24,19 +27,22 @@ Contents: a::m::Obj {
},
}
-task 4 'run'. lines 45-45:
+task 4, line 45:
+//# run a::m::take_and_wrap --sender A --args object(2,0)
created: object(4,0)
mutated: object(0,0), object(2,0)
deleted: object(2,2)
wrapped: object(2,1)
gas summary: computation_cost: 1000000, storage_cost: 4157200, storage_rebate: 5831100, non_refundable_storage_fee: 58900
-task 5 'run'. lines 48-48:
+task 5, line 48:
+//# run a::m::mint --sender A
created: object(5,0), object(5,1), object(5,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'view-object'. lines 50-50:
+task 6, line 50:
+//# view-object 5,2
Owner: Object ID: ( fake(5,1) )
Version: 4
Contents: sui::dynamic_field::Field, sui::object::ID> {
@@ -53,17 +59,20 @@ Contents: sui::dynamic_field::Field, sui
},
}
-task 7 'run'. lines 52-52:
+task 7, line 52:
+//# run a::m::take_and_destroy --sender A --args object(5,1)
mutated: object(0,0), object(5,1)
deleted: object(5,0), object(5,2)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 5831100, non_refundable_storage_fee: 58900
-task 8 'run'. lines 55-55:
+task 8, line 55:
+//# run a::m::mint --sender A
created: object(8,0), object(8,1), object(8,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5890000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 9 'view-object'. lines 57-57:
+task 9, line 57:
+//# view-object 8,2
Owner: Object ID: ( fake(8,0) )
Version: 6
Contents: sui::dynamic_field::Field, sui::object::ID> {
@@ -80,10 +89,12 @@ Contents: sui::dynamic_field::Field, sui
},
}
-task 10 'run'. lines 59-59:
+task 10, line 59:
+//# run a::m::take_and_take --sender A --args object(8,0)
mutated: object(0,0), object(8,0), object(8,1)
deleted: object(8,2)
gas summary: computation_cost: 1000000, storage_cost: 3435200, storage_rebate: 5831100, non_refundable_storage_fee: 58900
-task 11 'view-object'. lines 61-61:
+task 11, line 61:
+//# view-object 8,2
No object at id 8,2
diff --git a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrapped_uid_after_delete.exp b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrapped_uid_after_delete.exp
index 7d8a2e0ce9c22..689f3bf788e1e 100644
--- a/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrapped_uid_after_delete.exp
+++ b/crates/sui-adapter-transactional-tests/tests/dynamic_fields/wrapped_uid_after_delete.exp
@@ -3,32 +3,38 @@ processed 10 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 10-82:
+task 1, lines 10-82:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 10229600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 84-84:
+task 2, line 84:
+//# run a::m::t0 --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2211600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 86-86:
+task 3, line 86:
+//# run a::m::t1 --sender A --args object(2,0)
created: object(3,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 4248400, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 4 'run'. lines 88-88:
+task 4, line 88:
+//# run a::m::t2 --sender A --args object(2,0)
mutated: object(0,0), object(2,0), object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 4248400, storage_rebate: 4205916, non_refundable_storage_fee: 42484
-task 5 'run'. lines 90-90:
+task 5, line 90:
+//# run a::m::t3 --sender A --args object(2,0)
created: object(5,0)
mutated: object(0,0)
wrapped: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2485200, storage_rebate: 2189484, non_refundable_storage_fee: 22116
-task 6 'view-object'. lines 92-92:
+task 6, line 92:
+//# view-object 3,0
Owner: Object ID: ( fake(2,0) )
Version: 4
Contents: sui::dynamic_field::Field {
@@ -48,17 +54,20 @@ Contents: sui::dynamic_field::Field {
},
}
-task 7 'run'. lines 94-94:
+task 7, line 94:
+//# run a::m::t4 --sender A --args object(5,0)
mutated: object(0,0), object(5,0)
gas summary: computation_cost: 1000000, storage_cost: 2485200, storage_rebate: 2460348, non_refundable_storage_fee: 24852
-task 8 'run'. lines 96-96:
+task 8, line 96:
+//# run a::m::t5 --sender A --args object(5,0)
mutated: object(0,0)
deleted: object(5,0)
unwrapped_then_deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2460348, non_refundable_storage_fee: 24852
-task 9 'view-object'. lines 98-98:
+task 9, line 98:
+//# view-object 3,0
Owner: Object ID: ( fake(2,0) )
Version: 4
Contents: sui::dynamic_field::Field {
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/ascii.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/ascii.exp
index 26ddb3232f67d..40f380dc4f7e5 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/ascii.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/ascii.exp
@@ -3,23 +3,28 @@ processed 6 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-25:
+task 1, lines 6-25:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 5745600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 27-30:
+task 2, lines 27-30:
+//# run Test::M::ascii_arg --sender A --args b"SomeString"
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 32-35:
+task 3, lines 32-35:
+//# run Test::M::ascii_arg --sender A --args "SomeString"
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 37-45:
+task 4, lines 37-45:
+//# run Test::M::ascii_vec_arg --sender A --args vector[b"Some",b"String"]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 47-47:
+task 5, line 47:
+//# run Test::M::ascii_arg --sender A --args "Some∫tring"
Error: Transaction Effects Status: Invalid command argument at 0. The argument cannot be deserialized into a value of the specified type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidBCSBytes }, source: Some("Function expects std::ascii::String but provided argument's value does not match"), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref.exp
index 9326bb637bf54..dd14354f47c7e 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref.exp
@@ -3,7 +3,8 @@ processed 2 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-14:
+task 1, lines 6-14:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 4149600, storage_rebate: 0, non_refundable_storage_fee: 0
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref_invalid.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref_invalid.exp
index 4ba95571e90e0..90ad1089c9d98 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref_invalid.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/generic_by_ref_invalid.exp
@@ -3,18 +3,22 @@ processed 5 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-11:
+task 1, lines 8-11:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Invalid entry point parameter type. Expected primitive or object type. Got: &T0"), command: Some(0) } }
-task 2 'publish'. lines 13-16:
+task 2, lines 13-16:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Invalid entry point parameter type. Expected primitive or object type. Got: &mut T0"), command: Some(0) } }
-task 3 'publish'. lines 18-21:
+task 3, lines 18-21:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Invalid entry point parameter type. Expected primitive or object type. Got: &T0"), command: Some(0) } }
-task 4 'publish'. lines 23-26:
+task 4, lines 23-26:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Invalid entry point parameter type. Expected primitive or object type. Got: &mut T0"), command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/imm_txn_context.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/imm_txn_context.exp
index fff39946568e0..db78f3217b65a 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/imm_txn_context.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/imm_txn_context.exp
@@ -3,20 +3,24 @@ processed 5 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-27:
+task 1, lines 6-27:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6034400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 29-29:
+task 2, line 29:
+//# run Test::M::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 31-31:
+task 3, line 31:
+//# run Test::M::set_to_epoch --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 4 'run'. lines 33-33:
+task 4, line 33:
+//# run Test::M::check_is_epoch --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 2249676, non_refundable_storage_fee: 22724
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/missing_type.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/missing_type.exp
index dc19b15d004bf..07ea9cd668a44 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/missing_type.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/missing_type.exp
@@ -3,27 +3,33 @@ processed 7 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-15:
+task 1, lines 8-15:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 3876000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 17-17:
+task 2, line 17:
+//# run test::m::foo --type-args test::x::x
Error: Transaction Effects Status: Move Bytecode Verification Error. Please run the Bytecode Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: VMVerificationOrDeserializationError, source: Some(VMError { major_status: LINKER_ERROR, sub_status: None, message: Some("Cannot find ModuleId { address: test, name: Identifier(\"x\") } in data cache"), exec_state: None, location: Undefined, indices: [], offsets: [] }), command: Some(0) } }
-task 3 'run'. lines 19-19:
+task 3, line 19:
+//# run test::m::foo --type-args test::m::SUI
Error: Transaction Effects Status: Error for type argument at index 0: A type was not found in the module specified.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeArgumentError { argument_idx: 0, kind: TypeNotFound }, source: None, command: Some(0) } }
-task 4 'run'. lines 21-21:
+task 4, line 21:
+//# run test::m::foo --type-args test::m::S
Error: Transaction Effects Status: Type arity mismatch for Move function. Mismatch between the number of actual versus expected type arguments.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeArityMismatch, source: None, command: Some(0) } }
-task 5 'run'. lines 23-23:
+task 5, line 23:
+//# run test::m::foo --type-args test::m::S
Error: Transaction Effects Status: Type arity mismatch for Move function. Mismatch between the number of actual versus expected type arguments.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeArityMismatch, source: None, command: Some(0) } }
-task 6 'run'. lines 25-25:
+task 6, line 25:
+//# run test::m::foo --type-args test::m::S
Error: Transaction Effects Status: Error for type argument at index 0: A type provided did not match the specified constraints.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeArgumentError { argument_idx: 0, kind: ConstraintNotSatisfied }, source: None, command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/no_txn_context.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/no_txn_context.exp
index 20baf868a3e96..3299f1af43cb2 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/no_txn_context.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/no_txn_context.exp
@@ -3,16 +3,19 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-23:
+task 1, lines 6-23:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 5494800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 25-25:
+task 2, line 25:
+//# run Test::M::mint --sender A
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 27-27:
+task 3, line 27:
+//# run Test::M::incr --sender A --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 2249676, non_refundable_storage_fee: 22724
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector.exp
index 24ffe2dca6486..709aa1320e41d 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector.exp
@@ -3,85 +3,103 @@ processed 19 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-111:
+task 1, lines 8-111:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 12646400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 113-113:
+task 2, line 113:
+//# run Test::M::prim_vec_len --sender A --args vector[7,42]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 115-119:
+task 3, lines 115-119:
+//# run Test::M::mint --sender A --args 42
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 121-121:
+task 4, line 121:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(3,0)]
mutated: object(0,0)
deleted: object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 5 'run'. lines 123-123:
+task 5, line 123:
+//# run Test::M::mint --sender A --args 42
created: object(5,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'run'. lines 125-125:
+task 6, line 125:
+//# run Test::M::mint_child --sender A --args 42 object(5,0)
created: object(6,0), object(6,1)
mutated: object(0,0), object(5,0)
gas summary: computation_cost: 1000000, storage_cost: 6011600, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 7 'run'. lines 127-131:
+task 7, lines 127-131:
+//# run Test::M::child_access --sender A --args object(5,0) vector[object(6,0)]
Error: Error checking transaction input objects: InvalidChildObjectArgument { child_id: object(6,0), parent_id: object(6,1) }
-task 8 'run'. lines 133-133:
+task 8, line 133:
+//# run Test::M::mint_another --sender A --args 42
created: object(8,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2325600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 9 'run'. lines 135-138:
+task 9, lines 135-138:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(8,0)]
Error: Transaction Effects Status: Invalid command argument at 0. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: TypeMismatch }, source: None, command: Some(1) } }
-task 10 'run'. lines 140-140:
+task 10, line 140:
+//# run Test::M::mint_another --sender A --args 42
created: object(10,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2325600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 11 'run'. lines 142-142:
+task 11, line 142:
+//# run Test::M::mint --sender A --args 42
created: object(11,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 12 'run'. lines 144-147:
+task 12, lines 144-147:
+//# run Test::M::two_obj_vec_destroy --sender A --args vector[object(10,0),object(11,0)]
Error: Transaction Effects Status: Invalid command argument at 1. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 1, kind: TypeMismatch }, source: None, command: Some(0) } }
-task 13 'run'. lines 149-149:
+task 13, line 149:
+//# run Test::M::mint_shared --sender A --args 42
created: object(13,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 14 'run'. lines 151-154:
+task 14, lines 151-154:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(13,0)]
mutated: object(0,0)
deleted: object(13,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 15 'run'. lines 156-156:
+task 15, line 156:
+//# run Test::M::mint --sender A --args 42
created: object(15,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 16 'run'. lines 158-161:
+task 16, lines 158-161:
+//# run Test::M::same_objects --sender A --args object(15,0) vector[object(15,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
-task 17 'run'. lines 163-163:
+task 17, line 163:
+//# run Test::M::mint --sender A --args 42
created: object(17,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 18 'run'. lines 165-165:
+task 18, line 165:
+//# run Test::M::same_objects_ref --sender A --args object(17,0) vector[object(17,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic.exp
index 127f07f2f3b55..77d0ebe7e6e34 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic.exp
@@ -3,81 +3,98 @@ processed 18 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-110:
+task 1, lines 8-110:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 13452000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 112-112:
+task 2, line 112:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 114-118:
+task 3, lines 114-118:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(2,0)]
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2573208, non_refundable_storage_fee: 25992
-task 4 'run'. lines 120-120:
+task 4, line 120:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(4,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 122-122:
+task 5, line 122:
+//# run Test::M::mint_child_any --sender A --type-args Test::M::Any --args 42 object(4,0)
created: object(5,0), object(5,1)
mutated: object(0,0), object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 6665200, storage_rebate: 2573208, non_refundable_storage_fee: 25992
-task 6 'run'. lines 124-128:
+task 6, lines 124-128:
+//# run Test::M::child_access_any --sender A --type-args Test::M::Any --args object(4,0) vector[object(5,0)]
Error: Error checking transaction input objects: InvalidChildObjectArgument { child_id: object(5,0), parent_id: object(5,1) }
-task 7 'run'. lines 130-130:
+task 7, line 130:
+//# run Test::M::mint_another_any --type-args Test::M::Any --sender A --args 42
created: object(7,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2652400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 8 'run'. lines 132-135:
+task 8, lines 132-135:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(7,0)]
Error: Transaction Effects Status: Invalid command argument at 0. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: TypeMismatch }, source: None, command: Some(1) } }
-task 9 'run'. lines 137-137:
+task 9, line 137:
+//# run Test::M::mint_another_any --sender A --type-args Test::M::Any --args 42
created: object(9,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2652400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 10 'run'. lines 139-139:
+task 10, line 139:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(10,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 11 'run'. lines 141-144:
+task 11, lines 141-144:
+//# run Test::M::two_obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(9,0),object(10,0)]
Error: Transaction Effects Status: Invalid command argument at 1. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 1, kind: TypeMismatch }, source: None, command: Some(0) } }
-task 12 'run'. lines 146-146:
+task 12, line 146:
+//# run Test::M::mint_shared_any --sender A --type-args Test::M::Any --args 42
created: object(12,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 13 'run'. lines 148-151:
+task 13, lines 148-151:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(12,0)]
mutated: object(0,0)
deleted: object(12,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2573208, non_refundable_storage_fee: 25992
-task 14 'run'. lines 153-153:
+task 14, line 153:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(14,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 15 'run'. lines 155-158:
+task 15, lines 155-158:
+//# run Test::M::same_objects_any --sender A --type-args Test::M::Any --args object(14,0) vector[object(14,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
-task 16 'run'. lines 160-160:
+task 16, line 160:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(16,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 17 'run'. lines 162-162:
+task 17, line 162:
+//# run Test::M::same_objects_ref_any --sender A --type-args Test::M::Any --args object(16,0) vector[object(16,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic_v20.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic_v20.exp
index 4c0c9ec6e4052..517e09d01a731 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic_v20.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_generic_v20.exp
@@ -3,80 +3,97 @@ processed 18 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-110:
+task 1, lines 8-110:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 13452000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 112-112:
+task 2, line 112:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 114-118:
+task 3, lines 114-118:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(2,0)]
mutated: object(0,0)
deleted: object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2573208, non_refundable_storage_fee: 25992
-task 4 'run'. lines 120-120:
+task 4, line 120:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(4,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 122-122:
+task 5, line 122:
+//# run Test::M::mint_child_any --sender A --type-args Test::M::Any --args 42 object(4,0)
created: object(5,0), object(5,1)
mutated: object(0,0), object(4,0)
gas summary: computation_cost: 1000000, storage_cost: 6665200, storage_rebate: 2573208, non_refundable_storage_fee: 25992
-task 6 'run'. lines 124-128:
+task 6, lines 124-128:
+//# run Test::M::child_access_any --sender A --type-args Test::M::Any --args object(4,0) vector[object(5,0)]
Error: Error checking transaction input objects: InvalidChildObjectArgument { child_id: object(5,0), parent_id: object(5,1) }
-task 7 'run'. lines 130-130:
+task 7, line 130:
+//# run Test::M::mint_another_any --type-args Test::M::Any --sender A --args 42
created: object(7,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2652400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 8 'run'. lines 132-135:
+task 8, lines 132-135:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(7,0)]
Error: Transaction Effects Status: Invalid command argument at 0. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: TypeMismatch }, source: None, command: Some(1) } }
-task 9 'run'. lines 137-137:
+task 9, line 137:
+//# run Test::M::mint_another_any --sender A --type-args Test::M::Any --args 42
created: object(9,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2652400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 10 'run'. lines 139-139:
+task 10, line 139:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(10,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 11 'run'. lines 141-144:
+task 11, lines 141-144:
+//# run Test::M::two_obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(9,0),object(10,0)]
Error: Transaction Effects Status: Invalid command argument at 1. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 1, kind: TypeMismatch }, source: None, command: Some(0) } }
-task 12 'run'. lines 146-146:
+task 12, line 146:
+//# run Test::M::mint_shared_any --sender A --type-args Test::M::Any --args 42
created: object(12,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 13 'run'. lines 148-151:
+task 13, lines 148-151:
+//# run Test::M::obj_vec_destroy_any --sender A --type-args Test::M::Any --args vector[object(12,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Immutable objects cannot be passed by-value.
Debug of error: CommandArgumentError { arg_idx: 0, kind: InvalidObjectByValue } at command Some(0)
-task 14 'run'. lines 153-153:
+task 14, line 153:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(14,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 15 'run'. lines 155-158:
+task 15, lines 155-158:
+//# run Test::M::same_objects_any --sender A --type-args Test::M::Any --args object(14,0) vector[object(14,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
-task 16 'run'. lines 160-160:
+task 16, line 160:
+//# run Test::M::mint_any --sender A --type-args Test::M::Any --args 42
created: object(16,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2599200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 17 'run'. lines 162-162:
+task 17, line 162:
+//# run Test::M::same_objects_ref_any --sender A --type-args Test::M::Any --args object(16,0) vector[object(16,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_v20.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_v20.exp
index 2df368a33040f..0452f52dd5139 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_v20.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/obj_vector_v20.exp
@@ -3,84 +3,102 @@ processed 19 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-111:
+task 1, lines 8-111:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 12646400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 113-113:
+task 2, line 113:
+//# run Test::M::prim_vec_len --sender A --args vector[7,42]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 115-119:
+task 3, lines 115-119:
+//# run Test::M::mint --sender A --args 42
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 121-121:
+task 4, line 121:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(3,0)]
mutated: object(0,0)
deleted: object(3,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 5 'run'. lines 123-123:
+task 5, line 123:
+//# run Test::M::mint --sender A --args 42
created: object(5,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'run'. lines 125-125:
+task 6, line 125:
+//# run Test::M::mint_child --sender A --args 42 object(5,0)
created: object(6,0), object(6,1)
mutated: object(0,0), object(5,0)
gas summary: computation_cost: 1000000, storage_cost: 6011600, storage_rebate: 2249676, non_refundable_storage_fee: 22724
-task 7 'run'. lines 127-131:
+task 7, lines 127-131:
+//# run Test::M::child_access --sender A --args object(5,0) vector[object(6,0)]
Error: Error checking transaction input objects: InvalidChildObjectArgument { child_id: object(6,0), parent_id: object(6,1) }
-task 8 'run'. lines 133-133:
+task 8, line 133:
+//# run Test::M::mint_another --sender A --args 42
created: object(8,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2325600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 9 'run'. lines 135-138:
+task 9, lines 135-138:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(8,0)]
Error: Transaction Effects Status: Invalid command argument at 0. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: TypeMismatch }, source: None, command: Some(1) } }
-task 10 'run'. lines 140-140:
+task 10, line 140:
+//# run Test::M::mint_another --sender A --args 42
created: object(10,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2325600, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 11 'run'. lines 142-142:
+task 11, line 142:
+//# run Test::M::mint --sender A --args 42
created: object(11,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 12 'run'. lines 144-147:
+task 12, lines 144-147:
+//# run Test::M::two_obj_vec_destroy --sender A --args vector[object(10,0),object(11,0)]
Error: Transaction Effects Status: Invalid command argument at 1. The type of the value does not match the expected type
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 1, kind: TypeMismatch }, source: None, command: Some(0) } }
-task 13 'run'. lines 149-149:
+task 13, line 149:
+//# run Test::M::mint_shared --sender A --args 42
created: object(13,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 14 'run'. lines 151-154:
+task 14, lines 151-154:
+//# run Test::M::obj_vec_destroy --sender A --args vector[object(13,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Immutable objects cannot be passed by-value.
Debug of error: CommandArgumentError { arg_idx: 0, kind: InvalidObjectByValue } at command Some(0)
-task 15 'run'. lines 156-156:
+task 15, line 156:
+//# run Test::M::mint --sender A --args 42
created: object(15,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 16 'run'. lines 158-161:
+task 16, lines 158-161:
+//# run Test::M::same_objects --sender A --args object(15,0) vector[object(15,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
-task 17 'run'. lines 163-163:
+task 17, line 163:
+//# run Test::M::mint --sender A --args 42
created: object(17,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 18 'run'. lines 165-165:
+task 18, line 165:
+//# run Test::M::same_objects_ref --sender A --args object(17,0) vector[object(17,0)]
Error: Transaction Effects Status: Invalid command argument at 0. Invalid usage of value. Mutably borrowed values require unique usage. Immutably borrowed values cannot be taken or borrowed mutably. Taken values cannot be used again.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: CommandArgumentError { arg_idx: 0, kind: InvalidValueUsage }, source: None, command: Some(1) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/utf8.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/utf8.exp
index 38c9a48f6287e..1912e70ab2def 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/utf8.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/utf8.exp
@@ -3,31 +3,38 @@ processed 8 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-24:
+task 1, lines 6-24:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 6011600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 26-29:
+task 2, lines 26-29:
+//# run Test::M::utf8_arg --sender A --args b"SomeStringPlusSomeString"
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 31-34:
+task 3, lines 31-34:
+//# run Test::M::utf8_arg --sender A --args "SomeStringPlusSomeString"
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 36-39:
+task 4, lines 36-39:
+//# run Test::M::utf8_arg --sender A --args "çå∞≠¢õß∂ƒ∫"
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 41-44:
+task 5, lines 41-44:
+//# run Test::M::utf8_vec_arg --sender A --args vector[b"SomeStringPlus",b"SomeString"]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 6 'run'. lines 46-49:
+task 6, lines 46-49:
+//# run Test::M::utf8_vec_arg --sender A --args vector["SomeStringPlus","SomeString"]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 7 'run'. lines 51-51:
+task 7, line 51:
+//# run Test::M::utf8_vec_arg --sender A --args vector["çå∞≠¢","õß∂ƒ∫"]
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp
index fe372e35a8920..572473d020e66 100644
--- a/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp
+++ b/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp
@@ -1,22 +1,27 @@
processed 6 tasks
-task 1 'publish'. lines 8-26:
+task 1, lines 8-26:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4522000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 28-28:
+task 2, line 28:
+//# run Test::M::t2
Error: Transaction Effects Status: Non Entry Function Invoked. Move Call must start with an entry function
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: NonEntryFunctionInvoked, source: Some("Can only call `entry` or `public` functions"), command: Some(0) } }
-task 3 'run'. lines 30-30:
+task 3, line 30:
+//# run Test::M::t3
Error: Transaction Effects Status: Non Entry Function Invoked. Move Call must start with an entry function
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: NonEntryFunctionInvoked, source: Some("Can only call `entry` or `public` functions"), command: Some(0) } }
-task 4 'run'. lines 32-32:
+task 4, line 32:
+//# run Test::M::t4 --args 0
Error: Transaction Effects Status: Invalid public Move function signature. Unsupported return type for return value 0
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidPublicFunctionReturnType { idx: 0 }, source: None, command: Some(0) } }
-task 5 'run'. lines 34-34:
+task 5, line 34:
+//# run Test::M::t5 --args 0
Error: Transaction Effects Status: Invalid public Move function signature. Unsupported return type for return value 0
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidPublicFunctionReturnType { idx: 0 }, source: None, command: Some(0) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/basic_enums.exp b/crates/sui-adapter-transactional-tests/tests/enums/basic_enums.exp
index c2d80889d062a..36be47fd59003 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/basic_enums.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/basic_enums.exp
@@ -1,16 +1,19 @@
processed 6 tasks
-task 1 'publish'. lines 6-31:
+task 1, lines 6-31:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 6262400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 33-33:
+task 2, line 33:
+//# run Test::f::create_and_test
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2204000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 3 'view-object'. lines 35-35:
+task 3, line 35:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 3
Contents: Test::f::S {
@@ -22,11 +25,13 @@ Contents: Test::f::S {
data: Test::f::F::V1{},
}
-task 4 'run'. lines 37-37:
+task 4, line 37:
+//# run Test::f::update_inner --args object(2,0)
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2264800, storage_rebate: 2181960, non_refundable_storage_fee: 22040
-task 5 'view-object'. lines 39-39:
+task 5, line 39:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 4
Contents: Test::f::S {
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/coin_wrapper.exp b/crates/sui-adapter-transactional-tests/tests/enums/coin_wrapper.exp
index a0c0d94ab170d..ef977d816b3a5 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/coin_wrapper.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/coin_wrapper.exp
@@ -3,12 +3,16 @@ processed 3 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-48:
+task 1, lines 6-48:
+//# publish --upgradeable --sender A
created: object(1,0), object(1,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 9492400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 50-52:
+task 2, lines 50-52:
+//# programmable --sender A --inputs 10 @A
+//> 0: Test::f::create_sui(Gas, Input(0));
+//> 1: TransferObjects([Result(0)], Input(1))
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2576400, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_events.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_events.exp
index b214d7a7231de..0d0babac3fd71 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_events.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_events.exp
@@ -1,26 +1,31 @@
processed 6 tasks
-task 1 'publish'. lines 6-32:
+task 1, lines 6-32:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5213600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 34-34:
+task 2, line 34:
+//# run Test::f::f1
events: Event { package_id: Test, transaction_module: Identifier("f"), sender: _, type_: StructTag { address: Test, module: Identifier("f"), name: Identifier("F"), type_params: [] }, contents: [0] }
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 3 'run'. lines 36-36:
+task 3, line 36:
+//# run Test::f::f2 --args 42
events: Event { package_id: Test, transaction_module: Identifier("f"), sender: _, type_: StructTag { address: Test, module: Identifier("f"), name: Identifier("F"), type_params: [] }, contents: [1, 42, 0, 0, 0, 0, 0, 0, 0] }
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 4 'run'. lines 38-38:
+task 4, line 38:
+//# run Test::f::f3 --args 42 43
events: Event { package_id: Test, transaction_module: Identifier("f"), sender: _, type_: StructTag { address: Test, module: Identifier("f"), name: Identifier("F"), type_params: [] }, contents: [2, 42, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0] }
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 5 'run'. lines 40-40:
+task 5, line 40:
+//# run Test::f::f4 --args 42
events: Event { package_id: Test, transaction_module: Identifier("f"), sender: _, type_: StructTag { address: Test, module: Identifier("f"), name: Identifier("F"), type_params: [] }, contents: [3, 42, 0, 0, 0, 0, 0, 0, 0] }
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_otw_check.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_otw_check.exp
index 89cf5dde4bc74..406727bfa5745 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_otw_check.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_otw_check.exp
@@ -1,10 +1,12 @@
processed 3 tasks
-task 1 'publish'. lines 6-15:
+task 1, lines 6-15:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 4636000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 17-17:
+task 2, line 17:
+//# run Test::f::test
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only.exp
index 0d17cff248fa2..0322eccd7746d 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only.exp
@@ -1,17 +1,22 @@
processed 6 tasks
-task 1 'publish'. lines 6-37:
+task 1, lines 6-37:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Enum X cannot have the 'key' ability. Enums cannot have the 'key' ability."), command: Some(0) } }
-task 2 'set-address'. lines 39-39:
+task 2, line 39:
+//# set-address test object(1,0)
Error: INVALID TEST. Unknown object, object(1,0)
-task 3 'run'. lines 41-41:
+task 3, line 41:
+//# run test::f::transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 4 'run'. lines 43-43:
+task 4, line 43:
+//# run test::f::share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 5 'run'. lines 45-45:
+task 5, line 45:
+//# run test::f::freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only_uid_field.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only_uid_field.exp
index cb3c93e44d27a..7e80ec0b01982 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only_uid_field.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_only_uid_field.exp
@@ -1,17 +1,22 @@
processed 6 tasks
-task 1 'publish'. lines 6-45:
+task 1, lines 6-45:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Enum X cannot have the 'key' ability. Enums cannot have the 'key' ability."), command: Some(0) } }
-task 2 'set-address'. lines 47-47:
+task 2, line 47:
+//# set-address test object(1,0)
Error: INVALID TEST. Unknown object, object(1,0)
-task 3 'run'. lines 49-49:
+task 3, line 49:
+//# run test::f::transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 4 'run'. lines 51-51:
+task 4, line 51:
+//# run test::f::share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 5 'run'. lines 53-53:
+task 5, line 53:
+//# run test::f::freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store.exp
index ce1c629c6755d..2659713b6bba9 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store.exp
@@ -1,32 +1,42 @@
processed 11 tasks
-task 1 'publish'. lines 6-88:
+task 1, lines 6-88:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Enum X cannot have the 'key' ability. Enums cannot have the 'key' ability."), command: Some(0) } }
-task 2 'set-address'. lines 90-90:
+task 2, line 90:
+//# set-address test object(1,0)
Error: INVALID TEST. Unknown object, object(1,0)
-task 3 'run'. lines 92-92:
+task 3, line 92:
+//# run test::f::transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 4 'run'. lines 94-94:
+task 4, line 94:
+//# run test::f::share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 5 'run'. lines 96-96:
+task 5, line 96:
+//# run test::f::public_transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 6 'run'. lines 98-98:
+task 6, line 98:
+//# run test::f::public_share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 7 'run'. lines 100-100:
+task 7, line 100:
+//# run test::f::freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 8 'run'. lines 102-102:
+task 8, line 102:
+//# run test::f::public_freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 9 'run'. lines 104-104:
+task 9, line 104:
+//# run test::f::add_df
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 10 'run'. lines 106-106:
+task 10, line 106:
+//# run test::f::add_dof
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store_uid_field.exp b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store_uid_field.exp
index 60dc6389ac3b8..38bbf911b5645 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store_uid_field.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enum_with_key_store_uid_field.exp
@@ -1,32 +1,42 @@
processed 11 tasks
-task 1 'publish'. lines 6-104:
+task 1, lines 6-104:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("Enum X cannot have the 'key' ability. Enums cannot have the 'key' ability."), command: Some(0) } }
-task 2 'set-address'. lines 106-106:
+task 2, line 106:
+//# set-address test object(1,0)
Error: INVALID TEST. Unknown object, object(1,0)
-task 3 'run'. lines 108-108:
+task 3, line 108:
+//# run test::f::transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 4 'run'. lines 110-110:
+task 4, line 110:
+//# run test::f::share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 5 'run'. lines 112-112:
+task 5, line 112:
+//# run test::f::public_transfer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 6 'run'. lines 114-114:
+task 6, line 114:
+//# run test::f::public_share
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 7 'run'. lines 116-116:
+task 7, line 116:
+//# run test::f::freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 8 'run'. lines 118-118:
+task 8, line 118:
+//# run test::f::public_freezer
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 9 'run'. lines 120-120:
+task 9, line 120:
+//# run test::f::add_df
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
-task 10 'run'. lines 122-122:
+task 10, line 122:
+//# run test::f::add_dof
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade.exp b/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade.exp
index b42d54d70a1e1..6ff501def53d3 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade.exp
@@ -3,17 +3,20 @@ processed 10 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-31:
+task 1, lines 6-31:
+//# publish --upgradeable --sender A
created: object(1,0), object(1,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 7896400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 33-33:
+task 2, line 33:
+//# run Test::f::create_and_test
created: object(2,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 2204000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 35-35:
+task 3, line 35:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 2
Contents: Test::f::S {
@@ -25,11 +28,13 @@ Contents: Test::f::S {
data: Test::f::F::V1{},
}
-task 4 'run'. lines 37-37:
+task 4, line 37:
+//# run Test::f::update_inner --args object(2,0)
mutated: object(0,1), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2264800, storage_rebate: 2181960, non_refundable_storage_fee: 22040
-task 5 'view-object'. lines 39-39:
+task 5, line 39:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 3
Contents: Test::f::S {
@@ -43,12 +48,14 @@ Contents: Test::f::S {
},
}
-task 6 'upgrade'. lines 41-70:
+task 6, lines 41-70:
+//# upgrade --package Test --upgrade-capability 1,1 --sender A
created: object(6,0)
mutated: object(0,0), object(1,1)
gas summary: computation_cost: 1000000, storage_cost: 8314400, storage_rebate: 2595780, non_refundable_storage_fee: 26220
-task 7 'view-object'. lines 72-72:
+task 7, line 72:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 3
Contents: fake(1,0)::f::S {
@@ -62,11 +69,13 @@ Contents: fake(1,0)::f::S {
},
}
-task 8 'run'. lines 74-74:
+task 8, line 74:
+//# run Test::f::update_inner2 --args object(2,0)
mutated: object(0,1), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2325600, storage_rebate: 2242152, non_refundable_storage_fee: 22648
-task 9 'view-object'. lines 76-76:
+task 9, line 76:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 4
Contents: fake(1,0)::f::S {
diff --git a/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade_add_variant.exp b/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade_add_variant.exp
index 59e9ee60fedc5..5e7eda539c785 100644
--- a/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade_add_variant.exp
+++ b/crates/sui-adapter-transactional-tests/tests/enums/enums_upgrade_add_variant.exp
@@ -3,17 +3,20 @@ processed 7 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 6-31:
+task 1, lines 6-31:
+//# publish --upgradeable --sender A
created: object(1,0), object(1,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 7896400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 33-33:
+task 2, line 33:
+//# run Test::f::create_and_test
created: object(2,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 2204000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 35-35:
+task 3, line 35:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 2
Contents: Test::f::S {
@@ -25,11 +28,13 @@ Contents: Test::f::S {
data: Test::f::F::V1{},
}
-task 4 'run'. lines 37-37:
+task 4, line 37:
+//# run Test::f::update_inner --args object(2,0)
mutated: object(0,1), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2264800, storage_rebate: 2181960, non_refundable_storage_fee: 22040
-task 5 'view-object'. lines 39-39:
+task 5, line 39:
+//# view-object 2,0
Owner: Account Address ( _ )
Version: 3
Contents: Test::f::S {
@@ -43,6 +48,7 @@ Contents: Test::f::S {
},
}
-task 6 'upgrade'. lines 41-72:
+task 6, lines 41-72:
+//# upgrade --package Test --upgrade-capability 1,1 --sender A
Error: Transaction Effects Status: Invalid package upgrade. New package is incompatible with previous version
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: PackageUpgradeError { upgrade_error: IncompatibleUpgrade }, source: Some(PartialVMError { major_status: BACKWARD_INCOMPATIBLE_MODULE_UPDATE, sub_status: None, message: None, exec_state: None, indices: [], offsets: [] }), command: Some(1) } }
diff --git a/crates/sui-adapter-transactional-tests/tests/epoch/advance.exp b/crates/sui-adapter-transactional-tests/tests/epoch/advance.exp
index e99c1ab9d5099..a1b3532c73600 100644
--- a/crates/sui-adapter-transactional-tests/tests/epoch/advance.exp
+++ b/crates/sui-adapter-transactional-tests/tests/epoch/advance.exp
@@ -1,22 +1,27 @@
processed 6 tasks
-task 1 'publish'. lines 6-24:
+task 1, lines 6-24:
+//# publish
created: object(1,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5639200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'run'. lines 26-26:
+task 2, line 26:
+//# run test::m::create
created: object(2,0)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 2257200, storage_rebate: 978120, non_refundable_storage_fee: 9880
-task 3 'run'. lines 28-28:
+task 3, line 28:
+//# run test::m::check --args object(2,0) 0
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2257200, storage_rebate: 2234628, non_refundable_storage_fee: 22572
-task 4 'advance-epoch'. lines 30-30:
+task 4, line 30:
+//# advance-epoch
Epoch advanced: 1
-task 5 'run'. lines 32-32:
+task 5, line 32:
+//# run test::m::check --args object(2,0) 1
mutated: object(0,0), object(2,0)
gas summary: computation_cost: 1000000, storage_cost: 2257200, storage_rebate: 2234628, non_refundable_storage_fee: 22572
diff --git a/crates/sui-adapter-transactional-tests/tests/init/entry_new.exp b/crates/sui-adapter-transactional-tests/tests/init/entry_new.exp
index 7374d6e10fc0d..1bf7afc28b28e 100644
--- a/crates/sui-adapter-transactional-tests/tests/init/entry_new.exp
+++ b/crates/sui-adapter-transactional-tests/tests/init/entry_new.exp
@@ -1,8 +1,10 @@
processed 3 tasks
-task 1 'publish'. lines 8-17:
+task 1, lines 8-17:
+//# publish
Error: Transaction Effects Status: Sui Move Bytecode Verification Error. Please run the Sui Move Verifier for more information.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: SuiMoveVerificationError, source: Some("_::m. 'init' cannot be 'entry'"), command: Some(0) } }
-task 2 'run'. lines 18-18:
+task 2, line 18:
+//# run test::m::init
Error: Error checking transaction input objects: DependentPackageNotFound { package_id: 0x0000000000000000000000000000000000000000000000000000000000000000 }
diff --git a/crates/sui-adapter-transactional-tests/tests/init/entry_old.exp b/crates/sui-adapter-transactional-tests/tests/init/entry_old.exp
index 9bc25b97c5553..fce467916c792 100644
--- a/crates/sui-adapter-transactional-tests/tests/init/entry_old.exp
+++ b/crates/sui-adapter-transactional-tests/tests/init/entry_old.exp
@@ -3,11 +3,13 @@ processed 4 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-20:
+task 1, lines 8-20:
+//# publish --sender A --upgradeable
created: object(1,0), object(1,1)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 5639200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'run'. lines 24-39:
+task 3, lines 24-39:
+//# run test::m::init
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 0, non_refundable_storage_fee: 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/child_of_child.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/child_of_child.exp
index e55cd9da8c09f..e3dbfb1edbf08 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/child_of_child.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/child_of_child.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-66:
+task 1, lines 8-66:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 9218800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 68-70:
+task 2, lines 68-70:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 9750800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 72-72:
+task 3, line 72:
+//# view-object 2,4
Owner: Account Address ( A )
Version: 2
Contents: test::m::Obj {
@@ -25,11 +30,14 @@ Contents: test::m::Obj {
value: 0u64,
}
-task 4 'programmable'. lines 74-75:
+task 4, lines 74-75:
+//# programmable --sender A --inputs object(2,4) 1 2 3
+//> test::m::set(Input(0), Input(1), Input(2), Input(3))
mutated: object(0,0), object(2,2), object(2,3), object(2,4)
gas summary: computation_cost: 1000000, storage_cost: 4841200, storage_rebate: 4792788, non_refundable_storage_fee: 48412
-task 5 'view-object'. lines 77-77:
+task 5, line 77:
+//# view-object 2,4
Owner: Account Address ( A )
Version: 3
Contents: test::m::Obj {
@@ -41,12 +49,15 @@ Contents: test::m::Obj {
value: 1u64,
}
-task 6 'programmable'. lines 79-80:
+task 6, lines 79-80:
+//# programmable --sender A --inputs object(2,4)
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,4)
deleted: object(2,0), object(2,2)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 5951484, non_refundable_storage_fee: 60116
-task 7 'view-object'. lines 82-85:
+task 7, lines 82-85:
+//# view-object 2,4
Owner: Account Address ( A )
Version: 4
Contents: test::m::Obj {
@@ -58,26 +69,39 @@ Contents: test::m::Obj {
value: 1u64,
}
-task 8 'programmable'. lines 87-88:
+task 8, lines 87-88:
+//# programmable --sender A --inputs object(2,4)@2 0 0 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
mutated: object(_), object(2,4)
gas summary: computation_cost: 500000, storage_cost: 2272400, storage_rebate: 1271556, non_refundable_storage_fee: 12844
-task 9 'programmable'. lines 90-91:
+task 9, lines 90-91:
+//# programmable --sender A --inputs object(2,4)@3 1 2 vector[3] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
mutated: object(_), object(2,4)
gas summary: computation_cost: 500000, storage_cost: 2272400, storage_rebate: 1271556, non_refundable_storage_fee: 12844
-task 10 'programmable'. lines 93-97:
+task 10, lines 93-97:
+//# programmable --sender A --inputs object(2,4)@4 1 2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
+// dev-inspect with 'check' and _incorrect_ values
mutated: object(_), object(2,4)
gas summary: computation_cost: 500000, storage_cost: 2272400, storage_rebate: 1271556, non_refundable_storage_fee: 12844
-task 11 'programmable'. lines 99-100:
+task 11, lines 99-100:
+//# programmable --sender A --inputs object(2,4)@3 0 0 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 3, instruction: 10, function_name: Some("check") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 3, instruction: 10, function_name: Some("check") }, 0) in command 0
-task 12 'programmable'. lines 102-103:
+task 12, lines 102-103:
+//# programmable --sender A --inputs object(2,4)@4 1 2 vector[3] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 105-106:
+task 13, lines 105-106:
+//# programmable --sender A --inputs object(2,4)@2 1 2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1), Input(2), Input(3))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 3, instruction: 10, function_name: Some("check") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 3, instruction: 10, function_name: Some("check") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids.exp
index 24876f2538240..5a58986b3c942 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-117:
+task 1, lines 8-117:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 12205600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 119-121:
+task 2, lines 119-121:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 15640800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 123-123:
+task 3, line 123:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -67,11 +72,14 @@ Contents: test::m::S {
],
}
-task 4 'programmable'. lines 125-126:
+task 4, lines 125-126:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
gas summary: computation_cost: 1000000, storage_cost: 15640800, storage_rebate: 15484392, non_refundable_storage_fee: 156408
-task 5 'view-object'. lines 128-128:
+task 5, line 128:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -125,12 +133,15 @@ Contents: test::m::S {
],
}
-task 6 'programmable'. lines 130-131:
+task 6, lines 130-131:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,8)
deleted: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7)
gas summary: computation_cost: 1000000, storage_cost: 3906400, storage_rebate: 15484392, non_refundable_storage_fee: 156408
-task 7 'view-object'. lines 133-136:
+task 7, lines 133-136:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 4
Contents: test::m::S {
@@ -184,26 +195,39 @@ Contents: test::m::S {
],
}
-task 8 'programmable'. lines 138-139:
+task 8, lines 138-139:
+//# programmable --sender A --inputs object(2,8)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 9 'programmable'. lines 141-142:
+task 9, lines 141-142:
+//# programmable --sender A --inputs object(2,8)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 10 'programmable'. lines 144-148:
+task 10, lines 144-148:
+//# programmable --sender A --inputs object(2,8)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 11 'programmable'. lines 150-151:
+task 11, lines 150-151:
+//# programmable --sender A --inputs object(2,8)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 10, instruction: 12, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 10, instruction: 12, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 153-154:
+task 12, lines 153-154:
+//# programmable --sender A --inputs object(2,8)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 156-157:
+task 13, lines 156-157:
+//# programmable --sender A --inputs object(2,8)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 10, instruction: 20, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 10, instruction: 20, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof.exp
index 2e42891f8fc01..46fd75dddc187 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-130:
+task 1, lines 8-130:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 13353200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 132-134:
+task 2, lines 132-134:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 33941600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 136-136:
+task 3, line 136:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -67,11 +72,14 @@ Contents: test::m::S {
],
}
-task 4 'programmable'. lines 138-139:
+task 4, lines 138-139:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,8), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
gas summary: computation_cost: 1000000, storage_cost: 14303200, storage_rebate: 14160168, non_refundable_storage_fee: 143032
-task 5 'view-object'. lines 141-141:
+task 5, line 141:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -125,12 +133,15 @@ Contents: test::m::S {
],
}
-task 6 'programmable'. lines 143-144:
+task 6, lines 143-144:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,8)
deleted: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
gas summary: computation_cost: 1000000, storage_cost: 3906400, storage_rebate: 33602184, non_refundable_storage_fee: 339416
-task 7 'view-object'. lines 146-149:
+task 7, lines 146-149:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 4
Contents: test::m::S {
@@ -184,26 +195,39 @@ Contents: test::m::S {
],
}
-task 8 'programmable'. lines 151-152:
+task 8, lines 151-152:
+//# programmable --sender A --inputs object(2,8)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 9 'programmable'. lines 154-155:
+task 9, lines 154-155:
+//# programmable --sender A --inputs object(2,8)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 10 'programmable'. lines 157-161:
+task 10, lines 157-161:
+//# programmable --sender A --inputs object(2,8)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3906400, storage_rebate: 2889216, non_refundable_storage_fee: 29184
-task 11 'programmable'. lines 163-164:
+task 11, lines 163-164:
+//# programmable --sender A --inputs object(2,8)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 11, instruction: 18, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 11, instruction: 18, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 166-167:
+task 12, lines 166-167:
+//# programmable --sender A --inputs object(2,8)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 169-170:
+task 13, lines 169-170:
+//# programmable --sender A --inputs object(2,8)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 11, instruction: 26, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 11, instruction: 26, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof_enum.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof_enum.exp
index ead923a6b0924..a4c0f668deea4 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof_enum.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_dof_enum.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-167:
+task 1, lines 8-167:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 18164000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 169-171:
+task 2, lines 169-171:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 34002400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 173-173:
+task 3, line 173:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -83,11 +88,14 @@ Contents: test::m::S {
],
}
-task 4 'programmable'. lines 175-176:
+task 4, lines 175-176:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,8), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
gas summary: computation_cost: 1000000, storage_cost: 14364000, storage_rebate: 14220360, non_refundable_storage_fee: 143640
-task 5 'view-object'. lines 178-178:
+task 5, line 178:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -157,12 +165,15 @@ Contents: test::m::S {
],
}
-task 6 'programmable'. lines 180-181:
+task 6, lines 180-181:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,8)
deleted: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,9), object(2,10), object(2,11), object(2,12), object(2,13), object(2,14), object(2,15), object(2,16)
gas summary: computation_cost: 1000000, storage_cost: 3967200, storage_rebate: 33662376, non_refundable_storage_fee: 340024
-task 7 'view-object'. lines 183-185:
+task 7, lines 183-185:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 4
Contents: test::m::S {
@@ -232,26 +243,42 @@ Contents: test::m::S {
],
}
-task 8 'programmable'. lines 187-188:
+task 8, lines 187-188:
+//# programmable --sender A --inputs object(2,8)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3967200, storage_rebate: 2949408, non_refundable_storage_fee: 29792
-task 9 'programmable'. lines 190-191:
+task 9, lines 190-191:
+//# programmable --sender A --inputs object(2,8)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3967200, storage_rebate: 2949408, non_refundable_storage_fee: 29792
-task 10 'programmable'. lines 193-198:
+task 10, lines 193-198:
+//# programmable --sender A --inputs object(2,8)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
+// Should fail since the field exists but with a different field.
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3967200, storage_rebate: 2949408, non_refundable_storage_fee: 29792
-task 11 'programmable'. lines 199-202:
+task 11, lines 199-202:
+//# programmable --sender A --inputs object(2,8)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since the field has been deleted.
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 18, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 18, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 203-206:
+task 12, lines 203-206:
+//# programmable --sender A --inputs object(2,8)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since at the version of the object we're passing in the field exists still
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 207-208:
+task 13, lines 207-208:
+//# programmable --sender A --inputs object(2,8)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 26, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 26, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_enums.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_enums.exp
index 5645aa0934c71..0c87c8ffa51ef 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_enums.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_enums.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-134:
+task 1, lines 8-134:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 14136000, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 136-138:
+task 2, lines 136-138:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 15671200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 140-140:
+task 3, line 140:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 2
Contents: test::m::S {
@@ -75,11 +80,14 @@ Contents: test::m::S {
],
}
-task 4 'programmable'. lines 142-143:
+task 4, lines 142-143:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
gas summary: computation_cost: 1000000, storage_cost: 15671200, storage_rebate: 15514488, non_refundable_storage_fee: 156712
-task 5 'view-object'. lines 145-145:
+task 5, line 145:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 3
Contents: test::m::S {
@@ -141,12 +149,15 @@ Contents: test::m::S {
],
}
-task 6 'programmable'. lines 147-148:
+task 6, lines 147-148:
+//# programmable --sender A --inputs object(2,8) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,8)
deleted: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7)
gas summary: computation_cost: 1000000, storage_cost: 3936800, storage_rebate: 15514488, non_refundable_storage_fee: 156712
-task 7 'view-object'. lines 150-152:
+task 7, lines 150-152:
+//# view-object 2,8
Owner: Account Address ( A )
Version: 4
Contents: test::m::S {
@@ -208,26 +219,42 @@ Contents: test::m::S {
],
}
-task 8 'programmable'. lines 154-155:
+task 8, lines 154-155:
+//# programmable --sender A --inputs object(2,8)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3936800, storage_rebate: 2919312, non_refundable_storage_fee: 29488
-task 9 'programmable'. lines 157-158:
+task 9, lines 157-158:
+//# programmable --sender A --inputs object(2,8)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3936800, storage_rebate: 2919312, non_refundable_storage_fee: 29488
-task 10 'programmable'. lines 160-165:
+task 10, lines 160-165:
+//# programmable --sender A --inputs object(2,8)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
+// Should fail since the field exists but with a different field.
mutated: object(_), object(2,8)
gas summary: computation_cost: 500000, storage_cost: 3936800, storage_rebate: 2919312, non_refundable_storage_fee: 29488
-task 11 'programmable'. lines 166-169:
+task 11, lines 166-169:
+//# programmable --sender A --inputs object(2,8)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since the field has been deleted.
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 12, instruction: 12, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 12, instruction: 12, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 170-173:
+task 12, lines 170-173:
+//# programmable --sender A --inputs object(2,8)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since at the version of the object we're passing in the field exists still
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 174-175:
+task 13, lines 174-175:
+//# programmable --sender A --inputs object(2,8)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 12, instruction: 20, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 12, instruction: 20, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child.exp
index 16e1cdb409727..ec7e7983926b5 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-140:
+task 1, lines 8-140:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 13862400, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 142-144:
+task 2, lines 142-144:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 17609200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 146-146:
+task 3, line 146:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 2
Contents: test::m::Parent {
@@ -24,11 +29,14 @@ Contents: test::m::Parent {
},
}
-task 4 'programmable'. lines 148-149:
+task 4, lines 148-149:
+//# programmable --sender A --inputs object(2,9) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9)
gas summary: computation_cost: 1000000, storage_cost: 13968800, storage_rebate: 13829112, non_refundable_storage_fee: 139688
-task 5 'view-object'. lines 151-151:
+task 5, line 151:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 3
Contents: test::m::Parent {
@@ -39,12 +47,15 @@ Contents: test::m::Parent {
},
}
-task 6 'programmable'. lines 153-154:
+task 6, lines 153-154:
+//# programmable --sender A --inputs object(2,9) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,9)
deleted: object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
gas summary: computation_cost: 1000000, storage_cost: 2234400, storage_rebate: 13829112, non_refundable_storage_fee: 139688
-task 7 'view-object'. lines 156-159:
+task 7, lines 156-159:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 4
Contents: test::m::Parent {
@@ -55,26 +66,39 @@ Contents: test::m::Parent {
},
}
-task 8 'programmable'. lines 161-162:
+task 8, lines 161-162:
+//# programmable --sender A --inputs object(2,9)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 9 'programmable'. lines 164-165:
+task 9, lines 164-165:
+//# programmable --sender A --inputs object(2,9)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 10 'programmable'. lines 167-171:
+task 10, lines 167-171:
+//# programmable --sender A --inputs object(2,9)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 11 'programmable'. lines 173-174:
+task 11, lines 173-174:
+//# programmable --sender A --inputs object(2,9)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 12, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 12, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 176-177:
+task 12, lines 176-177:
+//# programmable --sender A --inputs object(2,9)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 179-180:
+task 13, lines 179-180:
+//# programmable --sender A --inputs object(2,9)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 20, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 14, instruction: 20, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child_enum.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child_enum.exp
index 850962b579521..c2540c893494b 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child_enum.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/find_all_uids_on_child_enum.exp
@@ -3,17 +3,22 @@ processed 14 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-219:
+task 1, lines 8-219:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 20869600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 221-223:
+task 2, lines 221-223:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
created: object(2,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 17654800, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 225-225:
+task 3, line 225:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 2
Contents: test::m::Parent {
@@ -24,11 +29,14 @@ Contents: test::m::Parent {
},
}
-task 4 'programmable'. lines 227-228:
+task 4, lines 227-228:
+//# programmable --sender A --inputs object(2,9) 112
+//> test::m::set(Input(0), Input(1))
mutated: object(0,0), object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8), object(2,9)
gas summary: computation_cost: 1000000, storage_cost: 13968800, storage_rebate: 13829112, non_refundable_storage_fee: 139688
-task 5 'view-object'. lines 230-230:
+task 5, line 230:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 3
Contents: test::m::Parent {
@@ -39,12 +47,15 @@ Contents: test::m::Parent {
},
}
-task 6 'programmable'. lines 232-233:
+task 6, lines 232-233:
+//# programmable --sender A --inputs object(2,9) 112
+//> test::m::remove(Input(0))
mutated: object(0,0), object(2,9)
deleted: object(2,1), object(2,2), object(2,3), object(2,4), object(2,5), object(2,6), object(2,7), object(2,8)
gas summary: computation_cost: 1000000, storage_cost: 2234400, storage_rebate: 13829112, non_refundable_storage_fee: 139688
-task 7 'view-object'. lines 235-238:
+task 7, lines 235-238:
+//# view-object 2,9
Owner: Account Address ( A )
Version: 4
Contents: test::m::Parent {
@@ -55,26 +66,42 @@ Contents: test::m::Parent {
},
}
-task 8 'programmable'. lines 240-241:
+task 8, lines 240-241:
+//# programmable --sender A --inputs object(2,9)@2 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 9 'programmable'. lines 243-244:
+task 9, lines 243-244:
+//# programmable --sender A --inputs object(2,9)@3 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 10 'programmable'. lines 246-251:
+task 10, lines 246-251:
+//# programmable --sender A --inputs object(2,9)@4 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// dev-inspect with 'check' and _incorrect_ values
+// Should fail since the field exists but with a different field.
mutated: object(_), object(2,9)
gas summary: computation_cost: 500000, storage_cost: 2234400, storage_rebate: 1233936, non_refundable_storage_fee: 12464
-task 11 'programmable'. lines 252-255:
+task 11, lines 252-255:
+//# programmable --sender A --inputs object(2,9)@3 vector[0] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since the field has been deleted.
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 15, instruction: 12, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 15, instruction: 12, function_name: Some("check_") }, 0) in command 0
-task 12 'programmable'. lines 256-259:
+task 12, lines 256-259:
+//# programmable --sender A --inputs object(2,9)@4 vector[112] --dev-inspect
+//> test::m::check(Input(0), Input(1))
+// Should fail since at the version of the object we're passing in the field exists still
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: sui, name: Identifier("dynamic_field") }, function: 11, instruction: 0, function_name: Some("borrow_child_object") }, 1) in command 0
-task 13 'programmable'. lines 260-261:
+task 13, lines 260-261:
+//# programmable --sender A --inputs object(2,9)@2 vector[] --dev-inspect
+//> test::m::check(Input(0), Input(1))
Error: Transaction Effects Status: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 15, instruction: 20, function_name: Some("check_") }, 0) in command 0
Execution Error: MoveAbort(MoveLocation { module: ModuleId { address: test, name: Identifier("m") }, function: 15, instruction: 20, function_name: Some("check_") }, 0) in command 0
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child.exp
index 8747c1cea802b..88c475f6b7274 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child.exp
@@ -3,17 +3,23 @@ processed 11 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-51:
+task 1, lines 8-51:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 7493600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 53-57:
+task 2, lines 53-57:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
+// All 3 objects have version 2
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 6285200, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 59-59:
+task 3, line 59:
+//# view-object 2,0
Owner: Object ID: ( _ )
Version: 2
Contents: sui::dynamic_field::Field {
@@ -33,7 +39,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 4 'view-object'. lines 61-61:
+task 4, line 61:
+//# view-object 2,1
Owner: Object ID: ( fake(2,2) )
Version: 2
Contents: sui::dynamic_field::Field {
@@ -53,7 +60,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 5 'view-object'. lines 63-63:
+task 5, line 63:
+//# view-object 2,2
Owner: Account Address ( A )
Version: 2
Contents: test::m::Obj {
@@ -65,11 +73,15 @@ Contents: test::m::Obj {
value: 0u64,
}
-task 6 'programmable'. lines 65-68:
+task 6, lines 65-68:
+//# programmable --sender A --inputs object(2,2) 112
+//> test::m::set(Input(0), Input(1))
+// The middle object has version 2, while the root and modified leaf have version 3
mutated: object(0,0), object(2,0), object(2,2)
gas summary: computation_cost: 1000000, storage_cost: 4278800, storage_rebate: 4236012, non_refundable_storage_fee: 42788
-task 7 'view-object'. lines 70-70:
+task 7, line 70:
+//# view-object 2,0
Owner: Object ID: ( _ )
Version: 3
Contents: sui::dynamic_field::Field {
@@ -89,7 +101,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 8 'view-object'. lines 72-72:
+task 8, line 72:
+//# view-object 2,1
Owner: Object ID: ( fake(2,2) )
Version: 2
Contents: sui::dynamic_field::Field {
@@ -109,7 +122,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 9 'view-object'. lines 74-77:
+task 9, lines 74-77:
+//# view-object 2,2
Owner: Account Address ( A )
Version: 3
Contents: test::m::Obj {
@@ -121,6 +135,8 @@ Contents: test::m::Obj {
value: 0u64,
}
-task 10 'programmable'. lines 79-80:
+task 10, lines 79-80:
+//# programmable --sender A --inputs object(2,2) 112
+//> test::m::check(Input(0), Input(1))
mutated: object(0,0), object(2,2)
gas summary: computation_cost: 1000000, storage_cost: 2272400, storage_rebate: 2249676, non_refundable_storage_fee: 22724
diff --git a/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child_enum.exp b/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child_enum.exp
index e03cc5409f710..c7e24854e1802 100644
--- a/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child_enum.exp
+++ b/crates/sui-adapter-transactional-tests/tests/mvcc/middle_version_less_than_child_enum.exp
@@ -3,17 +3,23 @@ processed 11 tasks
init:
A: object(0,0)
-task 1 'publish'. lines 8-76:
+task 1, lines 8-76:
+//# publish
created: object(1,0)
mutated: object(0,1)
gas summary: computation_cost: 1000000, storage_cost: 9317600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 2 'programmable'. lines 78-82:
+task 2, lines 78-82:
+//# programmable --sender A --inputs @A
+//> 0: test::m::new();
+//> TransferObjects([Result(0)], Input(0))
+// All 3 objects have version 2
created: object(2,0), object(2,1), object(2,2)
mutated: object(0,0)
gas summary: computation_cost: 1000000, storage_cost: 6315600, storage_rebate: 0, non_refundable_storage_fee: 0
-task 3 'view-object'. lines 84-84:
+task 3, line 84:
+//# view-object 2,0
Owner: Object ID: ( _ )
Version: 2
Contents: sui::dynamic_field::Field {
@@ -33,7 +39,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 4 'view-object'. lines 86-86:
+task 4, line 86:
+//# view-object 2,1
Owner: Object ID: ( fake(2,2) )
Version: 2
Contents: sui::dynamic_field::Field {
@@ -53,7 +60,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 5 'view-object'. lines 88-88:
+task 5, line 88:
+//# view-object 2,2
Owner: Account Address ( A )
Version: 2
Contents: test::m::Obj {
@@ -65,11 +73,15 @@ Contents: test::m::Obj {
value: 0u64,
}
-task 6 'programmable'. lines 90-93:
+task 6, lines 90-93:
+//# programmable --sender A --inputs object(2,2) 112
+//> test::m::set(Input(0), Input(1))
+// The middle object has version 2, while the root and modified leaf have version 3
mutated: object(0,0), object(2,0), object(2,2)
gas summary: computation_cost: 1000000, storage_cost: 4294000, storage_rebate: 4251060, non_refundable_storage_fee: 42940
-task 7 'view-object'. lines 95-95:
+task 7, line 95:
+//# view-object 2,0
Owner: Object ID: ( _ )
Version: 3
Contents: sui::dynamic_field::Field {
@@ -89,7 +101,8 @@ Contents: sui::dynamic_field::Field {
},
}
-task 8 'view-object'. lines 97-97:
+task 8, line 97:
+//# view-object 2,1
Owner: Object ID: ( fake(2,2) )
Version: 2
Contents: sui::dynamic_field::Field