diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8be2aa0d12b..70594cfe32c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -36,7 +36,6 @@ # core-consensus team /consensus/ @iotaledger/core-consensus -/narwhal/ @iotaledger/core-consensus # dev-tools team /crates/iota/ @iotaledger/dev-tools @@ -69,11 +68,11 @@ vercel.json @iotaledger/boxfish @iotaledger/tooling /docs/**/vercel.json @iotaledger/devx # CI Taskforce -/.github/actions/ @msarcev @alexsporn @thibault-martinez @DaughterOfMars @fijter @Dr-Electron -/.github/workflows/ @msarcev @alexsporn @thibault-martinez @DaughterOfMars @fijter @Dr-Electron +/.github/actions/ @msarcev @alexsporn @thibault-martinez @DaughterOfMars @Dr-Electron +/.github/workflows/ @msarcev @alexsporn @thibault-martinez @DaughterOfMars @Dr-Electron # Protect this CODEOWNERS file, with some fallback in case of unavailability -/.github/CODEOWNERS @luca-moser @lzpap @miker83z @fijter +/.github/CODEOWNERS @luca-moser @lzpap @miker83z @alexsporn # Scripts /scripts/dependency_graphs/ @muXxer diff --git a/.github/actions/diffs/action.yml b/.github/actions/diffs/action.yml index 13e34f24df5..7b092777866 100644 --- a/.github/actions/diffs/action.yml +++ b/.github/actions/diffs/action.yml @@ -27,7 +27,6 @@ runs: - "consensus/**" - "crates/**" - "external-crates/**" - - "narwhal/**" - "iota-execution/**" - "docs/examples/rust/**" - ".github/workflows/hierarchy.yml" @@ -64,6 +63,5 @@ runs: - "docker/**" - "external-crates/**" - "kiosk/**" - - "narwhal/**" - "nre/**" - "iota-execution/**" diff --git a/.github/crates-filters.yml b/.github/crates-filters.yml index e85857f33ea..55ca74cc759 100644 --- a/.github/crates-filters.yml +++ b/.github/crates-filters.yml @@ -170,16 +170,6 @@ typed-store-derive: - "crates/typed-store-derive/**" typed-store-error: - "crates/typed-store-error/**" -narwhal-config: - - "narwhal/config/**" -narwhal-crypto: - - "narwhal/crypto/**" -narwhal-network: - - "narwhal/network/**" -narwhal-test-utils: - - "narwhal/test-utils/**" -narwhal-types: - - "narwhal/types/**" iota-execution: - "iota-execution/**" iota-execution-cut: diff --git a/.github/workflows/release_notes_monitor.yml b/.github/workflows/release_notes_monitor.yml index 8d3e3795053..f19fc19bb40 100644 --- a/.github/workflows/release_notes_monitor.yml +++ b/.github/workflows/release_notes_monitor.yml @@ -33,7 +33,7 @@ jobs: export previous_tag=$(git tag | grep -E 'iota_v1(.*)_rel_notes' | sort -rV | head -1) export previous_commit_hash=$(git rev-list -n 1 ${previous_tag}) - export list_of_prs=$(git log --grep "\[x\]" --pretty=oneline --abbrev-commit ${previous_commit_hash}...${new_commit_hash} -- crates dashboards doc docker external-crates kiosk narwhal nre iota-execution | grep -o '#[0-9]\+' | grep -o '[0-9]\+' | jq -R -s -c 'split("\n")[:-1]') + export list_of_prs=$(git log --grep "\[x\]" --pretty=oneline --abbrev-commit ${previous_commit_hash}...${new_commit_hash} -- crates dashboards doc docker external-crates kiosk nre iota-execution | grep -o '#[0-9]\+' | grep -o '[0-9]\+' | jq -R -s -c 'split("\n")[:-1]') echo "matrix=${list_of_prs}" >> $GITHUB_OUTPUT echo "new_commit_hash=${new_commit_hash}" >> $GITHUB_OUTPUT diff --git a/Cargo.lock b/Cargo.lock index 52b6617ad8c..72726b5d996 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3430,37 +3430,6 @@ dependencies = [ "syn 2.0.77", ] -[[package]] -name = "derive_builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" -dependencies = [ - "darling 0.14.4", - "proc-macro2 1.0.86", - "quote 1.0.37", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", -] - [[package]] name = "derive_more" version = "0.99.18" @@ -5725,6 +5694,7 @@ dependencies = [ "iota-json-rpc-types", "iota-keys", "iota-macros", + "iota-metrics", "iota-move", "iota-move-build", "iota-package-management", @@ -6268,7 +6238,6 @@ dependencies = [ "move-core-types", "move-package", "move-symbol-pool", - "narwhal-types", "nonempty", "num-bigint 0.4.6", "num_cpus", @@ -6278,6 +6247,7 @@ dependencies = [ "pprof", "pretty_assertions", "prometheus", + "quinn-proto", "rand 0.8.5", "rayon", "reqwest 0.12.7", @@ -6300,6 +6270,7 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", + "tower 0.4.13", "tracing", "twox-hash", "typed-store", @@ -6984,6 +6955,7 @@ dependencies = [ "iota-json-rpc-types", "iota-keys", "iota-macros", + "iota-metrics", "iota-move-build", "iota-open-rpc", "iota-open-rpc-macros", @@ -7112,8 +7084,11 @@ dependencies = [ name = "iota-metrics" version = "0.7.0" dependencies = [ + "anemo", + "anemo-tower", "async-trait", "axum", + "bytes", "dashmap", "futures", "once_cell", @@ -7340,7 +7315,6 @@ dependencies = [ "iota-tls", "iota-types", "move-vm-profiler", - "narwhal-network", "prometheus", "reqwest 0.12.7", "serde", @@ -7734,7 +7708,6 @@ dependencies = [ "lru 0.12.4", "move-package", "msim", - "narwhal-network", "rand 0.8.5", "serde", "telemetry-subscribers", @@ -7755,6 +7728,7 @@ dependencies = [ "iota-config", "iota-core", "iota-macros", + "iota-metrics", "iota-move-build", "iota-protocol-config", "iota-simulator", @@ -7942,6 +7916,7 @@ dependencies = [ "iota-core", "iota-json-rpc-types", "iota-macros", + "iota-metrics", "iota-move-build", "iota-protocol-config", "iota-simulator", @@ -9125,12 +9100,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "match_opt" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" - [[package]] name = "matchers" version = "0.1.0" @@ -10195,122 +10164,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "narwhal-config" -version = "0.1.0" -dependencies = [ - "fastcrypto", - "insta", - "iota-network-stack", - "iota-util-mem", - "match_opt", - "narwhal-crypto", - "narwhal-test-utils", - "rand 0.8.5", - "serde", - "serde_json", - "tempfile", - "thiserror", - "tracing", -] - -[[package]] -name = "narwhal-crypto" -version = "0.1.0" -dependencies = [ - "bcs", - "bincode", - "fastcrypto", - "serde", - "serde_json", - "shared-crypto", -] - -[[package]] -name = "narwhal-network" -version = "0.1.0" -dependencies = [ - "anemo", - "anemo-tower", - "anyhow", - "async-trait", - "axum", - "bincode", - "bytes", - "dashmap", - "futures", - "iota-common", - "iota-metrics", - "narwhal-crypto", - "narwhal-types", - "parking_lot 0.12.3", - "prometheus", - "quinn-proto", - "rand 0.8.5", - "tokio", - "tower 0.4.13", - "tracing", -] - -[[package]] -name = "narwhal-test-utils" -version = "0.1.0" -dependencies = [ - "anemo", - "fastcrypto", - "fdlimit", - "indexmap 2.5.0", - "iota-network-stack", - "iota-protocol-config", - "narwhal-config", - "narwhal-crypto", - "narwhal-types", - "once_cell", - "rand 0.8.5", - "tempfile", - "tokio", - "tonic", - "tracing", -] - -[[package]] -name = "narwhal-types" -version = "0.1.0" -dependencies = [ - "anyhow", - "base64 0.21.7", - "bcs", - "bytes", - "criterion", - "derive_builder", - "enum_dispatch", - "fastcrypto", - "futures", - "indexmap 2.5.0", - "iota-common", - "iota-metrics", - "iota-network-stack", - "iota-util-mem", - "narwhal-config", - "narwhal-crypto", - "narwhal-test-utils", - "once_cell", - "prometheus", - "proptest", - "proptest-derive", - "prost", - "rand 0.8.5", - "roaring", - "serde", - "serde_test", - "serde_with", - "thiserror", - "tokio", - "tonic", - "tonic-build", - "tracing", -] - [[package]] name = "neptune" version = "13.0.0" @@ -13539,15 +13392,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_test" -version = "1.0.177" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f901ee573cab6b3060453d2d5f0bae4e6d628c23c0a962ff9b5f1d7c8d4f1ed" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -14636,6 +14480,7 @@ dependencies = [ "iota-json-rpc-types", "iota-keys", "iota-macros", + "iota-metrics", "iota-node", "iota-protocol-config", "iota-sdk 0.4.0", diff --git a/Cargo.toml b/Cargo.toml index 17e3a92d699..1fe56e4d3c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -165,8 +165,6 @@ members = [ "iota-execution/v0/iota-adapter", "iota-execution/v0/iota-move-natives", "iota-execution/v0/iota-verifier", - "narwhal/network", - "narwhal/types", ] [workspace.package] @@ -462,8 +460,6 @@ 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" } -narwhal-network = { path = "narwhal/network" } -narwhal-types = { path = "narwhal/types" } prometheus-closure-metric = { path = "crates/prometheus-closure-metric" } shared-crypto = { path = "crates/shared-crypto" } simulacrum = { path = "crates/simulacrum" } diff --git a/crates/iota-aws-orchestrator/README.md b/crates/iota-aws-orchestrator/README.md index cf0d8289bd8..f7c4016aabb 100644 --- a/crates/iota-aws-orchestrator/README.md +++ b/crates/iota-aws-orchestrator/README.md @@ -90,22 +90,7 @@ Instances listed with a green number are available and ready for use, while inst Also keep in mind that there is nothing stopping you from running the `deploy` command multiple times if you find your self needing more instances down the line. -## Step 4. Choose protocol - -There is support to benchmark either Iota or Narwhal only. To choose which protocol to benchmark, you can set the `Protocol` & `BenchmarkType` field [here](https://github.com/iotaledger/iota/blob/develop/crates/iota-aws-orchestrator/src/main.rs#L33-L34) - -``` -// Iota -use protocol::iota::{IotaBenchmarkType, IotaProtocol}; -type Protocol = IotaProtocol; -type BenchmarkType = IotaBenchmarkType; -// Narwhal -use protocol::narwhal::{NarwhalBenchmarkType, NarwhalProtocol}; -type Protocol = NarwhalProtocol; -type BenchmarkType = NarwhalBenchmarkType; -``` - -## Step 5. Running benchmarks +## Step 4. Running benchmarks Running benchmarks involves installing the specified version of the codebase on the remote machines and running one validator and one load generator per instance. For example, the following command benchmarks a committee of 10 validators under a constant load of 200 tx/s for 3 minutes: @@ -115,7 +100,7 @@ cargo run --bin iota-aws-orchestrator -- benchmark --committee 10 fixed-load --l In a network of 10 validators, each with a corresponding load generator, each load generator submits a fixed load of 20 tx/s. Performance measurements are collected by regularly scraping the Prometheus metrics exposed by the load generators. The `iota-aws-orchestrator` binary provides additional commands to run a specific number of load generators on separate machines. -## Step 6. Monitoring +## Step 5. Monitoring The orchestrator provides facilities to monitor metrics on clients and nodes. The orchestrator deploys a [Prometheus](https://prometheus.io) instance and a [Grafana](https://grafana.com) instance on a dedicated remote machine. Grafana is then available on the address printed on stdout (e.g., `http://3.83.97.12:3000`) with the default username and password both set to `admin`. You can either create a [new dashboard](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/) or [import](https://grafana.com/docs/grafana/latest/dashboards/manage-dashboards/#import-a-dashboard) the example dashboards located in the `./assets` folder. diff --git a/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal-only.json b/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal-only.json deleted file mode 100644 index 8e841c72a12..00000000000 --- a/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal-only.json +++ /dev/null @@ -1,6604 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 1, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 266, - "panels": [], - "title": "Client", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 1 - }, - "id": 268, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "sum(rate(narwhal_client_num_submitted{job=~\"$validator\"}[$__rate_interval]))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "legendFormat": "num_submitted", - "range": true, - "refId": "B", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "sum(rate(num_success{job=~\"$validator\"}[$__rate_interval]))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "num_success", - "range": true, - "refId": "A", - "useBackend": false - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "sum by() (rate(num_error{job=~\"$validator\"}[$__interval]))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "num_error", - "range": true, - "refId": "C", - "useBackend": false - } - ], - "title": "Client TPS", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 270, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "avg(rate(consensus_output_transactions{job=~\"$validator\"}[$__rate_interval]))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "legendFormat": "num_submitted", - "range": true, - "refId": "B", - "useBackend": false - } - ], - "title": "Consensus TPS", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 269, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "avg(benchmark_duration{job=~\"$validator\"})", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "benchmark_duration", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Duration", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 78, - "panels": [], - "title": "Health overview", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "dashed+area" - } - }, - "mappings": [], - "min": 0.5, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "green", - "value": 0.667 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 12 - }, - "id": 258, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum(current_voting_right{job=~\"$validator\"} and rate(current_round{job=~\"$validator\"}[$__interval]) > 0) / 10000", - "instant": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "A" - } - ], - "title": "Percentage of stake that increments consensus rounds", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The rate of the current round growth. This is reported by the proposer - which forms the next header to be broadcasted by a node.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Round / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 12 - }, - "id": 81, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(job) (rate(current_round{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Current round growth speed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The current round the node is in. This is reported by the proposer - which forms the next header to be broadcasted by a node. The numbers across the nodes shouldn't differ much - if not the same.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Round", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 2, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 12 - }, - "id": 26, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(job) (current_round{job=~\"$validator\"})", - "hide": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Current round (timeline)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 22 - }, - "id": 260, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "current_voting_right{job=~\"$validator\"} / 10000", - "instant": false, - "range": true, - "refId": "A" - } - ], - "title": "Voting power distribution", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Epoch number", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 22 - }, - "id": 197, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "current_epoch{job=~\"$validator\"}", - "hide": false, - "legendFormat": "{{host}}", - "range": true, - "refId": "B" - } - ], - "title": "Current Epoch", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of primary peers connected per host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num peers connected", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 3, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 22 - }, - "id": 244, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (primary_network_peer_connected{job=~\"$validator\", type=\"other_primary\"})", - "hide": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "B" - } - ], - "title": "Primary network connectivity", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Shows the lag (diff) between the median reported last committed round and the specific host's last committed round. The color scheme shows how far behind nodes are.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-green" - }, - { - "color": "yellow", - "value": 100 - }, - { - "color": "orange", - "value": 150 - }, - { - "color": "red", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 0, - "y": 32 - }, - "id": 185, - "interval": "2m", - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (last_committed_round{job=~\"$validator\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "quantile(0.5, last_committed_round{job=~\"$validator\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - }, - { - "conditions": [ - { - "evaluator": { - "params": [ - 0, - 0 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "datasource": { - "name": "Expression", - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$B - $A", - "hide": false, - "reducer": "max", - "refId": "*", - "type": "math" - } - ], - "title": "Last commit round lag", - "type": "status-history" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The nodes that are proposing in rounds during time. When a node advances a round then this will be a green box with \"YES\" text in it. Otherwise a red box with \"NO\" text will be rendered", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [ - { - "options": { - "from": 1.5, - "result": { - "color": "dark-green", - "index": 0 - }, - "to": 1000 - }, - "type": "range" - }, - { - "options": { - "from": 1, - "result": { - "color": "super-light-green", - "index": 1 - }, - "to": 1.5 - }, - "type": "range" - }, - { - "options": { - "from": 0.5, - "result": { - "color": "yellow", - "index": 2 - }, - "to": 1 - }, - "type": "range" - }, - { - "options": { - "from": 0.1, - "result": { - "color": "orange", - "index": 3 - }, - "to": 0.5 - }, - "type": "range" - }, - { - "options": { - "from": 0, - "result": { - "color": "red", - "index": 4 - }, - "to": 0.1 - }, - "type": "range" - }, - { - "options": { - "match": "null+nan", - "result": { - "color": "transparent", - "index": 5 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 8, - "y": 32 - }, - "id": 184, - "interval": "2m", - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by (job) (rate(certificates_created{job=~\"$validator\"}[5m]))", - "format": "time_series", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Nodes proposing certified headers", - "type": "status-history" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "dark-orange", - "value": 70 - }, - { - "color": "dark-yellow", - "value": 80 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 16, - "y": 32 - }, - "id": 203, - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": " sum by(job) (primary_network_peer_connected{job=~\"$validator\", type=\"other_primary\"})", - "interval": "2m", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Primary connected to other primaries (number)", - "type": "status-history" - }, - { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 57 - }, - "id": 43, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Consensus ordering attempts per sec", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "txn / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 47 - }, - "id": 69, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by (job) (rate(sequencing_certificate_attempt{job=~\"$validator\"}[5m])))", - "legendFormat": "Consensus adapter input rate", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum (rate(sequencing_acknowledge_latency_count{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "NW input rate", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by (job) (rate(consensus_handler_processed{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "NW output rate", - "range": true, - "refId": "C" - } - ], - "title": "Input / output rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 47 - }, - "id": 256, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "clamp(quantile(0.67, histogram_quantile(0.5, sum(rate(sequencing_certificate_latency_bucket{job=~\"$validator\"}[5m])) by(job, le))), 0, 30)", - "instant": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "clamp(quantile(0.67, histogram_quantile(0.95, sum(rate(sequencing_certificate_latency_bucket{job=~\"$validator\"}[5m])) by(job, le))), 0, 30)", - "hide": false, - "instant": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "p50 and p95 Consensus Adapter e2e latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "description": "Percentage of requests that got submitted more than once", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 47 - }, - "id": 212, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position=\"1\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #2", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position=\"2\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #3", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position=\"3\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #4", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position=\"4\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #5", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!~\"(0|1|2|3|4|not_submitted)\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #6+", - "range": true, - "refId": "E" - } - ], - "title": "Submission amplification", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Ideally we want the low-score NW validators to not submit transactions", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Transactions / sec", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ops" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 57 - }, - "id": 45, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(sequencing_acknowledge_latency_count{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Submission rate by authority", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue" - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 57 - }, - "id": 233, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (authority) (consensus_handler_scores{job=~\"$validator\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Avg score per host", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineWidth": 0, - "spanNulls": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "red", - "value": 50 - }, - { - "color": "orange", - "value": 100 - }, - { - "color": "green", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 57 - }, - "id": 241, - "options": { - "alignValue": "left", - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "mergeValues": true, - "rowHeight": 0.9, - "showValue": "auto", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (authority) (consensus_handler_scores{job=~\"$validator\"})", - "legendFormat": "{{authority}}", - "range": true, - "refId": "A" - } - ], - "title": "Score per host change", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "PeerId\\(([a-z0-9]{5}).*\\)", - "renamePattern": "$1..." - } - } - ], - "type": "state-timeline" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "As reported by consensus handler to every host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue" - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 67 - }, - "id": 240, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (job) (consensus_handler_num_low_scoring_authorities{job=~\"$validator\"})", - "legendFormat": "{{host}}", - "range": true, - "refId": "A" - } - ], - "title": "Num low scoring authorities", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue" - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 67 - }, - "id": 265, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (job) (num_of_bad_nodes{job=~\"$validator\"})", - "legendFormat": "{{host}}", - "range": true, - "refId": "A" - } - ], - "title": "Num of bad nodes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "This is a median value across validators", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 67 - }, - "id": 228, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(created_batch_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "batch_creation", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "batch_to_header", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "header_to_cert", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "cert_to_commit", - "range": true, - "refId": "D" - } - ], - "title": "p95: txn to commit stacked breakdown", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Individual submissions by each authority", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue" - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 77 - }, - "id": 242, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sequencing_in_flight_submissions{job=~\"$validator\"})", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75, sequencing_in_flight_submissions{job=~\"$validator\"})", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "A" - } - ], - "title": "Inflight submissions per validator", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Each authority is doing latency estimates in order to determine the retry intervals.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "dtdurationms" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 77 - }, - "id": 237, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "clamp(sequencing_estimated_latency{job=~\"$validator\"}, 0, 60000)", - "hide": false, - "legendFormat": "{{host}}", - "range": true, - "refId": "B" - } - ], - "title": "Consensus Adapter latency estimates", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Load Fractions", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 77 - }, - "id": 217, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (name) (sum by(job,name) (rate(monitored_scope_duration_ns{job=~\"$validator\", name=~\"HandleConsensusOutput|HandleConsensusTransaction|VerifyConsensusTransaction\"}[5m])) / 1000000000)", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Consensus Handler Utilization", - "type": "timeseries" - } - ], - "title": "NW behavior from Iota POV", - "type": "row" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 58 - }, - "id": 89, - "panels": [], - "title": "Channel and Critical Section Utilizations", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of processed entries per sec per validator", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Entries / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 59 - }, - "id": 87, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job,channel) (rate(label_replace({__name__=~\"tx.*total\", job=~\"$validator\"},\"channel\",\"$1\",\"__name__\", \"(.+)\")[5m:])) ", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Internal channels throughput", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of pending entries per channel per validator", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Entries", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "dashed+area" - } - }, - "mappings": [], - "max": 1100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 700 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 59 - }, - "id": 90, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job,channel) (label_replace({__name__=~\"tx_.*\", __name__!~\"tx.*total\", job=~\"$validator\"}, \"channel\", \"$1\", \"__name__\", \"(.+)\"))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Internal channels: num pending elements", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "When we receive a certificate for processing we are checking for their parents in our internal storage. If we are missing those, we suspend the processing (with reason \"missing_parents\") and we are trying to fetch those from the other primary nodes. The processing of the certificate resumes only when all their parents are fetched.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Load Fractions", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 59 - }, - "id": 5, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (name) (sum by(job,name) (rate(monitored_scope_duration_ns{job=~\"$validator\", name!~\"CheckpointNotifyRead|ValidateBatch\"}[5m])) / 1000000000)", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Critical Section Load", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 70 - }, - "id": 11, - "panels": [], - "title": "Consensus Advance", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "All the even rounds that failed to commit because of leader not found or not supported", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 71 - }, - "id": 205, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum (rate(leader_election{job=~\"$validator\", outcome=\"not_found\"}[5m])) / sum (rate(leader_election{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "Leader not found", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum (rate(leader_election{job=~\"$validator\", outcome=\"not_enough_support\"}[5m])) / sum (rate(leader_election{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "Not enough support for leader", - "range": true, - "refId": "A" - } - ], - "title": "Pct of rounds that fail to commit", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The latest committed round by consensus. On a healthy cluster those numbers shouldn't differ much from each other - if not being almost the exact same", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 0 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 71 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(host) (last_committed_round{job=~\"$validator\"})", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Last committed round", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Delta between current round and last committed round. Should not grow.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Rounds", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 71 - }, - "id": 85, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (current_round) - sum by (job) (last_committed_round{job=~\"$validator\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Commit round depth", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The latest committed round by consensus. On a healthy cluster those numbers shouldn't differ much from each other - if not being almost the exact same", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 0 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Time" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - } - ] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 81 - }, - "id": 13, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "enablePagination": true, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Value" - } - ] - }, - "pluginVersion": "10.2.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (last_committed_round{jjob=~\"$validator\"})", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "B" - } - ], - "title": "Last committed round", - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "In a perfect case every even NW round should generate a commit.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 81 - }, - "id": 206, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum(rate(consensus_commit_rounds_latency_bucket{job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "{{host}}-commit", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "1 / rate(current_round{job=~\"$validator\"}[5m])", - "hide": false, - "legendFormat": "{{host}}-round", - "range": true, - "refId": "A" - } - ], - "title": "Average interval of NW rounds and p95 NW commits", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The number of NW certificates in the committed sub-dag", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 81 - }, - "id": 163, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "committed_certificates{job=~\"$validator\",pct=\"50\"}", - "hide": false, - "legendFormat": "{{host}}-p50", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "committed_certificates{job=~\"$validator\",pct=\"95\"}", - "hide": false, - "legendFormat": "{{host}}-p95", - "range": true, - "refId": "A" - } - ], - "title": "NW cert distribution per committed sub-dag", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 91 - }, - "id": 73, - "panels": [], - "title": "Data dissemination", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Since both certs and batches are processed in the consensus handler we can do the math", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 92 - }, - "id": 161, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(consensus_handler_processed{job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(consensus_handler_processed_batches{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Average num of certificates per batch", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Batch composition, sealing and delivering to the primary", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 92 - }, - "id": 151, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum by(le) (rate(created_batch_latency_bucket{job=~\"$validator\"}[5m])))", - "legendFormat": "p99", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum by(le) (rate(created_batch_latency_bucket{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - } - ], - "title": "Batch generation latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 92 - }, - "id": 107, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.05, sum(rate(created_batch_size_bucket{job=~\"$validator\"}[5m])) by (le))", - "legendFormat": "p05", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.25, sum(rate(created_batch_size_bucket{job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p25", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum(rate(created_batch_size_bucket{job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.75, sum(rate(created_batch_size_bucket{job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum(rate(created_batch_size_bucket{job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p99", - "range": true, - "refId": "E" - } - ], - "title": "Batch size distribution", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Each batch should be delivered to 2f+1 of other workers prior to further processing", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 103 - }, - "id": 214, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "parallel_worker_batches{job=~\"$validator\"}", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Inflight Batches ", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 114 - }, - "id": 222, - "panels": [], - "title": "Proposer", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time between batch creation and the moment it's included in a header proposal (both p50 and p95 are medians across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 115 - }, - "id": 145, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Batch to Header Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The number of batches waiting to be included in headers in the proposer. A high number shows that batches are not assigned to headers - or the proposed headers don't make it to a successful commit , thus they are returned back to the proposer for re-proposal", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num batches", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 115 - }, - "id": 209, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (num_of_pending_batches_in_proposer{job=~\"$validator\"}))", - "hide": false, - "legendFormat": "pct50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95, sum by(job) (num_of_pending_batches_in_proposer{job=~\"$validator\"}))", - "hide": false, - "legendFormat": "pct95", - "range": true, - "refId": "A" - } - ], - "title": "Num of pending batches in proposer", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The distribution of the batches per header across the validators.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num batches", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 115 - }, - "id": 220, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum by (reason, le) (rate(num_of_batch_digests_in_header_bucket{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "{{reason}}-p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by (reason, le) (rate(num_of_batch_digests_in_header_bucket{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "{{reason}}-p95", - "range": true, - "refId": "A" - } - ], - "title": "Num batches per header", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The time it takes for a certificate from the moment it gets created up to the moment it gets committed (median across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 126 - }, - "id": 136, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Certificate to Commit Latency", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 137 - }, - "id": 224, - "panels": [], - "title": "DAG advancement", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time it takes for a header to be materialized to a certificate (median across validators)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 138 - }, - "id": 148, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Header to Certificate Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time it takes for a new proposal to be generated", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 138 - }, - "id": 243, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(proposal_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(proposal_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Round advancement latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 138 - }, - "id": 168, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by(le, route) (rate(primary_outbound_request_latency_bucket{job=~\"$validator\",route=~\".*PrimaryToPrimary.*\"}[5m])))", - "hide": false, - "legendFormat": "{{route}}-p95", - "range": true, - "refId": "B" - } - ], - "title": "Primary to Primary Latency by Route", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Certificate is suspended until its parents are retrieved by the node. The dedup and dedup_locked correspond to the cases, in which the same certificate is received while being suspended.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 149 - }, - "id": 219, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by(reason) (rate(certificates_suspended{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Suspended certificates by reason (avg across validators)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Percentiles across validators\nThe value might be larger than 1 in case the same cert is suspended multiple times.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 149 - }, - "id": 229, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5,\nsum by (job) (rate(certificates_suspended{job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75,\nsum by (job) (rate(certificates_suspended{job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95,\nsum by (job) (rate(certificates_suspended{job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "A" - } - ], - "title": "Ratio of suspended to processed certificates", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 149 - }, - "id": 175, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by(le, route) (rate(worker_outbound_request_latency_bucket{job=~\"$validator\", route=~\".*WorkerToWorker.*\"}[5m])))", - "hide": false, - "legendFormat": "{{route}}-p95", - "range": true, - "refId": "B" - } - ], - "title": "Worker to Worker Request Latency by Route", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Counts all the processed fetched certificates, triggered by the missing parents.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 160 - }, - "id": 236, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, rate(certificate_fetcher_num_certificates_processed{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75, rate(certificate_fetcher_num_certificates_processed{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95, rate(certificate_fetcher_num_certificates_processed{job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "C" - } - ], - "title": "Fetched certificates per sec for missing ancestors", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 160 - }, - "id": 250, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(certificates_processed{job=~\"$validator\", source=\"other\"}[5m]))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Certificates processed (other)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 160 - }, - "id": 262, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum(rate(primary_inbound_response_size_bucket{route=\"/narwhal.PrimaryToPrimary/FetchCertificates\", job=~\"$validator\"}[5m])) by (le, job))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Fetch Certificates Response Size - p99", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 171 - }, - "id": 249, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(certificates_processed{job=~\"$validator\", source=\"own\"}[5m]))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Certificates processed (own)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "In case the delta between outbound and inbound latencies is high, it could be a sign of rate limiting or contention on the handler.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 171 - }, - "id": 230, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(route) (rate(primary_outbound_request_latency_sum{job=~\"$validator\",route=~\".*PrimaryToPrimary.*\"}[5m])) / sum by(route) (rate(primary_outbound_request_latency_count{job=~\"$validator\",route=~\".*PrimaryToPrimary.*\"}[5m]))\n-\nsum by(route) (rate(primary_inbound_request_latency_sum{job=~\"$validator\",route=~\".*PrimaryToPrimary.*\"}[5m])) / sum by(route) (rate(primary_inbound_request_latency_count{job=~\"$validator\",route=~\".*PrimaryToPrimary.*\"}[5m]))", - "hide": false, - "legendFormat": "{{route}}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(route) (rate(worker_outbound_request_latency_sum{job=~\"$validator\", route=~\".*WorkerToWorker.*\"}[5m])) / sum by(route) (rate(worker_outbound_request_latency_count{job=~\"$validator\", route=~\".*WorkerToWorker.*\"}[5m]))\n-\nsum by(route) (rate(worker_inbound_request_latency_sum{job=~\"$validator\", route=~\".*WorkerToWorker.*\"}[5m])) / sum by(route) (rate(worker_inbound_request_latency_count{job=~\"$validator\", route=~\".*WorkerToWorker.*\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Outbound vs Inbound Latency Gap", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "RPS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 171 - }, - "id": 231, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(primary_outbound_request_latency_count{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "primary_outbound", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(worker_outbound_request_latency_count{job=~\"$validator\"}[5m])))\n", - "hide": false, - "legendFormat": "worker_outbound", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(primary_inbound_request_latency_count{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "primary_inbound", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(worker_inbound_request_latency_count{job=~\"$validator\"}[5m])))", - "hide": false, - "legendFormat": "worker_inbound", - "range": true, - "refId": "D" - } - ], - "title": "Anemo rps per validator", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 182 - }, - "id": 132, - "panels": [], - "title": "Executor", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time between cert creation and the moment it has reached the executor (median across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 183 - }, - "id": 139, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(subscriber_certificate_latency_bucket{job=~\"$validator\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(subscriber_certificate_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Certificate to Subscriber Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Latency between the time when the batch has been created and the moment it has been fetched for execution (median across validators)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 183 - }, - "id": 142, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(batch_execution_latency_bucket{job=~\"$validator\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(batch_execution_latency_bucket{job=~\"$validator\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Batch to Execution Latency", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 194 - }, - "id": 109, - "panels": [], - "title": "NW Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of primary peers connected per host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num peers connected", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 3, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 195 - }, - "id": 261, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (worker_network_peer_connected{job=~\"$validator\", type=\"other_worker\"})", - "hide": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "B" - } - ], - "title": "Worker network connectivity", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Congestion events for primary and worker connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 195 - }, - "id": 254, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(worker_network_peer_congestion_events{job=~\"$validator\"}[5m]))", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "worker-{{host}}", - "range": true, - "refId": "worker_network_peer_congestion_events" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(primary_network_peer_congestion_events{job=~\"$validator\"}[5m]))", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_congestion_events" - } - ], - "title": "Congestion Events ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Packet loss for primary and worker connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 195 - }, - "id": 252, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(worker_network_peer_lost_packets{job=~\"$validator\"}[5m])) / sum by(job) (rate(worker_network_peer_sent_packets{job=~\"$validator\"}[5m])) * 100", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "worker-{{host}}", - "range": true, - "refId": "worker_network_peer_lost_packets" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(primary_network_peer_lost_packets{job=~\"$validator\"}[5m])) / sum by(job) (rate(primary_network_peer_sent_packets{job=~\"$validator\"}[5m])) * 100", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_lost_packets" - } - ], - "title": "Packet Loss %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 205 - }, - "id": 271, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum by (job)(rate(primary_inbound_request_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(primary_inbound_response_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(worker_inbound_request_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(worker_inbound_response_size_sum{ job=~\"$validator\"}[$__rate_interval]))) * 8", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_congestion_events" - } - ], - "title": "Anemo per-host ingress", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 205 - }, - "id": 272, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "(sum by (job)(rate(primary_outbound_request_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(primary_outbound_response_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(worker_outbound_request_size_sum{ job=~\"$validator\"}[$__rate_interval])) +\n sum by (job)(rate(worker_outbound_response_size_sum{ job=~\"$validator\"}[$__rate_interval]))) * 8", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_congestion_events" - } - ], - "title": "Anemo per-host egress", - "type": "timeseries" - } - ], - "refresh": "1m", - "revision": 1, - "schemaVersion": 39, - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "testbed", - "value": "Fixed-UID-testbed" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "Environment", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "definition": "label_values(job)", - "hide": 0, - "includeAll": true, - "label": "Validator", - "multi": true, - "name": "validator", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(job)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Iota Validators - Narwhal Only", - "uid": "SpRJIxL4z", - "version": 3, - "weekStart": "" -} \ No newline at end of file diff --git a/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal.json b/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal.json deleted file mode 100644 index 0856898ca1c..00000000000 --- a/crates/iota-aws-orchestrator/assets/grafana-dashboard-narwhal.json +++ /dev/null @@ -1,6035 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "", - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 2, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 78, - "panels": [], - "title": "Health overview", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "dashed+area" - } - }, - "mappings": [], - "min": 0.5, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "green", - "value": 0.667 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 1 - }, - "id": 258, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum(current_voting_right{job=~\"$validator\", network=\"$network\"} and rate(current_round{job=~\"$validator\", network=\"$network\"}[$__interval]) > 0) / 10000", - "instant": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "A" - } - ], - "title": "Percentage of stake that increments consensus rounds", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The rate of the current round growth. This is reported by the proposer - which forms the next header to be broadcasted by a node.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Round / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 81, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(job) (rate(current_round{job=~\"$validator\", network=\"$network\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Current round growth speed", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The current round the node is in. This is reported by the proposer - which forms the next header to be broadcasted by a node. The numbers across the nodes shouldn't differ much - if not the same.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Round", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 2, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 26, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(host) (current_round{network=\"$network\", job=~\"$validator\"})", - "hide": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "B" - } - ], - "title": "Current round (timeline)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 11 - }, - "id": 260, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "current_voting_right{job=~\"$validator\", network=\"$network\"} / 10000", - "instant": false, - "range": true, - "refId": "A" - } - ], - "title": "Voting power distribution", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Epoch number", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 2, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 11 - }, - "id": 197, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "current_epoch{job=~\"$validator\", network=\"$network\"}", - "hide": false, - "legendFormat": "{{host}}", - "range": true, - "refId": "B" - } - ], - "title": "Current Epoch", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of primary peers connected per host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num peers connected", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 3, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 11 - }, - "id": 244, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (host) (primary_network_peer_connected{job=~\"$validator\", network=\"$network\", type=\"other_primary\"})", - "hide": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "B" - } - ], - "title": "Primary network connectivity", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Shows the lag (diff) between the median reported last committed round and the specific host's last committed round. The color scheme shows how far behind nodes are.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-green", - "value": null - }, - { - "color": "yellow", - "value": 100 - }, - { - "color": "orange", - "value": 150 - }, - { - "color": "red", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 0, - "y": 21 - }, - "id": 185, - "interval": "2m", - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (last_committed_round{job=~\"$validator\",network=\"$network\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "quantile(0.5, last_committed_round{job=~\"$validator\", network=\"$network\"})", - "format": "time_series", - "hide": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - }, - { - "conditions": [ - { - "evaluator": { - "params": [ - 0, - 0 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "datasource": { - "name": "Expression", - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$B - $A", - "hide": false, - "reducer": "max", - "refId": "*", - "type": "math" - } - ], - "title": "Last commit round lag", - "type": "status-history" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The nodes that are proposing in rounds during time. When a node advances a round then this will be a green box with \"YES\" text in it. Otherwise a red box with \"NO\" text will be rendered", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "lineWidth": 1 - }, - "mappings": [ - { - "options": { - "from": 1.5, - "result": { - "color": "dark-green", - "index": 0 - }, - "to": 1000 - }, - "type": "range" - }, - { - "options": { - "from": 1, - "result": { - "color": "super-light-green", - "index": 1 - }, - "to": 1.5 - }, - "type": "range" - }, - { - "options": { - "from": 0.5, - "result": { - "color": "yellow", - "index": 2 - }, - "to": 1 - }, - "type": "range" - }, - { - "options": { - "from": 0.1, - "result": { - "color": "orange", - "index": 3 - }, - "to": 0.5 - }, - "type": "range" - }, - { - "options": { - "from": 0, - "result": { - "color": "red", - "index": 4 - }, - "to": 0.1 - }, - "type": "range" - }, - { - "options": { - "match": "null+nan", - "result": { - "color": "transparent", - "index": 5 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 8, - "y": 21 - }, - "id": 184, - "interval": "2m", - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by (job) (rate(certificates_created{network=~\"$network\", job=~\"$validator\"}[5m]))", - "format": "time_series", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Nodes proposing certified headers", - "type": "status-history" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "lineWidth": 1 - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "dark-orange", - "value": 70 - }, - { - "color": "dark-yellow", - "value": 80 - }, - { - "color": "dark-green", - "value": 90 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 25, - "w": 8, - "x": 16, - "y": 21 - }, - "id": 203, - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.2.5", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": " sum by(job) (primary_network_peer_connected{job=~\"$validator\", network=\"$network\", type=\"other_primary\"})", - "interval": "2m", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Primary connected to other primaries (number)", - "type": "status-history" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 46 - }, - "id": 43, - "panels": [], - "title": "NW behavior from Iota POV", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Consensus ordering attempts per sec", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "txn / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 47 - }, - "id": 69, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by (job) (rate(sequencing_certificate_attempt{job=~\"$validator\",network=\"$network\"}[5m])))", - "legendFormat": "Consensus adapter input rate", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum (rate(sequencing_acknowledge_latency_count{job=~\"$validator\",network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "NW input rate", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by (host) (rate(consensus_handler_processed{host=~\"$validator\", network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "NW output rate", - "range": true, - "refId": "C" - } - ], - "title": "Input / output rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 47 - }, - "id": 256, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "clamp(quantile(0.67, histogram_quantile(0.5, sum(rate(sequencing_certificate_latency_bucket{job=~\"$validator\", network=\"$network\"}[5m])) by(job, le))), 0, 30)", - "instant": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "clamp(quantile(0.67, histogram_quantile(0.95, sum(rate(sequencing_certificate_latency_bucket{job=~\"$validator\", network=\"$network\"}[5m])) by(job, le))), 0, 30)", - "hide": false, - "instant": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "p50 and p95 Consensus Adapter e2e latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "description": "Percentage of requests that got submitted more than once", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 47 - }, - "id": 212, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position=\"1\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #2", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position=\"2\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #3", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position=\"3\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{job=~\"$validator\", network=\"$network\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #4", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{host=~\"$validator\", network=\"$network\", position=\"4\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{host=~\"$validator\", network=\"$network\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #5", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "Fixed-UID-testbed" - }, - "editorMode": "code", - "expr": "sum (rate(sequencing_certificate_latency_count{host=~\"$validator\", network=\"$network\", position!~\"(0|1|2|3|4|not_submitted)\"}[5m]))\n/\nsum (rate(sequencing_certificate_latency_count{host=~\"$validator\", network=\"$network\", position!=\"not_submitted\"}[5m]))", - "hide": false, - "legendFormat": "Attempt #6+", - "range": true, - "refId": "E" - } - ], - "title": "Submission amplification", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Ideally we want the low-score NW validators to not submit transactions", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Transactions / sec", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "ops" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 57 - }, - "id": 45, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(sequencing_acknowledge_latency_count{job=~\"$validator\",network=\"$network\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Submission rate by authority", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 57 - }, - "id": 233, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (authority) (consensus_handler_scores{job=~\"$validator\", network=\"$network\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Avg score per host", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "lineWidth": 0, - "spanNulls": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "red", - "value": 50 - }, - { - "color": "orange", - "value": 100 - }, - { - "color": "green", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 57 - }, - "id": 241, - "options": { - "alignValue": "left", - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "mergeValues": true, - "rowHeight": 0.9, - "showValue": "auto", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (authority) (consensus_handler_scores{job=~\"$validator\", network=\"$network\"})", - "legendFormat": "{{authority}}", - "range": true, - "refId": "A" - } - ], - "title": "Score per host change", - "transformations": [ - { - "id": "renameByRegex", - "options": { - "regex": "PeerId\\(([a-z0-9]{5}).*\\)", - "renamePattern": "$1..." - } - } - ], - "type": "state-timeline" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "As reported by consensus handler to every host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 67 - }, - "id": 240, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (job) (consensus_handler_num_low_scoring_authorities{network=\"$network\", job=~\"$validator\"})", - "legendFormat": "{{host}}", - "range": true, - "refId": "A" - } - ], - "title": "Num low scoring authorities", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 67 - }, - "id": 265, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (job) (num_of_bad_nodes{network=\"$network\", job=~\"$validator\"})", - "legendFormat": "{{host}}", - "range": true, - "refId": "A" - } - ], - "title": "Num of bad nodes", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "This is a median value across validators", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 67 - }, - "id": 228, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(created_batch_latency_bucket{job=~\"$validator\", network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "batch_creation", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "batch_to_header", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "header_to_cert", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "cert_to_commit", - "range": true, - "refId": "D" - } - ], - "title": "p95: txn to commit stacked breakdown", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Individual submissions by each authority", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - }, - { - "color": "#6ED0E0", - "value": 1 - }, - { - "color": "purple", - "value": 100 - }, - { - "color": "#EAB839", - "value": 200 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 77 - }, - "id": 242, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sequencing_in_flight_submissions{network=\"$network\", job=~\"$validator\"})", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75, sequencing_in_flight_submissions{network=\"$network\", job=~\"$validator\"})", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "A" - } - ], - "title": "Inflight submissions per validator", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Each authority is doing latency estimates in order to determine the retry intervals.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "dtdurationms" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 77 - }, - "id": 237, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "clamp(sequencing_estimated_latency{job=~\"$validator\", network=\"$network\"}, 0, 60000)", - "hide": false, - "legendFormat": "{{host}}", - "range": true, - "refId": "B" - } - ], - "title": "Consensus Adapter latency estimates", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Load Fractions", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 77 - }, - "id": 217, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (name) (sum by(job,name) (rate(monitored_scope_duration_ns{job=~\"$validator\", network=\"$network\", name=~\"HandleConsensusOutput|HandleConsensusTransaction|VerifyConsensusTransaction\"}[5m])) / 1000000000)", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Consensus Handler Utilization", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 87 - }, - "id": 89, - "panels": [], - "title": "Channel and Critical Section Utilizations", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of processed entries per sec per validator", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Entries / sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 88 - }, - "id": 87, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job,channel) (rate(label_replace({__name__=~\"tx.*total\", job=~\"$validator\",network=\"$network\"},\"channel\",\"$1\",\"__name__\", \"(.+)\")[5m:])) ", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Internal channels throughput", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of pending entries per channel per validator", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Entries", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "dashed+area" - } - }, - "mappings": [], - "max": 1100, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 700 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 88 - }, - "id": 90, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job,channel) (label_replace({__name__=~\"tx_.*\", __name__!~\"tx.*total\", job=~\"$validator\",network=\"$network\"}, \"channel\", \"$1\", \"__name__\", \"(.+)\"))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Internal channels: num pending elements", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "When we receive a certificate for processing we are checking for their parents in our internal storage. If we are missing those, we suspend the processing (with reason \"missing_parents\") and we are trying to fetch those from the other primary nodes. The processing of the certificate resumes only when all their parents are fetched.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Load Fractions", - "axisPlacement": "left", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 88 - }, - "id": 5, - "interval": "1m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by (name) (sum by(job,name) (rate(monitored_scope_duration_ns{job=~\"$validator\", network=\"$network\", name!~\"CheckpointNotifyRead|ValidateBatch\"}[5m])) / 1000000000)", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Critical Section Load", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 99 - }, - "id": 11, - "panels": [], - "title": "Consensus Advance", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "All the even rounds that failed to commit because of leader not found or not supported", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 100 - }, - "id": 205, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum (rate(leader_election{job=~\"$validator\", network=\"$network\", outcome=\"not_found\"}[5m])) / sum (rate(leader_election{job=~\"$validator\", network=\"$network\"}[5m]))", - "hide": false, - "legendFormat": "Leader not found", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum (rate(leader_election{job=~\"$validator\", network=\"$network\", outcome=\"not_enough_support\"}[5m])) / sum (rate(leader_election{job=~\"$validator\", network=\"$network\"}[5m]))", - "hide": false, - "legendFormat": "Not enough support for leader", - "range": true, - "refId": "A" - } - ], - "title": "Pct of rounds that fail to commit", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The latest committed round by consensus. On a healthy cluster those numbers shouldn't differ much from each other - if not being almost the exact same", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 0 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 100 - }, - "id": 53, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(host) (last_committed_round{host=~\"$validator\",network=\"$network\"})", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Last committed round", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Delta between current round and last committed round. Should not grow.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Rounds", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 100 - }, - "id": 85, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (current_round) - sum by (job) (last_committed_round{job=~\"$validator\",network=\"$network\"})", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Commit round depth", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The latest committed round by consensus. On a healthy cluster those numbers shouldn't differ much from each other - if not being almost the exact same", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto" - }, - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 0 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Time" - }, - "properties": [ - { - "id": "custom.width", - "value": 199 - } - ] - } - ] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 110 - }, - "id": 13, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "enablePagination": true, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Value" - } - ] - }, - "pluginVersion": "10.0.3", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (last_committed_round{job=~\"$validator\",network=\"$network\"})", - "format": "table", - "hide": false, - "instant": true, - "legendFormat": "__auto", - "range": false, - "refId": "B" - } - ], - "title": "Last committed round", - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "In a perfect case every even NW round should generate a commit.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 110 - }, - "id": 206, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum(rate(consensus_commit_rounds_latency_bucket{network=~\"$network\", job=~\"$validator\"}[5m])) by (le))", - "hide": false, - "legendFormat": "{{host}}-commit", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "1 / rate(current_round{job=~\"$validator\", network=\"$network\"}[5m])", - "hide": false, - "legendFormat": "{{host}}-round", - "range": true, - "refId": "A" - } - ], - "title": "Average interval of NW rounds and p95 NW commits", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The number of NW certificates in the committed sub-dag", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 110 - }, - "id": 163, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "committed_certificates{job=~\"$validator\",network=\"$network\",pct=\"50\"}", - "hide": false, - "legendFormat": "{{host}}-p50", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "committed_certificates{job=~\"$validator\",network=\"$network\",pct=\"95\"}", - "hide": false, - "legendFormat": "{{host}}-p95", - "range": true, - "refId": "A" - } - ], - "title": "NW cert distribution per committed sub-dag", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 120 - }, - "id": 73, - "panels": [], - "title": "Data dissemination", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Since both certs and batches are processed in the consensus handler we can do the math", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 121 - }, - "id": 161, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(consensus_handler_processed{job=~\"$validator\", network=\"$network\"}[5m]))\n/\nsum by (job) (rate(consensus_handler_processed_batches{job=~\"$validator\",network=\"$network\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Average num of certificates per batch", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Batch composition, sealing and delivering to the primary", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 121 - }, - "id": 151, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum by(le) (rate(created_batch_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m])))", - "legendFormat": "p99", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum by(le) (rate(created_batch_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - } - ], - "title": "Batch generation latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 121 - }, - "id": 107, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.05, sum(rate(created_batch_size_bucket{job=~\"$validator\",network=\"$network\"}[5m])) by (le))", - "legendFormat": "p05", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.25, sum(rate(created_batch_size_bucket{job=~\"$validator\",network=\"$network\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p25", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum(rate(created_batch_size_bucket{job=~\"$validator\",network=\"$network\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.75, sum(rate(created_batch_size_bucket{job=~\"$validator\",network=\"$network\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum(rate(created_batch_size_bucket{job=~\"$validator\",network=\"$network\"}[5m])) by (le))", - "hide": false, - "legendFormat": "p99", - "range": true, - "refId": "E" - } - ], - "title": "Batch size distribution", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Each batch should be delivered to 2f+1 of other workers prior to further processing", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 132 - }, - "id": 214, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "parallel_worker_batches{job=~\"$validator\",network=\"$network\"}", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Inflight Batches ", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 143 - }, - "id": 222, - "panels": [], - "title": "Proposer", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time between batch creation and the moment it's included in a header proposal (both p50 and p95 are medians across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 144 - }, - "id": 145, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(le, job) (rate(proposer_batch_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Batch to Header Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The number of batches waiting to be included in headers in the proposer. A high number shows that batches are not assigned to headers - or the proposed headers don't make it to a successful commit , thus they are returned back to the proposer for re-proposal", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num batches", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 144 - }, - "id": 209, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (num_of_pending_batches_in_proposer{network=\"$network\", job=~\"$validator\"}))", - "hide": false, - "legendFormat": "pct50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95, sum by(job) (num_of_pending_batches_in_proposer{network=\"$network\", job=~\"$validator\"}))", - "hide": false, - "legendFormat": "pct95", - "range": true, - "refId": "A" - } - ], - "title": "Num of pending batches in proposer", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The distribution of the batches per header across the validators.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num batches", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 144 - }, - "id": 220, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum by (reason, le) (rate(num_of_batch_digests_in_header_bucket{job=~\"$validator\", network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "{{reason}}-p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by (reason, le) (rate(num_of_batch_digests_in_header_bucket{job=~\"$validator\", network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "{{reason}}-p95", - "range": true, - "refId": "A" - } - ], - "title": "Num batches per header", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "The time it takes for a certificate from the moment it gets created up to the moment it gets committed (median across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 0, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 155 - }, - "id": 136, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(certificate_commit_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Certificate to Commit Latency", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 166 - }, - "id": 224, - "panels": [], - "title": "DAG advancement", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time it takes for a header to be materialized to a certificate (median across validators)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 167 - }, - "id": 148, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(header_to_certificate_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Header to Certificate Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time it takes for a new proposal to be generated", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 1, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 167 - }, - "id": 243, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(proposal_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(proposal_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Round advancement latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 167 - }, - "id": 168, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by(le, route) (rate(primary_outbound_request_latency_bucket{job=~\"$validator\",network=\"$network\",route=~\".*PrimaryToPrimary.*\"}[5m])))", - "hide": false, - "legendFormat": "{{route}}-p95", - "range": true, - "refId": "B" - } - ], - "title": "Primary to Primary Latency by Route", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Certificate is suspended until its parents are retrieved by the node. The dedup and dedup_locked correspond to the cases, in which the same certificate is received while being suspended.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 178 - }, - "id": 219, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "avg by(reason) (rate(certificates_suspended{network=\"$network\", job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "B" - } - ], - "title": "Suspended certificates by reason (avg across validators)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Percentiles across validators\nThe value might be larger than 1 in case the same cert is suspended multiple times.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 178 - }, - "id": 229, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5,\nsum by (job) (rate(certificates_suspended{network=\"$network\", job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75,\nsum by (job) (rate(certificates_suspended{network=\"$network\", job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95,\nsum by (job) (rate(certificates_suspended{network=\"$network\", job=~\"$validator\"}[5m]))\n/\nsum by (job) (rate(certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))\n)", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "A" - } - ], - "title": "Ratio of suspended to processed certificates", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 178 - }, - "id": 175, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.95, sum by(le, route) (rate(worker_outbound_request_latency_bucket{job=~\"$validator\",network=\"$network\", route=~\".*WorkerToWorker.*\"}[5m])))", - "hide": false, - "legendFormat": "{{route}}-p95", - "range": true, - "refId": "B" - } - ], - "title": "Worker to Worker Request Latency by Route", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Counts all the processed fetched certificates, triggered by the missing parents.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Certificate per sec", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 189 - }, - "id": 236, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, rate(certificate_fetcher_num_certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p50", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.75, rate(certificate_fetcher_num_certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p75", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.95, rate(certificate_fetcher_num_certificates_processed{network=\"$network\", job=~\"$validator\"}[5m]))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "C" - } - ], - "title": "Fetched certificates per sec for missing ancestors", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 189 - }, - "id": 250, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(certificates_processed{job=~\"$validator\",network=\"$network\", source=\"other\"}[5m]))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Certificates processed (other)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 189 - }, - "id": 262, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "histogram_quantile(0.99, sum(rate(primary_inbound_response_size_bucket{network=~\"$network\", route=\"/narwhal.PrimaryToPrimary/FetchCertificates\", job=~\"$validator\"}[5m])) by (le, job))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Fetch Certificates Response Size - p99", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 200 - }, - "id": 249, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (rate(certificates_processed{job=~\"$validator\",network=\"$network\", source=\"own\"}[5m]))", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Certificates processed (own)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "In case the delta between outbound and inbound latencies is high, it could be a sign of rate limiting or contention on the handler.", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 200 - }, - "id": 230, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(route) (rate(primary_outbound_request_latency_sum{job=~\"$validator\",network=\"$network\",route=~\".*PrimaryToPrimary.*\"}[5m])) / sum by(route) (rate(primary_outbound_request_latency_count{job=~\"$validator\",network=\"$network\",route=~\".*PrimaryToPrimary.*\"}[5m]))\n-\nsum by(route) (rate(primary_inbound_request_latency_sum{job=~\"$validator\",network=\"$network\",route=~\".*PrimaryToPrimary.*\"}[5m])) / sum by(route) (rate(primary_inbound_request_latency_count{job=~\"$validator\",network=\"$network\",route=~\".*PrimaryToPrimary.*\"}[5m]))", - "hide": false, - "legendFormat": "{{route}}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by(route) (rate(worker_outbound_request_latency_sum{host=~\"$validator\",network=\"$network\", route=~\".*WorkerToWorker.*\"}[5m])) / sum by(route) (rate(worker_outbound_request_latency_count{host=~\"$validator\",network=\"$network\", route=~\".*WorkerToWorker.*\"}[5m]))\n-\nsum by(route) (rate(worker_inbound_request_latency_sum{host=~\"$validator\",network=\"$network\", route=~\".*WorkerToWorker.*\"}[5m])) / sum by(route) (rate(worker_inbound_request_latency_count{host=~\"$validator\",network=\"$network\", route=~\".*WorkerToWorker.*\"}[5m]))", - "hide": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Outbound vs Inbound Latency Gap", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "RPS", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 16, - "y": 200 - }, - "id": 231, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(primary_outbound_request_latency_count{job=~\"$validator\",network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "primary_outbound", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(worker_outbound_request_latency_count{job=~\"$validator\",network=\"$network\"}[5m])))\n", - "hide": false, - "legendFormat": "worker_outbound", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(primary_inbound_request_latency_count{job=~\"$validator\",network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "primary_inbound", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, sum by(job) (rate(worker_inbound_request_latency_count{job=~\"$validator\",network=\"$network\"}[5m])))", - "hide": false, - "legendFormat": "worker_inbound", - "range": true, - "refId": "D" - } - ], - "title": "Anemo rps per validator", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 211 - }, - "id": 132, - "panels": [], - "title": "Executor", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Time between cert creation and the moment it has reached the executor (median across validators).", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 0, - "y": 212 - }, - "id": 139, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(subscriber_certificate_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(subscriber_certificate_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Certificate to Subscriber Latency", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Latency between the time when the batch has been created and the moment it has been fetched for execution (median across validators)", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 1, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 11, - "w": 8, - "x": 8, - "y": 212 - }, - "id": 142, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.5, sum by(job,le) (rate(batch_execution_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "legendFormat": "p50", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "quantile(0.5, histogram_quantile(0.95, sum by(job,le) (rate(batch_execution_latency_bucket{job=~\"$validator\",network=\"$network\"}[5m]))))", - "hide": false, - "legendFormat": "p95", - "range": true, - "refId": "B" - } - ], - "title": "Batch to Execution Latency", - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 223 - }, - "id": 109, - "panels": [], - "title": "NW Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Num of primary peers connected per host", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "Num peers connected", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineStyle": { - "dash": [ - 0, - 10 - ], - "fill": "dot" - }, - "lineWidth": 3, - "pointSize": 6, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "always", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "line+area" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "transparent", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 224 - }, - "id": 261, - "interval": "2m", - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.5.2", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "expr": "sum by (job) (worker_network_peer_connected{job=~\"$validator\", network=\"$network\", type=\"other_worker\"})", - "hide": false, - "legendFormat": "{{label_name}}", - "range": true, - "refId": "B" - } - ], - "title": "Worker network connectivity", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Congestion events for primary and worker connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 224 - }, - "id": 254, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(worker_network_peer_congestion_events{job=~\"$validator\", network=\"$network\"}[5m]))", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "worker-{{host}}", - "range": true, - "refId": "worker_network_peer_congestion_events" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(primary_network_peer_congestion_events{job=~\"$validator\", network=\"$network\"}[5m]))", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_congestion_events" - } - ], - "title": "Congestion Events ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "description": "Packet loss for primary and worker connections", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 224 - }, - "id": 252, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(worker_network_peer_lost_packets{job=~\"$validator\", network=\"$network\"}[5m])) / sum by(job) (rate(worker_network_peer_sent_packets{job=~\"$validator\", network=\"$network\"}[5m])) * 100", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "worker-{{host}}", - "range": true, - "refId": "worker_network_peer_lost_packets" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum by(job) (rate(primary_network_peer_lost_packets{job=~\"$validator\", network=\"$network\"}[5m])) / sum by(job) (rate(primary_network_peer_sent_packets{job=~\"$validator\", network=\"$network\"}[5m])) * 100", - "hide": false, - "instant": false, - "key": "Q-a68ca97d-edc4-4cc5-bc7f-003175cce0c3-8", - "legendFormat": "primary-{{host}}", - "range": true, - "refId": "primary_network_peer_lost_packets" - } - ], - "title": "Packet Loss %", - "type": "timeseries" - } - ], - "refresh": false, - "revision": 1, - "schemaVersion": 38, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": "testbed", - "value": "testbed" - }, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "name": "Environment", - "options": [], - "query": "prometheus", - "queryValue": "", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "type": "datasource" - }, - { - "current": { - "isNone": true, - "selected": true, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "definition": "label_values(uptime,network)", - "hide": 0, - "includeAll": false, - "label": "Network", - "multi": false, - "name": "network", - "options": [], - "query": { - "query": "label_values(uptime,network)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "${Environment}" - }, - "definition": "label_values(uptime{network=\"$network\"},job)", - "hide": 0, - "includeAll": true, - "label": "Validator", - "multi": true, - "name": "validator", - "options": [], - "query": { - "query": "label_values(uptime{network=\"$network\"},job)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Iota Validators - Narwhal", - "uid": "SpRJIxL4z", - "version": 7, - "weekStart": "" -} \ No newline at end of file diff --git a/crates/iota-aws-orchestrator/src/orchestrator.rs b/crates/iota-aws-orchestrator/src/orchestrator.rs index e111cd5af14..97577e45470 100644 --- a/crates/iota-aws-orchestrator/src/orchestrator.rs +++ b/crates/iota-aws-orchestrator/src/orchestrator.rs @@ -451,8 +451,8 @@ impl + ProtocolMetrics, T: BenchmarkType> Orchestrator { - config.set_max_accumulated_txn_cost_per_object_in_narwhal_commit_for_testing( - txn_count_limit, - ); config.set_max_accumulated_txn_cost_per_object_in_mysticeti_commit_for_testing( txn_count_limit, ); diff --git a/crates/iota-core/Cargo.toml b/crates/iota-core/Cargo.toml index 92103862792..8138aea0c46 100644 --- a/crates/iota-core/Cargo.toml +++ b/crates/iota-core/Cargo.toml @@ -41,6 +41,7 @@ object_store.workspace = true once_cell.workspace = true parking_lot.workspace = true prometheus.workspace = true +quinn-proto.workspace = true rand.workspace = true rayon.workspace = true reqwest.workspace = true @@ -87,7 +88,6 @@ move-bytecode-utils.workspace = true move-core-types.workspace = true move-package.workspace = true move-symbol-pool.workspace = true -narwhal-types.workspace = true shared-crypto.workspace = true telemetry-subscribers.workspace = true typed-store.workspace = true @@ -105,6 +105,7 @@ pretty_assertions.workspace = true rstest.workspace = true serde-reflection.workspace = true serde_yaml.workspace = true +tower.workspace = true # internal dependencies iota-move.workspace = true diff --git a/crates/iota-core/src/authority/authority_per_epoch_store.rs b/crates/iota-core/src/authority/authority_per_epoch_store.rs index c0d016458f8..368cdd3ed88 100644 --- a/crates/iota-core/src/authority/authority_per_epoch_store.rs +++ b/crates/iota-core/src/authority/authority_per_epoch_store.rs @@ -32,7 +32,7 @@ use iota_types::{ accumulator::Accumulator, authenticator_state::{ActiveJwk, get_authenticator_state}, base_types::{ - AuthorityName, ConciseableName, EpochId, ObjectID, ObjectRef, SequenceNumber, + AuthorityName, CommitRound, ConciseableName, EpochId, ObjectID, ObjectRef, SequenceNumber, TransactionDigest, }, committee::{Committee, CommitteeTrait}, @@ -62,7 +62,6 @@ use iota_types::{ }; use itertools::{Itertools, izip}; use move_bytecode_utils::module_cache::SyncModuleCache; -use narwhal_types::{Round, TimestampMs}; use parking_lot::{Mutex, RwLock, RwLockReadGuard, RwLockWriteGuard}; use prometheus::IntCounter; use serde::{Deserialize, Serialize}; @@ -104,7 +103,7 @@ use crate::{ epoch::{ epoch_metrics::EpochMetrics, randomness::{ - DkgStatus, RandomnessManager, RandomnessReporter, SINGLETON_KEY, + CommitTimestampMs, DkgStatus, RandomnessManager, RandomnessReporter, SINGLETON_KEY, VersionedProcessedMessage, VersionedUsedProcessedMessages, }, reconfiguration::ReconfigState, @@ -599,7 +598,7 @@ pub struct AuthorityEpochTables { pub(crate) randomness_highest_completed_round: DBMap, /// Holds the timestamp of the most recently generated round of randomness. - pub(crate) randomness_last_round_timestamp: DBMap, + pub(crate) randomness_last_round_timestamp: DBMap, } fn signed_transactions_table_default_config() -> DBOptions { @@ -1696,7 +1695,7 @@ impl AuthorityPerEpochStore { fn should_defer( &self, cert: &VerifiedExecutableTransaction, - commit_round: Round, + commit_round: CommitRound, dkg_failed: bool, generating_randomness: bool, previously_deferred_tx_digests: &HashMap, @@ -3224,7 +3223,7 @@ impl AuthorityPerEpochStore { output: &mut ConsensusCommitOutput, transaction: &VerifiedSequencedConsensusTransaction, checkpoint_service: &Arc, - commit_round: Round, + commit_round: CommitRound, previously_deferred_tx_digests: &HashMap, mut randomness_manager: Option<&mut RandomnessManager>, dkg_failed: bool, @@ -3840,7 +3839,7 @@ pub(crate) struct ConsensusCommitOutput { pending_checkpoints: Vec, // random beacon state - next_randomness_round: Option<(RandomnessRound, TimestampMs)>, + next_randomness_round: Option<(RandomnessRound, CommitTimestampMs)>, dkg_confirmations: BTreeMap, dkg_processed_messages: BTreeMap, @@ -3918,7 +3917,7 @@ impl ConsensusCommitOutput { pub fn reserve_next_randomness_round( &mut self, next_randomness_round: RandomnessRound, - commit_timestamp: TimestampMs, + commit_timestamp: CommitTimestampMs, ) { assert!(self.next_randomness_round.is_none()); self.next_randomness_round = Some((next_randomness_round, commit_timestamp)); diff --git a/crates/iota-core/src/authority/shared_object_congestion_tracker.rs b/crates/iota-core/src/authority/shared_object_congestion_tracker.rs index 3cff245233e..75b9a4c7053 100644 --- a/crates/iota-core/src/authority/shared_object_congestion_tracker.rs +++ b/crates/iota-core/src/authority/shared_object_congestion_tracker.rs @@ -6,11 +6,10 @@ use std::collections::HashMap; use iota_protocol_config::PerObjectCongestionControlMode; use iota_types::{ - base_types::{ObjectID, TransactionDigest}, + base_types::{CommitRound, ObjectID, TransactionDigest}, executable_transaction::VerifiedExecutableTransaction, transaction::SharedInputObject, }; -use narwhal_types::Round; use crate::authority::transaction_deferral::DeferralKey; @@ -83,7 +82,7 @@ impl SharedObjectCongestionTracker { cert: &VerifiedExecutableTransaction, max_accumulated_txn_cost_per_object_in_commit: u64, previously_deferred_tx_digests: &HashMap, - commit_round: Round, + commit_round: CommitRound, ) -> Option<(DeferralKey, Vec)> { let tx_cost = self.get_tx_cost(cert)?; diff --git a/crates/iota-core/src/authority/transaction_deferral.rs b/crates/iota-core/src/authority/transaction_deferral.rs index 8843592dd62..5af556cb3a9 100644 --- a/crates/iota-core/src/authority/transaction_deferral.rs +++ b/crates/iota-core/src/authority/transaction_deferral.rs @@ -2,8 +2,7 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -use iota_types::base_types::ObjectID; -use narwhal_types::Round; +use iota_types::base_types::{CommitRound, ObjectID}; use serde::{Deserialize, Serialize}; #[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord, Serialize, Deserialize)] @@ -11,26 +10,29 @@ pub enum DeferralKey { // For transactions deferred until new randomness is available (whether delayd due to // DKG, or skipped commits). Randomness { - deferred_from_round: Round, // commit round, not randomness round + deferred_from_round: CommitRound, }, // ConsensusRound deferral key requires both the round to which the tx should be deferred (so // that we can efficiently load all txns that are now ready), and the round from which it // has been deferred (so that multiple rounds can efficiently defer to the same future // round). ConsensusRound { - future_round: Round, - deferred_from_round: Round, + future_round: CommitRound, + deferred_from_round: CommitRound, }, } impl DeferralKey { - pub fn new_for_randomness(deferred_from_round: Round) -> Self { + pub fn new_for_randomness(deferred_from_round: CommitRound) -> Self { Self::Randomness { deferred_from_round, } } - pub fn new_for_consensus_round(future_round: Round, deferred_from_round: Round) -> Self { + pub fn new_for_consensus_round( + future_round: CommitRound, + deferred_from_round: CommitRound, + ) -> Self { Self::ConsensusRound { future_round, deferred_from_round, @@ -50,7 +52,7 @@ impl DeferralKey { // Returns a range of deferral keys that are deferred up to the given consensus // round. - pub fn range_for_up_to_consensus_round(consensus_round: Round) -> (Self, Self) { + pub fn range_for_up_to_consensus_round(consensus_round: CommitRound) -> (Self, Self) { ( Self::ConsensusRound { future_round: 0, @@ -63,7 +65,7 @@ impl DeferralKey { ) } - pub fn deferred_from_round(&self) -> Round { + pub fn deferred_from_round(&self) -> CommitRound { match self { Self::Randomness { deferred_from_round, diff --git a/crates/iota-core/src/checkpoints/mod.rs b/crates/iota-core/src/checkpoints/mod.rs index 5fcec61ad33..b466e405866 100644 --- a/crates/iota-core/src/checkpoints/mod.rs +++ b/crates/iota-core/src/checkpoints/mod.rs @@ -1962,9 +1962,9 @@ impl CheckpointSignatureAggregator { Err(()) } InsertResult::QuorumReached(cert) => { - // It is not guaranteed that signature.authority == narwhal_cert.author, but we - // do verify the signature so we know that the author signed the - // message at some point. + // It is not guaranteed that signature.authority == consensus_cert.author, but + // we do verify the signature so we know that the author signed + // the message at some point. if their_digest != self.digest { self.metrics.remote_checkpoint_forks.inc(); warn!( diff --git a/narwhal/network/src/connectivity.rs b/crates/iota-core/src/connection_monitor.rs similarity index 73% rename from narwhal/network/src/connectivity.rs rename to crates/iota-core/src/connection_monitor.rs index 2d32cc11a7c..a15afd715c4 100644 --- a/narwhal/network/src/connectivity.rs +++ b/crates/iota-core/src/connection_monitor.rs @@ -7,15 +7,30 @@ use std::{collections::HashMap, sync::Arc, time::Duration}; use anemo::{PeerId, types::PeerEvent}; use dashmap::DashMap; use futures::future; -use iota_metrics::spawn_logged_monitored_task; +use iota_metrics::{metrics_network::NetworkConnectionMetrics, spawn_logged_monitored_task}; use quinn_proto::ConnectionStats; -use tokio::{task::JoinHandle, time}; -use types::ConditionalBroadcastReceiver; - -use crate::metrics::NetworkConnectionMetrics; +use tokio::{sync::broadcast, task::JoinHandle, time}; const CONNECTION_STAT_COLLECTION_INTERVAL: Duration = Duration::from_secs(60); +#[derive(Debug)] +pub struct ConditionalBroadcastReceiver { + pub receiver: broadcast::Receiver<()>, +} + +/// ConditionalBroadcastReceiver has an additional method for convenience to be +/// able to use to conditionally check for shutdown in all branches of a select +/// statement. Using this method will allow for the shutdown signal to propagate +/// faster, since we will no longer be waiting until the branch that checks the +/// receiver is randomly selected by the select macro. +impl ConditionalBroadcastReceiver { + pub async fn received_signal(&mut self) -> bool { + futures::future::poll_immediate(&mut Box::pin(self.receiver.recv())) + .await + .is_some() + } +} + #[derive(Eq, PartialEq, Clone, Debug)] pub enum ConnectionStatus { Connected, @@ -256,15 +271,128 @@ mod tests { use anemo::{Network, Request, Response}; use bytes::Bytes; + use iota_metrics::metrics_network::NetworkConnectionMetrics; use prometheus::Registry; - use tokio::time::{sleep, timeout}; + use tokio::{ + sync::{broadcast, broadcast::error::SendError}, + time::{sleep, timeout}, + }; use tower::util::BoxCloneService; - use crate::{ - connectivity::{ConnectionMonitor, ConnectionStatus}, - metrics::NetworkConnectionMetrics, + use crate::connection_monitor::{ + ConditionalBroadcastReceiver, ConnectionMonitor, ConnectionStatus, }; + /// PreSubscribedBroadcastSender is a wrapped Broadcast channel that limits + /// subscription to initialization time. This is designed to be used for + /// cancellation signal to all the components, and the limitation is + /// intended to prevent a component missing the shutdown signal due to a + /// subscription that happens after the shutdown signal was sent. The + /// receivers have a special peek method which can be used to + /// conditionally check for shutdown signal on the channel. + struct PreSubscribedBroadcastSender { + sender: broadcast::Sender<()>, + receivers: Vec, + } + + impl PreSubscribedBroadcastSender { + fn new(num_subscribers: u64) -> Self { + let (tx_init, _) = broadcast::channel(1); + let mut receivers = Vec::new(); + for _i in 0..num_subscribers { + receivers.push(ConditionalBroadcastReceiver { + receiver: tx_init.subscribe(), + }); + } + + PreSubscribedBroadcastSender { + sender: tx_init, + receivers, + } + } + + fn try_subscribe(&mut self) -> Option { + self.receivers.pop() + } + + fn send(&self) -> Result> { + self.sender.send(()) + } + } + + #[tokio::test] + async fn test_pre_subscribed_broadcast() { + let mut tx_shutdown = PreSubscribedBroadcastSender::new(2); + let mut rx_shutdown_a = tx_shutdown.try_subscribe().unwrap(); + + let a = tokio::spawn(async move { + loop { + tokio::select! { + _ = rx_shutdown_a.receiver.recv() => { + return 1 + } + + _ = async{}, if true => { + if rx_shutdown_a.received_signal().await { + return 1 + } + } + } + } + }); + + let mut rx_shutdown_b = tx_shutdown.try_subscribe().unwrap(); + let rx_shutdown_c = tx_shutdown.try_subscribe(); + + assert!(rx_shutdown_c.is_none()); + + // send the shutdown signal before we start component b and started listening + // for shutdown there + assert!(tx_shutdown.send().is_ok()); + + let b = tokio::spawn(async move { + loop { + tokio::select! { + _ = rx_shutdown_b.receiver.recv() => { + return 2 + } + + _ = async{}, if true => { + if rx_shutdown_b.received_signal().await { + return 2 + } + } + } + } + }); + + // assert that both component a and b loops have exited, effectively shutting + // down + assert_eq!(a.await.unwrap() + b.await.unwrap(), 3); + } + + #[tokio::test] + async fn test_conditional_broadcast_receiver() { + let mut tx_shutdown: PreSubscribedBroadcastSender = PreSubscribedBroadcastSender::new(2); + let mut rx_shutdown = tx_shutdown.try_subscribe().unwrap(); + + let a = tokio::spawn(async move { + loop { + tokio::select! { + _ = async{}, if true => { + if rx_shutdown.received_signal().await { + return 1 + } + } + } + } + }); + + assert!(tx_shutdown.send().is_ok()); + + assert_eq!(a.await.unwrap(), 1); + } + #[tokio::test] async fn test_connectivity() { // GIVEN diff --git a/crates/iota-core/src/consensus_adapter.rs b/crates/iota-core/src/consensus_adapter.rs index c9076f677a4..37aaa26ccd9 100644 --- a/crates/iota-core/src/consensus_adapter.rs +++ b/crates/iota-core/src/consensus_adapter.rs @@ -14,7 +14,6 @@ use std::{ }; use arc_swap::ArcSwap; -use bytes::Bytes; use dashmap::{DashMap, try_result::TryResult}; use futures::{ FutureExt, @@ -22,7 +21,7 @@ use futures::{ pin_mut, }; use iota_metrics::{GaugeGuard, GaugeGuardFutureExt, spawn_monitored_task}; -use iota_simulator::{anemo::PeerId, narwhal_network::connectivity::ConnectionStatus}; +use iota_simulator::anemo::PeerId; use iota_types::{ base_types::{AuthorityName, TransactionDigest}, committee::Committee, @@ -31,7 +30,6 @@ use iota_types::{ messages_consensus::{ConsensusTransaction, ConsensusTransactionKind}, }; use itertools::Itertools; -use narwhal_types::{TransactionProto, TransactionsClient}; use parking_lot::RwLockReadGuard; use prometheus::{ Histogram, HistogramVec, IntCounterVec, IntGauge, IntGaugeVec, Registry, @@ -39,7 +37,6 @@ use prometheus::{ register_int_counter_vec_with_registry, register_int_gauge_vec_with_registry, register_int_gauge_with_registry, }; -use tap::prelude::*; use tokio::{ sync::{Semaphore, SemaphorePermit}, task::JoinHandle, @@ -49,6 +46,7 @@ use tracing::{debug, info, warn}; use crate::{ authority::authority_per_epoch_store::AuthorityPerEpochStore, + connection_monitor::ConnectionStatus, consensus_handler::{SequencedConsensusTransactionKey, classify}, epoch::reconfiguration::{ReconfigState, ReconfigurationInitiator}, metrics::LatencyObserver, @@ -188,35 +186,6 @@ pub trait SubmitToConsensus: Sync + Send + 'static { ) -> IotaResult; } -#[async_trait::async_trait] -impl SubmitToConsensus for TransactionsClient { - async fn submit_to_consensus( - &self, - transactions: &[ConsensusTransaction], - _epoch_store: &Arc, - ) -> IotaResult { - let transactions_bytes = transactions - .iter() - .map(|t| { - let serialized = - bcs::to_bytes(t).expect("Serializing consensus transaction cannot fail"); - Bytes::from(serialized) - }) - .collect::>(); - self.clone() - .submit_transaction(TransactionProto { - transactions: transactions_bytes, - }) - .await - .map_err(|e| IotaError::ConsensusConnectionBroken(format!("{:?}", e))) - .tap_err(|r| { - // Will be logged by caller as well. - warn!("Submit transaction failed with: {:?}", r); - })?; - Ok(()) - } -} - /// Submit Iota certificates to the consensus. pub struct ConsensusAdapter { /// The network client connecting to the consensus node of this authority. @@ -241,7 +210,7 @@ pub struct ConsensusAdapter { low_scoring_authorities: ArcSwap>>>, /// A structure to register metrics metrics: ConsensusAdapterMetrics, - /// Semaphore limiting parallel submissions to narwhal + /// Semaphore limiting parallel submissions to consensus submit_semaphore: Semaphore, latency_observer: LatencyObserver, } @@ -301,11 +270,12 @@ impl ConsensusAdapter { self.low_scoring_authorities.swap(Arc::new(new_low_scoring)); } - // todo - this probably need to hold some kind of lock to make sure epoch does + // TODO - this probably need to hold some kind of lock to make sure epoch does // not change while we are recovering pub fn submit_recovered(self: &Arc, epoch_store: &Arc) { - // Currently narwhal worker might lose transactions on restart, so we need to - // resend them todo - get_all_pending_consensus_transactions is called + // Currently consensus worker might lose transactions on restart, so we need to + // resend them. + // TODO: get_all_pending_consensus_transactions is called // twice when initializing AuthorityPerEpochStore and here, should not // be a big deal but can be optimized let mut recovered = epoch_store.get_all_pending_consensus_transactions(); @@ -612,9 +582,9 @@ impl ConsensusAdapter { // In addition to that, within_alive_epoch ensures that all pending consensus // adapter tasks are stopped before reconfiguration can proceed. // - // This is essential because narwhal workers reuse same ports when narwhal + // This is essential because consensus workers reuse same ports when consensus // restarts, this means we might be sending transactions from previous - // epochs to narwhal of new epoch if we have not had this barrier. + // epochs to consensus of new epoch if we have not had this barrier. epoch_store .within_alive_epoch(self.submit_and_wait_inner(transactions, &epoch_store)) .await diff --git a/crates/iota-core/src/consensus_handler.rs b/crates/iota-core/src/consensus_handler.rs index cc2119cb189..7d0547b01ea 100644 --- a/crates/iota-core/src/consensus_handler.rs +++ b/crates/iota-core/src/consensus_handler.rs @@ -201,7 +201,7 @@ impl ConsensusHandler { let round = consensus_output.leader_round(); - // TODO: Remove this once narwhal is deprecated. For now mysticeti will not + // TODO: Is this check necessary? For now mysticeti will not // return more than one leader per round so we are not in danger of // ignoring any commits. assert!(round >= last_committed_round); diff --git a/crates/iota-core/src/consensus_types/consensus_output_api.rs b/crates/iota-core/src/consensus_types/consensus_output_api.rs index d2ae2ae5d73..f1d547ba95a 100644 --- a/crates/iota-core/src/consensus_types/consensus_output_api.rs +++ b/crates/iota-core/src/consensus_types/consensus_output_api.rs @@ -5,9 +5,7 @@ use std::fmt::Display; use consensus_core::{BlockAPI, CommitDigest}; -use fastcrypto::hash::Hash; use iota_types::{digests::ConsensusCommitDigest, messages_consensus::ConsensusTransaction}; -use narwhal_types::{BatchAPI, CertificateAPI, ConsensusOutputDigest, HeaderAPI}; use crate::consensus_types::AuthorityIndex; @@ -35,78 +33,6 @@ pub(crate) trait ConsensusOutputAPI: Display { fn consensus_digest(&self) -> ConsensusCommitDigest; } -impl ConsensusOutputAPI for narwhal_types::ConsensusOutput { - fn reputation_score_sorted_desc(&self) -> Option> { - if !self.sub_dag.reputation_score.final_of_schedule { - return None; - } - Some( - self.sub_dag - .reputation_score - .authorities_by_score_desc() - .into_iter() - .map(|(id, score)| (id.0 as AuthorityIndex, score)) - .collect(), - ) - } - - fn leader_round(&self) -> u64 { - self.sub_dag.leader_round() - } - - fn leader_author_index(&self) -> AuthorityIndex { - self.sub_dag.leader.origin().0 as AuthorityIndex - } - - fn commit_timestamp_ms(&self) -> u64 { - self.sub_dag.commit_timestamp() - } - - fn commit_sub_dag_index(&self) -> u64 { - self.sub_dag.sub_dag_index - } - - fn transactions(&self) -> ConsensusOutputTransactions { - assert!(self.sub_dag.certificates.len() == self.batches.len()); - self.sub_dag - .certificates - .iter() - .zip(&self.batches) - .map(|(cert, batches)| { - assert_eq!(cert.header().payload().len(), batches.len()); - let transactions: Vec<(&[u8], ConsensusTransaction)> = - batches.iter().flat_map(|batch| { - let digest = batch.digest(); - assert!(cert.header().payload().contains_key(&digest)); - batch.transactions().iter().map(move |serialized_transaction| { - let transaction = match bcs::from_bytes::( - serialized_transaction, - ) { - Ok(transaction) => transaction, - Err(err) => { - // This should have been prevented by transaction verifications in consensus. - panic!( - "Unexpected malformed transaction (failed to deserialize): {}\nCertificate={:?} BatchDigest={:?} Transaction={:?}", - err, cert, digest, serialized_transaction - ); - } - }; - (serialized_transaction.as_ref(), transaction) - }) - }).collect(); - (cert.origin().0 as AuthorityIndex, transactions) - }).collect() - } - - fn consensus_digest(&self) -> ConsensusCommitDigest { - // We port ConsensusOutputDigest, a narwhal space object, into - // ConsensusCommitDigest, a iota-core space object. We assume they - // always have the same format. - static_assertions::assert_eq_size!(ConsensusCommitDigest, ConsensusOutputDigest); - ConsensusCommitDigest::new(self.digest().into_inner()) - } -} - impl ConsensusOutputAPI for consensus_core::CommittedSubDag { fn reputation_score_sorted_desc(&self) -> Option> { if !self.reputation_scores_desc.is_empty() { diff --git a/crates/iota-core/src/epoch/randomness.rs b/crates/iota-core/src/epoch/randomness.rs index acbb37baad7..e63f4f2a4e8 100644 --- a/crates/iota-core/src/epoch/randomness.rs +++ b/crates/iota-core/src/epoch/randomness.rs @@ -21,14 +21,13 @@ use futures::{StreamExt, stream::FuturesUnordered}; use iota_macros::fail_point_if; use iota_network::randomness; use iota_types::{ - base_types::AuthorityName, + base_types::{AuthorityName, CommitRound}, committee::{Committee, EpochId, StakeUnit}, crypto::{AuthorityKeyPair, RandomnessRound}, error::{IotaError, IotaResult}, iota_system_state::epoch_start_iota_system_state::EpochStartSystemStateTrait, messages_consensus::{ConsensusTransaction, VersionedDkgConfirmation, VersionedDkgMessage}, }; -use narwhal_types::{Round, TimestampMs}; use parking_lot::Mutex; use rand::{ SeedableRng, @@ -47,6 +46,9 @@ use crate::{ consensus_adapter::SubmitToConsensus, }; +/// The epoch UNIX timestamp in milliseconds +pub type CommitTimestampMs = u64; + type PkG = bls12381::G2Element; type EncG = bls12381::G2Element; @@ -456,7 +458,7 @@ impl RandomnessManager { pub(crate) async fn advance_dkg( &mut self, consensus_output: &mut ConsensusCommitOutput, - round: Round, + round: CommitRound, ) -> IotaResult { let epoch_store = self.epoch_store()?; @@ -690,7 +692,7 @@ impl RandomnessManager { /// be resumed. pub(crate) fn reserve_next_randomness( &mut self, - commit_timestamp: TimestampMs, + commit_timestamp: CommitTimestampMs, output: &mut ConsensusCommitOutput, ) -> IotaResult> { let epoch_store = self.epoch_store()?; diff --git a/crates/iota-core/src/lib.rs b/crates/iota-core/src/lib.rs index 76e7ea8f71c..76eaa947d09 100644 --- a/crates/iota-core/src/lib.rs +++ b/crates/iota-core/src/lib.rs @@ -10,6 +10,7 @@ pub mod authority_aggregator; pub mod authority_client; pub mod authority_server; pub mod checkpoints; +pub mod connection_monitor; pub mod consensus_adapter; pub mod consensus_handler; pub mod consensus_manager; diff --git a/crates/iota-core/src/unit_tests/authority_tests.rs b/crates/iota-core/src/unit_tests/authority_tests.rs index 0b92bcae267..b9c44885ce9 100644 --- a/crates/iota-core/src/unit_tests/authority_tests.rs +++ b/crates/iota-core/src/unit_tests/authority_tests.rs @@ -5817,16 +5817,12 @@ async fn test_consensus_handler_per_object_congestion_control( match mode { PerObjectCongestionControlMode::None => unreachable!(), PerObjectCongestionControlMode::TotalGasBudget => { - protocol_config - .set_max_accumulated_txn_cost_per_object_in_narwhal_commit_for_testing(200_000_000); protocol_config .set_max_accumulated_txn_cost_per_object_in_mysticeti_commit_for_testing( 200_000_000, ); } PerObjectCongestionControlMode::TotalTxCount => { - protocol_config - .set_max_accumulated_txn_cost_per_object_in_narwhal_commit_for_testing(2); protocol_config .set_max_accumulated_txn_cost_per_object_in_mysticeti_commit_for_testing(2); } @@ -6056,8 +6052,6 @@ async fn test_consensus_handler_congestion_control_transaction_cancellation() { protocol_config.set_per_object_congestion_control_mode_for_testing( PerObjectCongestionControlMode::TotalGasBudget, ); - protocol_config - .set_max_accumulated_txn_cost_per_object_in_narwhal_commit_for_testing(100_000_000); protocol_config .set_max_accumulated_txn_cost_per_object_in_mysticeti_commit_for_testing(100_000_000); protocol_config.set_max_deferral_rounds_for_congestion_control_for_testing(2); diff --git a/crates/iota-core/src/unit_tests/congestion_control_tests.rs b/crates/iota-core/src/unit_tests/congestion_control_tests.rs index 4b4e80bc235..6dc1763f5b9 100644 --- a/crates/iota-core/src/unit_tests/congestion_control_tests.rs +++ b/crates/iota-core/src/unit_tests/congestion_control_tests.rs @@ -64,9 +64,6 @@ impl TestSetup { // to go through. let max_accumulated_txn_cost_per_object_in_commit = TEST_ONLY_GAS_PRICE * TEST_ONLY_GAS_UNIT; - protocol_config.set_max_accumulated_txn_cost_per_object_in_narwhal_commit_for_testing( - max_accumulated_txn_cost_per_object_in_commit, - ); protocol_config.set_max_accumulated_txn_cost_per_object_in_mysticeti_commit_for_testing( max_accumulated_txn_cost_per_object_in_commit, ); diff --git a/crates/iota-core/src/unit_tests/consensus_tests.rs b/crates/iota-core/src/unit_tests/consensus_tests.rs index 5161a63ae23..369b8116900 100644 --- a/crates/iota-core/src/unit_tests/consensus_tests.rs +++ b/crates/iota-core/src/unit_tests/consensus_tests.rs @@ -2,12 +2,10 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -use iota_network::tonic; use iota_types::{ IOTA_FRAMEWORK_PACKAGE_ID, base_types::ObjectID, crypto::deterministic_random_account_key, - multiaddr::Multiaddr, object::Object, transaction::{ CallArg, CertifiedTransaction, ObjectArg, TEST_ONLY_GAS_UNIT_FOR_OBJECT_BASICS, @@ -16,8 +14,6 @@ use iota_types::{ utils::to_sender_signed_transaction, }; use move_core_types::{account_address::AccountAddress, ident_str}; -use narwhal_types::{Empty, TransactionProto, Transactions, TransactionsServer}; -use tokio::sync::mpsc::{Receiver, Sender, channel}; use super::*; use crate::{ @@ -189,45 +185,3 @@ async fn submit_transaction_to_consensus_adapter() { .unwrap(); waiter.await.unwrap(); } - -pub struct ConsensusMockServer { - sender: Sender, -} - -impl ConsensusMockServer { - pub fn spawn(address: Multiaddr) -> Receiver { - let (sender, receiver) = channel(1); - tokio::spawn(async move { - let config = iota_network_stack::config::Config::new(); - let mock = Self { sender }; - config - .server_builder() - .add_service(TransactionsServer::new(mock)) - .bind(&address) - .await - .unwrap() - .serve() - .await - }); - receiver - } -} - -#[tonic::async_trait] -impl Transactions for ConsensusMockServer { - /// Submit a Transactions - async fn submit_transaction( - &self, - request: tonic::Request, - ) -> Result, tonic::Status> { - self.sender.send(request.into_inner()).await.unwrap(); - Ok(tonic::Response::new(Empty {})) - } - /// Submit a Transactions - async fn submit_transaction_stream( - &self, - _request: tonic::Request>, - ) -> Result, tonic::Status> { - unimplemented!() - } -} diff --git a/crates/iota-e2e-tests/tests/shared_objects_tests.rs b/crates/iota-e2e-tests/tests/shared_objects_tests.rs index a8467fb0c58..8371addc2b1 100644 --- a/crates/iota-e2e-tests/tests/shared_objects_tests.rs +++ b/crates/iota-e2e-tests/tests/shared_objects_tests.rs @@ -628,7 +628,7 @@ async fn shared_object_sync() { assert!(effects.status().is_ok()); // Submit transactions to the out-of-date authority. - // It will succeed because we share owned object certificates through narwhal + // It will succeed because we share owned object certificates through consensus let (effects, _) = test_cluster .submit_transaction_to_validators(increment_counter_transaction, &validators[0..1]) .await diff --git a/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp b/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp index 1d142414cc8..cd8110551b4 100644 --- a/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp +++ b/crates/iota-graphql-e2e-tests/tests/available_range/available_range.exp @@ -6,20 +6,20 @@ Response: { "data": { "availableRange": { "first": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 }, "last": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 } }, "first": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 }, "last": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 } } @@ -39,20 +39,20 @@ Response: { "data": { "availableRange": { "first": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 }, "last": { - "digest": "5Dgrq9zWc8hutasvYoZbAcexWzCMaawAkDEL8pbD5Jjf", + "digest": "3GN2xF2YRGs1wwh1BuaWexjsfYjqcRrxut4hCmKudWdq", "sequenceNumber": 2 } }, "first": { - "digest": "6NFvR4v3VR7s1RqdMCrATc4Wz6rknytEigYQwKQqsDL2", + "digest": "DbuejNSgvHrPUDyucKV46j9kdT8f5VV78PWjLzV41yVw", "sequenceNumber": 0 }, "last": { - "digest": "5Dgrq9zWc8hutasvYoZbAcexWzCMaawAkDEL8pbD5Jjf", + "digest": "3GN2xF2YRGs1wwh1BuaWexjsfYjqcRrxut4hCmKudWdq", "sequenceNumber": 2 } } diff --git a/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp b/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp index 5c9a41bfce7..21c50310dbf 100644 --- a/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp +++ b/crates/iota-graphql-e2e-tests/tests/call/dynamic_fields.exp @@ -55,12 +55,12 @@ Response: { { "name": { "type": { - "repr": "u64" + "repr": "bool" }, "data": { - "Number": "0" + "Bool": false }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { "__typename": "MoveValue" @@ -69,12 +69,12 @@ Response: { { "name": { "type": { - "repr": "bool" + "repr": "u64" }, "data": { - "Bool": false + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { "__typename": "MoveValue" @@ -135,12 +135,12 @@ Response: { { "name": { "type": { - "repr": "u64" + "repr": "bool" }, "data": { - "Number": "0" + "Bool": false }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { "__typename": "MoveValue" @@ -149,12 +149,12 @@ Response: { { "name": { "type": { - "repr": "bool" + "repr": "u64" }, "data": { - "Bool": false + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { "__typename": "MoveValue" @@ -208,17 +208,17 @@ Response: { { "name": { "type": { - "repr": "u64" + "repr": "bool" }, "data": { - "Number": "0" + "Bool": false }, - "bcs": "AAAAAAAAAAA=" + "bcs": "AA==" }, "value": { - "bcs": "AAAAAAAAAAA=", + "bcs": "AgAAAAAAAAA=", "data": { - "Number": "0" + "Number": "2" }, "__typename": "MoveValue" } @@ -226,17 +226,17 @@ Response: { { "name": { "type": { - "repr": "bool" + "repr": "u64" }, "data": { - "Bool": false + "Number": "0" }, - "bcs": "AA==" + "bcs": "AAAAAAAAAAA=" }, "value": { - "bcs": "AgAAAAAAAAA=", + "bcs": "AAAAAAAAAAA=", "data": { - "Number": "2" + "Number": "0" }, "__typename": "MoveValue" } diff --git a/crates/iota-graphql-e2e-tests/tests/call/simple.exp b/crates/iota-graphql-e2e-tests/tests/call/simple.exp index cae4875d542..61e00b36401 100644 --- a/crates/iota-graphql-e2e-tests/tests/call/simple.exp +++ b/crates/iota-graphql-e2e-tests/tests/call/simple.exp @@ -77,7 +77,7 @@ Epoch advanced: 5 task 10, line 44: //# view-checkpoint -CheckpointSummary { epoch: 5, seq: 10, content_digest: DLVxgygkX7Vs9bHQPoKm6AM9aHFEQPubZMHrFedvWEZM, +CheckpointSummary { epoch: 5, seq: 10, content_digest: 4ZuQEfEAd6oU7FYh83WHHE7DYdPeZVndW5q6ZMx45KLX, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 0, storage_cost: 0, storage_rebate: 0, non_refundable_storage_fee: 0 }} task 11, lines 46-51: @@ -155,8 +155,8 @@ Response: { "edges": [ { "node": { - "address": "0x7741a1a8bc15c0fdcebb352e4233d00647522bd6014df10a62fd2050146000e3", - "digest": "87Wr994JipCDohN1vezxW8Ws2a1oq7L1dT5EP4uvpgJe", + "address": "0x5a14fc3eeb9ef468b4bba415d7817c339b1f9ea7f3d59f3f48c3eefe31322856", + "digest": "44MBwuUjBiBgkR19RgE9AmznyHtwiW8CWKtvXWf4RwRd", "owner": { "__typename": "AddressOwner" } @@ -182,8 +182,8 @@ Response: { "edges": [ { "node": { - "address": "0x7741a1a8bc15c0fdcebb352e4233d00647522bd6014df10a62fd2050146000e3", - "digest": "87Wr994JipCDohN1vezxW8Ws2a1oq7L1dT5EP4uvpgJe", + "address": "0x5a14fc3eeb9ef468b4bba415d7817c339b1f9ea7f3d59f3f48c3eefe31322856", + "digest": "44MBwuUjBiBgkR19RgE9AmznyHtwiW8CWKtvXWf4RwRd", "owner": { "__typename": "AddressOwner" } @@ -197,8 +197,8 @@ Response: { "edges": [ { "node": { - "address": "0x18311564e7d246714fe61c222dcf06191a32be6987657415f567b246ba4b0190", - "digest": "8XZJNdvuUjjRUJJdEY2w4QuBRG8vtkVBYF9nTwbcL9pL", + "address": "0x26bf0f03edd09bb3f862e13cec014d17c26dd739d2563d9c704aa8d206301df2", + "digest": "4H2vETP8tgjQtjRPjrWQ8vaAh2vTzCnCaLrrS5AdsxYW", "owner": { "__typename": "AddressOwner" } @@ -206,8 +206,8 @@ Response: { }, { "node": { - "address": "0x20d0758c2ad7be5bc2ff7723ed76529e3825c6c3162fb6d802d8886083c566e2", - "digest": "3sj6vJDpzZ69FaVVg9BT4MH7mX3DBubSJGHnsWxqtVqi", + "address": "0x3442446f02377d1025b211e51564e4f1c9a46845ccad733beeb06180d3f66c31", + "digest": "D8THNropCzbESMMWVCGG2cZUXgncpCXeavpPFtKZrbEh", "owner": { "__typename": "AddressOwner" } @@ -215,8 +215,8 @@ Response: { }, { "node": { - "address": "0x26bf0f03edd09bb3f862e13cec014d17c26dd739d2563d9c704aa8d206301df2", - "digest": "J2Wf9FftEG2ngUz2D1PinpdyGuXdrrzaKTAexL7v8Ebz", + "address": "0x3c88cad5799a8da0467b8456a7429a97e7c141cfcf25f02faf51aa8cb4840461", + "digest": "D9pBCyFBxMdgt4vFo3hiikbxZtdxUHKSBx6hZC9cgjis", "owner": { "__typename": "AddressOwner" } @@ -224,8 +224,8 @@ Response: { }, { "node": { - "address": "0x3442446f02377d1025b211e51564e4f1c9a46845ccad733beeb06180d3f66c31", - "digest": "4tRTWcKZPKebceeC9ixgfvtGnMg2p6o7oEoVqTHjKka2", + "address": "0x847c914d647e7387d7cea4db5ad8fefeffe66773635804a991dfd4385fab6a97", + "digest": "DUFZgANfmmUyusdii2XCjReFg3ykzwqBvfrDvpoVfHVR", "owner": { "__typename": "AddressOwner" } @@ -233,8 +233,8 @@ Response: { }, { "node": { - "address": "0x3c88cad5799a8da0467b8456a7429a97e7c141cfcf25f02faf51aa8cb4840461", - "digest": "Dhh9gQqBrMPL5sSW1enjqfRZvTAY3bzBpbWvDSg7dbXG", + "address": "0xa0da8cea0e7a9e94a4b096c721ace35248af587e73adb78967a73dd8cb094565", + "digest": "BKx9UC6pSCazyJGJ35WKqEvZXZx3kajuNAnawW4rCNLP", "owner": { "__typename": "AddressOwner" } @@ -242,8 +242,8 @@ Response: { }, { "node": { - "address": "0x7161ad34bf2e56d7a1952793661902460eeb2c2ecf1df755a1fc2a7bf4caa592", - "digest": "PRcvwJcwqneJazSXZ4QsBZ7CDYScEYKhvxX8mtoN7xQ", + "address": "0xa79cc544021a721176cdc4497728ec35a5311b8ff0aa293a5d29c0d32cb56056", + "digest": "ANJa65mKP7tZx6GoA82GzBuandC7oTV4a9fk9n8wPbov", "owner": { "__typename": "AddressOwner" } @@ -251,8 +251,8 @@ Response: { }, { "node": { - "address": "0x7bb5eac6aca46ca1cc81fd5cb7330463717f4927006721f3b14981e7abc83c34", - "digest": "7uL5wZ82tPiNba7uJDeSc5jJj1sFfyraBtjcWVwEBtB2", + "address": "0xac9c2e11aebecd35b4cb15802ca6ad5e64d320204149187ba646a16d07a4934d", + "digest": "RrVubtgNdy7wNADnkTDbTpRgRpzYdnjQtLfn1GjUkL8", "owner": { "__typename": "AddressOwner" } @@ -260,8 +260,8 @@ Response: { }, { "node": { - "address": "0x847c914d647e7387d7cea4db5ad8fefeffe66773635804a991dfd4385fab6a97", - "digest": "HeGByH3KwRn41yndqdkQ8srWg32VSpouDNNw1sbELNAP", + "address": "0xb21c0b03871456040643740e238d03bde38de240d7b17055f4670777a19f07b8", + "digest": "6q7rM2bckwW5W8QiM3T5VWCtEf2MjCX7G51UiwgHCDnL", "owner": { "__typename": "AddressOwner" } @@ -269,8 +269,8 @@ Response: { }, { "node": { - "address": "0xa79cc544021a721176cdc4497728ec35a5311b8ff0aa293a5d29c0d32cb56056", - "digest": "8TELkyo6p1Gmz2Sqcg9916XqYh8uvxzGXTnKJJUp3u5o", + "address": "0xbf1922ccfb654506f4104ce832ff2e7887af43de81c01bd22d28c2ff4eae4d44", + "digest": "9YrG9BE2ekkibLeL2x1vGaABj7ZqdrdNArqFaR1yWBwb", "owner": { "__typename": "AddressOwner" } @@ -278,8 +278,8 @@ Response: { }, { "node": { - "address": "0xac9c2e11aebecd35b4cb15802ca6ad5e64d320204149187ba646a16d07a4934d", - "digest": "71eF11kEmB71xCf52tnp12xvPrnsRLzavNv5hpmP12XB", + "address": "0xe0036db16e72b25a175f7cf03c360669e80e1d44c2e4fdeab59eced4d3d8650c", + "digest": "Fbm95u1WFstG2dhEuK6sBnhWmYDtZMgc8LhUihh7y83w", "owner": { "__typename": "AddressOwner" } @@ -287,8 +287,8 @@ Response: { }, { "node": { - "address": "0xb21c0b03871456040643740e238d03bde38de240d7b17055f4670777a19f07b8", - "digest": "AJDc4yJ87DGq9uqzxf38nMBQfkTYyp9AVfQowbMgtcfq", + "address": "0xebf199fc588a2ab72281d94e0cbd957f87b75c056b677ada8341962c22abbed9", + "digest": "ApypQoSQXYpfee5Ji6YEnBJxWDts2Pmo1anNwviVTPaL", "owner": { "__typename": "AddressOwner" } @@ -296,8 +296,8 @@ Response: { }, { "node": { - "address": "0xc7b24c1c7a130e6cb6d04da824676db33f0ee59ddd5051d8e05bd0eac83fc112", - "digest": "FeQ25RQGfqpHHJPZmw3W3gEpsnN8abk88Si3yQKuyvLz", + "address": "0xfadf3d2a466a0f7279368bfdc9b19bf093ec52b6abd5ac51df4ffabbaa48e2e2", + "digest": "ELBFcj1EbKJ9tUyoggRHXDUuvBa7e6HmboxkxXD4d4Rv", "owner": { "__typename": "AddressOwner" } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp b/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp index a7a7cdff255..0c0837ee005 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/balances.exp @@ -80,7 +80,7 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "700" @@ -103,7 +103,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "400" }, "allBalances": { "nodes": [ @@ -116,10 +116,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "400" } ] } @@ -139,7 +139,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "400" + "totalBalance": "200" }, "allBalances": { "nodes": [ @@ -152,10 +152,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 1, - "totalBalance": "400" + "totalBalance": "200" } ] } @@ -196,7 +196,7 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "700" @@ -219,7 +219,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "400" }, "allBalances": { "nodes": [ @@ -232,10 +232,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "400" } ] } @@ -255,7 +255,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "400" + "totalBalance": "200" }, "allBalances": { "nodes": [ @@ -268,10 +268,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 1, - "totalBalance": "400" + "totalBalance": "200" } ] } @@ -334,7 +334,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "500" + "totalBalance": "400" }, "allBalances": { "nodes": [ @@ -347,10 +347,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 2, - "totalBalance": "500" + "totalBalance": "400" } ] } @@ -370,7 +370,7 @@ Response: { { "sender": { "fakeCoinBalance": { - "totalBalance": "400" + "totalBalance": "200" }, "allBalances": { "nodes": [ @@ -383,10 +383,10 @@ Response: { }, { "coinType": { - "repr": "0x18d468c0ef2093d637326c55ce0faa7a493bcae988a5af47d102ead08bb4d4d3::fake::FAKE" + "repr": "0x8a64e2320cb13fc7276c85b7680997e0fb40820e8276a753b076d5d1d0e208ff::fake::FAKE" }, "coinObjectCount": 1, - "totalBalance": "400" + "totalBalance": "200" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp b/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp index 5400d2590e2..1866d5b26f5 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/checkpoints/transaction_blocks.exp @@ -94,12 +94,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H", + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -109,12 +109,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "2rBdnEwKTdVy95JSVPD9z2xLFWUpkCtqQvuByXTYA7tG", + "digest": "Ay1h3NAkKnrkUif97h8ra2cf8ZyXzQvxUrJp7eaN89cV", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -124,12 +124,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53", + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -139,12 +139,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ", + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -161,12 +161,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "75rRkUvMDa7YshVPFCbbAtaMghmFy57QtfZ5LL4JF5SB", + "digest": "CvhQVJ7numDYf6yZL4nWtw6Xh5iGYGEyVo23eYzQrBg1", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -176,12 +176,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "EkKiCJcM1ZfV5y23CQLSsrf2HxDfY2bmukyYGdPWP8Ed", + "digest": "DQHEeQgLHCrvGvvMCwSf6nkPJSHPau76ubpxmh1dQpE9", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -191,12 +191,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke", + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -213,12 +213,12 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "g1WhQn8u5xCQH4Dyb9D9FvWrUTKJyZxuKNmN8Je8xii", + "digest": "BHybRgj8Z9zf6yK7QHay4Y91ntSY7Tv4tbPFKNrdfUpd", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } @@ -228,12 +228,12 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "Gk9Y9dzHQvbR4USt6kFaAS3tqGvH51wB6D3rSjwtH5G3", + "digest": "5XuV7BK4xMoHsgPyXjWiA4XTcAozfauKW1sdAZ7V9yfT", "sender": { "objects": { "edges": [ { - "cursor": "IMnpVN9+TP2vNuQLYXHpLFfHdnOaHfvqRjumQ2rs+4nxAwAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuAwAAAAAAAAA=" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp b/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp index a9cb912e9e3..c87443d566b 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/coins.exp @@ -33,7 +33,7 @@ Response: { "queryCoinsAtLatest": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAgAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -41,39 +41,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAgAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAgAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAgAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -85,16 +85,16 @@ Response: { }, "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAgAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -102,39 +102,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAgAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAgAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAgAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -146,16 +146,16 @@ Response: { }, "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAgAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAgAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -163,39 +163,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAgAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAgAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAgAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -207,9 +207,9 @@ Response: { }, "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -221,39 +221,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAgAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAgAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAgAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAgAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -272,7 +272,7 @@ Response: { "queryCoinsAtChkpt1": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -280,39 +280,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAQAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -324,16 +324,16 @@ Response: { }, "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -341,39 +341,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAQAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -385,9 +385,9 @@ Response: { }, "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } @@ -399,26 +399,26 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } @@ -453,7 +453,7 @@ Response: { "queryCoins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAwAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -461,13 +461,13 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAwAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } @@ -479,16 +479,16 @@ Response: { }, "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAwAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -496,26 +496,26 @@ Response: { "coins": { "edges": [ { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAwAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAwAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -527,16 +527,16 @@ Response: { }, "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAwAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAwAAAAAAAAA=", "node": { "owner": { "owner": { @@ -544,26 +544,26 @@ Response: { "coins": { "edges": [ { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAwAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAwAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -575,9 +575,9 @@ Response: { }, "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -589,13 +589,13 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAwAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "100300" + "value": "100100" } } } @@ -608,26 +608,26 @@ Response: { "coins": { "edges": [ { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAwAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAwAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAwAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -658,7 +658,7 @@ Response: { "queryCoinsAtChkpt1BeforeSnapshotCatchup": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -666,39 +666,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAQAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -710,16 +710,16 @@ Response: { }, "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "consistentStateForEachCoin": { "owner": { @@ -727,39 +727,39 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } } }, { - "cursor": "IJZZH8+90rkNRpvRFknFITtXumlrzerlmSjTtFahgrwuAQAAAAAAAAA=", + "cursor": "IO9Q9XbE6+db2l9L0JjhNzautfBsOISq1c5cVBEtZWshAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x96591fcfbdd2b90d469bd11649c5213b57ba696bcdeae59928d3b456a182bc2e", + "id": "0xef50f576c4ebe75bda5f4bd098e13736aeb5f06c3884aad5ce5c54112d656b21", "balance": { - "value": "100" + "value": "200" } } } @@ -771,9 +771,9 @@ Response: { }, "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } @@ -785,26 +785,26 @@ Response: { "coins": { "edges": [ { - "cursor": "IEXVEGsIQcJpcKqJwEjA0w+xU59wr7gks4hL7oVz1nimAQAAAAAAAAA=", + "cursor": "IEoxRTEINy8rM4k10qaiK4DBOnvAFlH2NqNlUbiEl5m4AQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x45d5106b0841c26970aa89c048c0d30fb1539f70afb824b3884bee8573d678a6", + "id": "0x4a31453108372f2b338935d2a6a22b80c13a7bc01651f636a36551b8849799b8", "balance": { - "value": "300" + "value": "100" } } } } }, { - "cursor": "IEdEqJUSk98ITqOYNlrFLSDdB5goss8vJtT6bNqd+5hAAQAAAAAAAAA=", + "cursor": "IM83Q8NQ6HuwSEYJ3Loz6KZTddlepYt8zRg6fa44RlHIAQAAAAAAAAA=", "node": { "contents": { "json": { - "id": "0x4744a8951293df084ea398365ac52d20dd079828b2cf2f26d4fa6cda9dfb9840", + "id": "0xcf3743c350e87bb0484609dcba33e8a65375d95ea58b7ccd183a7dae384651c8", "balance": { - "value": "200" + "value": "300" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp index c711c23961c..7114a8def6f 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_df.exp @@ -90,7 +90,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEFpKGimJTXfu4K2buCNDYZ0ahvsBfVsyrFfwj3HY/RSAQAAAAAAAAA=", + "cursor": "IAuAWD5S+a9NiTE0NLMt51nZPdB/jGuIJU3KdhgC6Df1AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNA==" @@ -101,7 +101,7 @@ Response: { } }, { - "cursor": "IHHdqaltVCBIzG7FbNTzlV5l2vXKxrmbz1icNABQonU5AQAAAAAAAAA=", + "cursor": "IIBWfNdnUHotfxzw7x0/GTs+i0n+uvDH4t4e7dc++v/aAQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNQ==" @@ -112,7 +112,7 @@ Response: { } }, { - "cursor": "IKmVQJJoNKIRBeIAQszU5tVjlAOMkELOdpLEy45/zgW1AQAAAAAAAAA=", + "cursor": "ILN4GZtK9jzjdM6iJqs8jW2H9iA3quae7IQ/Uj9YGuI8AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==" @@ -139,7 +139,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEFpKGimJTXfu4K2buCNDYZ0ahvsBfVsyrFfwj3HY/RSAQAAAAAAAAA=", + "cursor": "IAuAWD5S+a9NiTE0NLMt51nZPdB/jGuIJU3KdhgC6Df1AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNA==" @@ -150,7 +150,7 @@ Response: { } }, { - "cursor": "IHHdqaltVCBIzG7FbNTzlV5l2vXKxrmbz1icNABQonU5AQAAAAAAAAA=", + "cursor": "IIBWfNdnUHotfxzw7x0/GTs+i0n+uvDH4t4e7dc++v/aAQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNQ==" @@ -161,7 +161,7 @@ Response: { } }, { - "cursor": "IKmVQJJoNKIRBeIAQszU5tVjlAOMkELOdpLEy45/zgW1AQAAAAAAAAA=", + "cursor": "ILN4GZtK9jzjdM6iJqs8jW2H9iA3quae7IQ/Uj9YGuI8AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==" @@ -188,18 +188,18 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IBLJs8Pi9k9t4wRdY9AgeWbly1WW8h//8yF/EFIYHE4YAQAAAAAAAAA=", + "cursor": "IAawhw/3qY0YnjRH/vW7OZwHigwSZY1HAwYhFywolc2uAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==" + "bcs": "A2RmMg==" }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IEFpKGimJTXfu4K2buCNDYZ0ahvsBfVsyrFfwj3HY/RSAQAAAAAAAAA=", + "cursor": "IAuAWD5S+a9NiTE0NLMt51nZPdB/jGuIJU3KdhgC6Df1AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNA==" @@ -210,46 +210,46 @@ Response: { } }, { - "cursor": "IHHdqaltVCBIzG7FbNTzlV5l2vXKxrmbz1icNABQonU5AQAAAAAAAAA=", + "cursor": "IDHZEQS3ja51p1OhSBXkHM6d7Ft57mgIl9i3eM4MtocHAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==" + "bcs": "A2RmMw==" }, "value": { - "json": "df5" + "json": "df3" } } }, { - "cursor": "IKbD5vH9q3Fz2cc0iMym+8S4c50k7zbG3sQk293/o3WBAQAAAAAAAAA=", + "cursor": "IIBWfNdnUHotfxzw7x0/GTs+i0n+uvDH4t4e7dc++v/aAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmNQ==" }, "value": { - "json": "df3" + "json": "df5" } } }, { - "cursor": "IKmVQJJoNKIRBeIAQszU5tVjlAOMkELOdpLEy45/zgW1AQAAAAAAAAA=", + "cursor": "IJBs4l7PDwA4jl9ZLSOR1ky7UurAGyfT5F0cxHGrXQwTAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNg==" + "bcs": "A2RmMQ==" }, "value": { - "json": "df6" + "json": "df1" } } }, { - "cursor": "ILQkBdmgGlsflcYrZYOUeRezOrkHL9s+vfsXWAsxs2C7AQAAAAAAAAA=", + "cursor": "ILN4GZtK9jzjdM6iJqs8jW2H9iA3quae7IQ/Uj9YGuI8AQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==" + "bcs": "A2RmNg==" }, "value": { - "json": "df2" + "json": "df6" } } } @@ -283,7 +283,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEFpKGimJTXfu4K2buCNDYZ0ahvsBfVsyrFfwj3HY/RSAQAAAAAAAAA=", + "cursor": "IAuAWD5S+a9NiTE0NLMt51nZPdB/jGuIJU3KdhgC6Df1AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNA==" @@ -294,7 +294,7 @@ Response: { } }, { - "cursor": "IHHdqaltVCBIzG7FbNTzlV5l2vXKxrmbz1icNABQonU5AQAAAAAAAAA=", + "cursor": "IIBWfNdnUHotfxzw7x0/GTs+i0n+uvDH4t4e7dc++v/aAQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNQ==" @@ -305,7 +305,7 @@ Response: { } }, { - "cursor": "IKmVQJJoNKIRBeIAQszU5tVjlAOMkELOdpLEy45/zgW1AQAAAAAAAAA=", + "cursor": "ILN4GZtK9jzjdM6iJqs8jW2H9iA3quae7IQ/Uj9YGuI8AQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==" diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp index 9f019ec3ea4..bc16742db97 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/deleted_dof.exp @@ -41,7 +41,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IA1EhBl4bAMRpwBAfspMUlheMXDdRpPabFf5kYVo0f0iAQAAAAAAAAA=", + "cursor": "IBMFqUAoZ6AUW4xVrtEtpZlwuIkPQEZ7u9CNvTShr0LXAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -49,7 +49,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -65,7 +65,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -77,7 +77,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IA1EhBl4bAMRpwBAfspMUlheMXDdRpPabFf5kYVo0f0iAQAAAAAAAAA=", + "cursor": "IBMFqUAoZ6AUW4xVrtEtpZlwuIkPQEZ7u9CNvTShr0LXAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -101,7 +101,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -117,7 +117,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -168,7 +168,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } @@ -222,7 +222,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x8b7a4e5de8ceeeddb9b4e52430b47dca2983db7713006cc11b89f82110824da3", + "id": "0xdff2655760856dfe5976bd26ba6be1ba48884517f9995b8725cfec67246162a3", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp index 8b31f6f2e23..28ff4b62216 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer.exp @@ -36,7 +36,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IPL2mUHNZndi8KKb0BbJ5okrrA2Sd7Pjqoc54aexBMrqAQAAAAAAAAA=", + "cursor": "IGhLXj7qJNgj1w1Fhf5TPul10b9WNMqiNoNUgcbzE1bEAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -44,7 +44,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -60,7 +60,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -71,7 +71,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IPL2mUHNZndi8KKb0BbJ5okrrA2Sd7Pjqoc54aexBMrqAQAAAAAAAAA=", + "cursor": "IGhLXj7qJNgj1w1Fhf5TPul10b9WNMqiNoNUgcbzE1bEAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -79,7 +79,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -95,7 +95,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -107,7 +107,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IPL2mUHNZndi8KKb0BbJ5okrrA2Sd7Pjqoc54aexBMrqAQAAAAAAAAA=", + "cursor": "IGhLXj7qJNgj1w1Fhf5TPul10b9WNMqiNoNUgcbzE1bEAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -115,7 +115,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -131,7 +131,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } @@ -184,7 +184,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xda3988d0094e49477f5e2549f662ca03614505757c6b9427d04f1b10d88f2843", + "id": "0x947c364d85ca002b1a7d8cf032d17c1c254281751c3faff8b3556435c85beac4", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp index 6d27abdcdf6..d86ee4c05c5 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dof_add_reclaim_transfer_reclaim_add.exp @@ -61,7 +61,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEpDqte8MMXm9D9sJX7qPeGTan9IQM30pQBRTbguUkS8AQAAAAAAAAA=", + "cursor": "IC5by40oSQQFSyABq2JB+cvPp5S/YvrZnauBk4FhnNxAAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -69,7 +69,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -96,7 +96,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEpDqte8MMXm9D9sJX7qPeGTan9IQM30pQBRTbguUkS8AQAAAAAAAAA=", + "cursor": "IC5by40oSQQFSyABq2JB+cvPp5S/YvrZnauBk4FhnNxAAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -104,7 +104,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -120,7 +120,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -139,7 +139,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEpDqte8MMXm9D9sJX7qPeGTan9IQM30pQBRTbguUkS8AQAAAAAAAAA=", + "cursor": "IC5by40oSQQFSyABq2JB+cvPp5S/YvrZnauBk4FhnNxAAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -147,7 +147,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -163,7 +163,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -182,7 +182,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IEpDqte8MMXm9D9sJX7qPeGTan9IQM30pQBRTbguUkS8AQAAAAAAAAA=", + "cursor": "IC5by40oSQQFSyABq2JB+cvPp5S/YvrZnauBk4FhnNxAAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -190,7 +190,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } @@ -206,7 +206,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x750bdfe96c8b93ebf267e6967b1cd9fbb2670234a4502ce6b340b25e331d5fd2", + "id": "0x1414cd06e05dbeccaddc253f3f28e5840299b6f2d02936921e93618915a3164e", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp index 39494890eb5..ef77d20ff2f 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/dynamic_fields.exp @@ -84,7 +84,7 @@ task 9, lines 103-165: Response: { "data": { "parent_version_2_no_dof": { - "address": "0x60be7a7f1da5091f6e4ddb12a79b5856bdddbc028d44d93d233c6e7629620394", + "address": "0xd857324c3aaf0300219e499f58d4db682f85bf29929cf4df2d0ac4d04e8564ae", "dynamicFields": { "edges": [] } @@ -93,7 +93,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZAQAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmAQAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -104,7 +104,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "1" } } @@ -115,13 +115,13 @@ Response: { } }, "child_version_2_no_parent": { - "address": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "address": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "owner": {} }, "child_version_3_has_parent": { "owner": { "parent": { - "address": "0xd8572dd4abdf75099835ec3b50a736b19a03aaae5ebf8d61ca67c1b25e147919" + "address": "0x3d8acf2c9f53c9957f0d8ca1c8a5dbd6b0ebb8bee349119886017ed9266c68e6" } } } @@ -173,63 +173,63 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDzEFN9B3ECkQG8K2yQKsifDsla6P7K4kFscyi2JgF+rAgAAAAAAAAA=", + "cursor": "IBSfrXi9lZjyN9A1CH9v/2DfsppKQ1aOwnN0VjXo9sZkAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmMg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IEwGDnUGIlCGANYOgL6XOH2RuA/hlonX4jZQbJ8RchihAgAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", + "count": "2" + } + } } } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZAgAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AgAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMQ==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", - "count": "2" - } - } + "json": "df1" } } }, { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AgAAAAAAAAA=", + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } } @@ -240,7 +240,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZAgAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmAgAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -251,7 +251,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "1" } } @@ -270,16 +270,30 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AgAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" + } + } + }, + { + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAgAAAAAAAAA=", + "node": { + "name": { + "bcs": "A2RmMw==", + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + } + }, + "value": { + "json": "df3" } } } @@ -314,7 +328,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "1" } } @@ -333,7 +347,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "2" } } @@ -398,63 +412,63 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDzEFN9B3ECkQG8K2yQKsifDsla6P7K4kFscyi2JgF+rAwAAAAAAAAA=", + "cursor": "IBSfrXi9lZjyN9A1CH9v/2DfsppKQ1aOwnN0VjXo9sZkAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmMg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IEwGDnUGIlCGANYOgL6XOH2RuA/hlonX4jZQbJ8RchihAwAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", + "count": "2" + } + } } } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZAwAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AwAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMQ==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", - "count": "2" - } - } + "json": "df1" } } }, { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AwAAAAAAAAA=", + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } } @@ -465,69 +479,69 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AgAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" } } - } - ] - } - }, - "parent_version_5_has_7_children": { - "dynamicFields": { - "edges": [ + }, { - "cursor": "IB9QurFrTWzZVemvNjgfBkIBf6HE3l1NNXL3eJc63v/DAwAAAAAAAAA=", + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df3" } } - }, + } + ] + } + }, + "parent_version_5_has_7_children": { + "dynamicFields": { + "edges": [ { - "cursor": "IDzEFN9B3ECkQG8K2yQKsifDsla6P7K4kFscyi2JgF+rAwAAAAAAAAA=", + "cursor": "IBSfrXi9lZjyN9A1CH9v/2DfsppKQ1aOwnN0VjXo9sZkAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmMg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IEwGDnUGIlCGANYOgL6XOH2RuA/hlonX4jZQbJ8RchihAwAAAAAAAAA=", + "cursor": "IBwOIU5Pl0oBnGhMGYJDHVPodOHNRUlWAaVPfSr3Zxy7AwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df3" + "json": "df5" } } }, { - "cursor": "IMFZpg+IfFUNghSJHk2PR5wzAvgmr2XPePnUl6zF0FHsAwAAAAAAAAA=", + "cursor": "IDqEKcEoRAJoWgdeCqJTMNHAJ6OKbroYxX7ujVpIbfnfAwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -541,7 +555,7 @@ Response: { } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZAwAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmAwAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -552,7 +566,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "2" } } @@ -560,30 +574,44 @@ Response: { } }, { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AwAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" } } }, { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2AwAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" + } + } + }, + { + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAwAAAAAAAAA=", + "node": { + "name": { + "bcs": "A2RmMw==", + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + } + }, + "value": { + "json": "df3" } } } @@ -594,30 +622,44 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AwAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" } } }, { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2AwAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXAwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" + } + } + }, + { + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAwAAAAAAAAA=", + "node": { + "name": { + "bcs": "A2RmMw==", + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + } + }, + "value": { + "json": "df3" } } } @@ -671,63 +713,63 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IDzEFN9B3ECkQG8K2yQKsifDsla6P7K4kFscyi2JgF+rBAAAAAAAAAA=", + "cursor": "IBSfrXi9lZjyN9A1CH9v/2DfsppKQ1aOwnN0VjXo9sZkBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==", + "bcs": "A2RmMg==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df1" + "json": "df2" } } }, { - "cursor": "IEwGDnUGIlCGANYOgL6XOH2RuA/hlonX4jZQbJ8RchihBAAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==", + "bcs": "pAEAAAAAAAA=", "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + "repr": "u64" } }, "value": { - "json": "df3" + "contents": { + "json": { + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", + "count": "2" + } + } } } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZBAAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0BAAAAAAAAAA=", "node": { "name": { - "bcs": "pAEAAAAAAAA=", + "bcs": "A2RmMQ==", "type": { - "repr": "u64" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "contents": { - "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", - "count": "2" - } - } + "json": "df1" } } }, { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+BAAAAAAAAAA=", + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMw==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df3" } } } @@ -738,16 +780,30 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IOtYC4XoLnPt825JAKmqKPuFAUpW/nnVfPxQbiSYMQl+AgAAAAAAAAA=", + "cursor": "IGsG93WeJ5vzD4eXXjB+JqygUNFWYkBY7Gb6vGnJq1A0AgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMg==", + "bcs": "A2RmMQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df2" + "json": "df1" + } + } + }, + { + "cursor": "ILtJsyFyYxDGBWrsZEoNTb1MQBEAv02i5KI5wtglKZhIAgAAAAAAAAA=", + "node": { + "name": { + "bcs": "A2RmMw==", + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" + } + }, + "value": { + "json": "df3" } } } @@ -758,21 +814,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IB9QurFrTWzZVemvNjgfBkIBf6HE3l1NNXL3eJc63v/DBAAAAAAAAAA=", + "cursor": "IBwOIU5Pl0oBnGhMGYJDHVPodOHNRUlWAaVPfSr3Zxy7BAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df5" } } }, { - "cursor": "IMFZpg+IfFUNghSJHk2PR5wzAvgmr2XPePnUl6zF0FHsBAAAAAAAAAA=", + "cursor": "IDqEKcEoRAJoWgdeCqJTMNHAJ6OKbroYxX7ujVpIbfnfBAAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -786,7 +842,7 @@ Response: { } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZBAAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmBAAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -797,7 +853,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "2" } } @@ -805,16 +861,16 @@ Response: { } }, { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2BAAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" } } } @@ -825,16 +881,16 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2BAAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" } } } @@ -891,7 +947,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZBwAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmBwAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -902,7 +958,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "2" } } @@ -917,21 +973,21 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IB9QurFrTWzZVemvNjgfBkIBf6HE3l1NNXL3eJc63v/DBwAAAAAAAAA=", + "cursor": "IBwOIU5Pl0oBnGhMGYJDHVPodOHNRUlWAaVPfSr3Zxy7BwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNA==", + "bcs": "A2RmNQ==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df4" + "json": "df5" } } }, { - "cursor": "IMFZpg+IfFUNghSJHk2PR5wzAvgmr2XPePnUl6zF0FHsBwAAAAAAAAA=", + "cursor": "IDqEKcEoRAJoWgdeCqJTMNHAJ6OKbroYxX7ujVpIbfnfBwAAAAAAAAA=", "node": { "name": { "bcs": "A2RmNg==", @@ -945,7 +1001,7 @@ Response: { } }, { - "cursor": "INhXLdSr33UJmDXsO1CnNrGaA6quXr+NYcpnwbJeFHkZBwAAAAAAAAA=", + "cursor": "ID2KzyyfU8mVfw2Mocil29aw67i+40kRmIYBftkmbGjmBwAAAAAAAAA=", "node": { "name": { "bcs": "pAEAAAAAAAA=", @@ -956,7 +1012,7 @@ Response: { "value": { "contents": { "json": { - "id": "0xab475b045780dd6238ca186d2edebaf529a7b5479e4bf002b6553b35465dbcb6", + "id": "0xb72102191dc66682b7bf98beb3ddb6b0540bdf525640c97463bb9000b154866b", "count": "2" } } @@ -964,16 +1020,16 @@ Response: { } }, { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2BwAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXBwAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" } } } @@ -984,16 +1040,16 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IPwbo52Y1Aumkk+Ko3+RTpl16x+vZqYFKC4WadnGzxR2BAAAAAAAAAA=", + "cursor": "IKbnqIiar0EZzE0LPb4aZWQP+Y2mJDUikwdZQJ9BpAIXBAAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmNQ==", + "bcs": "A2RmNA==", "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000001::string::String" } }, "value": { - "json": "df5" + "json": "df4" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp index f3d90d2efc7..b2ccf3a268e 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/immutable_dof.exp @@ -58,11 +58,11 @@ Response: { "nodes": [ { "value": { - "address": "0x08c10075296bcba84370c1799c63e11e7f73cf4a96a244ea7a0cfe8e51c45e49", + "address": "0x7213d8b54baa510ebfbe8f8c80900a9645f88d5c3316950c3ff20c6c9c41b10e", "version": 5, "contents": { "json": { - "id": "0x08c10075296bcba84370c1799c63e11e7f73cf4a96a244ea7a0cfe8e51c45e49", + "id": "0x7213d8b54baa510ebfbe8f8c80900a9645f88d5c3316950c3ff20c6c9c41b10e", "count": "0" } }, @@ -86,11 +86,11 @@ Response: { "nodes": [ { "value": { - "address": "0x08c10075296bcba84370c1799c63e11e7f73cf4a96a244ea7a0cfe8e51c45e49", + "address": "0x7213d8b54baa510ebfbe8f8c80900a9645f88d5c3316950c3ff20c6c9c41b10e", "version": 5, "contents": { "json": { - "id": "0x08c10075296bcba84370c1799c63e11e7f73cf4a96a244ea7a0cfe8e51c45e49", + "id": "0x7213d8b54baa510ebfbe8f8c80900a9645f88d5c3316950c3ff20c6c9c41b10e", "count": "0" } }, @@ -98,11 +98,11 @@ Response: { "nodes": [ { "value": { - "address": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "address": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "version": 6, "contents": { "json": { - "id": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "id": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "count": "0" } } @@ -145,7 +145,7 @@ Response: { "object": { "owner": { "parent": { - "address": "0x7c3dc401104116ddde6c75b8862a97b87af54b531a17c640a4153fd9f3c83c9b" + "address": "0xae88d15fa632e40b9289a65f52d3d882bb05fd692a07db3e47012fff03ed48d4" } }, "dynamicFields": { @@ -175,11 +175,11 @@ Response: { "nodes": [ { "value": { - "address": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "address": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "version": 6, "contents": { "json": { - "id": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "id": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "count": "0" } } @@ -203,11 +203,11 @@ Response: { "nodes": [ { "value": { - "address": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "address": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "version": 6, "contents": { "json": { - "id": "0x2a1dafe2d5bf291dfff18e859e02aff0ec2a03579e46a25072172ac0fded6049", + "id": "0x14e0fbb3261eb9c70e262159994b0ab0808675ad1a02a226461b16e9349d5a28", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp index ce7edf0cfdb..886f9bfcf6a 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_df.exp @@ -78,18 +78,18 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "ICe/3d5bmdNSWm8HQp4OxIS7myv6vR81PK4q+d/aVCarAQAAAAAAAAA=", + "cursor": "IF+A8WqX5cd5PnNIVrmGwDtS/oZTXCbVe5lii8ef5BxYAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmMQ==" }, "value": { - "json": "df3" + "json": "df1" } } }, { - "cursor": "INHtV7blivGUlH8ge+Ot0HNdhxQmu6S1+isPP7QdqKAWAQAAAAAAAAA=", + "cursor": "IJdRlozkqQqyNizjStV8brWmL0xQuwKcL6q4h6y9KxZEAQAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMg==" @@ -100,13 +100,13 @@ Response: { } }, { - "cursor": "IOcMMTSl7NjohGrXGa14tjW96DwzsRpcYL1M8mD9D1HHAQAAAAAAAAA=", + "cursor": "INYQH9O+D1CqZWFE6qfQEbFCbdp0j1L48G3YSzKVAvVLAQAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==" + "bcs": "A2RmMw==" }, "value": { - "json": "df1" + "json": "df3" } } } @@ -154,7 +154,7 @@ Contents: Test::M1::Parent { task 11, line 114: //# run Test::M1::mutate_df1 --sender A --args object(2,0) -mutated: object(0,0), object(2,0), object(4,2) +mutated: object(0,0), object(2,0), object(4,0) gas summary: computation_cost: 1000000, storage_cost: 4484000, storage_rebate: 4423200, non_refundable_storage_fee: 0 task 12, line 116: @@ -201,18 +201,18 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "ICe/3d5bmdNSWm8HQp4OxIS7myv6vR81PK4q+d/aVCarAgAAAAAAAAA=", + "cursor": "IF+A8WqX5cd5PnNIVrmGwDtS/oZTXCbVe5lii8ef5BxYAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMw==" + "bcs": "A2RmMQ==" }, "value": { - "json": "df3" + "json": "df1_mutated" } } }, { - "cursor": "INHtV7blivGUlH8ge+Ot0HNdhxQmu6S1+isPP7QdqKAWAgAAAAAAAAA=", + "cursor": "IJdRlozkqQqyNizjStV8brWmL0xQuwKcL6q4h6y9KxZEAgAAAAAAAAA=", "node": { "name": { "bcs": "A2RmMg==" @@ -223,13 +223,13 @@ Response: { } }, { - "cursor": "IOcMMTSl7NjohGrXGa14tjW96DwzsRpcYL1M8mD9D1HHAgAAAAAAAAA=", + "cursor": "INYQH9O+D1CqZWFE6qfQEbFCbdp0j1L48G3YSzKVAvVLAgAAAAAAAAA=", "node": { "name": { - "bcs": "A2RmMQ==" + "bcs": "A2RmMw==" }, "value": { - "json": "df1_mutated" + "json": "df3" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp index ecb76d12619..10623b08340 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/mutated_dof.exp @@ -41,7 +41,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IAkFcqaAXUWzkycpRLV7Z8BH6EenW5e+vB8/QtNZB+11AQAAAAAAAAA=", + "cursor": "IKN28qi03eNC5aqxFGWPLKfMRyuM8ocgJW+I5dsX7GnRAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -49,7 +49,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -65,7 +65,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -77,7 +77,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IAkFcqaAXUWzkycpRLV7Z8BH6EenW5e+vB8/QtNZB+11AQAAAAAAAAA=", + "cursor": "IKN28qi03eNC5aqxFGWPLKfMRyuM8ocgJW+I5dsX7GnRAQAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -85,7 +85,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -101,7 +101,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -117,7 +117,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -168,7 +168,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } @@ -202,7 +202,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IAkFcqaAXUWzkycpRLV7Z8BH6EenW5e+vB8/QtNZB+11AwAAAAAAAAA=", + "cursor": "IKN28qi03eNC5aqxFGWPLKfMRyuM8ocgJW+I5dsX7GnRAwAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -210,7 +210,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "1" } } @@ -226,7 +226,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "1" } } @@ -238,7 +238,7 @@ Response: { "dynamicFields": { "edges": [ { - "cursor": "IAkFcqaAXUWzkycpRLV7Z8BH6EenW5e+vB8/QtNZB+11AwAAAAAAAAA=", + "cursor": "IKN28qi03eNC5aqxFGWPLKfMRyuM8ocgJW+I5dsX7GnRAwAAAAAAAAA=", "node": { "name": { "bcs": "KgAAAAAAAAA=" @@ -246,7 +246,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "1" } } @@ -262,7 +262,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "1" } } @@ -283,7 +283,7 @@ Response: { "value": { "contents": { "json": { - "id": "0x2af91b532c1e69309c25ae3cb9a81b5741d5c8ed5d91137e5e0cc98e12e2d996", + "id": "0x8e7dab2248fd42c115f3d1be99df937fbe159d92633f8df9293234a3c2bc37cb", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp index 6349cba3f17..943dc81e90b 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/dynamic_fields/nested_dof.exp @@ -62,11 +62,11 @@ Response: { "nodes": [ { "value": { - "address": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "address": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "version": 5, "contents": { "json": { - "id": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "id": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "count": "0" } }, @@ -90,11 +90,11 @@ Response: { "nodes": [ { "value": { - "address": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "address": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "version": 5, "contents": { "json": { - "id": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "id": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "count": "0" } }, @@ -102,11 +102,11 @@ Response: { "nodes": [ { "value": { - "address": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "address": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "version": 6, "contents": { "json": { - "id": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "id": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "count": "0" } } @@ -131,11 +131,11 @@ Response: { "nodes": [ { "value": { - "address": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "address": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "version": 7, "contents": { "json": { - "id": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "id": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "count": "1" } }, @@ -143,11 +143,11 @@ Response: { "nodes": [ { "value": { - "address": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "address": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "version": 6, "contents": { "json": { - "id": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "id": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "count": "0" } } @@ -172,11 +172,11 @@ Response: { "nodes": [ { "value": { - "address": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "address": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "version": 7, "contents": { "json": { - "id": "0xa021c1b8a3e22d34befa5887683f44f29939faf90d3512c0a8b4047e0e14417f", + "id": "0x7cdd23cf6ffe2b061504cf7d619e6e293db4f09f1feed0c829bcdb28bd19cecc", "count": "1" } }, @@ -184,11 +184,11 @@ Response: { "nodes": [ { "value": { - "address": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "address": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "version": 8, "contents": { "json": { - "id": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "id": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "count": "1" } } @@ -233,11 +233,11 @@ Response: { "nodes": [ { "value": { - "address": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "address": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "version": 6, "contents": { "json": { - "id": "0x3584d0e9ad4fc3d96fba22aa7c0deeb055f7219f9a9bfe2e1382ae7a65117a92", + "id": "0x5f299c6eea97e6799f66501a7844fe3a9bc9f8f64792fd4442a5359c5465d1a4", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp b/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp index 839c1846d40..239a0f67257 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/epochs/transaction_blocks.exp @@ -41,19 +41,19 @@ Response: { { "cursor": "eyJjIjozLCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" } }, { "cursor": "eyJjIjozLCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } }, { @@ -154,19 +154,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MCwiaSI6ZmFsc2V9", "node": { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" } }, { "cursor": "eyJjIjoxMiwidCI6MSwiaSI6ZmFsc2V9", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } }, { @@ -183,19 +183,19 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" } }, { "cursor": "eyJjIjo0LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } } ] @@ -207,19 +207,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "2rBdnEwKTdVy95JSVPD9z2xLFWUpkCtqQvuByXTYA7tG" + "digest": "Ay1h3NAkKnrkUif97h8ra2cf8ZyXzQvxUrJp7eaN89cV" } }, { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53" + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP" } }, { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ" + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV" } }, { @@ -236,19 +236,19 @@ Response: { { "cursor": "eyJjIjo4LCJ0IjowLCJpIjpmYWxzZX0", "node": { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" } }, { "cursor": "eyJjIjo4LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjo4LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } }, { @@ -260,19 +260,19 @@ Response: { { "cursor": "eyJjIjo4LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "2rBdnEwKTdVy95JSVPD9z2xLFWUpkCtqQvuByXTYA7tG" + "digest": "Ay1h3NAkKnrkUif97h8ra2cf8ZyXzQvxUrJp7eaN89cV" } }, { "cursor": "eyJjIjo4LCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53" + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP" } }, { "cursor": "eyJjIjo4LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ" + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV" } } ] @@ -284,19 +284,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "75rRkUvMDa7YshVPFCbbAtaMghmFy57QtfZ5LL4JF5SB" + "digest": "CvhQVJ7numDYf6yZL4nWtw6Xh5iGYGEyVo23eYzQrBg1" } }, { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "EkKiCJcM1ZfV5y23CQLSsrf2HxDfY2bmukyYGdPWP8Ed" + "digest": "DQHEeQgLHCrvGvvMCwSf6nkPJSHPau76ubpxmh1dQpE9" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke" + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk" } }, { @@ -313,19 +313,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MCwiaSI6ZmFsc2V9", "node": { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" } }, { "cursor": "eyJjIjoxMiwidCI6MSwiaSI6ZmFsc2V9", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } }, { @@ -337,19 +337,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "2rBdnEwKTdVy95JSVPD9z2xLFWUpkCtqQvuByXTYA7tG" + "digest": "Ay1h3NAkKnrkUif97h8ra2cf8ZyXzQvxUrJp7eaN89cV" } }, { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53" + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP" } }, { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ" + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV" } }, { @@ -361,19 +361,19 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "75rRkUvMDa7YshVPFCbbAtaMghmFy57QtfZ5LL4JF5SB" + "digest": "CvhQVJ7numDYf6yZL4nWtw6Xh5iGYGEyVo23eYzQrBg1" } }, { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "EkKiCJcM1ZfV5y23CQLSsrf2HxDfY2bmukyYGdPWP8Ed" + "digest": "DQHEeQgLHCrvGvvMCwSf6nkPJSHPau76ubpxmh1dQpE9" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke" + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk" } } ] @@ -395,13 +395,13 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxLCJpIjpmYWxzZX0", "node": { - "digest": "DkwkZiCC7skJSfsXTPQEzRXkXYC7PVT7XWi2vRJqsAfq" + "digest": "GUKReG1RoqowmWq3yRJNwHJFiUtCARZnmiccRaBtCi98" } }, { "cursor": "eyJjIjo3LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } }, { @@ -420,13 +420,13 @@ Response: { { "cursor": "eyJjIjoxMSwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53" + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP" } }, { "cursor": "eyJjIjoxMSwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ" + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV" } }, { @@ -445,13 +445,13 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "EkKiCJcM1ZfV5y23CQLSsrf2HxDfY2bmukyYGdPWP8Ed" + "digest": "DQHEeQgLHCrvGvvMCwSf6nkPJSHPau76ubpxmh1dQpE9" } }, { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke" + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk" } }, { @@ -480,7 +480,7 @@ Response: { { "cursor": "eyJjIjoyLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H" + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud" } } ] @@ -493,7 +493,7 @@ Response: { { "cursor": "eyJjIjo2LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ" + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV" } } ] @@ -506,7 +506,7 @@ Response: { { "cursor": "eyJjIjoxMCwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke" + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk" } } ] @@ -527,24 +527,24 @@ Response: { { "cursor": "eyJjIjo2LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ", + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuBgAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcBgAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeBgAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8BgAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEBgAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohBgAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8BgAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEBgAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/BgAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuBgAAAAAAAAA=" } ] } @@ -558,33 +558,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MiwiaSI6ZmFsc2V9", "node": { - "digest": "3bPBEGHhrpFoxzV3jwHDTuMTkUtnZsSrbmtbppw8Mr7H", + "digest": "ARW7Huh9GW72bMvDoEUY2BQkU2TbgkJeuCtk538E65ud", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -594,33 +594,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NCwiaSI6ZmFsc2V9", "node": { - "digest": "2rBdnEwKTdVy95JSVPD9z2xLFWUpkCtqQvuByXTYA7tG", + "digest": "Ay1h3NAkKnrkUif97h8ra2cf8ZyXzQvxUrJp7eaN89cV", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -630,33 +630,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NSwiaSI6ZmFsc2V9", "node": { - "digest": "HWTSUrHn5zbMcP2aixY3vhtjyyP4GnZUBbqKDoVjpd53", + "digest": "CaWJtdWxxV8QcJyNnX8hnKRxeZsDTwNbRd3MHdRAnswP", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -666,33 +666,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6NiwiaSI6ZmFsc2V9", "node": { - "digest": "2HmXBYuoPVLZB55KPw2wtbkrq1VRAGHrXKVCzUieuaHJ", + "digest": "8ThoJwqQb8Qfk6FCa4rm3ZaGZXPQNRJV5Q9juj1MKRPV", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -702,33 +702,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OCwiaSI6ZmFsc2V9", "node": { - "digest": "75rRkUvMDa7YshVPFCbbAtaMghmFy57QtfZ5LL4JF5SB", + "digest": "CvhQVJ7numDYf6yZL4nWtw6Xh5iGYGEyVo23eYzQrBg1", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -738,33 +738,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6OSwiaSI6ZmFsc2V9", "node": { - "digest": "EkKiCJcM1ZfV5y23CQLSsrf2HxDfY2bmukyYGdPWP8Ed", + "digest": "DQHEeQgLHCrvGvvMCwSf6nkPJSHPau76ubpxmh1dQpE9", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } @@ -774,33 +774,33 @@ Response: { { "cursor": "eyJjIjoxMiwidCI6MTAsImkiOmZhbHNlfQ", "node": { - "digest": "HbjiBNbABYK4a5iEZa1vyVt7Y7rYrGTUFAiSgr9c4zke", + "digest": "FyorXheep61dt4Uwv6tAGULrjYVKwZMdzQr13C8y1Nwk", "sender": { "objects": { "edges": [ { - "cursor": "IBhiLKSACh03qzwTLolt1BgzdrQWDlVVljrJUMSQGFTuDAAAAAAAAAA=" + "cursor": "IF6bLapP8AYKd+75F6XPdtdVNSohn1HTgbIpXJvDkyPcDAAAAAAAAAA=" }, { - "cursor": "IDeJmTiindmAQBd+pVPFBjB7sVU7z0fGvQyB+rsDDqBeDAAAAAAAAAA=" + "cursor": "IHPKWDFJOJ7ilxfCMAN7xvmIhjb1MGWJ9d0bcwAZGMDmDAAAAAAAAAA=" }, { - "cursor": "IFx15WB4kYt1vWj/sv4nMcEeIGFCvzzveeSQ/8mUOVjEDAAAAAAAAAA=" + "cursor": "IIK7UOq2UoSWJJse6R8AmECvlpCy5Y1sZzCDUSROuCg8DAAAAAAAAAA=" }, { - "cursor": "IHB1eJ+2D/LSY0p89xUpULRGvC7hLBHTzh96+8T5xoo8DAAAAAAAAAA=" + "cursor": "IIYxPQues5oY+YIAYbAFU8PoNxE5Ro7nNZdwLtqZX+XmDAAAAAAAAAA=" }, { - "cursor": "IHnaNDoqcGH3Lewit7KMbNVl6+NMnWxcWJxkH16fwySNDAAAAAAAAAA=" + "cursor": "IJMX5vma2m2RAFDijPaXuQNjfxxT9M8W9SYEAq9aaeohDAAAAAAAAAA=" }, { - "cursor": "IH3KRDwEPenou3uSyW4UxFAnz4OJE/zi2jyBy/1Kmsj/DAAAAAAAAAA=" + "cursor": "IKo/fcaQDpNoJ8FL/ba/CYsYyIkoh6Cc+b3hqvqhk4LPDAAAAAAAAAA=" }, { - "cursor": "IJzMgwPtTHYROWRpRit7h9rQQvqG1qTuwxXF0ovflzTQDAAAAAAAAAA=" + "cursor": "IL4q2gkTPbbIZdg6PhcaGW1pw0J9PuGOjTFzGWK9xPHEDAAAAAAAAAA=" }, { - "cursor": "IKVrQjxlEPJcc7PYfiR1Bn7gaGKCjuE7aqNNgyCBIM6bDAAAAAAAAAA=" + "cursor": "IOgjTJtf/6FlTpu0BCSEiQre3ONPUDwTdz0xbRu+TVWuDAAAAAAAAAA=" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp b/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp index 641b1fba51c..63d8d5150c2 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/object_at_version.exp @@ -29,7 +29,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "0" } } @@ -57,7 +57,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "1" } } @@ -69,7 +69,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "0" } } @@ -104,7 +104,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "1" } } @@ -134,7 +134,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "1" } } @@ -151,7 +151,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "0" } } @@ -205,7 +205,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "1" } } @@ -222,7 +222,7 @@ Response: { "asMoveObject": { "contents": { "json": { - "id": "0x5f5b687661f8e057c27c2ce0e32817f9afbb79e1547aed2437636c026a7eaef4", + "id": "0xb9c8ffbf83054e03d776bcb9bb8d81c2792323fb60b16911840b8cd1223d7f35", "value": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp index 8d9f57fcc14..07ed6957498 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination.exp @@ -31,24 +31,26 @@ Response: { "data": { "one_of_these_will_yield_an_object": { "objects": { - "nodes": [ - { - "version": 4, + "nodes": [] + } + }, + "if_the_other_does_not": { + "nodes": [ + { + "version": 3, + "asMoveObject": { "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } - ] - } - }, - "if_the_other_does_not": { - "nodes": [] + } + ] } } } @@ -75,24 +77,26 @@ Response: { "data": { "paginating_on_checkpoint_1": { "objects": { - "nodes": [ - { - "version": 4, + "nodes": [] + } + }, + "should_not_have_more_than_one_result": { + "nodes": [ + { + "version": 3, + "asMoveObject": { "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } - ] - } - }, - "should_not_have_more_than_one_result": { - "nodes": [] + } + ] } } } @@ -105,14 +109,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -120,35 +124,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -166,14 +170,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -181,35 +185,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -237,14 +241,14 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } }, "owner_at_latest_state_has_iota_only": { @@ -252,14 +256,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -267,49 +271,49 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 1, + "version": 4, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", - "balance": { - "value": "300000000000000" - } + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -319,14 +323,14 @@ Response: { } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } }, "owner_at_latest_state_has_iota_only": { @@ -334,14 +338,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -349,49 +353,49 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 1, + "version": 4, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", - "balance": { - "value": "300000000000000" - } + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -406,15 +410,15 @@ Response: { "before_obj_6_0_at_checkpoint_2": { "nodes": [ { - "version": 3, + "version": 6, "asMoveObject": { "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } }, "note_that_owner_result_should_reflect_latest_state": { @@ -422,14 +426,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -437,49 +441,49 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 1, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", + "balance": { + "value": "300000000000000" + } } } }, { - "version": 1, + "version": 4, "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", - "balance": { - "value": "300000000000000" - } + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -544,11 +548,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -556,10 +560,10 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } @@ -568,11 +572,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, @@ -580,11 +584,11 @@ Response: { "version": 7, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } @@ -602,14 +606,14 @@ Response: { "objects": { "nodes": [ { - "version": 3, + "version": 6, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x03b5491210b2265639d6a630269b4aad9f843e9a758f00fec2d053f9b3f671d5", - "value": "0" + "id": "0x78f73f033bbf6fe3154d191698b44a8d574f18c87765489c6fe6336a07ade478", + "value": "3" } } }, @@ -617,35 +621,35 @@ Response: { "version": 5, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x33a4b4d4c88186a63036280f21ebb4d969c6d65b7831cc6f2efdfe179a43fa4a", + "id": "0x7a2e93dcbe6a24b9129772a38bdfbf4f92e34ed32bac3a67d24d7826940c490b", "value": "2" } } }, { - "version": 6, + "version": 4, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0x50969dcd55318e27509c59bf373acb660f0b961a227f52d449c1b3443392fe4e", - "value": "3" + "id": "0x90a7d6dc83c8a6a5c755de2dff7f23eb1476dabcdf62c178af306e11c8e31eec", + "value": "1" } } }, { - "version": 4, + "version": 3, "contents": { "type": { - "repr": "0xa36a9a249d8122932687d98cd88c207daeb511e3ce7986d4ca56bf1ff9f84af0::M1::Object" + "repr": "0xbcdfcf3eb356188b9d56bd906654682be4e2701812b8b85d295fb2cf0c8eb540::M1::Object" }, "json": { - "id": "0xea32d72ff4d9a913b958bfa800d13222c423a2929b7a47cffe3a869d67ae5a96", - "value": "1" + "id": "0xe7cdb4bd9233f7915645ae5d90815f8c80731ecc24f3c304864a55ddd6d9ec32", + "value": "0" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp index 64f2d52a2ac..e6a1ae72d8a 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/objects_pagination_single.exp @@ -35,27 +35,27 @@ task 6, lines 38-66: Response: { "data": { "after_obj_3_0": { + "objects": { + "nodes": [] + } + }, + "before_obj_3_0": { "objects": { "nodes": [ { "version": 4, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", "value": "100" } } } ] } - }, - "before_obj_3_0": { - "objects": { - "nodes": [] - } } } } @@ -74,27 +74,27 @@ task 9, lines 72-101: Response: { "data": { "after_obj_3_0_chkpt_1": { + "objects": { + "nodes": [] + } + }, + "before_obj_3_0_chkpt_1": { "objects": { "nodes": [ { "version": 4, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", "value": "100" } } } ] } - }, - "before_obj_3_0_chkpt_1": { - "objects": { - "nodes": [] - } } } } @@ -107,26 +107,26 @@ Response: { "objects": { "nodes": [ { - "version": 4, + "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0x62667ab9dcc05a8e142344d516f796fe0f7cad2b50c8bdb4944a4eee03d0eda2", - "value": "1" + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", + "value": "200" } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", - "value": "200" + "id": "0x9ec42e10c73fb04284e39acf692469336f5f7b4c9dfa0cee79e12776aa3b9564", + "value": "1" } } } @@ -134,16 +134,21 @@ Response: { } }, "after_obj_3_0_chkpt_2": { + "consistent_with_above": { + "nodes": [] + } + }, + "before_obj_3_0_chkpt_2": { "consistent_with_above": { "nodes": [ { "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", "value": "200" } }, @@ -152,26 +157,26 @@ Response: { "objects": { "nodes": [ { - "version": 4, + "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0x62667ab9dcc05a8e142344d516f796fe0f7cad2b50c8bdb4944a4eee03d0eda2", - "value": "1" + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", + "value": "200" } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", - "value": "200" + "id": "0x9ec42e10c73fb04284e39acf692469336f5f7b4c9dfa0cee79e12776aa3b9564", + "value": "1" } } } @@ -182,11 +187,6 @@ Response: { } ] } - }, - "before_obj_3_0_chkpt_2": { - "consistent_with_above": { - "nodes": [] - } } } } @@ -205,16 +205,21 @@ task 13, lines 184-247: Response: { "data": { "after_obj_3_0_chkpt_2": { + "objects": { + "nodes": [] + } + }, + "before_obj_3_0_chkpt_2": { "objects": { "nodes": [ { "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", "value": "200" } }, @@ -223,26 +228,26 @@ Response: { "objects": { "nodes": [ { - "version": 4, + "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0x62667ab9dcc05a8e142344d516f796fe0f7cad2b50c8bdb4944a4eee03d0eda2", - "value": "1" + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", + "value": "200" } } }, { - "version": 5, + "version": 4, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", - "value": "200" + "id": "0x9ec42e10c73fb04284e39acf692469336f5f7b4c9dfa0cee79e12776aa3b9564", + "value": "1" } } } @@ -253,11 +258,6 @@ Response: { } ] } - }, - "before_obj_3_0_chkpt_2": { - "objects": { - "nodes": [] - } } } } @@ -270,26 +270,26 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0x62667ab9dcc05a8e142344d516f796fe0f7cad2b50c8bdb4944a4eee03d0eda2", - "value": "300" + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", + "value": "200" } } }, { - "version": 5, + "version": 6, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", - "value": "200" + "id": "0x9ec42e10c73fb04284e39acf692469336f5f7b4c9dfa0cee79e12776aa3b9564", + "value": "300" } } } @@ -297,16 +297,21 @@ Response: { } }, "after_obj_3_0_chkpt_3": { + "consistent_with_above": { + "nodes": [] + } + }, + "before_obj_3_0_chkpt_3": { "consistent_with_above": { "nodes": [ { "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", "value": "200" } }, @@ -315,26 +320,26 @@ Response: { "objects": { "nodes": [ { - "version": 6, + "version": 5, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0x62667ab9dcc05a8e142344d516f796fe0f7cad2b50c8bdb4944a4eee03d0eda2", - "value": "300" + "id": "0x3b3871be586c1577dc2762b64c5d96dd133d646d1451ee4422879772df9fd47c", + "value": "200" } } }, { - "version": 5, + "version": 6, "contents": { "type": { - "repr": "0xfd187d68c2af018bc15874c1eccdafcf4993cfb6d0f576edecf2e76b23351a04::M1::Object" + "repr": "0x63a48560be4455576c42db1f2087091d1f49d97370eb5840211d6d96922a38e6::M1::Object" }, "json": { - "id": "0xab1b31396d4daf2e033795f600d307744617e58153b65eeb66c0066d9631088d", - "value": "200" + "id": "0x9ec42e10c73fb04284e39acf692469336f5f7b4c9dfa0cee79e12776aa3b9564", + "value": "300" } } } @@ -345,11 +350,6 @@ Response: { } ] } - }, - "before_obj_3_0_chkpt_3": { - "consistent_with_above": { - "nodes": [] - } } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp b/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp index 7f4171d7f4e..5f6eb5b936c 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/performance/many_objects.exp @@ -35,11 +35,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -54,11 +54,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -76,11 +76,11 @@ Response: { }, "contents": { "json": { - "id": "0xfb7c7cef2cb5913912cd2e6a285b0c6d42e54dc6d78a5f10253b83deb36efd03", - "value": "193" + "id": "0xfea2e64d50da304df3f0bdd198bdd55950ba2ad8428ba36a71c50499e81196e6", + "value": "84" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } }, @@ -92,11 +92,11 @@ Response: { }, "contents": { "json": { - "id": "0xfebe8d22fb68647c1aa5244ed4e11750a255615ffff505868a8ba08ed7af8d51", - "value": "290" + "id": "0xfecc8c412ef16dfd8c66a8d4d06b43b4cf64029e319a726b7e0dff3e1d75a85a", + "value": "425" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } }, @@ -108,11 +108,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } }, @@ -124,11 +124,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -163,7 +163,7 @@ Contents: Test::M1::Object { bytes: fake(2,498), }, }, - value: 375u64, + value: 79u64, } task 9, line 93: @@ -176,7 +176,7 @@ Contents: Test::M1::Object { bytes: fake(2,497), }, }, - value: 290u64, + value: 425u64, } task 10, line 95: @@ -199,11 +199,11 @@ Response: { }, "contents": { "json": { - "id": "0xfebe8d22fb68647c1aa5244ed4e11750a255615ffff505868a8ba08ed7af8d51", - "value": "290" + "id": "0xfecc8c412ef16dfd8c66a8d4d06b43b4cf64029e319a726b7e0dff3e1d75a85a", + "value": "425" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -218,11 +218,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -237,11 +237,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -260,11 +260,11 @@ Response: { }, "contents": { "json": { - "id": "0xfb7c7cef2cb5913912cd2e6a285b0c6d42e54dc6d78a5f10253b83deb36efd03", - "value": "193" + "id": "0xfea2e64d50da304df3f0bdd198bdd55950ba2ad8428ba36a71c50499e81196e6", + "value": "84" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -287,11 +287,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -305,11 +305,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -325,11 +325,11 @@ Response: { }, "contents": { "json": { - "id": "0xfebe8d22fb68647c1aa5244ed4e11750a255615ffff505868a8ba08ed7af8d51", - "value": "290" + "id": "0xfecc8c412ef16dfd8c66a8d4d06b43b4cf64029e319a726b7e0dff3e1d75a85a", + "value": "425" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -343,11 +343,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -361,11 +361,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -383,11 +383,11 @@ Response: { }, "contents": { "json": { - "id": "0xfebe8d22fb68647c1aa5244ed4e11750a255615ffff505868a8ba08ed7af8d51", - "value": "290" + "id": "0xfecc8c412ef16dfd8c66a8d4d06b43b4cf64029e319a726b7e0dff3e1d75a85a", + "value": "425" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -401,11 +401,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -419,11 +419,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } @@ -442,7 +442,7 @@ Response: { }, "contents": { "json": { - "id": "0xbbaf7071fac8234841e340556e61315e7a2cfeab104b247c00ece6c4b61f91cc", + "id": "0x8c83e12848c9a7e043ba418598935d03fb0b57c9400df73504561b03ef0f57aa", "balance": { "value": "300000000000000" } @@ -461,11 +461,11 @@ Response: { }, "contents": { "json": { - "id": "0xfebe8d22fb68647c1aa5244ed4e11750a255615ffff505868a8ba08ed7af8d51", - "value": "290" + "id": "0xfecc8c412ef16dfd8c66a8d4d06b43b4cf64029e319a726b7e0dff3e1d75a85a", + "value": "425" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } }, @@ -478,11 +478,11 @@ Response: { }, "contents": { "json": { - "id": "0xff751c87f3b883a7ff93abee60ca050a29ec6ea09fd66061ff4829c8a7c69ee5", - "value": "375" + "id": "0xfee25a3c0ad2918c5715216ccc1064d51e8e119253a858d9c505e49829ce12f2", + "value": "79" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } }, @@ -495,11 +495,11 @@ Response: { }, "contents": { "json": { - "id": "0xffaf991778fc4d4562b90d83f97e681ea71d347ccd77169202b4a6867c23a34e", - "value": "122" + "id": "0xffbee3b5a935e9df0fd3672f21cba8af4090e405d09a153e4c7d303b9a601c83", + "value": "82" }, "type": { - "repr": "0x4a1014e018c9d665e8c955f55c48bd29d03eef8b8e2d1e843322d47466222d26::M1::Object" + "repr": "0x89a32608e93b711b15c16024864bc4c9cd544304a074178501304621fce34eeb::M1::Object" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp b/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp index 5df7931c6c7..8d81fcbcba7 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/staked_iota.exp @@ -25,7 +25,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 3, line 25: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(2,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 15, 164, 84, 142, 11, 207, 217, 113, 243, 177, 152, 98, 76, 51, 77, 95, 109, 180, 159, 85, 128, 9, 168, 91, 120, 227, 240, 142, 33, 89, 9, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [49, 170, 24, 91, 48, 51, 59, 190, 186, 64, 208, 42, 198, 226, 201, 28, 175, 76, 24, 236, 175, 216, 35, 217, 155, 5, 253, 225, 16, 3, 242, 32, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(3,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(2,0) @@ -49,7 +49,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 7, line 35: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(6,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 15, 164, 84, 142, 11, 207, 217, 113, 243, 177, 152, 98, 76, 51, 77, 95, 109, 180, 159, 85, 128, 9, 168, 91, 120, 227, 240, 142, 33, 89, 9, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [49, 170, 24, 91, 48, 51, 59, 190, 186, 64, 208, 42, 198, 226, 201, 28, 175, 76, 24, 236, 175, 216, 35, 217, 155, 5, 253, 225, 16, 3, 242, 32, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(7,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(6,0) @@ -109,13 +109,13 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "IB4nCdY4SKIGpX9OX6BoEseOb5Di70Ir4QOHIZ6Hlv2bBAAAAAAAAAA=", + "cursor": "IAQrAZOt5Tzb2RJIfSxa7ZKgeo4PBwtgbBIDXKYNuoPLBAAAAAAAAAA=", "node": { "principal": "10000000000" } }, { - "cursor": "IPZBsCp9CdP9iBWQhFfN6A2fcDP34decXACxmwerwQnGBAAAAAAAAAA=", + "cursor": "IJrDd+d17c/WP+y988FjFenwhf7ri3M2an2ad/goKgRVBAAAAAAAAAA=", "node": { "principal": "10000000000" } @@ -161,7 +161,7 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "IPZBsCp9CdP9iBWQhFfN6A2fcDP34decXACxmwerwQnGAwAAAAAAAAA=", + "cursor": "IJrDd+d17c/WP+y988FjFenwhf7ri3M2an2ad/goKgRVAwAAAAAAAAA=", "node": { "principal": "10000000000" } @@ -183,7 +183,7 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "IB4nCdY4SKIGpX9OX6BoEseOb5Di70Ir4QOHIZ6Hlv2bAwAAAAAAAAA=", + "cursor": "IAQrAZOt5Tzb2RJIfSxa7ZKgeo4PBwtgbBIDXKYNuoPLAwAAAAAAAAA=", "node": { "principal": "10000000000" } diff --git a/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp b/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp index 98dd88779da..3b300cca1d2 100644 --- a/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp +++ b/crates/iota-graphql-e2e-tests/tests/consistency/tx_address_objects.exp @@ -61,66 +61,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -136,66 +136,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -209,66 +209,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -284,7 +284,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", "balance": { "value": "299999993067600" } @@ -306,66 +306,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -390,66 +390,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -463,66 +463,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -538,7 +538,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", "balance": { "value": "300000000000000" } @@ -557,66 +557,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -630,66 +630,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -705,7 +705,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", "balance": { "value": "299999996697200" } @@ -724,66 +724,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -797,66 +797,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -872,7 +872,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", "balance": { "value": "299999993067600" } @@ -907,66 +907,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -982,66 +982,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1055,66 +1055,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1130,7 +1130,7 @@ Response: { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x7dca443c043de9e8bb7b92c96e14c45027cf838913fce2da3c81cbfd4a9ac8ff", + "id": "0x82bb50eab6528496249b1ee91f009840af9690b2e58d6c67308351244eb8283c", "balance": { "value": "299999993067600" } @@ -1152,66 +1152,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1240,66 +1240,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1313,66 +1313,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1388,66 +1388,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1461,66 +1461,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1536,66 +1536,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } @@ -1609,66 +1609,66 @@ Response: { { "contents": { "json": { - "id": "0x30b0a4aa83133af52effa30cdabb3a9cc5a41e47b42267e49cd0d6c00b68d6dd", - "value": "4" + "id": "0x0dfd7a9cdee94766d4c1b19270f7dbd7047e333c3cfd44df8f1e2661a2ac5732", + "value": "2" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x42fbbc99914a3ff0d1bf9dbbf177376217aa8b0dfefa64b24132302e9962d919", - "value": "5" + "id": "0x192e471166c47da606780a22e86f8a7e2c70e68d041960e09bcaa2c0c1b678b8", + "value": "3" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0x92a4abb2533035be88b3f9f8ec48d40ef77ac1fc2e420c721b27f99ff962780b", - "value": "3" + "id": "0x5cf582fc547b526e90fa12b6b4ee03a31f4998e47555971daa39fb90b635acab", + "value": "6" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xb7d71a7e67b79e908b9f8fd1114e05d6e4123b33e7b28cce6505d85b2cd69322", - "value": "200" + "id": "0x8a62e0e4fbced5ff4f9a1ad3644f1af80a2f844b6ef0c2b640f403d5fa3f5f96", + "value": "5" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xddb6e5dd089ae403459f5396fcb6c8a308165924900b092be848943f74798b1a", - "value": "2" + "id": "0xa028335888c10360e8bd8851992994e834926d82ae1b0b97fcbe79fae04317f0", + "value": "200" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } }, { "contents": { "json": { - "id": "0xe82941ec7e1c9bdec6d109c6b980f1c88fb8d97fbebef07c4ab425c109c8051a", - "value": "6" + "id": "0xa3f7a32c0d6c8249a8022873aac692ed3fb9b21b24f670f384727d8462e6f29b", + "value": "4" }, "type": { - "repr": "0xadaa13f57cf90e2a06a93cec28558e9b32a3eaf38f869c901bfb6e4a056335d2::M1::Object" + "repr": "0x52bdbdebdd919e4a48b0a4d5debed87d2ef865900f1e7633960e97744d276e77::M1::Object" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp b/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp index 5f739a19f9c..bce1c37583a 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/chain_identifier.exp @@ -11,6 +11,6 @@ task 2, lines 10-13: //# run-graphql Response: { "data": { - "chainIdentifier": "325a2bc6" + "chainIdentifier": "a505a911" } } diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp b/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp index bdaf4103ec1..f9a2b40f756 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/epoch.exp @@ -21,7 +21,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, lines 17-19: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 15, 164, 84, 142, 11, 207, 217, 113, 243, 177, 152, 98, 76, 51, 77, 95, 109, 180, 159, 85, 128, 9, 168, 91, 120, 227, 240, 142, 33, 89, 9, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [49, 170, 24, 91, 48, 51, 59, 190, 186, 64, 208, 42, 198, 226, 201, 28, 175, 76, 24, 236, 175, 216, 35, 217, 155, 5, 253, 225, 16, 3, 242, 32, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) @@ -67,7 +67,7 @@ Response: { ] }, "validatorCandidatesSize": 0, - "inactivePoolsId": "0x25f932331484290d3a7a9d1969b2a8179ab1856a3f2537c08a8f00065b0fff42" + "inactivePoolsId": "0x4fa514f402221f721a2b8ae3b09a5fedfd8b1574ef77f18579e9f78d914dc132" }, "totalGasFees": "1000000", "totalStakeRewards": "767000000000000", @@ -81,7 +81,7 @@ Response: { "kind": { "__typename": "ProgrammableTransactionBlock" }, - "digest": "HG2EFvhhYApKyYKztCN2gz7VYne4SzpZUJhkHYJrqDrM" + "digest": "6HbK4VgBo4CXAsHZ3VKMJEa71LbHSqwQXMpWQanwdpBA" }, { "kind": { diff --git a/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp b/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp index 12625db6f11..738fd6061e4 100644 --- a/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp +++ b/crates/iota-graphql-e2e-tests/tests/epoch/system_state.exp @@ -21,7 +21,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, line 19: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [33, 207, 79, 188, 228, 111, 5, 28, 153, 171, 107, 187, 220, 163, 119, 157, 232, 0, 111, 197, 115, 2, 188, 216, 234, 10, 144, 127, 229, 209, 251, 1, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [210, 122, 151, 179, 143, 27, 83, 95, 180, 90, 2, 236, 215, 205, 52, 58, 137, 83, 186, 2, 9, 157, 59, 1, 11, 98, 143, 198, 7, 56, 210, 82, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) @@ -61,7 +61,7 @@ Epoch advanced: 3 task 12, line 37: //# run 0x3::iota_system::request_withdraw_stake --args object(0x5) object(4,0) --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("UnstakingRequestEvent"), type_params: [] }, contents: [33, 207, 79, 188, 228, 111, 5, 28, 153, 171, 107, 187, 220, 163, 119, 157, 232, 0, 111, 197, 115, 2, 188, 216, 234, 10, 144, 127, 229, 209, 251, 1, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0, 12, 33, 189, 38, 1, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("UnstakingRequestEvent"), type_params: [] }, contents: [210, 122, 151, 179, 143, 27, 83, 95, 180, 90, 2, 236, 215, 205, 52, 58, 137, 83, 186, 2, 9, 157, 59, 1, 11, 98, 143, 198, 7, 56, 210, 82, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0, 12, 33, 189, 38, 1, 0, 0, 0] } created: object(12,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(4,0) diff --git a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp index a3bae6617ee..5b7bad40bc2 100644 --- a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp +++ b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors.exp @@ -77,67 +77,67 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU8' (line 30), abort 'ImAU8': 0" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU8' (line 30), abort 'ImAU8': 0" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU16' (line 33), abort 'ImAU16': 1" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU16' (line 33), abort 'ImAU16': 1" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU32' (line 36), abort 'ImAU32': 2" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU32' (line 36), abort 'ImAU32': 2" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU64' (line 39), abort 'ImAU64': 3" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU64' (line 39), abort 'ImAU64': 3" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU128' (line 42), abort 'ImAU128': 4" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU128' (line 42), abort 'ImAU128': 4" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU256' (line 45), abort 'ImAU256': 5" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU256' (line 45), abort 'ImAU256': 5" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callAddress' (line 48), abort 'ImAnAddress': 0x0000000000000000000000000000000000000000000000000000000000000006" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callAddress' (line 48), abort 'ImAnAddress': 0x0000000000000000000000000000000000000000000000000000000000000006" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callString' (line 51), abort 'ImAString': This is a string" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callString' (line 51), abort 'ImAString': This is a string" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::callU64vec' (line 54), abort 'ImNotAString': BQEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAA=" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::callU64vec' (line 54), abort 'ImNotAString': BQEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAA=" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::normalAbort' (instruction 1), abort code: 0" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::normalAbort' (instruction 1), abort code: 0" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0x1ef0f7ff2c4fa585c756a7a9034a2dd9e3bf4839395db8477162ab237a661e4f::m::assertLineNo' (line 60)" + "errors": "Error in 1st command, from '0x94c6029c2434df14ff8c96780213d2c3ca23bb41b41d917d6b2f2ebb5948bba2::m::assertLineNo' (line 60)" } } ] @@ -248,7 +248,7 @@ Response: { }, "errors": [ { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -264,7 +264,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -280,7 +280,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -296,7 +296,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -312,7 +312,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -328,7 +328,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -344,7 +344,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -360,7 +360,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, @@ -376,7 +376,7 @@ Response: { ] }, { - "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: e7db10091d30195c56df7cde67743f13e39da96ea5dae2c1c8b1ebf5ec3e10a7", + "message": "Internal error occurred while processing request: Error resolving Move location: Linkage not found for package: 0f50ae8dea49abaf86777040792217d6569d4a9a478efe805648bbf001b32736", "locations": [ { "line": 6, diff --git a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp index 8a2f319a681..59061ed71c7 100644 --- a/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp +++ b/crates/iota-graphql-e2e-tests/tests/errors/clever_errors_in_macros.exp @@ -37,19 +37,19 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0xeb106ad70b9acf80d3e9f6c5f743121eb49d466dd80d22b55dffbde7efdd78cb::m::t_a' (line 21)" + "errors": "Error in 1st command, from '0x241fae3e4d798a2f17994debb2b0ad6fd6cd51b346c9d8ac0e03e2ccebca5572::m::t_a' (line 21)" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0xeb106ad70b9acf80d3e9f6c5f743121eb49d466dd80d22b55dffbde7efdd78cb::m::t_calls_a' (line 24)" + "errors": "Error in 1st command, from '0x241fae3e4d798a2f17994debb2b0ad6fd6cd51b346c9d8ac0e03e2ccebca5572::m::t_calls_a' (line 24)" } }, { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0xeb106ad70b9acf80d3e9f6c5f743121eb49d466dd80d22b55dffbde7efdd78cb::m::t_const_assert' (line 10), abort 'EMsg': This is a string" + "errors": "Error in 1st command, from '0x241fae3e4d798a2f17994debb2b0ad6fd6cd51b346c9d8ac0e03e2ccebca5572::m::t_const_assert' (line 10), abort 'EMsg': This is a string" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp index 9d9836f26c1..f632fa8a6b0 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/event_connection.exp @@ -62,7 +62,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -80,7 +80,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -98,7 +98,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -116,7 +116,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -145,7 +145,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -163,7 +163,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -181,7 +181,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -199,7 +199,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M2::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M2::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -228,7 +228,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -246,7 +246,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -275,7 +275,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventA" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -304,7 +304,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::EventB<0x957dbe7d15a79a6a5ef4843175ada985d4dafb52898cab9f148140a12b7e3611::M1::Object>" + "repr": "0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::EventB<0x18734bafba8425fa0cfcef1d81c2404447b7aba9377894991fdb48ec8178579f::M1::Object>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp index 0860ad4e755..3e0f0d1ba06 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/nested_emit_event.exp @@ -30,7 +30,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0xe669e19726574786da1e6d1f4dccdd53ed82531033eedd54fdbf7b18413eb4e5::M1::EventA" + "repr": "0xca1ff4dd1b62e221255883bca417b321a5c1ace22988b9fc30533b45bead8d7a::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -56,7 +56,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0xe669e19726574786da1e6d1f4dccdd53ed82531033eedd54fdbf7b18413eb4e5::M1::EventA" + "repr": "0xca1ff4dd1b62e221255883bca417b321a5c1ace22988b9fc30533b45bead8d7a::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -102,7 +102,7 @@ Response: { "name": "M3" }, "type": { - "repr": "0xe669e19726574786da1e6d1f4dccdd53ed82531033eedd54fdbf7b18413eb4e5::M1::EventA" + "repr": "0xca1ff4dd1b62e221255883bca417b321a5c1ace22988b9fc30533b45bead8d7a::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp index 4883dc9faea..ec8183e645c 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/no_filter.exp @@ -33,12 +33,12 @@ Response: { "nodes": [ { "json": { - "id": "0x5d8d5aba4c9f2a7f2b1aec08255c1218349dd40d72385152f22419a5550dde6d" + "id": "0xb6e011ba43a8f27aee78bbc435c234b3fce376c8d60344943a44559ade21177f" } }, { "json": { - "id": "0x5d8d5aba4c9f2a7f2b1aec08255c1218349dd40d72385152f22419a5550dde6d", + "id": "0xb6e011ba43a8f27aee78bbc435c234b3fce376c8d60344943a44559ade21177f", "version": 1, "fields": { "contents": [ diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp index f988c8ec9a1..2bbbd7814fd 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/pagination.exp @@ -42,7 +42,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -60,7 +60,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -78,7 +78,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -111,7 +111,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -129,7 +129,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -162,7 +162,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -180,7 +180,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -213,7 +213,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -231,7 +231,7 @@ Response: { "name": "M1" }, "type": { - "repr": "0x498d8aac03f90011de5cbbf5712cde070a9d4b97db73ce939903b35a157581f4::M1::EventA" + "repr": "0x3c6f36ccaf3c22c331de4bc921054be9415a5ddaee8e84cdb3fe6c0ceba0be63::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp index adab78103cb..1c6bf222bbd 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/tx_digest.exp @@ -37,19 +37,19 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" }, { - "digest": "GS1LUR1UjD8peuQQh48Nwz8typs5zgKKc98nKMruXyWM" + "digest": "HUi3tvRsCvbSjuhnFvniVBSd9s74cnLkMmg7r39tUciy" }, { - "digest": "69jE7Qho2T86X2SV89rF1esL9kM62eiTnuKADDmtThHT" + "digest": "G3D18M1UjMxG2anS67U9iiKNzT8vEpohY85LNcvaQoZR" }, { - "digest": "5pbswh7EYi78wk6TQSWZ1v2vPrxnmHLbzGEK7UZ2wKJs" + "digest": "GzkLZu91TX1CQKpAPmUMVUBETfuK48NjhYt9ikD4bSwh" }, { - "digest": "sywyCLK4TcmA9BVQtTjoqUdBAErTELaMhDL5bt7ALcb" + "digest": "2Wn17H19KQAHB8f9XhdP16DVKdZhEt1e3o7nWK6fAVMS" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp index 3906f8ebf7c..1b3c812fe2b 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/type_filter.exp @@ -30,7 +30,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M1::EventA" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -72,7 +72,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M1::EventA" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -98,7 +98,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M2::EventB" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -124,7 +124,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M1::EventA" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -139,7 +139,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M2::EventB" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -165,7 +165,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M1::EventA" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M1::EventA" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -180,7 +180,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M2::EventB" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M2::EventB" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -195,7 +195,7 @@ Response: { "name": "M2" }, "type": { - "repr": "0x422e0763776294d86553fb26e6b1c8d97552f094b3806c6ddd81236de58d7e4a::M2::EventB" + "repr": "0xf431b4cab19dce38fdeb5af2f25aa5c7642cbf5a6736bcf4cd0cf6cedcd6e563::M2::EventB" }, "sender": { "address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" diff --git a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp index 4a907d85fff..f20d79dfa38 100644 --- a/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp +++ b/crates/iota-graphql-e2e-tests/tests/event_connection/type_param_filter.exp @@ -38,19 +38,19 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "BK3Kekkcdo6pkxFkib2gWaw7ozbTd1P9GFJf1Gdkk4Tw" + "digest": "4pDtmR9vkzE8azKseWj5VXQQiz7616KJAGftpBncdmnF" }, { - "digest": "2BkQ3DT8voU6VpD8Z14HUc8pBWg4Lp1BAxHgWHr3Wzw9" + "digest": "CN1bk5oGVbQh2cTepoMpk3vJ4Rss16Pciz7q69vtSfBK" }, { - "digest": "3NfqshRsCameiFzacuNTCeZuCPdXreAPnoYUZaHGBKcu" + "digest": "6sxce4EnoEKB5a8Kkb7j9Y2kdvM25cQ4AR7ZhhQaHoNf" }, { - "digest": "9rnY4B22nCrQvmhtcD1M3iqT8YHHiJgX4TzXMB2PLu71" + "digest": "7Jn3bBawv39UcLpSwNJy4d8sZjvXm6HDaUvAzAkzymfu" }, { - "digest": "Gz7VG7NigsGxm8Jzve4t1CC8ioTd3XKU5H2d2hBXBoGq" + "digest": "5cXJjik7eCRpzRAZhZFczJ8NLXVAHr2ZtKMAkKunCGWb" } ] } @@ -65,7 +65,7 @@ Response: { "nodes": [ { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T1>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -78,7 +78,7 @@ Response: { }, { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T2>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T2>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -91,7 +91,7 @@ Response: { }, { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T1>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -104,7 +104,7 @@ Response: { }, { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T2>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T2>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -128,7 +128,7 @@ Response: { "nodes": [ { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T1>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" @@ -141,7 +141,7 @@ Response: { }, { "type": { - "repr": "0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::EventA<0x1c319e03a07f747b7ca8954ec17dce780476652ab1d6729d684d4754b3a01874::M1::T1>" + "repr": "0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::EventA<0xa78e531f537de9ea340c341127d77b622c0b1744aef6f50fd6e85e3de3151894::M1::T1>" }, "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" diff --git a/crates/iota-graphql-e2e-tests/tests/limits/directives.exp b/crates/iota-graphql-e2e-tests/tests/limits/directives.exp index ae5f65e3f5d..a3d59975e32 100644 --- a/crates/iota-graphql-e2e-tests/tests/limits/directives.exp +++ b/crates/iota-graphql-e2e-tests/tests/limits/directives.exp @@ -73,7 +73,7 @@ task 5, lines 59-63: //# run-graphql Response: { "data": { - "chainIdentifier": "325a2bc6" + "chainIdentifier": "a505a911" } } @@ -81,7 +81,7 @@ task 6, lines 65-69: //# run-graphql Response: { "data": { - "chainIdentifier": "325a2bc6" + "chainIdentifier": "a505a911" } } diff --git a/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp b/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp index 840343a950c..0eeb20274e3 100644 --- a/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp +++ b/crates/iota-graphql-e2e-tests/tests/limits/output_node_estimation.exp @@ -30,7 +30,7 @@ Response: { "edges": [ { "node": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -59,7 +59,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -91,7 +91,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -100,7 +100,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -132,7 +132,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -164,7 +164,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -190,7 +190,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } } ] @@ -216,7 +216,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV", + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj", "first": null, "last": null } @@ -243,7 +243,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV", + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj", "first": null, "last": null } @@ -270,7 +270,7 @@ Response: { "edges": [ { "txns": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV", + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj", "a": null, "b": null } @@ -324,7 +324,7 @@ Response: { "edges": [ { "node": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV", + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj", "a": null } } @@ -350,14 +350,14 @@ Response: { "fragmentSpread": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } ] }, "inlineFragment": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/coin.exp b/crates/iota-graphql-e2e-tests/tests/objects/coin.exp index f2b3fa94e47..a859d76ec9e 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/coin.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/coin.exp @@ -21,9 +21,9 @@ Response: { "iotaCoins": { "edges": [ { - "cursor": "IFWIszDYouqyV5FHmkjHL8VomWv4zfT9PeNSxpAcCjH7AQAAAAAAAAA=", + "cursor": "IFDCMJdJdLjT6Le+OZddM2C8ehm/ZJHKVlw51Hw+PN9LAQAAAAAAAAA=", "node": { - "coinBalance": "299999983336400", + "coinBalance": "30000000000000000", "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" @@ -32,9 +32,9 @@ Response: { } }, { - "cursor": "IKAh5Dwcyc/kwt5ZIi7j9i0+5VOEhni5CiLnWNgvOlisAQAAAAAAAAA=", + "cursor": "IHDpnPLb0qHgSGOGbvrnR/7p74bRRkkFAnpR7Lg2PFTQAQAAAAAAAAA=", "node": { - "coinBalance": "30000000000000000", + "coinBalance": "300000000000000", "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" @@ -43,9 +43,9 @@ Response: { } }, { - "cursor": "ILvZCg1Mz3zj3t29+KJ3JJdhvtfE79wdbj6VlrZgQ21OAQAAAAAAAAA=", + "cursor": "IL9P0IAc2pvdRxMxausgZ/QNypMBcUq568HF9Kd+G6qVAQAAAAAAAAA=", "node": { - "coinBalance": "300000000000000", + "coinBalance": "299999983336400", "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" @@ -58,34 +58,34 @@ Response: { "fakeCoins": { "edges": [ { - "cursor": "IMylKIZ2RJ3yz2r1X/fRLN00OhpfEv4x/ZFhIG+/fMpQAQAAAAAAAAA=", + "cursor": "IFA4jBAHNkqHQtofzy4hIHphXB4tCAbEldUb4NRilcOGAQAAAAAAAAA=", "node": { - "coinBalance": "2", + "coinBalance": "1", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0xfc060d55fe18ece1944ee4395008a9c09d893dbb30880052acf23d3d1ffb56b5::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1e33d29ef2dc3b026aa7266a3d2011e4aa201e84b5fb3f1367082b37f54da374::fake::FAKE>" } } } }, { - "cursor": "IN/u1Oaq78H+r+vyT7pKHqY/K3Zp47bishEsQXymiGE5AQAAAAAAAAA=", + "cursor": "IGJIfsW7fZrYpkDNTP3pln7VBXM75eeK0ZA4ejDGv91yAQAAAAAAAAA=", "node": { - "coinBalance": "1", + "coinBalance": "2", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0xfc060d55fe18ece1944ee4395008a9c09d893dbb30880052acf23d3d1ffb56b5::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1e33d29ef2dc3b026aa7266a3d2011e4aa201e84b5fb3f1367082b37f54da374::fake::FAKE>" } } } }, { - "cursor": "IPRYQvyvi5GnfnmpWB0yjvjM9PWhmsPGIMIBKJKhr1XgAQAAAAAAAAA=", + "cursor": "II2PjSigywJzW7GoyZlAjsss5ivN5WyqNwcZOQL3v4UlAQAAAAAAAAA=", "node": { "coinBalance": "3", "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0xfc060d55fe18ece1944ee4395008a9c09d893dbb30880052acf23d3d1ffb56b5::fake::FAKE>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x1e33d29ef2dc3b026aa7266a3d2011e4aa201e84b5fb3f1367082b37f54da374::fake::FAKE>" } } } @@ -96,7 +96,7 @@ Response: { "coins": { "edges": [ { - "cursor": "IFWIszDYouqyV5FHmkjHL8VomWv4zfT9PeNSxpAcCjH7AQAAAAAAAAA=", + "cursor": "IL9P0IAc2pvdRxMxausgZ/QNypMBcUq568HF9Kd+G6qVAQAAAAAAAAA=", "node": { "coinBalance": "299999983336400", "contents": { @@ -121,10 +121,10 @@ Response: { } }, { - "cursor": "eyJ0IjoiMHhmYzA2MGQ1NWZlMThlY2UxOTQ0ZWU0Mzk1MDA4YTljMDlkODkzZGJiMzA4ODAwNTJhY2YyM2QzZDFmZmI1NmI1OjpmYWtlOjpGQUtFIiwiYyI6MX0", + "cursor": "eyJ0IjoiMHgxZTMzZDI5ZWYyZGMzYjAyNmFhNzI2NmEzZDIwMTFlNGFhMjAxZTg0YjVmYjNmMTM2NzA4MmIzN2Y1NGRhMzc0OjpmYWtlOjpGQUtFIiwiYyI6MX0", "node": { "coinType": { - "repr": "0xfc060d55fe18ece1944ee4395008a9c09d893dbb30880052acf23d3d1ffb56b5::fake::FAKE" + "repr": "0x1e33d29ef2dc3b026aa7266a3d2011e4aa201e84b5fb3f1367082b37f54da374::fake::FAKE" }, "coinObjectCount": 3, "totalBalance": "6" @@ -142,7 +142,7 @@ Response: { "lastBalance": { "edges": [ { - "cursor": "eyJ0IjoiMHhmYzA2MGQ1NWZlMThlY2UxOTQ0ZWU0Mzk1MDA4YTljMDlkODkzZGJiMzA4ODAwNTJhY2YyM2QzZDFmZmI1NmI1OjpmYWtlOjpGQUtFIiwiYyI6MX0" + "cursor": "eyJ0IjoiMHgxZTMzZDI5ZWYyZGMzYjAyNmFhNzI2NmEzZDIwMTFlNGFhMjAxZTg0YjVmYjNmMTM2NzA4MmIzN2Y1NGRhMzc0OjpmYWtlOjpGQUtFIiwiYyI6MX0" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/data.exp b/crates/iota-graphql-e2e-tests/tests/objects/data.exp index 033c0567460..503cca381fa 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/data.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/data.exp @@ -36,7 +36,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x978be5e7629f7d75c29b5b62ad5f84689df6bd5732710db5f5536675bcaa5d18::m::Foo" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "data": { "Struct": [ @@ -44,38 +44,111 @@ Response: { "name": "id", "value": { "UID": [ - 97, - 93, - 215, - 24, - 228, - 168, - 1, - 172, - 56, - 40, - 236, + 112, + 233, + 156, + 242, + 219, + 210, + 161, + 224, + 72, + 99, + 134, + 110, + 250, + 231, + 71, + 254, + 233, + 239, + 134, + 209, + 70, + 73, + 5, + 2, + 122, + 81, 236, - 19, - 138, - 18, + 184, + 54, + 60, + 84, + 208 + ] + } + }, + { + "name": "balance", + "value": { + "Struct": [ + { + "name": "value", + "value": { + "Number": "299999988454400" + } + } + ] + } + } + ] + }, + "json": { + "id": "0x70e99cf2dbd2a1e04863866efae747fee9ef86d1464905027a51ecb8363c54d0", + "balance": { + "value": "299999988454400" + } + } + } + } + } + }, + { + "outputState": { + "asMoveObject": { + "contents": { + "type": { + "repr": "0x498711649918127f97a23a33f69bb23d636c094bf0a2dfb0b7928e70768f46ca::m::Foo" + }, + "data": { + "Struct": [ + { + "name": "id", + "value": { + "UID": [ + 184, 164, - 226, - 88, - 41, - 39, - 189, - 180, - 87, - 193, - 70, - 75, + 255, 211, - 210, - 3, - 175, - 61, - 213 + 205, + 0, + 70, + 88, + 65, + 141, + 214, + 253, + 1, + 103, + 29, + 67, + 20, + 52, + 1, + 37, + 200, + 49, + 85, + 45, + 76, + 59, + 195, + 241, + 172, + 24, + 62, + 220 ] } }, @@ -83,38 +156,38 @@ Response: { "name": "f0", "value": { "ID": [ - 97, - 93, - 215, - 24, - 228, - 168, - 1, - 172, - 56, - 40, - 236, - 236, - 19, - 138, - 18, + 184, 164, - 226, - 88, - 41, - 39, - 189, - 180, - 87, - 193, - 70, - 75, + 255, 211, - 210, - 3, - 175, - 61, - 213 + 205, + 0, + 70, + 88, + 65, + 141, + 214, + 253, + 1, + 103, + 29, + 67, + 20, + 52, + 1, + 37, + 200, + 49, + 85, + 45, + 76, + 59, + 195, + 241, + 172, + 24, + 62, + 220 ] } }, @@ -154,38 +227,38 @@ Response: { "Vector": [ { "Address": [ - 97, - 93, - 215, - 24, - 228, - 168, - 1, - 172, - 56, - 40, - 236, - 236, - 19, - 138, - 18, + 184, 164, - 226, - 88, - 41, - 39, - 189, - 180, - 87, - 193, - 70, - 75, + 255, 211, - 210, - 3, - 175, - 61, - 213 + 205, + 0, + 70, + 88, + 65, + 141, + 214, + 253, + 1, + 103, + 29, + 67, + 20, + 52, + 1, + 37, + 200, + 49, + 85, + 45, + 76, + 59, + 195, + 241, + 172, + 24, + 62, + 220 ] } ] @@ -202,94 +275,21 @@ Response: { ] }, "json": { - "id": "0x615dd718e4a801ac3828ecec138a12a4e2582927bdb457c1464bd3d203af3dd5", - "f0": "0x615dd718e4a801ac3828ecec138a12a4e2582927bdb457c1464bd3d203af3dd5", + "id": "0xb8a4ffd3cd004658418dd6fd01671d4314340125c831552d4c3bc3f1ac183edc", + "f0": "0xb8a4ffd3cd004658418dd6fd01671d4314340125c831552d4c3bc3f1ac183edc", "f1": true, "f2": 42, "f3": "43", "f4": "hello", "f5": "world", "f6": [ - "0x615dd718e4a801ac3828ecec138a12a4e2582927bdb457c1464bd3d203af3dd5" + "0xb8a4ffd3cd004658418dd6fd01671d4314340125c831552d4c3bc3f1ac183edc" ], "f7": 44 } } } } - }, - { - "outputState": { - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" - }, - "data": { - "Struct": [ - { - "name": "id", - "value": { - "UID": [ - 187, - 217, - 10, - 13, - 76, - 207, - 124, - 227, - 222, - 221, - 189, - 248, - 162, - 119, - 36, - 151, - 97, - 190, - 215, - 196, - 239, - 220, - 29, - 110, - 62, - 149, - 150, - 182, - 96, - 67, - 109, - 78 - ] - } - }, - { - "name": "balance", - "value": { - "Struct": [ - { - "name": "value", - "value": { - "Number": "299999988454400" - } - } - ] - } - } - ] - }, - "json": { - "id": "0xbbd90a0d4ccf7ce3deddbdf8a277249761bed7c4efdc1d6e3e9596b660436d4e", - "balance": { - "value": "299999988454400" - } - } - } - } - } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/display.exp b/crates/iota-graphql-e2e-tests/tests/objects/display.exp index 8a643e5e628..a9f50951805 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/display.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/display.exp @@ -5,7 +5,7 @@ A: object(0,0) task 1, lines 7-131: //# publish --sender A -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("DisplayCreated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [236, 49, 20, 90, 216, 179, 253, 28, 186, 3, 190, 176, 113, 62, 87, 240, 200, 160, 158, 204, 33, 110, 243, 45, 230, 44, 226, 250, 87, 246, 187, 236] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("DisplayCreated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [248, 137, 132, 239, 209, 171, 93, 58, 95, 75, 91, 157, 171, 12, 120, 197, 127, 173, 56, 170, 100, 196, 176, 190, 137, 70, 125, 38, 161, 168, 46, 158] } created: object(1,0), object(1,1), object(1,2) mutated: object(0,0) gas summary: computation_cost: 1000000, storage_cost: 21470000, storage_rebate: 0, non_refundable_storage_fee: 0 @@ -16,7 +16,7 @@ Checkpoint created: 1 task 3, line 135: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 1, content_digest: FhAfAxUsueMJ5c9W7TuVepGTE9SnFCrRcGAWfehU4hWU, +CheckpointSummary { epoch: 0, seq: 1, content_digest: 8bqohxWi718dVQ8LyyLiY918owiBWuRnHkudztaTgK5p, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 1000000, storage_cost: 21470000, storage_rebate: 0, non_refundable_storage_fee: 0 }} task 4, line 137: @@ -27,7 +27,7 @@ gas summary: computation_cost: 1000000, storage_cost: 3556800, storage_rebate: task 5, line 139: //# run Test::boars::update_display_faulty --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [236, 49, 20, 90, 216, 179, 253, 28, 186, 3, 190, 176, 113, 62, 87, 240, 200, 160, 158, 204, 33, 110, 243, 45, 230, 44, 226, 250, 87, 246, 187, 236, 1, 0, 3, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [248, 137, 132, 239, 209, 171, 93, 58, 95, 75, 91, 157, 171, 12, 120, 197, 127, 173, 56, 170, 100, 196, 176, 190, 137, 70, 125, 38, 161, 168, 46, 158, 1, 0, 3, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 2941200, storage_rebate: 2652400, non_refundable_storage_fee: 0 @@ -37,7 +37,7 @@ Checkpoint created: 2 task 7, line 143: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 2, content_digest: C5KjqUQRvmi5veZahh1neoafEn1z2fhgxaFy3BbzVJUK, +CheckpointSummary { epoch: 0, seq: 2, content_digest: 3hLJWozoaCNj2NgL516hNXfzxNr5HZ936iDUAb7HEToC, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 3000000, storage_cost: 27968000, storage_rebate: 3640400, non_refundable_storage_fee: 0 }} task 8, lines 145-158: @@ -74,7 +74,7 @@ Response: { task 9, line 160: //# run Test::boars::single_add --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [236, 49, 20, 90, 216, 179, 253, 28, 186, 3, 190, 176, 113, 62, 87, 240, 200, 160, 158, 204, 33, 110, 243, 45, 230, 44, 226, 250, 87, 246, 187, 236, 2, 0, 4, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [248, 137, 132, 239, 209, 171, 93, 58, 95, 75, 91, 157, 171, 12, 120, 197, 127, 173, 56, 170, 100, 196, 176, 190, 137, 70, 125, 38, 161, 168, 46, 158, 2, 0, 4, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 3032400, storage_rebate: 2941200, non_refundable_storage_fee: 0 @@ -84,7 +84,7 @@ Checkpoint created: 3 task 11, line 164: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 3, content_digest: 9Xz4yzhPS4BPCmWwP5TqdY8dCPQvJML3e6LXZMZvuzo2, +CheckpointSummary { epoch: 0, seq: 3, content_digest: GT5JWyT5cHsdfW3ohoPM6KnKDGePn4DQTV7r2WGbL6YJ, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 4000000, storage_cost: 31000400, storage_rebate: 6581600, non_refundable_storage_fee: 0 }} task 12, lines 166-179: @@ -126,7 +126,7 @@ Response: { task 13, line 181: //# run Test::boars::multi_add --sender A --args object(1,1) -events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [236, 49, 20, 90, 216, 179, 253, 28, 186, 3, 190, 176, 113, 62, 87, 240, 200, 160, 158, 204, 33, 110, 243, 45, 230, 44, 226, 250, 87, 246, 187, 236, 3, 0, 15, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125, 5, 98, 111, 111, 108, 115, 7, 123, 98, 111, 111, 108, 115, 125, 5, 98, 117, 121, 101, 114, 7, 123, 98, 117, 121, 101, 114, 125, 4, 110, 97, 109, 101, 6, 123, 110, 97, 109, 101, 125, 7, 99, 114, 101, 97, 116, 111, 114, 9, 123, 99, 114, 101, 97, 116, 111, 114, 125, 5, 112, 114, 105, 99, 101, 7, 123, 112, 114, 105, 99, 101, 125, 11, 112, 114, 111, 106, 101, 99, 116, 95, 117, 114, 108, 58, 85, 110, 105, 113, 117, 101, 32, 66, 111, 97, 114, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 66, 111, 97, 114, 115, 32, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 123, 110, 97, 109, 101, 125, 32, 97, 110, 100, 32, 123, 105, 100, 125, 8, 98, 97, 115, 101, 95, 117, 114, 108, 32, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 123, 105, 109, 103, 95, 117, 114, 108, 125, 11, 110, 111, 95, 116, 101, 109, 112, 108, 97, 116, 101, 23, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 3, 97, 103, 101, 21, 123, 109, 101, 116, 97, 100, 97, 116, 97, 46, 110, 101, 115, 116, 101, 100, 46, 97, 103, 101, 125, 8, 102, 117, 108, 108, 95, 117, 114, 108, 10, 123, 102, 117, 108, 108, 95, 117, 114, 108, 125, 13, 101, 115, 99, 97, 112, 101, 95, 115, 121, 110, 116, 97, 120, 8, 92, 123, 110, 97, 109, 101, 92, 125] } +events: Event { package_id: Test, transaction_module: Identifier("boars"), sender: A, type_: StructTag { address: iota, module: Identifier("display"), name: Identifier("VersionUpdated"), type_params: [Struct(StructTag { address: Test, module: Identifier("boars"), name: Identifier("Boar"), type_params: [] })] }, contents: [248, 137, 132, 239, 209, 171, 93, 58, 95, 75, 91, 157, 171, 12, 120, 197, 127, 173, 56, 170, 100, 196, 176, 190, 137, 70, 125, 38, 161, 168, 46, 158, 3, 0, 15, 7, 118, 101, 99, 116, 111, 114, 115, 5, 123, 118, 101, 99, 125, 3, 105, 100, 100, 5, 123, 105, 100, 100, 125, 5, 110, 97, 109, 101, 101, 7, 123, 110, 97, 109, 101, 101, 125, 4, 110, 117, 109, 115, 6, 123, 110, 117, 109, 115, 125, 5, 98, 111, 111, 108, 115, 7, 123, 98, 111, 111, 108, 115, 125, 5, 98, 117, 121, 101, 114, 7, 123, 98, 117, 121, 101, 114, 125, 4, 110, 97, 109, 101, 6, 123, 110, 97, 109, 101, 125, 7, 99, 114, 101, 97, 116, 111, 114, 9, 123, 99, 114, 101, 97, 116, 111, 114, 125, 5, 112, 114, 105, 99, 101, 7, 123, 112, 114, 105, 99, 101, 125, 11, 112, 114, 111, 106, 101, 99, 116, 95, 117, 114, 108, 58, 85, 110, 105, 113, 117, 101, 32, 66, 111, 97, 114, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 66, 111, 97, 114, 115, 32, 99, 111, 108, 108, 101, 99, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 123, 110, 97, 109, 101, 125, 32, 97, 110, 100, 32, 123, 105, 100, 125, 8, 98, 97, 115, 101, 95, 117, 114, 108, 32, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 123, 105, 109, 103, 95, 117, 114, 108, 125, 11, 110, 111, 95, 116, 101, 109, 112, 108, 97, 116, 101, 23, 104, 116, 116, 112, 115, 58, 47, 47, 103, 101, 116, 45, 97, 45, 98, 111, 97, 114, 46, 99, 111, 109, 47, 3, 97, 103, 101, 21, 123, 109, 101, 116, 97, 100, 97, 116, 97, 46, 110, 101, 115, 116, 101, 100, 46, 97, 103, 101, 125, 8, 102, 117, 108, 108, 95, 117, 114, 108, 10, 123, 102, 117, 108, 108, 95, 117, 114, 108, 125, 13, 101, 115, 99, 97, 112, 101, 95, 115, 121, 110, 116, 97, 120, 8, 92, 123, 110, 97, 109, 101, 92, 125] } mutated: object(0,0), object(1,1) gas summary: computation_cost: 1000000, storage_cost: 5236400, storage_rebate: 3032400, non_refundable_storage_fee: 0 @@ -136,7 +136,7 @@ Checkpoint created: 4 task 15, line 185: //# view-checkpoint -CheckpointSummary { epoch: 0, seq: 4, content_digest: FGyM6sYiLCoNXUHPwQKCnS7FnbvsWBY9uvH3K21UNnhL, +CheckpointSummary { epoch: 0, seq: 4, content_digest: FZ3NUMDDNAYyo9F5SCfMWxiNhVBXBGXq2sExSuqFRci7, epoch_rolling_gas_cost_summary: GasCostSummary { computation_cost: 5000000, storage_cost: 36236800, storage_rebate: 9614000, non_refundable_storage_fee: 0 }} task 16, lines 187-200: @@ -195,7 +195,7 @@ Response: { }, { "key": "project_url", - "value": "Unique Boar from the Boars collection with First Boar and 0xa4526250ab04115ddb2e91d45acfca1625ad309af01eb66867f3d5859a5a598c", + "value": "Unique Boar from the Boars collection with First Boar and 0x2ca38919c6ef2883f3e5b20bb603e89a26eb971435a4db4b422bdd0b510bb97a", "error": null }, { diff --git a/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp b/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp index fbe60c1bbc6..73e5a4c756f 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/enum_data.exp @@ -36,7 +36,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x06a6545ddc2d380720e3639a402b1deb624dbd229a48c24d4054cf8997caac4f::m::Foo" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "data": { "Struct": [ @@ -44,38 +44,111 @@ Response: { "name": "id", "value": { "UID": [ - 75, - 194, - 4, - 128, - 167, - 122, - 247, - 88, - 165, - 245, + 112, + 233, + 156, 242, - 89, - 22, - 223, - 140, - 40, + 219, + 210, + 161, 224, - 148, - 248, - 115, - 33, + 72, + 99, + 134, + 110, + 250, 231, - 31, - 43, - 201, - 8, - 74, - 123, - 42, + 71, + 254, + 233, + 239, + 134, + 209, + 70, + 73, + 5, + 2, + 122, + 81, + 236, + 184, + 54, + 60, + 84, + 208 + ] + } + }, + { + "name": "balance", + "value": { + "Struct": [ + { + "name": "value", + "value": { + "Number": "299999995967600" + } + } + ] + } + } + ] + }, + "json": { + "id": "0x70e99cf2dbd2a1e04863866efae747fee9ef86d1464905027a51ecb8363c54d0", + "balance": { + "value": "299999995967600" + } + } + } + } + } + }, + { + "outputState": { + "asMoveObject": { + "contents": { + "type": { + "repr": "0x09e9ea19900041e086ff7a4daea031f781e0b2b5fe4a6fc7d0aab9d96335405e::m::Foo" + }, + "data": { + "Struct": [ + { + "name": "id", + "value": { + "UID": [ + 147, + 80, + 56, + 94, + 196, + 219, + 69, + 255, + 108, + 11, + 82, + 234, + 181, + 174, + 32, + 45, + 160, 129, - 91, - 146 + 40, + 102, + 104, + 73, + 146, + 209, + 143, + 102, + 228, + 61, + 103, + 79, + 99, + 143 ] } }, @@ -83,38 +156,38 @@ Response: { "name": "f0", "value": { "ID": [ - 75, - 194, - 4, - 128, - 167, - 122, - 247, - 88, - 165, - 245, - 242, - 89, - 22, - 223, - 140, - 40, - 224, - 148, - 248, - 115, - 33, - 231, - 31, - 43, - 201, - 8, - 74, - 123, - 42, + 147, + 80, + 56, + 94, + 196, + 219, + 69, + 255, + 108, + 11, + 82, + 234, + 181, + 174, + 32, + 45, + 160, 129, - 91, - 146 + 40, + 102, + 104, + 73, + 146, + 209, + 143, + 102, + 228, + 61, + 103, + 79, + 99, + 143 ] } }, @@ -154,38 +227,38 @@ Response: { "Vector": [ { "Address": [ - 75, - 194, - 4, - 128, - 167, - 122, - 247, - 88, - 165, - 245, - 242, - 89, - 22, - 223, - 140, - 40, - 224, - 148, - 248, - 115, - 33, - 231, - 31, - 43, - 201, - 8, - 74, - 123, - 42, + 147, + 80, + 56, + 94, + 196, + 219, + 69, + 255, + 108, + 11, + 82, + 234, + 181, + 174, + 32, + 45, + 160, 129, - 91, - 146 + 40, + 102, + 104, + 73, + 146, + 209, + 143, + 102, + 228, + 61, + 103, + 79, + 99, + 143 ] } ] @@ -252,15 +325,15 @@ Response: { ] }, "json": { - "id": "0x4bc20480a77af758a5f5f25916df8c28e094f87321e71f2bc9084a7b2a815b92", - "f0": "0x4bc20480a77af758a5f5f25916df8c28e094f87321e71f2bc9084a7b2a815b92", + "id": "0x9350385ec4db45ff6c0b52eab5ae202da0812866684992d18f66e43d674f638f", + "f0": "0x9350385ec4db45ff6c0b52eab5ae202da0812866684992d18f66e43d674f638f", "f1": true, "f2": 42, "f3": "43", "f4": "hello", "f5": "world", "f6": [ - "0x4bc20480a77af758a5f5f25916df8c28e094f87321e71f2bc9084a7b2a815b92" + "0x9350385ec4db45ff6c0b52eab5ae202da0812866684992d18f66e43d674f638f" ], "f7": 44, "f8": { @@ -283,79 +356,6 @@ Response: { } } } - }, - { - "outputState": { - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" - }, - "data": { - "Struct": [ - { - "name": "id", - "value": { - "UID": [ - 187, - 217, - 10, - 13, - 76, - 207, - 124, - 227, - 222, - 221, - 189, - 248, - 162, - 119, - 36, - 151, - 97, - 190, - 215, - 196, - 239, - 220, - 29, - 110, - 62, - 149, - 150, - 182, - 96, - 67, - 109, - 78 - ] - } - }, - { - "name": "balance", - "value": { - "Struct": [ - { - "name": "value", - "value": { - "Number": "299999995967600" - } - } - ] - } - } - ] - }, - "json": { - "id": "0xbbd90a0d4ccf7ce3deddbdf8a277249761bed7c4efdc1d6e3e9596b660436d4e", - "balance": { - "value": "299999995967600" - } - } - } - } - } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp b/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp index 5d81642f530..78f0707b26c 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/filter_by_type.exp @@ -21,7 +21,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 4, lines 16-18: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(3,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 15, 164, 84, 142, 11, 207, 217, 113, 243, 177, 152, 98, 76, 51, 77, 95, 109, 180, 159, 85, 128, 9, 168, 91, 120, 227, 240, 142, 33, 89, 9, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [49, 170, 24, 91, 48, 51, 59, 190, 186, 64, 208, 42, 198, 226, 201, 28, 175, 76, 24, 236, 175, 216, 35, 217, 155, 5, 253, 225, 16, 3, 242, 32, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 1, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(4,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(3,0) @@ -145,7 +145,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -156,7 +156,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" } } } @@ -167,7 +167,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field,0x0000000000000000000000000000000000000000000000000000000000000002::timelock::SystemTimelockCap>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -178,7 +178,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field,0x0000000000000000000000000000000000000000000000000000000000000002::timelock::SystemTimelockCap>" } } } @@ -200,7 +200,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -211,7 +211,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" } } } @@ -233,7 +233,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" } } } @@ -244,7 +244,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -277,7 +277,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } @@ -310,7 +310,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp b/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp index 3631a202d72..9408867f056 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/pagination.exp @@ -48,19 +48,19 @@ Response: { "objects": { "edges": [ { - "cursor": "IEtMi4tntPtNHNRt+TFKFSRhjlir2kBMxXfCP/qp/3fRAQAAAAAAAAA=" + "cursor": "IAtX50fqxe9lE/0KbsFXzRXYkmqZSXFONhH8fIQOkY79AQAAAAAAAAA=" }, { - "cursor": "IFBTD0mWDzKij0QXlnOXZUh52Hks6/mOfGXkA2MUNl9SAQAAAAAAAAA=" + "cursor": "IBRvcym3o3lAi+fkn+rKvWhxII5VBEmbPN3EvfzcjW6xAQAAAAAAAAA=" }, { - "cursor": "IJ78fny4yh0J9RkYpz6YU4eZGVnPrs8xvf2tkle0s2mUAQAAAAAAAAA=" + "cursor": "IGlwdnMK4Q5cUYCFiQuJjb9C6sq6CBnmSM4Cv6f4JPFHAQAAAAAAAAA=" }, { - "cursor": "ILsFOC6XyAclBKv7f3GiZyFx/ybpxfYB7Qtz9r8b394EAQAAAAAAAAA=" + "cursor": "IHjvmz1Xhf4Pu+w59JIFoXHQq7nzrlx62fyrVNQbyGUBAQAAAAAAAAA=" }, { - "cursor": "IP4kc9X8JMvd+74NpCI8f4Z7iHX+i24f+Aw4oAchY2ZeAQAAAAAAAAA=" + "cursor": "IOziwiP8CYItF9V8oDdjwywGT6P6iY8ubkh4SRbhG5MxAQAAAAAAAAA=" } ] } @@ -76,10 +76,10 @@ Response: { "objects": { "edges": [ { - "cursor": "IEtMi4tntPtNHNRt+TFKFSRhjlir2kBMxXfCP/qp/3fRAQAAAAAAAAA=" + "cursor": "IAtX50fqxe9lE/0KbsFXzRXYkmqZSXFONhH8fIQOkY79AQAAAAAAAAA=" }, { - "cursor": "IFBTD0mWDzKij0QXlnOXZUh52Hks6/mOfGXkA2MUNl9SAQAAAAAAAAA=" + "cursor": "IBRvcym3o3lAi+fkn+rKvWhxII5VBEmbPN3EvfzcjW6xAQAAAAAAAAA=" } ] } @@ -95,52 +95,52 @@ Response: { "objects": { "edges": [ { - "cursor": "IEtMi4tntPtNHNRt+TFKFSRhjlir2kBMxXfCP/qp/3fRAQAAAAAAAAA=", + "cursor": "IAtX50fqxe9lE/0KbsFXzRXYkmqZSXFONhH8fIQOkY79AQAAAAAAAAA=", "node": { - "address": "0x4b4c8b8b67b4fb4d1cd46df9314a1524618e58abda404cc577c23ffaa9ff77d1" + "address": "0x0b57e747eac5ef6513fd0a6ec157cd15d8926a9949714e3611fc7c840e918efd" } }, { - "cursor": "IFBTD0mWDzKij0QXlnOXZUh52Hks6/mOfGXkA2MUNl9SAQAAAAAAAAA=", + "cursor": "IBRvcym3o3lAi+fkn+rKvWhxII5VBEmbPN3EvfzcjW6xAQAAAAAAAAA=", "node": { - "address": "0x50530f49960f32a28f4417967397654879d8792cebf98e7c65e4036314365f52" + "address": "0x146f7329b7a379408be7e49feacabd6871208e5504499b3cddc4bdfcdc8d6eb1" } }, { - "cursor": "IJ78fny4yh0J9RkYpz6YU4eZGVnPrs8xvf2tkle0s2mUAQAAAAAAAAA=", + "cursor": "IGlwdnMK4Q5cUYCFiQuJjb9C6sq6CBnmSM4Cv6f4JPFHAQAAAAAAAAA=", "node": { - "address": "0x9efc7e7cb8ca1d09f51918a73e985387991959cfaecf31bdfdad9257b4b36994" + "address": "0x697076730ae10e5c518085890b898dbf42eacaba0819e648ce02bfa7f824f147" } }, { - "cursor": "ILsFOC6XyAclBKv7f3GiZyFx/ybpxfYB7Qtz9r8b394EAQAAAAAAAAA=", + "cursor": "IHjvmz1Xhf4Pu+w59JIFoXHQq7nzrlx62fyrVNQbyGUBAQAAAAAAAAA=", "node": { - "address": "0xbb05382e97c8072504abfb7f71a2672171ff26e9c5f601ed0b73f6bf1bdfde04" + "address": "0x78ef9b3d5785fe0fbbec39f49205a171d0abb9f3ae5c7ad9fcab54d41bc86501" } }, { - "cursor": "IP4kc9X8JMvd+74NpCI8f4Z7iHX+i24f+Aw4oAchY2ZeAQAAAAAAAAA=", + "cursor": "IOziwiP8CYItF9V8oDdjwywGT6P6iY8ubkh4SRbhG5MxAQAAAAAAAAA=", "node": { - "address": "0xfe2473d5fc24cbddfbbe0da4223c7f867b8875fe8b6e1ff80c38a0072163665e" + "address": "0xece2c223fc09822d17d57ca03763c32c064fa3fa898f2e6e48784916e11b9331" } } ] } }, "obj_3_0": { - "address": "0x9efc7e7cb8ca1d09f51918a73e985387991959cfaecf31bdfdad9257b4b36994" + "address": "0x697076730ae10e5c518085890b898dbf42eacaba0819e648ce02bfa7f824f147" }, "obj_5_0": { - "address": "0x50530f49960f32a28f4417967397654879d8792cebf98e7c65e4036314365f52" + "address": "0x0b57e747eac5ef6513fd0a6ec157cd15d8926a9949714e3611fc7c840e918efd" }, "obj_6_0": { - "address": "0xfe2473d5fc24cbddfbbe0da4223c7f867b8875fe8b6e1ff80c38a0072163665e" + "address": "0x146f7329b7a379408be7e49feacabd6871208e5504499b3cddc4bdfcdc8d6eb1" }, "obj_4_0": { - "address": "0xbb05382e97c8072504abfb7f71a2672171ff26e9c5f601ed0b73f6bf1bdfde04" + "address": "0x78ef9b3d5785fe0fbbec39f49205a171d0abb9f3ae5c7ad9fcab54d41bc86501" }, "obj_2_0": { - "address": "0x4b4c8b8b67b4fb4d1cd46df9314a1524618e58abda404cc577c23ffaa9ff77d1" + "address": "0xece2c223fc09822d17d57ca03763c32c064fa3fa898f2e6e48784916e11b9331" } } } @@ -153,10 +153,10 @@ Response: { "objects": { "edges": [ { - "cursor": "IJ78fny4yh0J9RkYpz6YU4eZGVnPrs8xvf2tkle0s2mUAQAAAAAAAAA=" + "cursor": "IBRvcym3o3lAi+fkn+rKvWhxII5VBEmbPN3EvfzcjW6xAQAAAAAAAAA=" }, { - "cursor": "ILsFOC6XyAclBKv7f3GiZyFx/ybpxfYB7Qtz9r8b394EAQAAAAAAAAA=" + "cursor": "IGlwdnMK4Q5cUYCFiQuJjb9C6sq6CBnmSM4Cv6f4JPFHAQAAAAAAAAA=" } ] } @@ -172,7 +172,7 @@ Response: { "objects": { "edges": [ { - "cursor": "IP4kc9X8JMvd+74NpCI8f4Z7iHX+i24f+Aw4oAchY2ZeAQAAAAAAAAA=" + "cursor": "IOziwiP8CYItF9V8oDdjwywGT6P6iY8ubkh4SRbhG5MxAQAAAAAAAAA=" } ] } @@ -188,10 +188,10 @@ Response: { "objects": { "edges": [ { - "cursor": "IEtMi4tntPtNHNRt+TFKFSRhjlir2kBMxXfCP/qp/3fRAQAAAAAAAAA=" + "cursor": "IAtX50fqxe9lE/0KbsFXzRXYkmqZSXFONhH8fIQOkY79AQAAAAAAAAA=" }, { - "cursor": "IFBTD0mWDzKij0QXlnOXZUh52Hks6/mOfGXkA2MUNl9SAQAAAAAAAAA=" + "cursor": "IBRvcym3o3lAi+fkn+rKvWhxII5VBEmbPN3EvfzcjW6xAQAAAAAAAAA=" } ] } @@ -207,15 +207,15 @@ Response: { "objects": { "edges": [ { - "cursor": "ILsFOC6XyAclBKv7f3GiZyFx/ybpxfYB7Qtz9r8b394EAQAAAAAAAAA=", + "cursor": "IHjvmz1Xhf4Pu+w59JIFoXHQq7nzrlx62fyrVNQbyGUBAQAAAAAAAAA=", "node": { - "address": "0xbb05382e97c8072504abfb7f71a2672171ff26e9c5f601ed0b73f6bf1bdfde04" + "address": "0x78ef9b3d5785fe0fbbec39f49205a171d0abb9f3ae5c7ad9fcab54d41bc86501" } }, { - "cursor": "IP4kc9X8JMvd+74NpCI8f4Z7iHX+i24f+Aw4oAchY2ZeAQAAAAAAAAA=", + "cursor": "IOziwiP8CYItF9V8oDdjwywGT6P6iY8ubkh4SRbhG5MxAQAAAAAAAAA=", "node": { - "address": "0xfe2473d5fc24cbddfbbe0da4223c7f867b8875fe8b6e1ff80c38a0072163665e" + "address": "0xece2c223fc09822d17d57ca03763c32c064fa3fa898f2e6e48784916e11b9331" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp b/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp index 24598318d86..3bccffd887a 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/public_transfer.exp @@ -37,7 +37,7 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x9675aabf28cc532b860b087a1faad53eb993a3ddffb4f1a2db4fb5d97d7bfbe2::m::Foo" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" } }, "hasPublicTransfer": true @@ -49,10 +49,10 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x9675aabf28cc532b860b087a1faad53eb993a3ddffb4f1a2db4fb5d97d7bfbe2::m::Bar" + "repr": "0x5dcee5041fc8e936ebc590c5d365907985d08aa45f3dc1bca8037f55e99ca26f::m::Foo" } }, - "hasPublicTransfer": false + "hasPublicTransfer": true } } }, @@ -61,10 +61,10 @@ Response: { "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x5dcee5041fc8e936ebc590c5d365907985d08aa45f3dc1bca8037f55e99ca26f::m::Bar" } }, - "hasPublicTransfer": true + "hasPublicTransfer": false } } } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/received.exp b/crates/iota-graphql-e2e-tests/tests/objects/received.exp index bb44ca58c92..0c8a9df3c9e 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/received.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/received.exp @@ -30,7 +30,7 @@ Response: { "receivedTransactionBlocks": { "nodes": [ { - "digest": "Fb2wDmqir1tAnHNmBbfUcDSX1FBgCkCGLWD3h3t3a8xs" + "digest": "BAZTCk2JAbyY6xeVB9at1omTbUsCDJdNh9ssAHs3ZhRf" } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp b/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp index 048fe7abd23..9ef24437142 100644 --- a/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp +++ b/crates/iota-graphql-e2e-tests/tests/objects/staked_iota.exp @@ -10,7 +10,7 @@ Response: { "objects": { "edges": [ { - "cursor": "IGKt/jr0fh7rcbg4aVomqFmmaPEUDMoBUVZYdSQmBy3UAAAAAAAAAAA=", + "cursor": "IBLNnwcEO5XjKkP6B2QL5vf9fi98WuQ9957HYs8/UvpIAAAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { @@ -39,7 +39,7 @@ gas summary: computation_cost: 1000000, storage_cost: 1976000, storage_rebate: task 3, line 38: //# run 0x3::iota_system::request_add_stake --args object(0x5) object(2,0) @validator_0 --sender C -events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [145, 15, 164, 84, 142, 11, 207, 217, 113, 243, 177, 152, 98, 76, 51, 77, 95, 109, 180, 159, 85, 128, 9, 168, 91, 120, 227, 240, 142, 33, 89, 9, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } +events: Event { package_id: iota_system, transaction_module: Identifier("iota_system"), sender: C, type_: StructTag { address: iota_system, module: Identifier("validator"), name: Identifier("StakingRequestEvent"), type_params: [] }, contents: [49, 170, 24, 91, 48, 51, 59, 190, 186, 64, 208, 42, 198, 226, 201, 28, 175, 76, 24, 236, 175, 216, 35, 217, 155, 5, 253, 225, 16, 3, 242, 32, 175, 163, 158, 79, 0, 218, 226, 120, 249, 119, 199, 198, 147, 10, 94, 44, 118, 232, 93, 23, 165, 38, 215, 36, 187, 206, 15, 184, 31, 176, 125, 76, 140, 202, 78, 28, 224, 186, 89, 4, 206, 166, 29, 249, 36, 45, 162, 247, 210, 158, 62, 243, 40, 251, 126, 192, 124, 8, 107, 59, 244, 124, 166, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 11, 84, 2, 0, 0, 0] } created: object(3,0) mutated: object(_), 0x0000000000000000000000000000000000000000000000000000000000000005, object(0,0) deleted: object(2,0) @@ -60,34 +60,34 @@ Response: { "objects": { "edges": [ { - "cursor": "IGKt/jr0fh7rcbg4aVomqFmmaPEUDMoBUVZYdSQmBy3UAgAAAAAAAAA=", + "cursor": "IBLNnwcEO5XjKkP6B2QL5vf9fi98WuQ9957HYs8/UvpIAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { "principal": "1500000000000000", - "poolId": "0x910fa4548e0bcfd971f3b198624c334d5f6db49f558009a85b78e3f08e215909" + "poolId": "0x31aa185b30333bbeba40d02ac6e2c91caf4c18ecafd823d99b05fde11003f220" } } } }, { - "cursor": "ILVYziRMbmfeQ0alyypl2nA4gTpsnVI0/mNu+O2M0UcwAgAAAAAAAAA=", + "cursor": "IJrDd+d17c/WP+y988FjFenwhf7ri3M2an2ad/goKgRVAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { - "principal": "15340000000000", - "poolId": "0x910fa4548e0bcfd971f3b198624c334d5f6db49f558009a85b78e3f08e215909" + "principal": "10000000000", + "poolId": "0x31aa185b30333bbeba40d02ac6e2c91caf4c18ecafd823d99b05fde11003f220" } } } }, { - "cursor": "IPZBsCp9CdP9iBWQhFfN6A2fcDP34decXACxmwerwQnGAgAAAAAAAAA=", + "cursor": "ILVYziRMbmfeQ0alyypl2nA4gTpsnVI0/mNu+O2M0UcwAgAAAAAAAAA=", "node": { "asMoveObject": { "asStakedIota": { - "principal": "10000000000", - "poolId": "0x910fa4548e0bcfd971f3b198624c334d5f6db49f558009a85b78e3f08e215909" + "principal": "15340000000000", + "poolId": "0x31aa185b30333bbeba40d02ac6e2c91caf4c18ecafd823d99b05fde11003f220" } } } @@ -98,7 +98,7 @@ Response: { "stakedIotas": { "edges": [ { - "cursor": "IPZBsCp9CdP9iBWQhFfN6A2fcDP34decXACxmwerwQnGAgAAAAAAAAA=", + "cursor": "IJrDd+d17c/WP+y988FjFenwhf7ri3M2an2ad/goKgRVAgAAAAAAAAA=", "node": { "principal": "10000000000" } diff --git a/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp b/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp index f950481b7a1..8915e0f2ce5 100644 --- a/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp +++ b/crates/iota-graphql-e2e-tests/tests/owner/downcasts.exp @@ -24,7 +24,7 @@ Response: { }, "coin": { "asObject": { - "digest": "AyDrhU7FR64WMxA9fahP9vssJvwGGBXZ7H1yBEc6Gdb6" + "digest": "F5pMFJHFfoyuckenh5qe7yptCoBunxbsDMUVNNRsgU8m" } } } diff --git a/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp b/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp index aeac5f10dc9..7a8f597a16f 100644 --- a/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp +++ b/crates/iota-graphql-e2e-tests/tests/owner/root_version.exp @@ -124,10 +124,10 @@ Response: { "version": 11, "contents": { "json": { - "id": "0x98ecb1d1d13658931c7d73d5df50b180bab96b01a671a4d7b8634a2265099987", + "id": "0xc374926b5d391cee2278e6aefc98d755f034e23f43ae8bc811ddd837f57c0834", "count": "1", "wrapped": { - "id": "0x415422d960969cb63f25ca6d955c5b085af3bd02c7ff5370c699cd06ce13de49", + "id": "0x852263eb4f91d23603f98dba1ed525bef9900a133e6be9bf129fd3a65bc0d89f", "count": "1" } } @@ -141,10 +141,10 @@ Response: { "version": 10, "contents": { "json": { - "id": "0x98ecb1d1d13658931c7d73d5df50b180bab96b01a671a4d7b8634a2265099987", + "id": "0xc374926b5d391cee2278e6aefc98d755f034e23f43ae8bc811ddd837f57c0834", "count": "1", "wrapped": { - "id": "0x415422d960969cb63f25ca6d955c5b085af3bd02c7ff5370c699cd06ce13de49", + "id": "0x852263eb4f91d23603f98dba1ed525bef9900a133e6be9bf129fd3a65bc0d89f", "count": "1" } } @@ -158,10 +158,10 @@ Response: { "version": 8, "contents": { "json": { - "id": "0x98ecb1d1d13658931c7d73d5df50b180bab96b01a671a4d7b8634a2265099987", + "id": "0xc374926b5d391cee2278e6aefc98d755f034e23f43ae8bc811ddd837f57c0834", "count": "1", "wrapped": { - "id": "0x415422d960969cb63f25ca6d955c5b085af3bd02c7ff5370c699cd06ce13de49", + "id": "0x852263eb4f91d23603f98dba1ed525bef9900a133e6be9bf129fd3a65bc0d89f", "count": "0" } } @@ -175,10 +175,10 @@ Response: { "version": 7, "contents": { "json": { - "id": "0x98ecb1d1d13658931c7d73d5df50b180bab96b01a671a4d7b8634a2265099987", + "id": "0xc374926b5d391cee2278e6aefc98d755f034e23f43ae8bc811ddd837f57c0834", "count": "0", "wrapped": { - "id": "0x415422d960969cb63f25ca6d955c5b085af3bd02c7ff5370c699cd06ce13de49", + "id": "0x852263eb4f91d23603f98dba1ed525bef9900a133e6be9bf129fd3a65bc0d89f", "count": "0" } } @@ -199,7 +199,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0x7f304b07dc4a77f61d8770470a347880ad5a99e3ce959001724f8df5fc677334", + "id": "0x7d6ea332b2a20736990c5f5bc557678aed0657be6f097be3c7e96861480ecc87", "count": "0" } } @@ -212,7 +212,7 @@ Response: { "version": 10, "contents": { "json": { - "id": "0x7f304b07dc4a77f61d8770470a347880ad5a99e3ce959001724f8df5fc677334", + "id": "0x7d6ea332b2a20736990c5f5bc557678aed0657be6f097be3c7e96861480ecc87", "count": "1" } } @@ -225,7 +225,7 @@ Response: { "version": 10, "contents": { "json": { - "id": "0x7f304b07dc4a77f61d8770470a347880ad5a99e3ce959001724f8df5fc677334", + "id": "0x7d6ea332b2a20736990c5f5bc557678aed0657be6f097be3c7e96861480ecc87", "count": "1" } } @@ -238,7 +238,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0x7f304b07dc4a77f61d8770470a347880ad5a99e3ce959001724f8df5fc677334", + "id": "0x7d6ea332b2a20736990c5f5bc557678aed0657be6f097be3c7e96861480ecc87", "count": "0" } } @@ -251,7 +251,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0x7f304b07dc4a77f61d8770470a347880ad5a99e3ce959001724f8df5fc677334", + "id": "0x7d6ea332b2a20736990c5f5bc557678aed0657be6f097be3c7e96861480ecc87", "count": "0" } } @@ -271,7 +271,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xc9d26b088c736cf6b9a23ca96b42a9286033aff111d8a55a2f24baf8370c734d", + "id": "0x1dce31614e17c87100fd146b73be1922d4821428c46093aa185b1f2d0dd114ae", "count": "0" } } @@ -284,7 +284,7 @@ Response: { "version": 11, "contents": { "json": { - "id": "0xc9d26b088c736cf6b9a23ca96b42a9286033aff111d8a55a2f24baf8370c734d", + "id": "0x1dce31614e17c87100fd146b73be1922d4821428c46093aa185b1f2d0dd114ae", "count": "1" } } @@ -297,7 +297,7 @@ Response: { "version": 7, "contents": { "json": { - "id": "0xc9d26b088c736cf6b9a23ca96b42a9286033aff111d8a55a2f24baf8370c734d", + "id": "0x1dce31614e17c87100fd146b73be1922d4821428c46093aa185b1f2d0dd114ae", "count": "0" } } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp b/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp index 1bf65ad85f7..b29280f5ce9 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/datatypes.exp @@ -155,7 +155,7 @@ task 5, lines 73-97: Response: { "data": { "object": { - "address": "0x24b8c04b40a6b2edc6e1e63bc8e542b20550d54bedd0560345623e4ae92e5e9b", + "address": "0x65709604481ff7591f5646fedf7f32220cfedf5f65fa4f5ec6da2381b74ccccf", "asMovePackage": { "module": { "datatypes": { @@ -190,7 +190,7 @@ task 6, lines 99-144: Response: { "data": { "object": { - "address": "0x24b8c04b40a6b2edc6e1e63bc8e542b20550d54bedd0560345623e4ae92e5e9b", + "address": "0x65709604481ff7591f5646fedf7f32220cfedf5f65fa4f5ec6da2381b74ccccf", "asMovePackage": { "module": { "datatypes": { diff --git a/crates/iota-graphql-e2e-tests/tests/packages/enums.exp b/crates/iota-graphql-e2e-tests/tests/packages/enums.exp index e027e68e398..64b21a90c2f 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/enums.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/enums.exp @@ -25,13 +25,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", "asMovePackage": null } }, { "outputState": { - "address": "0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0", + "address": "0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6", "asMovePackage": { "module": { "enum": { @@ -90,7 +90,7 @@ Response: { }, { "outputState": { - "address": "0xd4ed56ea8f35cba56cf2b495b9876631989ca8547d9035971c29072d9b074f46", + "address": "0xf88d487a6ff809b197de42319d922601100d08be653a910f0908c6ca17f31571", "asMovePackage": null } } @@ -125,19 +125,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x9e9c3691ade23e01a325d6c1d2174b26361948cdeeccec93f792ed47dd25737d", + "address": "0x80c62b9fc2009929e7c442831a2288f7562424367d8e9b514aa2a8622028a7b6", "asMovePackage": { "module": { "s": { "module": { "package": { - "address": "0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0" + "address": "0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6" } }, "name": "S", @@ -192,7 +186,7 @@ Response: { "t": { "module": { "package": { - "address": "0x9e9c3691ade23e01a325d6c1d2174b26361948cdeeccec93f792ed47dd25737d" + "address": "0x80c62b9fc2009929e7c442831a2288f7562424367d8e9b514aa2a8622028a7b6" } }, "name": "T", @@ -222,12 +216,12 @@ Response: { { "name": "s", "type": { - "repr": "0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0::m::S", + "repr": "0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6::m::S", "signature": { "ref": null, "body": { "datatype": { - "package": "0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0", + "package": "0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6", "module": "m", "type": "S", "typeParameters": [] @@ -261,7 +255,7 @@ Response: { { "name": "t", "type": { - "repr": "0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0::m::T<0x6fb05f39d164221521f7b18df4739573e8931216a199cd151b14da1be74aaed0::m::S>" + "repr": "0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6::m::T<0xf510c03759c677b311142f8dd9186f96a45753a56f38ec9fd0c1f0eeb247f6f6::m::S>" } } ] @@ -274,7 +268,13 @@ Response: { }, { "outputState": { - "address": "0xd4ed56ea8f35cba56cf2b495b9876631989ca8547d9035971c29072d9b074f46", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0xf88d487a6ff809b197de42319d922601100d08be653a910f0908c6ca17f31571", "asMovePackage": null } } @@ -297,11 +297,6 @@ Response: { "effects": { "objectChanges": { "nodes": [ - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -322,6 +317,11 @@ Response: { } } }, + { + "outputState": { + "asMovePackage": null + } + }, { "outputState": { "asMovePackage": null diff --git a/crates/iota-graphql-e2e-tests/tests/packages/friends.exp b/crates/iota-graphql-e2e-tests/tests/packages/friends.exp index b19c3041ef6..cb7b52044b7 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/friends.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/friends.exp @@ -28,11 +28,6 @@ Response: { "asMovePackage": null } }, - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -106,6 +101,11 @@ Response: { } } } + }, + { + "outputState": { + "asMovePackage": null + } } ] } @@ -133,14 +133,14 @@ Response: { }, { "outputState": { - "asMovePackage": null + "asMovePackage": { + "module": null + } } }, { "outputState": { - "asMovePackage": { - "module": null - } + "asMovePackage": null } } ] @@ -166,7 +166,7 @@ Response: { "effects", "objectChanges", "nodes", - 2, + 1, "outputState", "asMovePackage", "module", @@ -194,11 +194,6 @@ Response: { "asMovePackage": null } }, - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -274,6 +269,11 @@ Response: { } } } + }, + { + "outputState": { + "asMovePackage": null + } } ] } @@ -309,11 +309,6 @@ Response: { "asMovePackage": null } }, - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -349,6 +344,11 @@ Response: { } } } + }, + { + "outputState": { + "asMovePackage": null + } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/functions.exp b/crates/iota-graphql-e2e-tests/tests/packages/functions.exp index f9a1ca1af80..abe7fc4ce90 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/functions.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/functions.exp @@ -95,25 +95,25 @@ Response: { "nodes": [ { "outputState": { - "address": "0x462392358fee51d4653c111fe4d925f59a4371b00af01679a8a7cc228fc3382a", + "address": "0x0779d943f70351d8db98bc5b471eef69dec64d8b060eff851fa92357264c81cb", "asMovePackage": null } }, { "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", "asMovePackage": null } }, { "outputState": { - "address": "0xfa3b856a3aa0073d07706f12a8d2556ecbd67085073e265470915a6f2d222117", + "address": "0xf54e25e49a2d5dccfedaed2ebf341e48bc8141704a0b53b84ff7fd0a576d9bee", "asMovePackage": { "module": { "function": { "module": { "package": { - "address": "0xfa3b856a3aa0073d07706f12a8d2556ecbd67085073e265470915a6f2d222117" + "address": "0xf54e25e49a2d5dccfedaed2ebf341e48bc8141704a0b53b84ff7fd0a576d9bee" } }, "name": "f", @@ -175,13 +175,19 @@ Response: { "nodes": [ { "outputState": { - "address": "0x3551d97f7156dbe2f0bdc7f3f1aca8a169bce95dfbdb3410e37ac3ddb40e0c12", + "address": "0x0779d943f70351d8db98bc5b471eef69dec64d8b060eff851fa92357264c81cb", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0x5e5f7f19ed6029cce7c55f0b2e5e5c0d1a6908205d5cb72035de74e822917c8b", "asMovePackage": { "module": { "f": { "module": { "package": { - "address": "0x3551d97f7156dbe2f0bdc7f3f1aca8a169bce95dfbdb3410e37ac3ddb40e0c12" + "address": "0x5e5f7f19ed6029cce7c55f0b2e5e5c0d1a6908205d5cb72035de74e822917c8b" } }, "name": "f", @@ -211,7 +217,7 @@ Response: { "g": { "module": { "package": { - "address": "0x3551d97f7156dbe2f0bdc7f3f1aca8a169bce95dfbdb3410e37ac3ddb40e0c12" + "address": "0x5e5f7f19ed6029cce7c55f0b2e5e5c0d1a6908205d5cb72035de74e822917c8b" } }, "name": "g", @@ -231,13 +237,7 @@ Response: { }, { "outputState": { - "address": "0x462392358fee51d4653c111fe4d925f59a4371b00af01679a8a7cc228fc3382a", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", "asMovePackage": null } } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/modules.exp b/crates/iota-graphql-e2e-tests/tests/packages/modules.exp index d957a5c7b44..48ed63cb785 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/modules.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/modules.exp @@ -22,22 +22,22 @@ Response: { "nodes": [ { "outputState": { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "asMovePackage": null } }, { "outputState": { - "address": "0xe31179bf18d75a2dd828d387f0f9fc64e7b23f9c2ee1e6e4c077aeacfa27426e", + "address": "0xdbd3bc7c79bf4076dbe2ee9e0ba66ff1dfc6e5fab8d651c9349be0bf915f4f88", "asMovePackage": { "module": { "name": "m", "package": { - "address": "0xe31179bf18d75a2dd828d387f0f9fc64e7b23f9c2ee1e6e4c077aeacfa27426e" + "address": "0xdbd3bc7c79bf4076dbe2ee9e0ba66ff1dfc6e5fab8d651c9349be0bf915f4f88" }, "fileFormatVersion": 6, - "bytes": "oRzrCwYAAAAIAQAGAgYKAxARBCEEBSUfB0QkCGhADKgBMAAGAQMBBQEADAEAAQIBAgAABAABAQIAAgIBAAEHBQEBAAIEAAYCAwYLAAEJAAEDAQYLAAEIAQABCQABBgsAAQkAAQgBBENvaW4ESU9UQQNiYXIEY29pbgNmb28EaW90YQFtBXZhbHVl4xF5vxjXWi3YKNOH8Pn8ZOeyP5wu4ebkwHeurPonQm4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAADBQsBOAALABYCAQEAAAMIBioAAAAAAAAACgA4AQYrAAAAAAAAAAsAOAEYAgA=", - "disassembly": "// Move bytecode v6\nmodule e31179bf18d75a2dd828d387f0f9fc64e7b23f9c2ee1e6e4c077aeacfa27426e.m {\nuse 0000000000000000000000000000000000000000000000000000000000000002::coin;\nuse 0000000000000000000000000000000000000000000000000000000000000002::iota;\n\n\n\n\n\n\npublic foo(Arg0: u64, Arg1: &Coin): u64 {\nB0:\n\t0: MoveLoc[1](Arg1: &Coin)\n\t1: Call coin::value(&Coin): u64\n\t2: MoveLoc[0](Arg0: u64)\n\t3: Add\n\t4: Ret\n\n}\npublic bar(Arg0: &Coin): u64 {\nB0:\n\t0: LdU64(42)\n\t1: CopyLoc[0](Arg0: &Coin)\n\t2: Call foo(u64, &Coin): u64\n\t3: LdU64(43)\n\t4: MoveLoc[0](Arg0: &Coin)\n\t5: Call foo(u64, &Coin): u64\n\t6: Mul\n\t7: Ret\n\n}\n}" + "bytes": "oRzrCwYAAAAIAQAGAgYKAxARBCEEBSUfB0QkCGhADKgBMAAGAQMBBQEADAEAAQIBAgAABAABAQIAAgIBAAEHBQEBAAIEAAYCAwYLAAEJAAEDAQYLAAEIAQABCQABBgsAAQkAAQgBBENvaW4ESU9UQQNiYXIEY29pbgNmb28EaW90YQFtBXZhbHVl29O8fHm/QHbb4u6eC6Zv8d/G5fq41lHJNJvgv5FfT4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAADBQsBOAALABYCAQEAAAMIBioAAAAAAAAACgA4AQYrAAAAAAAAAAsAOAEYAgA=", + "disassembly": "// Move bytecode v6\nmodule dbd3bc7c79bf4076dbe2ee9e0ba66ff1dfc6e5fab8d651c9349be0bf915f4f88.m {\nuse 0000000000000000000000000000000000000000000000000000000000000002::coin;\nuse 0000000000000000000000000000000000000000000000000000000000000002::iota;\n\n\n\n\n\n\npublic foo(Arg0: u64, Arg1: &Coin): u64 {\nB0:\n\t0: MoveLoc[1](Arg1: &Coin)\n\t1: Call coin::value(&Coin): u64\n\t2: MoveLoc[0](Arg0: u64)\n\t3: Add\n\t4: Ret\n\n}\npublic bar(Arg0: &Coin): u64 {\nB0:\n\t0: LdU64(42)\n\t1: CopyLoc[0](Arg0: &Coin)\n\t2: Call foo(u64, &Coin): u64\n\t3: LdU64(43)\n\t4: MoveLoc[0](Arg0: &Coin)\n\t5: Call foo(u64, &Coin): u64\n\t6: Mul\n\t7: Ret\n\n}\n}" } } } @@ -63,13 +63,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "asMovePackage": null } }, { "outputState": { - "address": "0xe31179bf18d75a2dd828d387f0f9fc64e7b23f9c2ee1e6e4c077aeacfa27426e", + "address": "0xdbd3bc7c79bf4076dbe2ee9e0ba66ff1dfc6e5fab8d651c9349be0bf915f4f88", "asMovePackage": { "all": { "edges": [ @@ -161,13 +161,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "asMovePackage": null } }, { "outputState": { - "address": "0xe31179bf18d75a2dd828d387f0f9fc64e7b23f9c2ee1e6e4c077aeacfa27426e", + "address": "0xdbd3bc7c79bf4076dbe2ee9e0ba66ff1dfc6e5fab8d651c9349be0bf915f4f88", "asMovePackage": { "prefix": { "edges": [ diff --git a/crates/iota-graphql-e2e-tests/tests/packages/structs.exp b/crates/iota-graphql-e2e-tests/tests/packages/structs.exp index 71276e75a46..614699e2670 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/structs.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/structs.exp @@ -154,7 +154,13 @@ Response: { "nodes": [ { "outputState": { - "address": "0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031", + "address": "0x2f70f434dedbef6ca04cdff83afde4631684ccb6846780382d45ae301630d74e", + "asMovePackage": null + } + }, + { + "outputState": { + "address": "0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae", "asMovePackage": { "module": { "struct": { @@ -183,13 +189,7 @@ Response: { }, { "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x8607c0c5eed96e3779f0946da7b802a3ceaa1c91b0f4f1ab6b2cce69c2c01a3c", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", "asMovePackage": null } } @@ -224,25 +224,19 @@ Response: { "nodes": [ { "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "asMovePackage": null - } - }, - { - "outputState": { - "address": "0x8607c0c5eed96e3779f0946da7b802a3ceaa1c91b0f4f1ab6b2cce69c2c01a3c", + "address": "0x2f70f434dedbef6ca04cdff83afde4631684ccb6846780382d45ae301630d74e", "asMovePackage": null } }, { "outputState": { - "address": "0xfd3b093e8412e789e3eec6e372a7ba0a77f529970288961bfe2e8469430f656b", + "address": "0xa5fc6cbb49375fc5e27a7a8cb9ddd211ec180a3693c0ab9030fa00c4f4ea2e89", "asMovePackage": { "module": { "s": { "module": { "package": { - "address": "0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031" + "address": "0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae" } }, "name": "S", @@ -267,7 +261,7 @@ Response: { "t": { "module": { "package": { - "address": "0xfd3b093e8412e789e3eec6e372a7ba0a77f529970288961bfe2e8469430f656b" + "address": "0xa5fc6cbb49375fc5e27a7a8cb9ddd211ec180a3693c0ab9030fa00c4f4ea2e89" } }, "name": "T", @@ -294,12 +288,12 @@ Response: { { "name": "s", "type": { - "repr": "0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031::m::S", + "repr": "0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae::m::S", "signature": { "ref": null, "body": { "datatype": { - "package": "0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031", + "package": "0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae", "module": "m", "type": "S", "typeParameters": [] @@ -328,7 +322,7 @@ Response: { { "name": "t", "type": { - "repr": "0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031::m::T<0x24ec6864c2cba3b1f98b1e318b001991b368e9528ac84b824473224727e63031::m::S>" + "repr": "0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae::m::T<0x6e052faf337b206054b319aff9325298b3b4995c7f30100dc8311f11a0ce23ae::m::S>" } } ] @@ -336,6 +330,12 @@ Response: { } } } + }, + { + "outputState": { + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "asMovePackage": null + } } ] } @@ -361,11 +361,6 @@ Response: { "asMovePackage": null } }, - { - "outputState": { - "asMovePackage": null - } - }, { "outputState": { "asMovePackage": { @@ -385,6 +380,11 @@ Response: { } } } + }, + { + "outputState": { + "asMovePackage": null + } } ] } diff --git a/crates/iota-graphql-e2e-tests/tests/packages/types.exp b/crates/iota-graphql-e2e-tests/tests/packages/types.exp index 00b98646d8f..163bafc6a4d 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/types.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/types.exp @@ -275,7 +275,7 @@ Response: { "data": null, "errors": [ { - "message": "Internal error occurred while processing request: Error calculating layout for 0x86b00ba6b96afd850ab1f922fbbb2f2cfb13af2768146e4d4300e7595a3f1650::m::S1: Type layout nesting exceeded limit of 128", + "message": "Internal error occurred while processing request: Error calculating layout for 0xbbed0b3b563a8e309c5ab0a82b184846001ab32d2bf4a1c91c4f3090986a72c9::m::S1: Type layout nesting exceeded limit of 128", "locations": [ { "line": 4, diff --git a/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp b/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp index 7c5d3e69cf5..ffa4a445d2f 100644 --- a/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp +++ b/crates/iota-graphql-e2e-tests/tests/packages/versioning.exp @@ -31,14 +31,14 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 } ] } }, "firstPackage": { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1, "module": { "functions": { @@ -52,7 +52,7 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 } ] @@ -81,7 +81,7 @@ Response: { "version": 1 }, { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 } ] @@ -120,18 +120,18 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 } ] } }, "firstPackage": { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1, "module": { "functions": { @@ -145,11 +145,11 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 } ] @@ -178,11 +178,11 @@ Response: { "version": 1 }, { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 } ] @@ -224,22 +224,22 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3 } ] } }, "firstPackage": { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1, "module": { "functions": { @@ -253,15 +253,15 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3 } ] @@ -290,15 +290,15 @@ Response: { "version": 1 }, { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3 } ] @@ -715,7 +715,7 @@ Response: { "after": { "nodes": [ { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2, "previousTransactionBlock": { "effects": { @@ -726,7 +726,7 @@ Response: { } }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3, "previousTransactionBlock": { "effects": { @@ -741,7 +741,7 @@ Response: { "between": { "nodes": [ { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2, "previousTransactionBlock": { "effects": { @@ -763,15 +763,15 @@ Response: { "packageVersions": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3 } ] @@ -779,11 +779,11 @@ Response: { "after": { "nodes": [ { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 }, { - "address": "0x6a9edaed4e9bc435b2edd2618cba5067bd7d8a42a074aeda9911fe129cca2fe0", + "address": "0xc3f4b6e52e370b72878bd7ffbfb4960273e513fff720296dee0edd37bccb93df", "version": 3 } ] @@ -791,11 +791,11 @@ Response: { "before": { "nodes": [ { - "address": "0x76829761be48d7af33b9121549528c4f8b42d45306a6ed717409c9906c7d54ea", + "address": "0x6eb579ded8e567baec3f9da4b60fc0aa5772c986cf987f0008b468cfffb61f0d", "version": 1 }, { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 } ] @@ -803,7 +803,7 @@ Response: { "between": { "nodes": [ { - "address": "0xc28257e4d1c04d2a76f0e1d798a5d264f1375794e1d4d26d46f6d5c2278bc48c", + "address": "0x637516b0223c3af228bcb46fce1710a1280fa9e98e3811d75f1d77acc0eb8be1", "version": 2 } ] diff --git a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp index bdf5150c3c1..58869ad01d0 100644 --- a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp +++ b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/balance_changes.exp @@ -48,13 +48,13 @@ Response: { "edges": [ { "node": { - "amount": "3000" + "amount": "4000" }, "cursor": "eyJpIjowLCJjIjoyfQ" }, { "node": { - "amount": "5000" + "amount": "1000" }, "cursor": "eyJpIjoxLCJjIjoyfQ" }, @@ -66,19 +66,19 @@ Response: { }, { "node": { - "amount": "1000" + "amount": "2000" }, "cursor": "eyJpIjozLCJjIjoyfQ" }, { "node": { - "amount": "4000" + "amount": "5000" }, "cursor": "eyJpIjo0LCJjIjoyfQ" }, { "node": { - "amount": "2000" + "amount": "3000" }, "cursor": "eyJpIjo1LCJjIjoyfQ" } @@ -111,13 +111,13 @@ Response: { "edges": [ { "node": { - "amount": "1000" + "amount": "2000" }, "cursor": "eyJpIjozLCJjIjoxfQ" }, { "node": { - "amount": "4000" + "amount": "5000" }, "cursor": "eyJpIjo0LCJjIjoxfQ" } @@ -150,13 +150,13 @@ Response: { "edges": [ { "node": { - "amount": "3000" + "amount": "4000" }, "cursor": "eyJpIjowLCJjIjoxfQ" }, { "node": { - "amount": "5000" + "amount": "1000" }, "cursor": "eyJpIjoxLCJjIjoxfQ" }, diff --git a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp index 845e5172804..7a72fca289e 100644 --- a/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp +++ b/crates/iota-graphql-e2e-tests/tests/transaction_block_effects/dependencies.exp @@ -65,7 +65,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "6xEQFCm27zfeWp5oqLAkeZxrUeMTVY3SLqcVdTYvBR2f", + "digest": "6Y2wDveP2zgYVNVSyS9DYdCBDE6cmMAtbxp3PKw2rqS4", "effects": { "dependencies": { "pageInfo": { @@ -78,7 +78,7 @@ Response: { { "cursor": "eyJpIjowLCJjIjoxfQ", "node": { - "digest": "3kQVhcCx8LdZKbsgAHdGfGZtAJzTcWe7gktakzXweCAW", + "digest": "A6KhBiRjSwHvSbgfdLZqzUtZisB7PynYdzf9Z6YLPtaJ", "kind": { "__typename": "ProgrammableTransactionBlock", "transactions": { @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJpIjoxLCJjIjoxfQ", "node": { - "digest": "9u2qUK8xcpUd5Xy59cDTRZugjwETWrVvKFgBpPDrpnDy", + "digest": "J3PtkEZg631SNT6FEzoZxcEcD1teVaukTh78Mzh93ycU", "kind": { "__typename": "ProgrammableTransactionBlock", "transactions": { @@ -138,7 +138,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "6xEQFCm27zfeWp5oqLAkeZxrUeMTVY3SLqcVdTYvBR2f", + "digest": "6Y2wDveP2zgYVNVSyS9DYdCBDE6cmMAtbxp3PKw2rqS4", "effects": { "dependencies": { "pageInfo": { @@ -151,7 +151,7 @@ Response: { { "cursor": "eyJpIjoxLCJjIjoxfQ", "node": { - "digest": "9u2qUK8xcpUd5Xy59cDTRZugjwETWrVvKFgBpPDrpnDy", + "digest": "J3PtkEZg631SNT6FEzoZxcEcD1teVaukTh78Mzh93ycU", "kind": { "__typename": "ProgrammableTransactionBlock", "transactions": { diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp b/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp index 9e307aa9214..b9e758983df 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/at_checkpoint.exp @@ -30,7 +30,7 @@ Response: { "c0": { "nodes": [ { - "digest": "D5VAJeCVRW78atc55Tf2BUctJkBJ7EkzdFS4QfQo1fND", + "digest": "8SvtZ4FXTfB7R2Yf7P5nMxH7ELVmRiaYhf5JHjAhKLM", "kind": { "__typename": "GenesisTransaction" } @@ -46,7 +46,7 @@ Response: { } }, { - "digest": "8T9Mk4z2HuVb8bFtgVEXhqCemFRGxG1Fh6qhHe4j4cZ4", + "digest": "21XaXWNhGpoMoZR9FTCVQCQxT8B3mLD3vJ2yeuLvXpCs", "kind": { "__typename": "ProgrammableTransactionBlock" } @@ -87,7 +87,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "D5VAJeCVRW78atc55Tf2BUctJkBJ7EkzdFS4QfQo1fND", + "digest": "8SvtZ4FXTfB7R2Yf7P5nMxH7ELVmRiaYhf5JHjAhKLM", "kind": { "__typename": "GenesisTransaction" } @@ -105,7 +105,7 @@ Response: { } }, { - "digest": "8T9Mk4z2HuVb8bFtgVEXhqCemFRGxG1Fh6qhHe4j4cZ4", + "digest": "21XaXWNhGpoMoZR9FTCVQCQxT8B3mLD3vJ2yeuLvXpCs", "kind": { "__typename": "ProgrammableTransactionBlock" } @@ -154,7 +154,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "D5VAJeCVRW78atc55Tf2BUctJkBJ7EkzdFS4QfQo1fND", + "digest": "8SvtZ4FXTfB7R2Yf7P5nMxH7ELVmRiaYhf5JHjAhKLM", "kind": { "__typename": "GenesisTransaction" } @@ -172,7 +172,7 @@ Response: { } }, { - "digest": "8T9Mk4z2HuVb8bFtgVEXhqCemFRGxG1Fh6qhHe4j4cZ4", + "digest": "21XaXWNhGpoMoZR9FTCVQCQxT8B3mLD3vJ2yeuLvXpCs", "kind": { "__typename": "ProgrammableTransactionBlock" } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp b/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp index 0da5cd18e7e..c6801fc93aa 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/errors.exp @@ -25,7 +25,7 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 1st command, from '0xf06caa78e7bd429d6a61227617f2ee14062dfdfac7e493dddffdf03bbd9f33e5::m::boom' (instruction 1), abort code: 42" + "errors": "Error in 1st command, from '0x75b88d24bad02784e123bdb2f308a999d9bcb9e7aaefb8bc8f4c148e72ba8c5a::m::boom' (instruction 1), abort code: 42" } } ] @@ -54,7 +54,7 @@ Response: { { "effects": { "status": "FAILURE", - "errors": "Error in 3rd command, from '0xf06caa78e7bd429d6a61227617f2ee14062dfdfac7e493dddffdf03bbd9f33e5::m::boom' (instruction 1), abort code: 42" + "errors": "Error in 3rd command, from '0x75b88d24bad02784e123bdb2f308a999d9bcb9e7aaefb8bc8f4c148e72ba8c5a::m::boom' (instruction 1), abort code: 42" } } ] diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp b/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp index 5b2368faee8..bbacead8450 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/filters/kind.exp @@ -60,7 +60,7 @@ Response: { }, "nodes": [ { - "digest": "5quwPQw3bKJhepq8SRWrsBjHB5YUMdzDg66tqzHxoLrS", + "digest": "5S473Dja67e1DM9C2YqHAUCBTwrRdtHZ8PK6DuzAsVKB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -68,7 +68,7 @@ Response: { } }, { - "digest": "C5Dy4KHYBJLfCA9BHt6JjtAQMTR2dtfueJX4QQk1Utjk", + "digest": "39KR3MJpLgFePQudkSdpar7CxFf2uyKDF3Rurou1ea7K", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -76,7 +76,7 @@ Response: { } }, { - "digest": "72NoXbuc6fNyU1bavVaBgnQXQmXEXErAaRRQ26R5nj8M", + "digest": "5qX9uo15phsaNyuSAMnxA2YiKPkUECDXgZ7jMn8f1ih1", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -84,7 +84,7 @@ Response: { } }, { - "digest": "2jdSf9oiVKpnXnBHStYRGN9MPV9RwjSuBCCuwKQpxmm1", + "digest": "DiGeNbCDy5KzeviEaa5SiXMsBYVFrrYFwyT2KhZDm8Hf", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -92,7 +92,7 @@ Response: { } }, { - "digest": "5pT9hzbvWygWkrK39tEQxzEMqrAxi7ev3H5TQHSt4R5n", + "digest": "AFbCaigSs5uttbRAjqzP8ve1oKN4XdDz5yFkBnL4ayw7", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -117,7 +117,7 @@ Response: { }, "nodes": [ { - "digest": "5quwPQw3bKJhepq8SRWrsBjHB5YUMdzDg66tqzHxoLrS", + "digest": "5S473Dja67e1DM9C2YqHAUCBTwrRdtHZ8PK6DuzAsVKB", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -142,7 +142,7 @@ Response: { }, "nodes": [ { - "digest": "C5Dy4KHYBJLfCA9BHt6JjtAQMTR2dtfueJX4QQk1Utjk", + "digest": "39KR3MJpLgFePQudkSdpar7CxFf2uyKDF3Rurou1ea7K", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -167,7 +167,7 @@ Response: { }, "nodes": [ { - "digest": "72NoXbuc6fNyU1bavVaBgnQXQmXEXErAaRRQ26R5nj8M", + "digest": "5qX9uo15phsaNyuSAMnxA2YiKPkUECDXgZ7jMn8f1ih1", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -192,7 +192,7 @@ Response: { }, "nodes": [ { - "digest": "2jdSf9oiVKpnXnBHStYRGN9MPV9RwjSuBCCuwKQpxmm1", + "digest": "DiGeNbCDy5KzeviEaa5SiXMsBYVFrrYFwyT2KhZDm8Hf", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -217,7 +217,7 @@ Response: { }, "nodes": [ { - "digest": "5pT9hzbvWygWkrK39tEQxzEMqrAxi7ev3H5TQHSt4R5n", + "digest": "AFbCaigSs5uttbRAjqzP8ve1oKN4XdDz5yFkBnL4ayw7", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp b/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp index 1607085f928..2d21f130c56 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/programmable.exp @@ -20,12 +20,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "xoNEJra4pzubo6ZshKbmatUNdtQw5yodm3MiVwrdreL", + "digest": "CFGHjxjyqyfpi1RJwqGCrVUPstjmXP1mdTJMyRZgMtXn", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "ABtRRE4LuNY/vOLaj9XJcjv8vV8aucqvALmYFf60tNVL20nikRfk30gr9gsSx8ivFmqhekz/Wz5r5wJtILY39gp/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "APGWMqiH97blUVEaT6iITb60bKs4DxoXfCTrZjEa3bVckvyBDycPjLmJlCFq88wL1CYdElkrzd8SnmDKL7Ie8gl/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -34,7 +34,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" } ] }, @@ -96,7 +96,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "D5VAJeCVRW78atc55Tf2BUctJkBJ7EkzdFS4QfQo1fND" + "digest": "8SvtZ4FXTfB7R2Yf7P5nMxH7ELVmRiaYhf5JHjAhKLM" } ] }, @@ -116,37 +116,37 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1", + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1", - "digest": "3A77Cb2xTX17JubEAtjvWnAZkgKjEZexvEWtic7yh1nM" + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", + "digest": "4vMFTn9ZskPfhw1AdARbW73ME2PZig6ws4DXyMdKHEsm" } }, { - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", - "idCreated": true, + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "idCreated": false, "idDeleted": false, "outputState": { - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", - "digest": "ABaZCf831Gr3LoXf7QNrYvNN5wsTvXqsu9BLpfgUsXu4" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "digest": "HTTwPRLhNsRBEmu8YPcGyQqKQq2rdsuQVHjhX81aEhno" } }, { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "idCreated": false, + "address": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124", + "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "digest": "5fGzTnViPxa9jSN8P1Hzn3Xbno2tSDY4K15anXeNCDxb" + "address": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124", + "digest": "6ufUA8wa6QMPGpSyxcEkFiwemMLRpDdR35oQtrMqxQ3U" } } ] }, "gasEffects": { "gasObject": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" }, "gasSummary": { "computationCost": "1000000", @@ -163,7 +163,7 @@ Response: { "sequenceNumber": 1 }, "transactionBlock": { - "digest": "xoNEJra4pzubo6ZshKbmatUNdtQw5yodm3MiVwrdreL" + "digest": "CFGHjxjyqyfpi1RJwqGCrVUPstjmXP1mdTJMyRZgMtXn" } }, "expiration": null @@ -190,12 +190,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "AgH8BgGusBWwE1jYfd1btoSW2PU6w45x39F9xHZo3GJt", + "digest": "GxWcY9nHejR9UsnwdRsSiJngGfNvjr3FZP6bsdhnsa4W", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "AJN75/ODnrUhvaFqCM1wJLZ1z0veccwmyF4ocgAFhw6wCDv3iBIHVq4p6NZp3unUhZHc+6B10iTEJfHA1lzCQg9/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AMxzxguiQVu0C9lW3wINTvVmJ86F23zHOXg3hLBQm1wpcMvdSNmadpVuOtS5u01PUUiJTjrXdGn6d3A/8Ms7qAB/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -204,7 +204,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" } ] }, @@ -219,21 +219,21 @@ Response: { "cursor": "eyJpIjowLCJjIjoyfQ", "node": { "__typename": "OwnedOrImmutable", - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", "version": 2, - "digest": "ABaZCf831Gr3LoXf7QNrYvNN5wsTvXqsu9BLpfgUsXu4", + "digest": "4vMFTn9ZskPfhw1AdARbW73ME2PZig6ws4DXyMdKHEsm", "object": { - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", "version": 2, - "digest": "ABaZCf831Gr3LoXf7QNrYvNN5wsTvXqsu9BLpfgUsXu4", + "digest": "4vMFTn9ZskPfhw1AdARbW73ME2PZig6ws4DXyMdKHEsm", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::package::UpgradeCap" }, "json": { - "id": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", - "package": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1", + "id": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", + "package": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124", "version": "1", "policy": 0 } @@ -315,7 +315,7 @@ Response: { "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000002" ], - "currentPackage": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1", + "currentPackage": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124", "upgradeTicket": { "__typename": "Result", "cmd": 0, @@ -367,10 +367,10 @@ Response: { "dependencies": { "nodes": [ { - "digest": "xoNEJra4pzubo6ZshKbmatUNdtQw5yodm3MiVwrdreL" + "digest": "8SvtZ4FXTfB7R2Yf7P5nMxH7ELVmRiaYhf5JHjAhKLM" }, { - "digest": "D5VAJeCVRW78atc55Tf2BUctJkBJ7EkzdFS4QfQo1fND" + "digest": "CFGHjxjyqyfpi1RJwqGCrVUPstjmXP1mdTJMyRZgMtXn" } ] }, @@ -390,37 +390,37 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", - "idCreated": false, + "address": "0x37bec35b91b29641a80a029561b1b0c0125aca8fbacae1fafb6aecdbad322ec7", + "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x4693b5b4dbc97a3ce7f7a7d80d1cb65895eb82128432e36afac8c5c03f8ac047", - "digest": "8rbnRGi5fYy4s7VfnxcqzyMCu3vF55zxZNn5Y3h4Csn4" + "address": "0x37bec35b91b29641a80a029561b1b0c0125aca8fbacae1fafb6aecdbad322ec7", + "digest": "Ebjo3QCg9zeM3tHd5p7RJQ5Tqk4569zH6bv4sTG9CLyN" } }, { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", "idCreated": false, "idDeleted": false, "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "digest": "2uCSchvi68T8Hw3xdwCeFZYtfeMyxjnhtbdioRzpiRv8" + "address": "0x8308af3c11c0db92d7e83a9360f337987a70d44d2ec88b63a40a4f892b50e1cf", + "digest": "4h9S3cfJh6d3RAXJy4BbpQ9LHNwDz3P8v7uwgoHsgU1A" } }, { - "address": "0xbb50c94228d7b4799b3c20401ef4fc7a1abdabf8ae940240300ec2a63d2e90fb", - "idCreated": true, + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "idCreated": false, "idDeleted": false, "outputState": { - "address": "0xbb50c94228d7b4799b3c20401ef4fc7a1abdabf8ae940240300ec2a63d2e90fb", - "digest": "9qsKsqZojAuvxNn9xZEeMsCgWQou8hERMoUxhSkG9uCR" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "digest": "3ADeRg8mzD8t1wnKMzt3d6GFDTvR3yxfFW9epe1vvDT3" } } ] }, "gasEffects": { "gasObject": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" }, "gasSummary": { "computationCost": "1000000", @@ -437,7 +437,7 @@ Response: { "sequenceNumber": 2 }, "transactionBlock": { - "digest": "AgH8BgGusBWwE1jYfd1btoSW2PU6w45x39F9xHZo3GJt" + "digest": "GxWcY9nHejR9UsnwdRsSiJngGfNvjr3FZP6bsdhnsa4W" } }, "expiration": null @@ -482,12 +482,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "2WYXjpnUP16xACgtrwK93dQUb1f3aLkXAKHmwcnzKhi4", + "digest": "6FHUHJ4fcJseo8a96JdX2DFB4EvRGjh3qQan1J7MpCuQ", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "ADkuCJnIE99Yo9aIJMUSzk8CYbu4wL/4vnbx6au/xbLcbcPzaC0TbXdSnkK4eucH1DH2Kn8J8eCy+41j0n2fQwJ/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "ABEsPsr55btwH5ppdG06I7Qsxc1Gjjn9fnjvXICzjYpwBxaTDNUlEdoaxXH4HE5vRt/84xQIauPltQd/tf5BBgV/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -496,7 +496,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" } ] }, @@ -591,7 +591,7 @@ Response: { "cursor": "eyJpIjozLCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0xbb50c94228d7b4799b3c20401ef4fc7a1abdabf8ae940240300ec2a63d2e90fb", + "package": "0x37bec35b91b29641a80a029561b1b0c0125aca8fbacae1fafb6aecdbad322ec7", "module": "m", "functionName": "new", "typeArguments": [], @@ -615,7 +615,7 @@ Response: { ], "return": [ { - "repr": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1::m::Foo" + "repr": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124::m::Foo" } ] } @@ -642,7 +642,7 @@ Response: { "cursor": "eyJpIjo1LCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0xbb50c94228d7b4799b3c20401ef4fc7a1abdabf8ae940240300ec2a63d2e90fb", + "package": "0x37bec35b91b29641a80a029561b1b0c0125aca8fbacae1fafb6aecdbad322ec7", "module": "m", "functionName": "new", "typeArguments": [], @@ -666,7 +666,7 @@ Response: { ], "return": [ { - "repr": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1::m::Foo" + "repr": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124::m::Foo" } ] } @@ -676,7 +676,7 @@ Response: { "cursor": "eyJpIjo2LCJjIjozfQ", "node": { "__typename": "MoveCallTransaction", - "package": "0xbb50c94228d7b4799b3c20401ef4fc7a1abdabf8ae940240300ec2a63d2e90fb", + "package": "0x37bec35b91b29641a80a029561b1b0c0125aca8fbacae1fafb6aecdbad322ec7", "module": "m", "functionName": "burn", "typeArguments": [], @@ -692,7 +692,7 @@ Response: { "typeParameters": [], "parameters": [ { - "repr": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1::m::Foo" + "repr": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124::m::Foo" } ], "return": [] @@ -744,10 +744,10 @@ Response: { "dependencies": { "nodes": [ { - "digest": "AgH8BgGusBWwE1jYfd1btoSW2PU6w45x39F9xHZo3GJt" + "digest": "Ao8yAFqTMxdyNkqqxLFbLpEGytXrsCNZDoQExUw5cs5h" }, { - "digest": "Ca4s1y2HfEqRZx1BQjxXFJGcWPunaq2yNHH7G7fKk4Hs" + "digest": "GxWcY9nHejR9UsnwdRsSiJngGfNvjr3FZP6bsdhnsa4W" } ] }, @@ -767,19 +767,19 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x1090fa87714553c0f9854ef242a19aa66369c8a8dbae99e5c6dfb5095094386f", + "address": "0x0f7eee83affe92a4234d1ed1fa5fd7eec7f3a5a9dc76052afa4888b0f2b7b644", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x1090fa87714553c0f9854ef242a19aa66369c8a8dbae99e5c6dfb5095094386f", - "digest": "6r8rQxWAASxqD2zK8aqH9EfiHQ3NgDBVbYxMSnG8nSDj", + "address": "0x0f7eee83affe92a4234d1ed1fa5fd7eec7f3a5a9dc76052afa4888b0f2b7b644", + "digest": "BdCiAy7whTM9k4ngPo9ZutQuYSiNgj6NbNyE6YzWHVh3", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x1090fa87714553c0f9854ef242a19aa66369c8a8dbae99e5c6dfb5095094386f", + "id": "0x0f7eee83affe92a4234d1ed1fa5fd7eec7f3a5a9dc76052afa4888b0f2b7b644", "balance": { "value": "2000" } @@ -789,45 +789,45 @@ Response: { } }, { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "idCreated": false, + "address": "0x5bf8f088633fe9b7c59be86f8d6505ab9cb351f64e2ed517279660f6c40b2d85", + "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "digest": "AwMT3FfsuMbK9MrC8j1C6hkNgpMHPcLcL5ohft7xG9cC", + "address": "0x5bf8f088633fe9b7c59be86f8d6505ab9cb351f64e2ed517279660f6c40b2d85", + "digest": "D9pieNPNw7knmDrG5f1DT6wuvF8sujRaL2SAZPtPhuvP", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0xce1db1b45693e4e440c0f8f5ebc785e1aed8a61358864bc6575c38b461889124::m::Foo" }, "json": { - "id": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "balance": { - "value": "299999982082400" - } + "id": "0x5bf8f088633fe9b7c59be86f8d6505ab9cb351f64e2ed517279660f6c40b2d85", + "xs": [ + "42", + "43" + ] } } } } }, { - "address": "0xab4d6ae2184cbeb7110e0ece9e0124e1376d165325e83c16bb7452f5e8bded22", - "idCreated": true, + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "idCreated": false, "idDeleted": false, "outputState": { - "address": "0xab4d6ae2184cbeb7110e0ece9e0124e1376d165325e83c16bb7452f5e8bded22", - "digest": "7MMd2gCVXjGwXoT1nGjrAo6bxGtc3HYwBVFAMRZE3eMo", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "digest": "2JUzZtk9NrMDx11EHJz49Uvo5xXZSpPrsYB6kZk3ZrJb", "asMoveObject": { "contents": { "type": { - "repr": "0x1d8f1cff1b7547b266e35e47be48c0efa301ff077d544bed5622fd9c68056ef1::m::Foo" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0xab4d6ae2184cbeb7110e0ece9e0124e1376d165325e83c16bb7452f5e8bded22", - "xs": [ - "42", - "43" - ] + "id": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "balance": { + "value": "299999982082400" + } } } } @@ -837,7 +837,7 @@ Response: { }, "gasEffects": { "gasObject": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" }, "gasSummary": { "computationCost": "1000000", @@ -854,7 +854,7 @@ Response: { "sequenceNumber": 3 }, "transactionBlock": { - "digest": "2WYXjpnUP16xACgtrwK93dQUb1f3aLkXAKHmwcnzKhi4" + "digest": "6FHUHJ4fcJseo8a96JdX2DFB4EvRGjh3qQan1J7MpCuQ" } }, "expiration": null @@ -881,12 +881,12 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "EJbEqDkN7RC4r4L1pLgDaRtQson6iLErFyhzPiqeLjp9", + "digest": "7AcMmayJWhnyfRvobbc15ZSHsBWW8FUGS4DGwtRZaEnt", "sender": { "address": "0x8cca4e1ce0ba5904cea61df9242da2f7d29e3ef328fb7ec07c086b3bf47ca61a" }, "signatures": [ - "ANoL0Is/qSCuhtKASy5T+CuiJHI7C7SvGbEDyJXJHQjFGHRigrkf3L05lzQZdupY8rgF6gcs8T0Naa28fI2Uigl/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" + "AECFoXv44azsG0HePTy1tNAs4ckzPmchqX/YDWyz+43+w04ERJVz3H5X/YlMlQ/GD9QP+62mWw/j5ghQkm7pewB/UUY663bYjcm3XmNyULIgxJz1t5Z9vxfB+fp8WUoJKA==" ], "gasInput": { "gasSponsor": { @@ -895,7 +895,7 @@ Response: { "gasPayment": { "nodes": [ { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" } ] }, @@ -942,7 +942,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "2WYXjpnUP16xACgtrwK93dQUb1f3aLkXAKHmwcnzKhi4" + "digest": "6FHUHJ4fcJseo8a96JdX2DFB4EvRGjh3qQan1J7MpCuQ" } ] }, @@ -962,19 +962,19 @@ Response: { "objectChanges": { "nodes": [ { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", "idCreated": false, "idDeleted": false, "outputState": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb", - "digest": "HUSswFqFi6NnnmWmBK8c7x4Cbps4Gq9GetTszchYqqjt" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95", + "digest": "5HwjzJLKQe9rU4SkaxGbQLXZVdvXYoVafexq2tpM2Ynr" } } ] }, "gasEffects": { "gasObject": { - "address": "0x5588b330d8a2eab25791479a48c72fc568996bf8cdf4fd3de352c6901c0a31fb" + "address": "0xbf4fd0801cda9bdd4713316aeb2067f40dca9301714ab9ebc1c5f4a77e1baa95" }, "gasSummary": { "computationCost": "1000000", @@ -991,7 +991,7 @@ Response: { "sequenceNumber": 4 }, "transactionBlock": { - "digest": "EJbEqDkN7RC4r4L1pLgDaRtQson6iLErFyhzPiqeLjp9" + "digest": "7AcMmayJWhnyfRvobbc15ZSHsBWW8FUGS4DGwtRZaEnt" } }, "expiration": null diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/random.exp b/crates/iota-graphql-e2e-tests/tests/transactions/random.exp index 275bd73f6cf..1294e4d520e 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/random.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/random.exp @@ -19,7 +19,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000008", "inner": { - "id": "0xeff71a60350f0dfb07d6197495db2804e7fee007f96fbeb2843c9b153fe7443c", + "id": "0xef42157fdeb89d4438fe673bdb790ae751f1132b60341c6413895e75313f9621", "version": "1" } } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp index 0c7ece3e80a..97247f87727 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/alternating.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -124,7 +124,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -135,7 +135,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -163,7 +163,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -191,7 +191,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -219,7 +219,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -230,7 +230,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -258,7 +258,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -286,7 +286,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp index c9e0a9a0332..49d4be9517a 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/both_cursors.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "Gk2mn6MiSwKWaRE66dW97XVto1tzxLFDQ3enrv9Ybzqv", + "digest": "g9de2wXfyXL43YAH9P4JZtNTmoNSL3MG6o5BCLGELBx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -124,7 +124,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "Gk2mn6MiSwKWaRE66dW97XVto1tzxLFDQ3enrv9Ybzqv", + "digest": "g9de2wXfyXL43YAH9P4JZtNTmoNSL3MG6o5BCLGELBx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -135,7 +135,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "6awQiVBXfkr37BbH5qJj6nioXbKeeNKYLp71UYfrPNbp", + "digest": "8nFaUn821BQeHEYJB48D2ditaP7eNnZasV2BcpdP1NkS", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -163,7 +163,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "AsNZ5f3WM33YGoERq1UiHKT4JdDxsjhHFzgbUXfu1Fjp", + "digest": "E4pnRiWGDKRBiiTePyhQwTz46jvtrBSAChKCLSdgyAQb", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp index c3ea27dcc1b..052d7189640 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/first.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "Gk2mn6MiSwKWaRE66dW97XVto1tzxLFDQ3enrv9Ybzqv", + "digest": "g9de2wXfyXL43YAH9P4JZtNTmoNSL3MG6o5BCLGELBx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "6awQiVBXfkr37BbH5qJj6nioXbKeeNKYLp71UYfrPNbp", + "digest": "8nFaUn821BQeHEYJB48D2ditaP7eNnZasV2BcpdP1NkS", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9V6jsMK9XLyNRZP2FibbzyRKWEcY4Tt65h8agoWzHRZP", + "digest": "G9rZB2AS1UvbTy7kUXX17vX2JNRXvnBP37EcC1cBbyJx", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "H8KAyZZPYaCek4Re3qMhEEnU3y4B9zY7Lp37wvLEWEGb", + "digest": "HKr6Um13cPQE2cna5xDD7cYdtpxKZFPSC9NTuKefMdj", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -168,7 +168,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -196,7 +196,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "Gk2mn6MiSwKWaRE66dW97XVto1tzxLFDQ3enrv9Ybzqv", + "digest": "g9de2wXfyXL43YAH9P4JZtNTmoNSL3MG6o5BCLGELBx", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -224,7 +224,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "6awQiVBXfkr37BbH5qJj6nioXbKeeNKYLp71UYfrPNbp", + "digest": "8nFaUn821BQeHEYJB48D2ditaP7eNnZasV2BcpdP1NkS", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -268,7 +268,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9V6jsMK9XLyNRZP2FibbzyRKWEcY4Tt65h8agoWzHRZP", + "digest": "G9rZB2AS1UvbTy7kUXX17vX2JNRXvnBP37EcC1cBbyJx", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "H8KAyZZPYaCek4Re3qMhEEnU3y4B9zY7Lp37wvLEWEGb", + "digest": "HKr6Um13cPQE2cna5xDD7cYdtpxKZFPSC9NTuKefMdj", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -333,7 +333,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "9V6jsMK9XLyNRZP2FibbzyRKWEcY4Tt65h8agoWzHRZP", + "digest": "G9rZB2AS1UvbTy7kUXX17vX2JNRXvnBP37EcC1cBbyJx", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -344,7 +344,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "H8KAyZZPYaCek4Re3qMhEEnU3y4B9zY7Lp37wvLEWEGb", + "digest": "HKr6Um13cPQE2cna5xDD7cYdtpxKZFPSC9NTuKefMdj", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp index 3917861451d..df0fb13d8de 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/equal/last.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "Fz84MVS4TX8jF6Wi77gnsBPwTMtKyzAKYkgaeY1MKGiu", + "digest": "258doz3t7Tbucgg72w5BYsxAXedyofTmfmoxshZ58DLE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "3gLQv5PABHiHhejxdMS7Them5adUNu4mXN4eGr8XMCEt", + "digest": "7oM8nZHDkLHWBaKiadaqr7dSfBJ3ktECNcN3LHDsPbjR", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "23jNXYb2S5zUPRBnyCVij3g8N63QKfjPZKAk9tYvg9Js", + "digest": "CaNuSnU88qrQ34FDQEaFigBg7mUKqBUazbyn7iS6eWZp", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -168,7 +168,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "23jNXYb2S5zUPRBnyCVij3g8N63QKfjPZKAk9tYvg9Js", + "digest": "CaNuSnU88qrQ34FDQEaFigBg7mUKqBUazbyn7iS6eWZp", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -196,7 +196,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "3gLQv5PABHiHhejxdMS7Them5adUNu4mXN4eGr8XMCEt", + "digest": "7oM8nZHDkLHWBaKiadaqr7dSfBJ3ktECNcN3LHDsPbjR", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -224,7 +224,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "Fz84MVS4TX8jF6Wi77gnsBPwTMtKyzAKYkgaeY1MKGiu", + "digest": "258doz3t7Tbucgg72w5BYsxAXedyofTmfmoxshZ58DLE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -268,7 +268,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp index e7048205795..32785936978 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/first.exp @@ -164,7 +164,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -175,7 +175,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5emM1KVTcfuVTqbdsPAixpo5iYy5Mmw7rTAPwJHK3hfP", + "digest": "9hfQDYYeDimv2iBCHLz2CoW1PsnmFs2Z3xQ2RnSneB5k", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -186,7 +186,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "4KZdypaLVFszpbFKsSh5iXoEQ1mV5TttqKAhaCx2XViA", + "digest": "EYnndyd9P4KDjsKpXKDmL8UDT63BLTk4QRY57bViNKoy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -197,7 +197,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxOCwiaSI6ZmFsc2V9", "node": { - "digest": "5TFPabtfYgxhCT7d254rxdEg3XpUMaKGZ16W5r1yf3t2", + "digest": "8wupkDnWvMVQj952oeFesB9TkvsT29dnqd6v99rgDYUZ", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -208,7 +208,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "9P3GrKJpBJPXALT9QtxpsF4WrMjSru2QX1scXTboTG6H", + "digest": "9G4fVeLrRuKqtRq2XKULBNGuXbBAq81VVi7pLVV8WSjH", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -236,7 +236,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -264,7 +264,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5emM1KVTcfuVTqbdsPAixpo5iYy5Mmw7rTAPwJHK3hfP", + "digest": "9hfQDYYeDimv2iBCHLz2CoW1PsnmFs2Z3xQ2RnSneB5k", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -308,7 +308,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "4KZdypaLVFszpbFKsSh5iXoEQ1mV5TttqKAhaCx2XViA", + "digest": "EYnndyd9P4KDjsKpXKDmL8UDT63BLTk4QRY57bViNKoy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -336,7 +336,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxOCwiaSI6ZmFsc2V9", "node": { - "digest": "5TFPabtfYgxhCT7d254rxdEg3XpUMaKGZ16W5r1yf3t2", + "digest": "8wupkDnWvMVQj952oeFesB9TkvsT29dnqd6v99rgDYUZ", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -364,7 +364,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "9P3GrKJpBJPXALT9QtxpsF4WrMjSru2QX1scXTboTG6H", + "digest": "9G4fVeLrRuKqtRq2XKULBNGuXbBAq81VVi7pLVV8WSjH", "effects": { "checkpoint": { "sequenceNumber": 5 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp index 33063e79c4b..6b34c9b9c3d 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/ge_page/last.exp @@ -164,7 +164,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -175,7 +175,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5emM1KVTcfuVTqbdsPAixpo5iYy5Mmw7rTAPwJHK3hfP", + "digest": "9hfQDYYeDimv2iBCHLz2CoW1PsnmFs2Z3xQ2RnSneB5k", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -186,7 +186,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "4KZdypaLVFszpbFKsSh5iXoEQ1mV5TttqKAhaCx2XViA", + "digest": "EYnndyd9P4KDjsKpXKDmL8UDT63BLTk4QRY57bViNKoy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -197,7 +197,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "4v2Kr8JpC1gapTNqCWzb8xMLgttat7TYkUeqU2SH7uFF", + "digest": "FqCdNkJe4WuFVYK6NQYUU2A5N3z5noD2gSRxSNNxSEqy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -225,7 +225,7 @@ Response: { { "cursor": "eyJjIjo1LCJ0IjoyMSwiaSI6ZmFsc2V9", "node": { - "digest": "4v2Kr8JpC1gapTNqCWzb8xMLgttat7TYkUeqU2SH7uFF", + "digest": "FqCdNkJe4WuFVYK6NQYUU2A5N3z5noD2gSRxSNNxSEqy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -253,7 +253,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoxNywiaSI6ZmFsc2V9", "node": { - "digest": "4KZdypaLVFszpbFKsSh5iXoEQ1mV5TttqKAhaCx2XViA", + "digest": "EYnndyd9P4KDjsKpXKDmL8UDT63BLTk4QRY57bViNKoy", "effects": { "checkpoint": { "sequenceNumber": 5 @@ -313,7 +313,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "5emM1KVTcfuVTqbdsPAixpo5iYy5Mmw7rTAPwJHK3hfP", + "digest": "9hfQDYYeDimv2iBCHLz2CoW1PsnmFs2Z3xQ2RnSneB5k", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -341,7 +341,7 @@ Response: { { "cursor": "eyJjIjo3LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp index b3ba63e8df5..f7e044ed728 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/first.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "4X34W4QU7n7JCUEqdfwziv5Qq5djmR3jcGZfjhSkXwj2", + "digest": "CGPw5KrYiJiDyZa24BzvHMyJvUBhHWP6F1sbWCjwozLS", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "8Jw58Jdr5uZTjhxmGPz9osQ6vZDY9dCZpqtUHSrJvvhj", + "digest": "GvfWZNUzEew3a5RhE7rGKjH3L4gHoa4k6m1Nva96E6bp", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -151,7 +151,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "AwWpjWNvy45DgiXspMC23gN729QDnukv2DV3gy1wauT4", + "digest": "EUTZPzJudTHwpPwDeDmB2y9HCuhatB8ZjWLQUFiUuhQE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -162,7 +162,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -173,7 +173,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "3w7HnpjLC7JpPiBJRKfxW54Sc6Kbm8NgZJg9zxtHW99x", + "digest": "3NWg9dFnkdCymgzztThS3BvSa4HRJ3NEUyab8WcuYYJV", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -184,7 +184,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -195,7 +195,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "FQwNLf2bx29xVeShDyueB7QVyQz1hnMxtLNG51pbFix5", + "digest": "AiHnbX3T3nUETNFEZKiFnuukuh8v8XzBfjqNfqTMbcWK", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -223,7 +223,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -251,7 +251,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -290,7 +290,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -318,7 +318,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp index 50f3c894caa..76b54b87d5a 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/le_page/last.exp @@ -96,7 +96,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -107,7 +107,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjozLCJpIjpmYWxzZX0", "node": { - "digest": "4X34W4QU7n7JCUEqdfwziv5Qq5djmR3jcGZfjhSkXwj2", + "digest": "CGPw5KrYiJiDyZa24BzvHMyJvUBhHWP6F1sbWCjwozLS", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -129,7 +129,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo1LCJpIjpmYWxzZX0", "node": { - "digest": "8Jw58Jdr5uZTjhxmGPz9osQ6vZDY9dCZpqtUHSrJvvhj", + "digest": "GvfWZNUzEew3a5RhE7rGKjH3L4gHoa4k6m1Nva96E6bp", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -140,7 +140,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -151,7 +151,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo3LCJpIjpmYWxzZX0", "node": { - "digest": "AwWpjWNvy45DgiXspMC23gN729QDnukv2DV3gy1wauT4", + "digest": "EUTZPzJudTHwpPwDeDmB2y9HCuhatB8ZjWLQUFiUuhQE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -162,7 +162,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -173,7 +173,7 @@ Response: { { "cursor": "eyJjIjozLCJ0Ijo5LCJpIjpmYWxzZX0", "node": { - "digest": "3w7HnpjLC7JpPiBJRKfxW54Sc6Kbm8NgZJg9zxtHW99x", + "digest": "3NWg9dFnkdCymgzztThS3BvSa4HRJ3NEUyab8WcuYYJV", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -184,7 +184,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -195,7 +195,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMSwiaSI6ZmFsc2V9", "node": { - "digest": "FQwNLf2bx29xVeShDyueB7QVyQz1hnMxtLNG51pbFix5", + "digest": "AiHnbX3T3nUETNFEZKiFnuukuh8v8XzBfjqNfqTMbcWK", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -223,7 +223,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoxMCwiaSI6ZmFsc2V9", "node": { - "digest": "DhPLAJFUkVgDj7VzHnR6xKPdNNW6pdByRejVkhjiFkxe", + "digest": "EP6Gr5u8msQHfb7RxBPoQTi3d6DTmwsZ2GRY6GfAj3YA", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -251,7 +251,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo4LCJpIjpmYWxzZX0", "node": { - "digest": "7uq1QwFuZfFibdaABeeoRVHtGSSkjVcDhtFkapr3EVjp", + "digest": "29eV4ttEPsEKaMV5w2CQQNy7CYfPJ3htyJJsdPxbn8zE", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -279,7 +279,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo2LCJpIjpmYWxzZX0", "node": { - "digest": "2bivHL99KmEH5bnM644vM1kJAALCgm4qTeRm6AaegLY2", + "digest": "7q8XWECsrjrYfBLVirtM1TbbYGbwuN7vYZt5Zq55DZ6c", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -307,7 +307,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0Ijo0LCJpIjpmYWxzZX0", "node": { - "digest": "iHSF6gKzVc3Zzj8UTFHo7fXvF6D5j5BqKaJ2w9xixsN", + "digest": "Dnzdyd3vDun537bAMz7DvxKG8ybVFRmvJyeRBBDqVvMy", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -335,7 +335,7 @@ Response: { { "cursor": "eyJjIjo0LCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "ByxtJgvDELx1HXpRVU9PM9jzDHSe4Ffyh1sDF7emKNkH", + "digest": "GWwdz5zBA1yPYJf6h1yxtZ9QGLQaUcrr4jWK1ZUG2VM6", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp index 41a716db47f..d83fd0b488f 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/scan_limit/require.exp @@ -94,7 +94,7 @@ Response: { }, "nodes": [ { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -102,7 +102,7 @@ Response: { } }, { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -110,7 +110,7 @@ Response: { } }, { - "digest": "J5TzJqBopvv8AEmUxf6bk54RYBkse1dRXffiw77BSWUP", + "digest": "2KwcwgpuDJzFRN3d6tsACZk8rxpELMkkdraoA1C9HtX8", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -118,7 +118,7 @@ Response: { } }, { - "digest": "CEfMtnw1KxwGv3RCJWL2X38p9PaPyHHEdGBvXLJQa5gx", + "digest": "J6n5bKEKVG2fTQnPfwYEx519PVm6cVRaJ555EL2n4VFH", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -126,7 +126,7 @@ Response: { } }, { - "digest": "HkWA3sZ33dVTGdjG8sRbuoYceqC8GY2HhL2i5d4yrD6U", + "digest": "5k29tRfQ68Fg87G7vjq4nR7cuXjguUTZDvaQZ4Yriv6d", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -134,7 +134,7 @@ Response: { } }, { - "digest": "28YNVNZsP2edJ6PvbuAPJ4dbCBg8oAgNea3Nf23BjudJ", + "digest": "H5ksb5gvCnf6CgJfwymnrMkGGfDfTcCUtUdb4B5NWCAn", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -142,7 +142,7 @@ Response: { } }, { - "digest": "GuqxX5BWTTVxYKf89NmjSMP92fZR85eMcmcx3ru8Tfm3", + "digest": "5akTvsZxyaD8qPy4USdysxAH4SKoDjGJmshRpDyQip98", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -150,7 +150,7 @@ Response: { } }, { - "digest": "BnEDqYveFTrSUCM5FFBwo3m27QDsW1mDsNkEjc2cN9NH", + "digest": "6Eg258qqgGs9AUKnJFUFJQSu4Uk2XCJZZu8gVga3XM3T", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -158,7 +158,7 @@ Response: { } }, { - "digest": "CwXj6FRoCyGEuJmm2SdSTJU1TWpcoDns1nsSGAWaMJke", + "digest": "426m3vv35dULKjnid7roTUQjYs3PZ4hrs14f1AW1Rrkg", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -166,7 +166,7 @@ Response: { } }, { - "digest": "8k6GFRmxfkFeS12mwhZyoo5G3oAcQqVLLYzxM6sJHGRT", + "digest": "8BwgFuaepUNC7fQbsGds9zrSFKRiRUAVn3ws5vuha5hf", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -191,7 +191,7 @@ Response: { }, "nodes": [ { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -199,7 +199,7 @@ Response: { } }, { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -207,7 +207,7 @@ Response: { } }, { - "digest": "J5TzJqBopvv8AEmUxf6bk54RYBkse1dRXffiw77BSWUP", + "digest": "2KwcwgpuDJzFRN3d6tsACZk8rxpELMkkdraoA1C9HtX8", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -215,7 +215,7 @@ Response: { } }, { - "digest": "CEfMtnw1KxwGv3RCJWL2X38p9PaPyHHEdGBvXLJQa5gx", + "digest": "J6n5bKEKVG2fTQnPfwYEx519PVm6cVRaJ555EL2n4VFH", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -223,7 +223,7 @@ Response: { } }, { - "digest": "HkWA3sZ33dVTGdjG8sRbuoYceqC8GY2HhL2i5d4yrD6U", + "digest": "5k29tRfQ68Fg87G7vjq4nR7cuXjguUTZDvaQZ4Yriv6d", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -231,7 +231,7 @@ Response: { } }, { - "digest": "28YNVNZsP2edJ6PvbuAPJ4dbCBg8oAgNea3Nf23BjudJ", + "digest": "H5ksb5gvCnf6CgJfwymnrMkGGfDfTcCUtUdb4B5NWCAn", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -239,7 +239,7 @@ Response: { } }, { - "digest": "GuqxX5BWTTVxYKf89NmjSMP92fZR85eMcmcx3ru8Tfm3", + "digest": "5akTvsZxyaD8qPy4USdysxAH4SKoDjGJmshRpDyQip98", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -247,7 +247,7 @@ Response: { } }, { - "digest": "BnEDqYveFTrSUCM5FFBwo3m27QDsW1mDsNkEjc2cN9NH", + "digest": "6Eg258qqgGs9AUKnJFUFJQSu4Uk2XCJZZu8gVga3XM3T", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -255,7 +255,7 @@ Response: { } }, { - "digest": "CwXj6FRoCyGEuJmm2SdSTJU1TWpcoDns1nsSGAWaMJke", + "digest": "426m3vv35dULKjnid7roTUQjYs3PZ4hrs14f1AW1Rrkg", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -263,7 +263,7 @@ Response: { } }, { - "digest": "8k6GFRmxfkFeS12mwhZyoo5G3oAcQqVLLYzxM6sJHGRT", + "digest": "8BwgFuaepUNC7fQbsGds9zrSFKRiRUAVn3ws5vuha5hf", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -311,7 +311,7 @@ Response: { }, "nodes": [ { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -319,7 +319,7 @@ Response: { } }, { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -327,7 +327,7 @@ Response: { } }, { - "digest": "J5TzJqBopvv8AEmUxf6bk54RYBkse1dRXffiw77BSWUP", + "digest": "2KwcwgpuDJzFRN3d6tsACZk8rxpELMkkdraoA1C9HtX8", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -335,7 +335,7 @@ Response: { } }, { - "digest": "CEfMtnw1KxwGv3RCJWL2X38p9PaPyHHEdGBvXLJQa5gx", + "digest": "J6n5bKEKVG2fTQnPfwYEx519PVm6cVRaJ555EL2n4VFH", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -343,7 +343,7 @@ Response: { } }, { - "digest": "HkWA3sZ33dVTGdjG8sRbuoYceqC8GY2HhL2i5d4yrD6U", + "digest": "5k29tRfQ68Fg87G7vjq4nR7cuXjguUTZDvaQZ4Yriv6d", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -351,7 +351,7 @@ Response: { } }, { - "digest": "28YNVNZsP2edJ6PvbuAPJ4dbCBg8oAgNea3Nf23BjudJ", + "digest": "H5ksb5gvCnf6CgJfwymnrMkGGfDfTcCUtUdb4B5NWCAn", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -359,7 +359,7 @@ Response: { } }, { - "digest": "GuqxX5BWTTVxYKf89NmjSMP92fZR85eMcmcx3ru8Tfm3", + "digest": "5akTvsZxyaD8qPy4USdysxAH4SKoDjGJmshRpDyQip98", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -367,7 +367,7 @@ Response: { } }, { - "digest": "BnEDqYveFTrSUCM5FFBwo3m27QDsW1mDsNkEjc2cN9NH", + "digest": "6Eg258qqgGs9AUKnJFUFJQSu4Uk2XCJZZu8gVga3XM3T", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -375,7 +375,7 @@ Response: { } }, { - "digest": "CwXj6FRoCyGEuJmm2SdSTJU1TWpcoDns1nsSGAWaMJke", + "digest": "426m3vv35dULKjnid7roTUQjYs3PZ4hrs14f1AW1Rrkg", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -383,7 +383,7 @@ Response: { } }, { - "digest": "8k6GFRmxfkFeS12mwhZyoo5G3oAcQqVLLYzxM6sJHGRT", + "digest": "8BwgFuaepUNC7fQbsGds9zrSFKRiRUAVn3ws5vuha5hf", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -431,7 +431,7 @@ Response: { }, "nodes": [ { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -439,7 +439,7 @@ Response: { } }, { - "digest": "AEdxQbygydX7DkuXCwpL2A7mSk7MvDhAvB3qnXePcsDA", + "digest": "65DSnzKiePBU187otXJCRQxvfdiF7zow5o9CgKZJEM2p", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -447,7 +447,7 @@ Response: { } }, { - "digest": "J5TzJqBopvv8AEmUxf6bk54RYBkse1dRXffiw77BSWUP", + "digest": "2KwcwgpuDJzFRN3d6tsACZk8rxpELMkkdraoA1C9HtX8", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -455,7 +455,7 @@ Response: { } }, { - "digest": "CEfMtnw1KxwGv3RCJWL2X38p9PaPyHHEdGBvXLJQa5gx", + "digest": "J6n5bKEKVG2fTQnPfwYEx519PVm6cVRaJ555EL2n4VFH", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -463,7 +463,7 @@ Response: { } }, { - "digest": "HkWA3sZ33dVTGdjG8sRbuoYceqC8GY2HhL2i5d4yrD6U", + "digest": "5k29tRfQ68Fg87G7vjq4nR7cuXjguUTZDvaQZ4Yriv6d", "effects": { "checkpoint": { "sequenceNumber": 2 @@ -471,7 +471,7 @@ Response: { } }, { - "digest": "28YNVNZsP2edJ6PvbuAPJ4dbCBg8oAgNea3Nf23BjudJ", + "digest": "H5ksb5gvCnf6CgJfwymnrMkGGfDfTcCUtUdb4B5NWCAn", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -479,7 +479,7 @@ Response: { } }, { - "digest": "GuqxX5BWTTVxYKf89NmjSMP92fZR85eMcmcx3ru8Tfm3", + "digest": "5akTvsZxyaD8qPy4USdysxAH4SKoDjGJmshRpDyQip98", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -487,7 +487,7 @@ Response: { } }, { - "digest": "BnEDqYveFTrSUCM5FFBwo3m27QDsW1mDsNkEjc2cN9NH", + "digest": "6Eg258qqgGs9AUKnJFUFJQSu4Uk2XCJZZu8gVga3XM3T", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -495,7 +495,7 @@ Response: { } }, { - "digest": "CwXj6FRoCyGEuJmm2SdSTJU1TWpcoDns1nsSGAWaMJke", + "digest": "426m3vv35dULKjnid7roTUQjYs3PZ4hrs14f1AW1Rrkg", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -503,7 +503,7 @@ Response: { } }, { - "digest": "8k6GFRmxfkFeS12mwhZyoo5G3oAcQqVLLYzxM6sJHGRT", + "digest": "8BwgFuaepUNC7fQbsGds9zrSFKRiRUAVn3ws5vuha5hf", "effects": { "checkpoint": { "sequenceNumber": 3 @@ -592,7 +592,7 @@ Response: { { "cursor": "eyJjIjozLCJ0IjoyLCJpIjpmYWxzZX0", "node": { - "digest": "AQZYsKKQU62BRJzDv4KnKqV31uFtGJfUhWcZKpYJoaZJ", + "digest": "DnEG8FVjCxcuvDeaqRbGDepf4dAFHEUPUfuKXoBgNVPq", "effects": { "checkpoint": { "sequenceNumber": 2 diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp b/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp index 71b1a673a30..204726d760a 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/shared.exp @@ -42,7 +42,7 @@ Response: { "transactions": { "nodes": [ { - "package": "0xaada297702741254a16048a46191b6d73e697ece387343fa7d57e93ccbe3a6fe", + "package": "0x6e0ed5e54da9e05503efb61038f2319207cefeffe96761bfe60c2c7c22b6d4a1", "module": "m", "functionName": "get" } @@ -55,17 +55,17 @@ Response: { "nodes": [ { "__typename": "SharedObjectRead", - "address": "0x003e9261fcd0f64b951a21ae77f470803b0e801a350e7a8934165b2201052f1c", + "address": "0x6234c7f86f2b7a54b6eba66e47d1a143ee6af79278e49cc3f16af445d83cface", "version": 2, - "digest": "GfMkk6R7jooB9pyD6kUGHEpK66By21gpKrTAPZxkFSMS", + "digest": "8aQDNrFKDnyR8kpHpvkgrTPVG2jp3zrhjCfnbdkjUZPh", "object": { "asMoveObject": { "contents": { "type": { - "repr": "0xaada297702741254a16048a46191b6d73e697ece387343fa7d57e93ccbe3a6fe::m::Foo" + "repr": "0x6e0ed5e54da9e05503efb61038f2319207cefeffe96761bfe60c2c7c22b6d4a1::m::Foo" }, "json": { - "id": "0x003e9261fcd0f64b951a21ae77f470803b0e801a350e7a8934165b2201052f1c", + "id": "0x6234c7f86f2b7a54b6eba66e47d1a143ee6af79278e49cc3f16af445d83cface", "x": "0" } } @@ -82,7 +82,7 @@ Response: { "transactions": { "nodes": [ { - "package": "0xaada297702741254a16048a46191b6d73e697ece387343fa7d57e93ccbe3a6fe", + "package": "0x6e0ed5e54da9e05503efb61038f2319207cefeffe96761bfe60c2c7c22b6d4a1", "module": "m", "functionName": "inc" } @@ -102,12 +102,12 @@ Response: { "transactions": { "nodes": [ { - "package": "0xaada297702741254a16048a46191b6d73e697ece387343fa7d57e93ccbe3a6fe", + "package": "0x6e0ed5e54da9e05503efb61038f2319207cefeffe96761bfe60c2c7c22b6d4a1", "module": "m", "functionName": "get" }, { - "package": "0xaada297702741254a16048a46191b6d73e697ece387343fa7d57e93ccbe3a6fe", + "package": "0x6e0ed5e54da9e05503efb61038f2319207cefeffe96761bfe60c2c7c22b6d4a1", "module": "m", "functionName": "inc" } diff --git a/crates/iota-graphql-e2e-tests/tests/transactions/system.exp b/crates/iota-graphql-e2e-tests/tests/transactions/system.exp index afe2c45bad0..84f4b210b98 100644 --- a/crates/iota-graphql-e2e-tests/tests/transactions/system.exp +++ b/crates/iota-graphql-e2e-tests/tests/transactions/system.exp @@ -7,7 +7,7 @@ Response: { "transactionBlocks": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV", + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj", "sender": null, "signatures": [ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" @@ -407,7 +407,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000008", "inner": { - "id": "0xeff71a60350f0dfb07d6197495db2804e7fee007f96fbeb2843c9b153fe7443c", + "id": "0xef42157fdeb89d4438fe673bdb790ae751f1132b60341c6413895e75313f9621", "version": "1" } } @@ -489,7 +489,7 @@ Response: { "json": { "id": "0x0000000000000000000000000000000000000000000000000000000000000403", "lists": { - "id": "0xe2c5af93c4d2edbd6e26ef598a34ea99b26a8c158db803486334b172ec18b135", + "id": "0x5182a7b37339bcad67655ec3d22fb3c013d9e68765daafa4bb57c27a8f968afa", "size": "0" } } @@ -586,19 +586,15 @@ Response: { { "cursor": "eyJpIjo5LCJjIjowfQ", "node": { - "address": "0x0ca370d53d314d37a60c552eaa74bad5de28b2b04788a65f9baf5db044f25c49", + "address": "0x1d374b2388178241deedb7e6fc1727e27f25c10d394329b614486faf0bf9cf14", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::validator_cap::UnverifiedValidatorOperationCap" }, "json": { - "id": "0x0ca370d53d314d37a60c552eaa74bad5de28b2b04788a65f9baf5db044f25c49", - "name": "0", - "value": { - "iota_amount": "0", - "pool_token_amount": "0" - } + "id": "0x1d374b2388178241deedb7e6fc1727e27f25c10d394329b614486faf0bf9cf14", + "authorizer_validator_address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" } } }, @@ -608,16 +604,16 @@ Response: { { "cursor": "eyJpIjoxMCwiYyI6MH0", "node": { - "address": "0x19ab66c40622ca2999a2308fb9111c1bb547716a10680dcaabaced9c11573641", + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0x19ab66c40622ca2999a2308fb9111c1bb547716a10680dcaabaced9c11573641", + "id": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "balance": { - "value": "30000000000000000" + "value": "300000000000000" } } } @@ -627,6 +623,52 @@ Response: { }, { "cursor": "eyJpIjoxMSwiYyI6MH0", + "node": { + "address": "0x35ac025460b42e6d85fee7a6e37b0200affce71d8b0c35cbc43a03aa8b6c774c", + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + }, + "json": { + "id": "0x35ac025460b42e6d85fee7a6e37b0200affce71d8b0c35cbc43a03aa8b6c774c", + "decimals": 9, + "name": "IOTA", + "symbol": "IOTA", + "description": "The main (gas)token of the IOTA Network.", + "icon_url": { + "url": "https://iota.org/logo.png" + } + } + } + }, + "asMovePackage": null + } + }, + { + "cursor": "eyJpIjoxMiwiYyI6MH0", + "node": { + "address": "0x52ca6f77a3f1f997e48af6428033ab7bbd0e5db62b3caf940c28f535d8cedd51", + "asMoveObject": { + "contents": { + "type": { + "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::StakedIota" + }, + "json": { + "id": "0x52ca6f77a3f1f997e48af6428033ab7bbd0e5db62b3caf940c28f535d8cedd51", + "pool_id": "0x5ab6a4146174e25a85e8b04f08064d23589cb2ab36584882ac869d14cee2fd72", + "stake_activation_epoch": "0", + "principal": { + "value": "1500000000000000" + } + } + } + }, + "asMovePackage": null + } + }, + { + "cursor": "eyJpIjoxMywiYyI6MH0", "node": { "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", "asMoveObject": { @@ -664,7 +706,7 @@ Response: { } }, { - "cursor": "eyJpIjoxMiwiYyI6MH0", + "cursor": "eyJpIjoxNCwiYyI6MH0", "node": { "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", "asMoveObject": { @@ -681,7 +723,7 @@ Response: { "system_state_version": "1", "iota_treasury_cap": { "inner": { - "id": "0xd87d1c70d3f36d3912eeafb2b89de980c025f8ac27304970d40d967a8f644c51", + "id": "0x81ea4dfdaddc4ededde997f93a1a7e3e7f98695f1c5b7c7cdaeb5a38fb9fb30d", "total_supply": { "value": "31800000000000000" } @@ -919,7 +961,7 @@ Response: { }, "net_address": "/ip4/127.0.0.1/tcp/8000/http", "p2p_address": "/ip4/127.0.0.1/udp/8001/http", - "primary_address": "/ip4/127.0.0.1/udp/8004/http", + "primary_address": "/ip4/127.0.0.1/udp/8003/http", "next_epoch_authority_pubkey_bytes": null, "next_epoch_proof_of_possession": null, "next_epoch_network_pubkey_bytes": null, @@ -928,15 +970,15 @@ Response: { "next_epoch_p2p_address": null, "next_epoch_primary_address": null, "extra_fields": { - "id": "0x7f2747bc0e903a3ab338e9d23700c47a23bfc548a2c7dffe73174920651b1570", + "id": "0x06ddfd7b8ab4a0891ebc62c0b771bdec2b59af258f3b2a12de0d84f7d8a37699", "size": "0" } }, "voting_power": "10000", - "operation_cap_id": "0xc9544753fce6181d2193fad8c4d64919a70dc7dde57446ee716fb24c414594f0", + "operation_cap_id": "0x1d374b2388178241deedb7e6fc1727e27f25c10d394329b614486faf0bf9cf14", "gas_price": "1000", "staking_pool": { - "id": "0x16b972ce1279bef7cacd98dfcf1fd772372691c3cb6e76223110427ced478bb1", + "id": "0x5ab6a4146174e25a85e8b04f08064d23589cb2ab36584882ac869d14cee2fd72", "activation_epoch": "0", "deactivation_epoch": null, "iota_balance": "1500000000000000", @@ -945,14 +987,14 @@ Response: { }, "pool_token_balance": "1500000000000000", "exchange_rates": { - "id": "0x9a6e4b74d4ed125463ed75ec0b57d06294db02ca3c1dd1d6eb237d50cc04203f", + "id": "0xca03c453f01fbd87ec2c63fb95aeca4faa3c4ff8483baba6fb78ab9fc1c69faf", "size": "1" }, "pending_stake": "0", "pending_total_iota_withdraw": "0", "pending_pool_token_withdraw": "0", "extra_fields": { - "id": "0xdb91a1ca84cb97608d2039ec37d9c285c222bf088a5ba67944854df85552b4f4", + "id": "0x44bd0c23568c02944afed13eda779d56eec115bd99ba7bbb96255e1cb1c4178a", "size": "0" } }, @@ -961,35 +1003,35 @@ Response: { "next_epoch_gas_price": "1000", "next_epoch_commission_rate": "200", "extra_fields": { - "id": "0xaf820673e6cf9a525396c41b4d08b74f0eb1fa72f293a1eddbf5af9ab789352a", + "id": "0x6129e687b20a8f484d15b93b327ddb26de5dcbe992ac83f3561b68b65a8b2617", "size": "0" } } ], "pending_active_validators": { "contents": { - "id": "0x4e0f38d679fe3b1a282f518dd46894ef8d39888c1134f08270617049720e2c4a", + "id": "0x1c918f720eb4a65f37367e78da108374c50083e4485ba07e7dad7859d049b8f8", "size": "0" } }, "pending_removals": [], "staking_pool_mappings": { - "id": "0x1f972b0e26bc450e0dd88c8e98eec553fe754c85ae8be5e5e04b63b79ee9ea42", + "id": "0x0f72bbffc7fd877cf2f57ac6e1e78353be0d0bd6a38d1a184061ef0861bdc4ff", "size": "1" }, "inactive_validators": { - "id": "0xe5a457d193b836a33cc1270724d4e557b05bc0dca26461fac76d0ef72cec306d", + "id": "0xe8955a2930d4793cf5e68afffd5c9f27a68ff151c01feb49c77e67ce8a31593e", "size": "0" }, "validator_candidates": { - "id": "0x2e35182d0661c6dc3d609229621a1dee7db613dd593cc2f692320b4cfa67bc77", + "id": "0xe840df5cacaed83166baeecadacf2316c3979d7155ecbcf0299ab9e1c0b0d532", "size": "0" }, "at_risk_validators": { "contents": [] }, "extra_fields": { - "id": "0xde53e411b6ee688b1ee9d3ce9bff0afc82361ecf78294025b3ff6da25f9b8cbe", + "id": "0x5f98212b9cdb9cba1d9ba97f4f52bfe1997198e4b6539c4fa2e3f5fafd84ad4b", "size": "0" } }, @@ -1010,7 +1052,7 @@ Response: { "validator_very_low_stake_threshold": "1000000000000000", "validator_low_stake_grace_period": "7", "extra_fields": { - "id": "0xb07aa05e7324b4d49ba5e245c07c8103bd4d11aef35eb02b8533c1bc86617885", + "id": "0xb8b3e8baec894e61f739d0f15b9fd88b1af0d00a90c93bfdec900fd1391dde11", "size": "0" } }, @@ -1029,7 +1071,7 @@ Response: { "safe_mode_non_refundable_storage_fee": "0", "epoch_start_timestamp_ms": "0", "extra_fields": { - "id": "0x9dd139455d75b077cd130a346bc30de90710fa9b24ec892d07f56215c1ac27b3", + "id": "0xef00817bc6382ce2415ad92e42b2f84feea5a99ea5c531f47f8ff2a7b615a6ec", "size": "0" } } @@ -1039,62 +1081,23 @@ Response: { "asMovePackage": null } }, - { - "cursor": "eyJpIjoxMywiYyI6MH0", - "node": { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" - }, - "json": { - "id": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", - "balance": { - "value": "300000000000000" - } - } - } - }, - "asMovePackage": null - } - }, - { - "cursor": "eyJpIjoxNCwiYyI6MH0", - "node": { - "address": "0x84c9a12296be175e98b5364aa5b7a41b47787def054ff96d9ad6138815ffd31c", - "asMoveObject": { - "contents": { - "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" - }, - "json": { - "id": "0x84c9a12296be175e98b5364aa5b7a41b47787def054ff96d9ad6138815ffd31c", - "name": "0x16b972ce1279bef7cacd98dfcf1fd772372691c3cb6e76223110427ced478bb1", - "value": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" - } - } - }, - "asMovePackage": null - } - }, { "cursor": "eyJpIjoxNSwiYyI6MH0", "node": { - "address": "0x92e176f0a5af3b6158b54b3c86a024490f609b4bb469c4f453b2c3d81682f400", + "address": "0x7a96da86a0ce7795c9e036e93db26dc4c6a3d87d2bb59396c25e261cf8c985ae", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::CoinMetadata<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" }, "json": { - "id": "0x92e176f0a5af3b6158b54b3c86a024490f609b4bb469c4f453b2c3d81682f400", - "decimals": 9, - "name": "IOTA", - "symbol": "IOTA", - "description": "The main (gas)token of the IOTA Network.", - "icon_url": { - "url": "https://iota.org/logo.png" + "id": "0x7a96da86a0ce7795c9e036e93db26dc4c6a3d87d2bb59396c25e261cf8c985ae", + "name": "1", + "value": { + "version": "1", + "epoch": "0", + "randomness_round": "0", + "random_bytes": [] } } } @@ -1105,21 +1108,16 @@ Response: { { "cursor": "eyJpIjoxNiwiYyI6MH0", "node": { - "address": "0xbd145529aeb51f47417e9e41eaa1a05bab36796cf9a98454485a656cecf2bc82", + "address": "0x9c4468be862acb4b396c6a96c41a5d44168e92bad427d23ade2b365c4d0342fa", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field<0x0000000000000000000000000000000000000000000000000000000000000002::object::ID,address>" }, "json": { - "id": "0xbd145529aeb51f47417e9e41eaa1a05bab36796cf9a98454485a656cecf2bc82", - "name": "1", - "value": { - "version": "1", - "epoch": "0", - "randomness_round": "0", - "random_bytes": [] - } + "id": "0x9c4468be862acb4b396c6a96c41a5d44168e92bad427d23ade2b365c4d0342fa", + "name": "0x5ab6a4146174e25a85e8b04f08064d23589cb2ab36584882ac869d14cee2fd72", + "value": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" } } }, @@ -1129,15 +1127,17 @@ Response: { { "cursor": "eyJpIjoxNywiYyI6MH0", "node": { - "address": "0xc9544753fce6181d2193fad8c4d64919a70dc7dde57446ee716fb24c414594f0", + "address": "0xa63010b93d31c3ae2c27903c7f4d9718bf917aaf6f2520925aa4a5da0cf0dcb0", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::validator_cap::UnverifiedValidatorOperationCap" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<0x0000000000000000000000000000000000000000000000000000000000000002::iota::IOTA>" }, "json": { - "id": "0xc9544753fce6181d2193fad8c4d64919a70dc7dde57446ee716fb24c414594f0", - "authorizer_validator_address": "0x28f02a953f3553f51a9365593c7d4bd0643d2085f004b18c6ca9de51682b2c80" + "id": "0xa63010b93d31c3ae2c27903c7f4d9718bf917aaf6f2520925aa4a5da0cf0dcb0", + "balance": { + "value": "30000000000000000" + } } } }, @@ -1147,14 +1147,14 @@ Response: { { "cursor": "eyJpIjoxOCwiYyI6MH0", "node": { - "address": "0xcf3a6620131a625ddf3ba1446ad827508b809bd210aca8d8351d134339622c5d", + "address": "0xe385e8c7898861f3a60d3f9806e89b204757cee320e02faf0aa341622ecf9c07", "asMoveObject": { "contents": { "type": { "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::display::Display<0x000000000000000000000000000000000000000000000000000000000000107a::nft::Nft>" }, "json": { - "id": "0xcf3a6620131a625ddf3ba1446ad827508b809bd210aca8d8351d134339622c5d", + "id": "0xe385e8c7898861f3a60d3f9806e89b204757cee320e02faf0aa341622ecf9c07", "fields": { "contents": [ { @@ -1201,18 +1201,18 @@ Response: { { "cursor": "eyJpIjoxOSwiYyI6MH0", "node": { - "address": "0xfb80af4784e2346ff2b17c1ab41c34accf15da72bcaa0202347e96e9614692ac", + "address": "0xe7597ac5ed82f4205bfdb093ad2c7c77d28eda56ef23ac930b4938283f26beb0", "asMoveObject": { "contents": { "type": { - "repr": "0x0000000000000000000000000000000000000000000000000000000000000003::staking_pool::StakedIota" + "repr": "0x0000000000000000000000000000000000000000000000000000000000000002::dynamic_field::Field" }, "json": { - "id": "0xfb80af4784e2346ff2b17c1ab41c34accf15da72bcaa0202347e96e9614692ac", - "pool_id": "0x16b972ce1279bef7cacd98dfcf1fd772372691c3cb6e76223110427ced478bb1", - "stake_activation_epoch": "0", - "principal": { - "value": "1500000000000000" + "id": "0xe7597ac5ed82f4205bfdb093ad2c7c77d28eda56ef23ac930b4938283f26beb0", + "name": "0", + "value": { + "iota_amount": "0", + "pool_token_amount": "0" } } } @@ -1260,7 +1260,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000001", - "digest": "BHXUvAh7hYCQzY9pXTDzJU4jT4PCaLuKbzutM1a6NQ7G" + "digest": "7i1FMsDo6mv9yjdpnWED9QQEL12F1Dx3cubJ9CxTifJN" } }, { @@ -1269,7 +1269,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000002", - "digest": "G4CV5cYWz5MXjXepwJuE81izouheg4hwxDJGGLTAtyRL" + "digest": "AaLjcUiSh4jt3rx49wCBhyXQAVhPGyChLWbfFavRRsZH" } }, { @@ -1278,7 +1278,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000003", - "digest": "5aBdUWwW1kBBvxLLE7iGn96DnytxWCXtvxNy3NrhkrL1" + "digest": "Ahy5BuNfqeg4NoLLpawgBz2B6zyYzbzVrfXL9wJnYGys" } }, { @@ -1287,7 +1287,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000005", - "digest": "7FDKFZKceck6AxmF5xeMK4EckmhHfrH3uHadHmoXHiti" + "digest": "6rnrYMn8qAXCD3Abcapm2EgtjZ89hZpwXVQJr8WHT9t5" } }, { @@ -1296,7 +1296,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000006", - "digest": "HnEMRhnAJTBKY5Bs9Ttf7TfwQsYpx74Msxm4RfUsGf9j" + "digest": "Gp5z7nY13u5RZtDuFQKtHuqpLAio2UdFkhdrXcPDiDrX" } }, { @@ -1305,7 +1305,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000008", - "digest": "GsUwMPdSsvukXKNtgsCXX5eX6PQUHDcRBs8cfAzE42u9" + "digest": "HWJ8Zmc31gssueLEKhoE4Ygv6x1GvEXTKdxsdZxdyDnP" } }, { @@ -1314,7 +1314,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x000000000000000000000000000000000000000000000000000000000000000b", - "digest": "8Dup19gmKiRuUc53Eh9sniHMjbCkboj4XKSkQ1GzbLWa" + "digest": "6BzaTtZsW3NDk1H28As9eaoLEJAtUU2wHNtV4Rb6ecBB" } }, { @@ -1323,7 +1323,7 @@ Response: { "idDeleted": false, "outputState": { "address": "0x0000000000000000000000000000000000000000000000000000000000000403", - "digest": "siUHSwsqoELCtazBk1VaLMgPcRsTJ982s5vjSFKKhSm" + "digest": "H8pFmNzsvczqqXYXp1sEWvnWWuDjSPw8nHMzxYkguXs1" } }, { @@ -1332,106 +1332,106 @@ Response: { "idDeleted": false, "outputState": { "address": "0x000000000000000000000000000000000000000000000000000000000000107a", - "digest": "CKJxYaDyWRK7Va9waEu6B595S23GhRrxuPhchvR1Lkmc" + "digest": "Eaqbi9s7j9UyRsnSnaJsXFmjZRJsKCDvsKyeUXu4ve6r" } }, { - "address": "0x0ca370d53d314d37a60c552eaa74bad5de28b2b04788a65f9baf5db044f25c49", + "address": "0x1d374b2388178241deedb7e6fc1727e27f25c10d394329b614486faf0bf9cf14", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x0ca370d53d314d37a60c552eaa74bad5de28b2b04788a65f9baf5db044f25c49", - "digest": "ELrW4C23Ud266o1ZUxPZVh9ajxrAtvsburCxP4GcJgcz" + "address": "0x1d374b2388178241deedb7e6fc1727e27f25c10d394329b614486faf0bf9cf14", + "digest": "GZ8xzBNn7Qxzr64sANdqENqcvyBvsXwSWrhNRBCvYPkF" } }, { - "address": "0x19ab66c40622ca2999a2308fb9111c1bb547716a10680dcaabaced9c11573641", + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x19ab66c40622ca2999a2308fb9111c1bb547716a10680dcaabaced9c11573641", - "digest": "4bWifTnxhYCDpE65oEAAfsuHAc17Q8enG8VD7VfczQXv" + "address": "0x2da8747fe6350b4147ffcf8488e97671c13a3f9b1c3f9694f86f0c85c7a6353f", + "digest": "A4XgGGNvymUQcesse4tmB6WCvqAcYKUNKGQpDBqj82Sn" } }, { - "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", + "address": "0x35ac025460b42e6d85fee7a6e37b0200affce71d8b0c35cbc43a03aa8b6c774c", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", - "digest": "JBDd6Gjr51BN8SLo3LDVPhLAR8ncpHFrbnH8oAy2Uxd3" + "address": "0x35ac025460b42e6d85fee7a6e37b0200affce71d8b0c35cbc43a03aa8b6c774c", + "digest": "CqtUtJZu9cxdXSqfHhBPQvyigA4BhVrhV91S1hM5siYG" } }, { - "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "address": "0x52ca6f77a3f1f997e48af6428033ab7bbd0e5db62b3caf940c28f535d8cedd51", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "digest": "7enzmuzCQ3ithH7SaLcGQvAuuTHf8UihGn9yi45cYSTw" + "address": "0x52ca6f77a3f1f997e48af6428033ab7bbd0e5db62b3caf940c28f535d8cedd51", + "digest": "5yuofcVQJP6rzVu9i9Zv8tbuZMF3HZ6ubsb4VQNbxdZa" } }, { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", + "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x7824c1656ba4803fa1a8c65aa463f7c09de734f47967e0b96c5f409aef56d3e2", - "digest": "8rsaeQm5puatrV9hRkxjcao6YM7Vr4UC25fdFSqAR9K6" + "address": "0x5a6383eb592bab4ff7c037a2118c514149ba9a86cf5a3b019c7034686365183f", + "digest": "EpKiYNrMK5G3nYvmzQ9e5Q94zCLbGHi3zUJgVRXRfYn9" } }, { - "address": "0x84c9a12296be175e98b5364aa5b7a41b47787def054ff96d9ad6138815ffd31c", + "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x84c9a12296be175e98b5364aa5b7a41b47787def054ff96d9ad6138815ffd31c", - "digest": "6tsDB9sYSnpXce4QqKjHvgp7kigAqztaAjoJiw2C9Aqq" + "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "digest": "D4QStVhLnUvKjbRc8d3NVFULK7Rc1wezTLj2LGju8zhs" } }, { - "address": "0x92e176f0a5af3b6158b54b3c86a024490f609b4bb469c4f453b2c3d81682f400", + "address": "0x7a96da86a0ce7795c9e036e93db26dc4c6a3d87d2bb59396c25e261cf8c985ae", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0x92e176f0a5af3b6158b54b3c86a024490f609b4bb469c4f453b2c3d81682f400", - "digest": "5s5huBUuDJ7KAthLvCXowws61uJhnv8hp9TYSz1SF3Ds" + "address": "0x7a96da86a0ce7795c9e036e93db26dc4c6a3d87d2bb59396c25e261cf8c985ae", + "digest": "58UyLyJEaEnw8Mxik5BfcgLDVCXV76yM6fR2rC3asMsT" } }, { - "address": "0xbd145529aeb51f47417e9e41eaa1a05bab36796cf9a98454485a656cecf2bc82", + "address": "0x9c4468be862acb4b396c6a96c41a5d44168e92bad427d23ade2b365c4d0342fa", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xbd145529aeb51f47417e9e41eaa1a05bab36796cf9a98454485a656cecf2bc82", - "digest": "J4Lt8oHPX1Uuw4YN4eW96fU6SG4qGH9DUDxxkQ6Rody2" + "address": "0x9c4468be862acb4b396c6a96c41a5d44168e92bad427d23ade2b365c4d0342fa", + "digest": "HqJCkhWuVWJrKDH91kCjpjk2zG2K91SAyAkdYoUxTVys" } }, { - "address": "0xc9544753fce6181d2193fad8c4d64919a70dc7dde57446ee716fb24c414594f0", + "address": "0xa63010b93d31c3ae2c27903c7f4d9718bf917aaf6f2520925aa4a5da0cf0dcb0", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xc9544753fce6181d2193fad8c4d64919a70dc7dde57446ee716fb24c414594f0", - "digest": "AuUEqY6mbzRuUxmVZAnmpovu7uAcV9r4y6c12wbyAdYL" + "address": "0xa63010b93d31c3ae2c27903c7f4d9718bf917aaf6f2520925aa4a5da0cf0dcb0", + "digest": "BqgrY1VVv7rheFGwUgixcdtM2vbMaPxsuKZfaQWuZTVh" } }, { - "address": "0xcf3a6620131a625ddf3ba1446ad827508b809bd210aca8d8351d134339622c5d", + "address": "0xe385e8c7898861f3a60d3f9806e89b204757cee320e02faf0aa341622ecf9c07", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xcf3a6620131a625ddf3ba1446ad827508b809bd210aca8d8351d134339622c5d", - "digest": "5PztXDWAHp7XSBFEVr3vWftqvrkhFzcVnJX8QSf11vZN" + "address": "0xe385e8c7898861f3a60d3f9806e89b204757cee320e02faf0aa341622ecf9c07", + "digest": "DYAuGuAgqSZ7srmpcuFLWbHdzc613fjjBKXThma4MTwi" } }, { - "address": "0xfb80af4784e2346ff2b17c1ab41c34accf15da72bcaa0202347e96e9614692ac", + "address": "0xe7597ac5ed82f4205bfdb093ad2c7c77d28eda56ef23ac930b4938283f26beb0", "idCreated": true, "idDeleted": false, "outputState": { - "address": "0xfb80af4784e2346ff2b17c1ab41c34accf15da72bcaa0202347e96e9614692ac", - "digest": "Hk4SpKWiMaDHphMphU15n3wHJUdZbBGGU9QjAcy3iEgs" + "address": "0xe7597ac5ed82f4205bfdb093ad2c7c77d28eda56ef23ac930b4938283f26beb0", + "digest": "35SRHoyvsjDZcG7rjEkYtofmd9wjv48b9KwJYrux31H5" } } ] @@ -1453,7 +1453,7 @@ Response: { "sequenceNumber": 0 }, "transactionBlock": { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } }, "expiration": null @@ -1505,7 +1505,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } ] }, @@ -1605,7 +1605,7 @@ Response: { "dependencies": { "nodes": [ { - "digest": "DgrEGWShZE7oN3nbcAQGrGo9JKzQt8fbsYcUGg6vJvKV" + "digest": "A47B3FAttYy3F2YU1xp9uiMPHw7D8VAaf46hNRuDBEKj" } ] }, @@ -1623,22 +1623,13 @@ Response: { "digest": "Do9BxST2vAmc7ZRsxohXXg5S3QLzmgUYYQnP2ejXtP93" } }, - { - "address": "0x3a69e1bb454153b51392ff79244336e7ae899a1d2dad79f0b42c4fac2a101136", - "idCreated": true, - "idDeleted": false, - "outputState": { - "address": "0x3a69e1bb454153b51392ff79244336e7ae899a1d2dad79f0b42c4fac2a101136", - "digest": "D1Y1Jn2RRL237YSrVGT5xhP2bM8SuQobSahg85jwNtee" - } - }, { "address": "0x4509fa198370254af0418248c9718bb206e810e1bce9fc8ffd0c500aef972f4d", "idCreated": true, "idDeleted": false, "outputState": { "address": "0x4509fa198370254af0418248c9718bb206e810e1bce9fc8ffd0c500aef972f4d", - "digest": "4bQjJGGLQX2bufG22m3hFYeiM7Y5RuMgF1CTeLdxvQES" + "digest": "HrsNiAMHZR19VR1QZiA6TFUykuvkJNnDbRBbwT84YpLp" } }, { @@ -1647,7 +1638,16 @@ Response: { "idDeleted": false, "outputState": { "address": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "digest": "FTLRpX3Lki5326Y265NpgZbTGiSu75bCMHoxPhwDHavd" + "digest": "4djXwCeBNeRBWfjoRd1aAY4sJ7ozbDfyQVyvwxC5TD1m" + } + }, + { + "address": "0xebf30a2e1b16f55fffb5ee6bac392da81d6dd66242d03d7465fd6eb0b6fa8664", + "idCreated": true, + "idDeleted": false, + "outputState": { + "address": "0xebf30a2e1b16f55fffb5ee6bac392da81d6dd66242d03d7465fd6eb0b6fa8664", + "digest": "3aANSDLVrDZApaoswGbTrTuhGvspix26DgExPqkZHysT" } } ] diff --git a/crates/iota-json-rpc-tests/Cargo.toml b/crates/iota-json-rpc-tests/Cargo.toml index 58eff438d68..421b2aa0578 100644 --- a/crates/iota-json-rpc-tests/Cargo.toml +++ b/crates/iota-json-rpc-tests/Cargo.toml @@ -33,6 +33,7 @@ iota-json-rpc-api.workspace = true iota-json-rpc-types.workspace = true iota-keys.workspace = true iota-macros.workspace = true +iota-metrics.workspace = true iota-move-build.workspace = true iota-open-rpc.workspace = true iota-open-rpc-macros.workspace = true diff --git a/crates/iota-metric-checker/example/config.yaml b/crates/iota-metric-checker/example/config.yaml index ced6792ae54..c335bcf5aca 100644 --- a/crates/iota-metric-checker/example/config.yaml +++ b/crates/iota-metric-checker/example/config.yaml @@ -3,7 +3,7 @@ queries: # Check current epoch - query: 'max(current_epoch{network="private-testnet"})' type: Instant - # Narwhal batch execution latency - p50 + # Consensus batch execution latency - p50 - query: 'histogram_quantile(0.50, sum by(le) (rate(batch_execution_latency_bucket{network="private-testnet"}[15m])))' type: !Range start: "now-8h" diff --git a/crates/iota-metrics/Cargo.toml b/crates/iota-metrics/Cargo.toml index c45c1a8ada7..58bd91fd4bc 100644 --- a/crates/iota-metrics/Cargo.toml +++ b/crates/iota-metrics/Cargo.toml @@ -11,8 +11,11 @@ workspace = true [dependencies] # external dependencies +anemo.workspace = true +anemo-tower.workspace = true async-trait.workspace = true axum.workspace = true +bytes.workspace = true dashmap.workspace = true futures.workspace = true once_cell.workspace = true diff --git a/crates/iota-metrics/src/lib.rs b/crates/iota-metrics/src/lib.rs index 796b77016f2..4d033c3bba1 100644 --- a/crates/iota-metrics/src/lib.rs +++ b/crates/iota-metrics/src/lib.rs @@ -35,6 +35,7 @@ use uuid::Uuid; mod guards; pub mod histogram; pub mod metered_channel; +pub mod metrics_network; pub mod monitored_mpsc; pub mod thread_stall_monitor; pub use guards::*; diff --git a/narwhal/network/src/metrics.rs b/crates/iota-metrics/src/metrics_network.rs similarity index 100% rename from narwhal/network/src/metrics.rs rename to crates/iota-metrics/src/metrics_network.rs diff --git a/crates/iota-node/Cargo.toml b/crates/iota-node/Cargo.toml index cf25f696c41..238f79d2e5f 100644 --- a/crates/iota-node/Cargo.toml +++ b/crates/iota-node/Cargo.toml @@ -54,7 +54,6 @@ iota-storage.workspace = true iota-tls.workspace = true iota-types.workspace = true move-vm-profiler.workspace = true -narwhal-network.workspace = true telemetry-subscribers.workspace = true typed-store.workspace = true diff --git a/crates/iota-node/src/lib.rs b/crates/iota-node/src/lib.rs index 4f576913840..1e2282ea92a 100644 --- a/crates/iota-node/src/lib.rs +++ b/crates/iota-node/src/lib.rs @@ -46,6 +46,7 @@ use iota_core::{ SubmitCheckpointToConsensus, checkpoint_executor::{CheckpointExecutor, StopReason, metrics::CheckpointExecutorMetrics}, }, + connection_monitor::ConnectionMonitor, consensus_adapter::{ CheckConnection, ConnectionMonitorStatus, ConsensusAdapter, ConsensusAdapterMetrics, SubmitToConsensus, @@ -79,7 +80,11 @@ use iota_json_rpc::{ }; use iota_json_rpc_api::JsonRpcMetrics; use iota_macros::{fail_point, fail_point_async, replay_log}; -use iota_metrics::{RegistryService, server_timing_middleware, spawn_monitored_task}; +use iota_metrics::{ + RegistryService, + metrics_network::{MetricsMakeCallbackHandler, NetworkConnectionMetrics, NetworkMetrics}, + server_timing_middleware, spawn_monitored_task, +}; use iota_network::{ api::ValidatorServer, discovery, discovery::TrustedPeerChangeEvent, randomness, state_sync, }; @@ -109,9 +114,6 @@ use iota_types::{ supported_protocol_versions::SupportedProtocolVersions, transaction::Transaction, }; -use narwhal_network::metrics::{ - MetricsMakeCallbackHandler, NetworkConnectionMetrics, NetworkMetrics, -}; use prometheus::Registry; #[cfg(msim)] pub use simulator::set_jwk_injector; @@ -777,13 +779,12 @@ impl IotaNode { let authority_names_to_peer_ids = ArcSwap::from_pointee(authority_names_to_peer_ids); - let (_connection_monitor_handle, connection_statuses) = - narwhal_network::connectivity::ConnectionMonitor::spawn( - p2p_network.downgrade(), - network_connection_metrics, - HashMap::new(), - None, - ); + let (_connection_monitor_handle, connection_statuses) = ConnectionMonitor::spawn( + p2p_network.downgrade(), + network_connection_metrics, + HashMap::new(), + None, + ); let connection_monitor_status = ConnectionMonitorStatus { connection_statuses, @@ -1680,7 +1681,7 @@ impl IotaNode { consensus_store_pruner.prune(next_epoch).await; if self.state.is_validator(&new_epoch_store) { - // Only restart Narwhal if this node is still a validator in the new epoch. + // Only restart consensus if this node is still a validator in the new epoch. Some( Self::start_epoch_specific_validator_components( &self.config, diff --git a/crates/iota-node/src/metrics.rs b/crates/iota-node/src/metrics.rs index e8128bed384..2d83d7bb4e6 100644 --- a/crates/iota-node/src/metrics.rs +++ b/crates/iota-node/src/metrics.rs @@ -140,7 +140,7 @@ mod tests { tokio::task::yield_now().await; // now add a few registries to the service along side with metrics - let registry_1 = Registry::new_custom(Some("narwhal".to_string()), None).unwrap(); + let registry_1 = Registry::new_custom(Some("consensus".to_string()), None).unwrap(); let counter_1 = IntCounter::new("counter_1", "a sample counter 1").unwrap(); registry_1.register(Box::new(counter_1)).unwrap(); @@ -161,9 +161,9 @@ iota_counter_2 0" )); assert!(result.contains( - "# HELP narwhal_counter_1 a sample counter 1 -# TYPE narwhal_counter_1 counter -narwhal_counter_1 0" + "# HELP consensus_counter_1 a sample counter 1 +# TYPE consensus_counter_1 counter +consensus_counter_1 0" )); // Now remove registry 1 @@ -178,9 +178,9 @@ narwhal_counter_1 0" // Registry 1 metrics should not be present anymore assert!(!result.contains( - "# HELP narwhal_counter_1 a sample counter 1 -# TYPE narwhal_counter_1 counter -narwhal_counter_1 0" + "# HELP consensus_counter_1 a sample counter 1 +# TYPE consensus_counter_1 counter +consensus_counter_1 0" )); // Registry 2 metric should have increased by 1 diff --git a/crates/iota-open-rpc/spec/openrpc.json b/crates/iota-open-rpc/spec/openrpc.json index cd116254fbe..8d820136e3a 100644 --- a/crates/iota-open-rpc/spec/openrpc.json +++ b/crates/iota-open-rpc/spec/openrpc.json @@ -1767,9 +1767,6 @@ "max_accumulated_txn_cost_per_object_in_mysticeti_commit": { "u64": "10" }, - "max_accumulated_txn_cost_per_object_in_narwhal_commit": { - "u64": "100" - }, "max_age_of_jwk_in_epochs": { "u64": "1" }, diff --git a/crates/iota-proc-macros/src/lib.rs b/crates/iota-proc-macros/src/lib.rs index cf31f4fba63..68e16646ae2 100644 --- a/crates/iota-proc-macros/src/lib.rs +++ b/crates/iota-proc-macros/src/lib.rs @@ -73,8 +73,7 @@ pub fn init_static_initializers(_args: TokenStream, item: TokenStream) -> TokenS use ::iota_simulator::anemo_tower::trace::DefaultMakeSpan; use ::iota_simulator::anemo_tower::trace::DefaultOnFailure; use ::iota_simulator::anemo_tower::trace::TraceLayer; - use ::iota_simulator::narwhal_network::metrics::MetricsMakeCallbackHandler; - use ::iota_simulator::narwhal_network::metrics::NetworkMetrics; + use ::iota_metrics::metrics_network::{NetworkMetrics, MetricsMakeCallbackHandler}; use std::sync::Arc; use ::iota_simulator::fastcrypto::traits::KeyPair; diff --git a/crates/iota-protocol-config/src/lib.rs b/crates/iota-protocol-config/src/lib.rs index 9a235a3c492..3ca28d34e66 100644 --- a/crates/iota-protocol-config/src/lib.rs +++ b/crates/iota-protocol-config/src/lib.rs @@ -190,7 +190,7 @@ fn is_false(b: &bool) -> bool { !b } -/// Ordering mechanism for transactions in one Narwhal consensus output. +/// Ordering mechanism for transactions in one consensus output. #[derive(Default, Copy, Clone, PartialEq, Eq, Serialize, Debug)] pub enum ConsensusTransactionOrdering { /// No ordering. Transactions are processed in the order they appear in the @@ -907,13 +907,6 @@ pub struct ProtocolConfig { /// The maximum number of transactions included in a consensus block. consensus_max_num_transactions_in_block: Option, - /// The max accumulated txn execution cost per object in a Narwhal commit. - /// Transactions in a checkpoint will be deferred once their touch - /// shared objects hit this limit. This config is meant to be used when - /// consensus protocol is Narwhal, where each consensus commit - /// corresponding to 1 checkpoint (or 2 if randomness is enabled) - max_accumulated_txn_cost_per_object_in_narwhal_commit: Option, - /// The max number of consensus rounds a transaction can be deferred due to /// shared object congestion. Transactions will be cancelled after this /// many rounds. @@ -934,11 +927,9 @@ pub struct ProtocolConfig { // `None` and `Some(false)`, as committee was already finalized on Testnet. bridge_should_try_to_finalize_committee: Option, - /// The max accumulated txn execution cost per object in a mysticeti. + /// The max accumulated txn execution cost per object in a mysticeti commit. /// Transactions in a commit will be deferred once their touch shared - /// objects hit this limit. This config plays the same role as - /// `max_accumulated_txn_cost_per_object_in_narwhal_commit` - /// but for mysticeti commits due to that mysticeti has higher commit rate. + /// objects hit this limit. max_accumulated_txn_cost_per_object_in_mysticeti_commit: Option, } @@ -1574,8 +1565,6 @@ impl ProtocolConfig { // that is 512, to account for bursty traffic and system transactions. consensus_max_num_transactions_in_block: Some(512), - max_accumulated_txn_cost_per_object_in_narwhal_commit: Some(100), - max_deferral_rounds_for_congestion_control: Some(10), min_checkpoint_interval_ms: Some(200), diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap index 4895285e864..0de45bcf16d 100644 --- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap +++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap @@ -261,7 +261,6 @@ random_beacon_dkg_version: 1 consensus_max_transaction_size_bytes: 262144 consensus_max_transactions_in_block_bytes: 524288 consensus_max_num_transactions_in_block: 512 -max_accumulated_txn_cost_per_object_in_narwhal_commit: 100 max_deferral_rounds_for_congestion_control: 10 min_checkpoint_interval_ms: 200 checkpoint_summary_version_specific_data: 1 diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap index 226eb542a00..d2f9066956f 100644 --- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap +++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap @@ -261,7 +261,6 @@ random_beacon_dkg_version: 1 consensus_max_transaction_size_bytes: 262144 consensus_max_transactions_in_block_bytes: 524288 consensus_max_num_transactions_in_block: 512 -max_accumulated_txn_cost_per_object_in_narwhal_commit: 100 max_deferral_rounds_for_congestion_control: 10 min_checkpoint_interval_ms: 200 checkpoint_summary_version_specific_data: 1 diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap index c1ca58f0173..b7209c62e66 100644 --- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap +++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap @@ -269,7 +269,6 @@ random_beacon_dkg_version: 1 consensus_max_transaction_size_bytes: 262144 consensus_max_transactions_in_block_bytes: 524288 consensus_max_num_transactions_in_block: 512 -max_accumulated_txn_cost_per_object_in_narwhal_commit: 100 max_deferral_rounds_for_congestion_control: 10 min_checkpoint_interval_ms: 200 checkpoint_summary_version_specific_data: 1 diff --git a/crates/iota-rosetta/docker/iota-rosetta-local/Dockerfile b/crates/iota-rosetta/docker/iota-rosetta-local/Dockerfile index 90dd3f22c09..ce58d2510c8 100644 --- a/crates/iota-rosetta/docker/iota-rosetta-local/Dockerfile +++ b/crates/iota-rosetta/docker/iota-rosetta-local/Dockerfile @@ -31,7 +31,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/crates/iota-simulator/Cargo.toml b/crates/iota-simulator/Cargo.toml index a96c9dcd8b8..b881cefb26b 100644 --- a/crates/iota-simulator/Cargo.toml +++ b/crates/iota-simulator/Cargo.toml @@ -27,7 +27,6 @@ iota-framework.workspace = true iota-move-build.workspace = true iota-types.workspace = true move-package.workspace = true -narwhal-network.workspace = true telemetry-subscribers.workspace = true [target.'cfg(msim)'.dependencies] diff --git a/crates/iota-simulator/src/lib.rs b/crates/iota-simulator/src/lib.rs index f59a4b14c74..7bafac71cb5 100644 --- a/crates/iota-simulator/src/lib.rs +++ b/crates/iota-simulator/src/lib.rs @@ -18,7 +18,6 @@ pub use lru; pub use move_package; #[cfg(msim)] pub use msim::*; -pub use narwhal_network; pub use telemetry_subscribers; pub use tempfile; pub use tower; diff --git a/crates/iota-single-node-benchmark/Cargo.toml b/crates/iota-single-node-benchmark/Cargo.toml index 1a997bf0427..94cb47e5cdf 100644 --- a/crates/iota-single-node-benchmark/Cargo.toml +++ b/crates/iota-single-node-benchmark/Cargo.toml @@ -37,5 +37,6 @@ telemetry-subscribers.workspace = true [dev-dependencies] iota-macros.workspace = true +iota-metrics.workspace = true iota-protocol-config.workspace = true iota-simulator.workspace = true diff --git a/crates/iota-surfer/Cargo.toml b/crates/iota-surfer/Cargo.toml index e0012406013..c43292d8478 100644 --- a/crates/iota-surfer/Cargo.toml +++ b/crates/iota-surfer/Cargo.toml @@ -35,5 +35,6 @@ prometheus.workspace = true # internal dependencies iota-macros.workspace = true +iota-metrics.workspace = true iota-simulator.workspace = true move-package.workspace = true diff --git a/crates/iota-swarm-config/src/genesis_config.rs b/crates/iota-swarm-config/src/genesis_config.rs index 7cd808b1328..35620d1911d 100644 --- a/crates/iota-swarm-config/src/genesis_config.rs +++ b/crates/iota-swarm-config/src/genesis_config.rs @@ -51,8 +51,6 @@ pub struct ValidatorGenesisConfig { pub p2p_listen_address: Option, #[serde(default = "default_socket_address")] pub metrics_address: SocketAddr, - #[serde(default = "default_multiaddr_address")] - pub narwhal_metrics_address: Multiaddr, pub gas_price: u64, pub commission_rate: u64, pub primary_address: Multiaddr, @@ -164,31 +162,23 @@ impl ValidatorGenesisConfigBuilder { let (protocol_key_pair, network_key_pair): (NetworkKeyPair, NetworkKeyPair) = (get_key_pair_from_rng(rng).1, get_key_pair_from_rng(rng).1); - let ( - network_address, - p2p_address, - metrics_address, - narwhal_metrics_address, - primary_address, - ) = if let Some(offset) = self.port_offset { - ( - local_ip_utils::new_deterministic_tcp_address_for_testing(&ip, offset), - local_ip_utils::new_deterministic_udp_address_for_testing(&ip, offset + 1), - local_ip_utils::new_deterministic_tcp_address_for_testing(&ip, offset + 2) - .with_zero_ip(), - local_ip_utils::new_deterministic_tcp_address_for_testing(&ip, offset + 3) - .with_zero_ip(), - local_ip_utils::new_deterministic_udp_address_for_testing(&ip, offset + 4), - ) - } else { - ( - local_ip_utils::new_tcp_address_for_testing(&ip), - local_ip_utils::new_udp_address_for_testing(&ip), - local_ip_utils::new_tcp_address_for_testing(&localhost), - local_ip_utils::new_tcp_address_for_testing(&localhost), - local_ip_utils::new_udp_address_for_testing(&ip), - ) - }; + let (network_address, p2p_address, metrics_address, primary_address) = + if let Some(offset) = self.port_offset { + ( + local_ip_utils::new_deterministic_tcp_address_for_testing(&ip, offset), + local_ip_utils::new_deterministic_udp_address_for_testing(&ip, offset + 1), + local_ip_utils::new_deterministic_tcp_address_for_testing(&ip, offset + 2) + .with_zero_ip(), + local_ip_utils::new_deterministic_udp_address_for_testing(&ip, offset + 3), + ) + } else { + ( + local_ip_utils::new_tcp_address_for_testing(&ip), + local_ip_utils::new_udp_address_for_testing(&ip), + local_ip_utils::new_tcp_address_for_testing(&localhost), + local_ip_utils::new_udp_address_for_testing(&ip), + ) + }; let p2p_listen_address = self .p2p_listen_ip_address @@ -203,7 +193,6 @@ impl ValidatorGenesisConfigBuilder { p2p_address, p2p_listen_address, metrics_address: metrics_address.to_socket_addr().unwrap(), - narwhal_metrics_address, gas_price, commission_rate: DEFAULT_COMMISSION_RATE, primary_address, @@ -265,10 +254,6 @@ fn default_socket_address() -> SocketAddr { local_ip_utils::new_local_tcp_socket_for_testing() } -fn default_multiaddr_address() -> Multiaddr { - local_ip_utils::new_local_tcp_address_for_testing() -} - fn default_stake() -> u64 { iota_types::governance::VALIDATOR_LOW_STAKE_THRESHOLD_NANOS } diff --git a/crates/iota-tool/README.md b/crates/iota-tool/README.md index 3705939719d..7076016c490 100644 --- a/crates/iota-tool/README.md +++ b/crates/iota-tool/README.md @@ -30,7 +30,6 @@ cargo run --bin iota-tool -- anemo ping --server-name "$SERVER_NAME" "$ADDRESS" `iota-tool` has been preconfigured to support RPC calls using [RON (Rusty Object Notation)](https://crates.io/crates/ron) for the following servivces: -- Narwhal: `PrimaryToPrimary` and `WorkerToWorker` - Iota: `Discovery` and `StateSync` Example command to send an RPC: diff --git a/crates/iota-types/src/base_types.rs b/crates/iota-types/src/base_types.rs index edd5270892a..a557ddb80ff 100644 --- a/crates/iota-types/src/base_types.rs +++ b/crates/iota-types/src/base_types.rs @@ -114,6 +114,9 @@ impl fmt::Display for SequenceNumber { pub type VersionNumber = SequenceNumber; +/// The round number. +pub type CommitRound = u64; + #[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Hash, Default, Debug, Serialize, Deserialize)] pub struct UserData(pub Option<[u8; 32]>); diff --git a/crates/iota/Cargo.toml b/crates/iota/Cargo.toml index 9f0339a2604..cdd190c361f 100644 --- a/crates/iota/Cargo.toml +++ b/crates/iota/Cargo.toml @@ -106,6 +106,7 @@ shlex = "1.3.0" # internal dependencies iota-macros.workspace = true +iota-metrics.workspace = true iota-simulator.workspace = true iota-test-transaction-builder.workspace = true move-cli.workspace = true diff --git a/crates/shared-crypto/src/intent.rs b/crates/shared-crypto/src/intent.rs index 493c2f8e7c8..9bbd9234232 100644 --- a/crates/shared-crypto/src/intent.rs +++ b/crates/shared-crypto/src/intent.rs @@ -28,7 +28,7 @@ impl TryFrom for IntentVersion { } /// This enums specifies the application ID. Two intents in two different -/// applications (i.e., Narwhal, Iota, Ethereum etc) should never collide, so +/// applications (i.e., Iota, Ethereum etc) should never collide, so /// that even when a signing key is reused, nobody can take a signature /// designated for app_1 and present it as a valid signature for an (any) intent /// in app_2. @@ -36,8 +36,7 @@ impl TryFrom for IntentVersion { #[repr(u8)] pub enum AppId { Iota = 0, - Narwhal = 1, - Consensus = 2, + Consensus = 1, } // TODO(joyqvq): Use num_derive @@ -67,9 +66,8 @@ pub enum IntentScope { SenderSignedTransaction = 4, // Used for an authority signature on a user signed transaction. ProofOfPossession = 5, /* Used as a signature representing an authority's proof of * possession of its authority key. */ - HeaderDigest = 6, // Used for narwhal authority signature on header digest. - BridgeEventUnused = 7, // for bridge purposes but it's currently not included in messages. - ConsensusBlock = 8, // Used for consensus authority signature on block's digest + BridgeEventUnused = 6, // for bridge purposes but it's currently not included in messages. + ConsensusBlock = 7, // Used for consensus authority signature on block's digest } impl TryFrom for IntentScope { @@ -144,14 +142,6 @@ impl Intent { } } - pub fn narwhal_app(scope: IntentScope) -> Self { - Self { - scope, - version: IntentVersion::V0, - app_id: AppId::Narwhal, - } - } - pub fn consensus_app(scope: IntentScope) -> Self { Self { scope, diff --git a/crates/test-cluster/Cargo.toml b/crates/test-cluster/Cargo.toml index 8daa823b3d3..56861ab4fbd 100644 --- a/crates/test-cluster/Cargo.toml +++ b/crates/test-cluster/Cargo.toml @@ -50,3 +50,4 @@ iota-simulator.workspace = true [dev-dependencies] iota-json-rpc-api.workspace = true iota-macros.workspace = true +iota-metrics.workspace = true diff --git a/docker/iota-bridge-indexer/Dockerfile b/docker/iota-bridge-indexer/Dockerfile index 34f693ebedf..cfef887f5a6 100644 --- a/docker/iota-bridge-indexer/Dockerfile +++ b/docker/iota-bridge-indexer/Dockerfile @@ -33,7 +33,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-graphql-rpc/Dockerfile b/docker/iota-graphql-rpc/Dockerfile index f80a680b239..ef3f3f71f32 100644 --- a/docker/iota-graphql-rpc/Dockerfile +++ b/docker/iota-graphql-rpc/Dockerfile @@ -30,7 +30,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-indexer-tidb/Dockerfile b/docker/iota-indexer-tidb/Dockerfile index cbdb7d88274..3b959e6aeb3 100644 --- a/docker/iota-indexer-tidb/Dockerfile +++ b/docker/iota-indexer-tidb/Dockerfile @@ -33,7 +33,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-indexer/Dockerfile b/docker/iota-indexer/Dockerfile index 94938ff3426..6f2f35f61fd 100644 --- a/docker/iota-indexer/Dockerfile +++ b/docker/iota-indexer/Dockerfile @@ -33,7 +33,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-network/docker-compose.yaml b/docker/iota-network/docker-compose.yaml index 11d76e05d7b..a541342445b 100644 --- a/docker/iota-network/docker-compose.yaml +++ b/docker/iota-network/docker-compose.yaml @@ -10,7 +10,7 @@ services: hostname: validator1 environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 @@ -39,7 +39,7 @@ services: hostname: validator2 environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 @@ -68,7 +68,7 @@ services: hostname: validator3 environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 @@ -97,7 +97,7 @@ services: hostname: validator4 environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 @@ -126,7 +126,7 @@ services: container_name: fullnode1 environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 diff --git a/docker/iota-network/genesis/overlays/common.yaml b/docker/iota-network/genesis/overlays/common.yaml index 7a0fc8f9c69..ee6b9b7f0d8 100644 --- a/docker/iota-network/genesis/overlays/common.yaml +++ b/docker/iota-network/genesis/overlays/common.yaml @@ -8,8 +8,6 @@ validator: db-path: /opt/iota/db/authorities_db consensus-config: db-path: /opt/iota/db/consensus_db - narwhal-config: - max_header_delay: 2000ms expensive-safety-check-config: enable-epoch-iota-conservation-check: false enable-deep-per-tx-iota-conservation-check: false diff --git a/docker/iota-node/Dockerfile b/docker/iota-node/Dockerfile index 1d700a3c566..5b39641cb2c 100644 --- a/docker/iota-node/Dockerfile +++ b/docker/iota-node/Dockerfile @@ -30,7 +30,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-private-network/bootstrap.sh b/docker/iota-private-network/bootstrap.sh index bd705da6109..8f58aaa6ed7 100755 --- a/docker/iota-private-network/bootstrap.sh +++ b/docker/iota-private-network/bootstrap.sh @@ -47,7 +47,6 @@ generate_genesis_files() { .genesis.genesis-file-location = $overlay.genesis.genesis-file-location | .db-path = $overlay.db-path | .consensus-config.db-path = $overlay.consensus-config.db-path | - .consensus-config.narwhal-config.max_header_delay = $overlay.consensus-config.narwhal-config.max_header_delay | .expensive-safety-check-config = $overlay.expensive-safety-check-config | .epoch_duration_ms = $overlay.epoch_duration_ms ' "$file" "$OVERLAY_PATH" >"${file}.tmp" && mv "${file}.tmp" "$file" diff --git a/docker/iota-private-network/configs/validator-common.yaml b/docker/iota-private-network/configs/validator-common.yaml index 7a0fc8f9c69..ee6b9b7f0d8 100644 --- a/docker/iota-private-network/configs/validator-common.yaml +++ b/docker/iota-private-network/configs/validator-common.yaml @@ -8,8 +8,6 @@ validator: db-path: /opt/iota/db/authorities_db consensus-config: db-path: /opt/iota/db/consensus_db - narwhal-config: - max_header_delay: 2000ms expensive-safety-check-config: enable-epoch-iota-conservation-check: false enable-deep-per-tx-iota-conservation-check: false diff --git a/docker/iota-private-network/docker-compose.yaml b/docker/iota-private-network/docker-compose.yaml index 5cce4086610..73e889cddbe 100644 --- a/docker/iota-private-network/docker-compose.yaml +++ b/docker/iota-private-network/docker-compose.yaml @@ -4,7 +4,7 @@ x-common-validator: &common-validator image: iota-node environment: &common-env - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,narwhal=debug,narwhal-primary::helper=info,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,iota_network=debug,iota_node=debug,jsonrpsee=error - RPC_WORKER_THREAD=12 - NEW_CHECKPOINT_WARNING_TIMEOUT_MS=30000 - NEW_CHECKPOINT_PANIC_TIMEOUT_MS=60000 diff --git a/docker/iota-services/Dockerfile b/docker/iota-services/Dockerfile index 8a33a195429..21708c1861d 100644 --- a/docker/iota-services/Dockerfile +++ b/docker/iota-services/Dockerfile @@ -28,7 +28,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-source-service/Dockerfile b/docker/iota-source-service/Dockerfile index 7fd848c56fb..f36c18b6672 100644 --- a/docker/iota-source-service/Dockerfile +++ b/docker/iota-source-service/Dockerfile @@ -28,7 +28,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota-tools/Dockerfile b/docker/iota-tools/Dockerfile index 3766da842a1..85a4d15a2a1 100644 --- a/docker/iota-tools/Dockerfile +++ b/docker/iota-tools/Dockerfile @@ -30,7 +30,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docker/iota/Dockerfile b/docker/iota/Dockerfile index 574daec1b2b..0d474f96404 100644 --- a/docker/iota/Dockerfile +++ b/docker/iota/Dockerfile @@ -31,7 +31,6 @@ COPY Cargo.toml Cargo.lock ./ COPY consensus consensus COPY crates crates COPY iota-execution iota-execution -COPY narwhal narwhal COPY external-crates external-crates COPY docs docs diff --git a/docs/content/developer/advanced/iota-repository.mdx b/docs/content/developer/advanced/iota-repository.mdx index 4837ac4190a..c9ed46a047e 100644 --- a/docs/content/developer/advanced/iota-repository.mdx +++ b/docs/content/developer/advanced/iota-repository.mdx @@ -36,8 +36,6 @@ overview of the most important folders: programming language. - [kiosk](https://github.com/iotaledger/iota/tree/develop/kiosk): Contains the source code of the `IOTA Kiosk` extensions and rules, as well as examples. -- [narwhal](https://github.com/iotaledger/iota/tree/develop/narwhal): Contains the source code of Narwhal and partially - synchronous Bullshark, a DAG-based mempool, and efficient BFT consensus. - [nre](https://github.com/iotaledger/iota/tree/develop/nre): Contains information about node and network reliability engineering. - [scripts](https://github.com/iotaledger/iota/tree/develop/scripts): Contains a number of scripts that are used @@ -51,7 +49,6 @@ overview of the most important folders: The following primary directories offer a good starting point for exploring the IOTA codebase: - [move](https://github.com/iotaledger/iota/tree/develop/external-crates/move) - Move VM, compiler, and tools. -- [narwhal](https://github.com/iotaledger/iota/tree/develop/narwhal) - Mempool and consensus. - [typescript-sdk](https://github.com/iotaledger/iota/tree/develop/sdk/typescript/) - the IOTA TypeScript SDK. - [wallet](https://github.com/iotaledger/iota/tree/develop/apps/wallet) - Chrome extension wallet for IOTA. - [iota](https://github.com/iotaledger/iota/tree/develop/crates/iota) - the IOTA command line tool. diff --git a/docs/content/operator/telemetry/iota-metrics.mdx b/docs/content/operator/telemetry/iota-metrics.mdx index 0bb8ffbb7e0..89d886e28b1 100644 --- a/docs/content/operator/telemetry/iota-metrics.mdx +++ b/docs/content/operator/telemetry/iota-metrics.mdx @@ -141,7 +141,7 @@ It works as follows: .unwrap(); // Create another registry and add a metric to it - let registry_1 = Registry::new_custom(Some("narwhal".to_string()), None).unwrap(); + let registry_1 = Registry::new_custom(Some("consensus".to_string()), None).unwrap(); registry_1 .register(Box::new( IntCounter::new("counter_1", "counter_1_desc").unwrap(), @@ -165,7 +165,7 @@ It works as follows: // Check the second metric let metric_2 = metrics.remove(0); - assert_eq!(metric_2.get_name(), "narwhal_counter_1"); + assert_eq!(metric_2.get_name(), "consensus_counter_1"); assert_eq!(metric_2.get_help(), "counter_1_desc"); ``` diff --git a/narwhal/.clippy.toml b/narwhal/.clippy.toml deleted file mode 100644 index 2ca07227b4b..00000000000 --- a/narwhal/.clippy.toml +++ /dev/null @@ -1,21 +0,0 @@ -# cyclomatic complexity is not always useful -cognitive-complexity-threshold = 100 -# types are used for safety encoding -type-complexity-threshold = 10000 -# big constructors -too-many-arguments-threshold = 20 - -disallowed-methods = [ - { path = "anyhow", reason = "we prefer to use eyre" }, - # we use tracing with the log feature instead of the log crate. - { path = "log::info", reason = "use tracing::info instead" }, - { path = "log::debug", reason = "use tracing::debug instead" }, - { path = "log::error", reason = "use tracing::error instead" }, - { path = "log::warn", reason = "use tracing::warn instead" }, - # known to cause blocking issues - { path = "futures::executor::block_on", reason = "use tokio::runtime::runtime::Runtime::block_on instead" }, - # unbounded channels are for expert use only - { path = "tokio::sync::mpsc::unbounded_channel", reason = "use a bounded channel instead" }, - { path = "futures::channel::mpsc::unbounded", reason = "use a bounded channel instead" }, - { path = "futures_channel::mpsc::unbounded", reason = "use a bounded channel instead" }, -] diff --git a/narwhal/.dockerignore b/narwhal/.dockerignore deleted file mode 100644 index 6548d10bce0..00000000000 --- a/narwhal/.dockerignore +++ /dev/null @@ -1,7 +0,0 @@ -# Exclude directories from getting copied -# to the Docker image once built. -.cargo -.github -.idea -target -benchmark \ No newline at end of file diff --git a/narwhal/.gitignore b/narwhal/.gitignore deleted file mode 100644 index aa393c3d5e0..00000000000 --- a/narwhal/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -*.json -*.python-version -!Docker/**/*.json -Docker/validators/**/db-* -Docker/validators/**/logs* -.DS_Store -.storage_* -.*storage* -.venv/ -.idea/* -rust/.idea/* -.db-* -benchmark/db-* - -target/ -!/**/src/**/target/ -.test_* - -# Configuration for pre-commit / Git precommit hook. -.pre-commit* - -# Generated by Cargo -# will have compiled files and executables -/target/ - -workspace.xml - -# These are backup files generated by rustfmt -**/*.rs.bk -scripts/build_and_fab -./justfile -crypto/proptest-regressions/tests/secp256k1_tests.txt diff --git a/narwhal/.lycheeignore b/narwhal/.lycheeignore deleted file mode 100644 index 04cb90d6b56..00000000000 --- a/narwhal/.lycheeignore +++ /dev/null @@ -1,2 +0,0 @@ -file://.* -http://localhost.* diff --git a/narwhal/CONTRIBUTING.md b/narwhal/CONTRIBUTING.md deleted file mode 100644 index 8be31890519..00000000000 --- a/narwhal/CONTRIBUTING.md +++ /dev/null @@ -1,65 +0,0 @@ -# Contributing to Narwhal / Bullshark - -We want to make contributions as easy and transparent as possible. - -## Pull Requests - -We actively welcome your pull requests. - -1. Fork the source repo and create your branch from `main`. -2. If you've added code that should be tested, add tests. -3. If you've changed APIs, update the documentation. -4. Ensure the test suite passes -5. Make sure your code lints - -## Run the linter - -The codebase uses the [Clippy](https://github.com/rust-lang/rust-clippy) linter -to ensure that common mistakes are caught. To install follow the instructions -on the Clippy repository. We make use of a cargo alias (defined in -.cargo/config) which sets some project-wide lints. To run the linter locally -you can use the following command: - -``` -cargo ci-clippy -``` - -## Run the formatter - -To ensure that the codebase is following standard formatting properties, we use -[Rustfmt](https://github.com/rust-lang/rustfmt). To run the formatter locally -you can use the follow command: - -``` -cargo fmt --all -``` - -The above command will format and apply the changes directly. If you want to just -see the formatter recommendations, just run with the `--check` property: - -``` -cargo fmt --all -- --check -``` - -## Generating builders - -The [derive_builder](https://crates.io/crates/derive_builder) crate has been used to -auto-generate builders (following the [builder design pattern](https://en.wikipedia.org/wiki/Builder_pattern)) for structs. Instead of having to write (lots) of boilerplate -code to create a builder, this is offered by the derive_builder and is the recommended -way to create builders for this repo. Examples can be found within the repo and on the -crate docs as well. - -## Testing - -One thing to note is that Narwhal uses snapshot testing for configs. See the beginning of the file -[config/tests/config_tests.rs](config/tests/config_tests.rs) for background and instructions if your PR breaks the test. - -## Issues - -We use GitHub issues to track public bugs. Please ensure your description is -clear and has sufficient instructions to be able to reproduce the issue. - -## License - -By contributing, you agree that your contributions will be licensed -under the LICENSE file in the root directory of this source tree. diff --git a/narwhal/README.md b/narwhal/README.md deleted file mode 100644 index 93b540d2e1c..00000000000 --- a/narwhal/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Narwhal and Consensus - -This directory provides an implementation of [Narwhal](https://arxiv.org/pdf/2105.11827.pdf) and [partially synchronous Bullshark](https://arxiv.org/pdf/2209.05633.pdf), a [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph)-based mempool and efficient [BFT](https://en.wikipedia.org/wiki/Byzantine_fault) consensus. The codebase has been designed to be small, efficient, and easy to benchmark and modify. - -This directory uses [fastcrypto](https://github.com/MystenLabs/fastcrypto) as its cryptography library. - -## Quick Start - -The core protocols are written in Rust, but all benchmarking scripts are written in Python and run with [Fabric](http://www.fabfile.org/). -To deploy and benchmark a testbed of four nodes on your local machine, clone the Iota repo and install the python dependencies: - -``` -$ git clone https://github.com/iotaledger/iota.git -$ cd iota/narwhal/benchmark -$ pip install -r requirements.txt -``` - -You also need to install [Clang](https://clang.llvm.org/) (required by RocksDB) and [tmux](https://linuxize.com/post/getting-started-with-tmux/#installing-tmux) (which runs all nodes and clients in the background). Finally, run a local benchmark using [Fabric](http://www.fabfile.org/): - -``` -$ fab local -``` - -This command may take a long time the first time you run it (compiling rust code in `release` mode may be slow), and you can customize a number of benchmark parameters in [fabfile.py](https://github.com/iotaledger/iota/blob/main/narwhal/benchmark/fabfile.py). When the benchmark terminates, it displays a summary of the execution similarly to the one below. - -``` ------------------------------------------ - SUMMARY: ------------------------------------------ - + CONFIG: - Faults: 0 node(s) - Committee size: 4 node(s) - Worker(s) per node: 1 worker(s) - Collocate primary and workers: True - Input rate: 50,000 tx/s - Transaction size: 512 B - Execution time: 19 s - - Header size: 1,000 B - Max header delay: 100 ms - GC depth: 50 round(s) - Sync retry delay: 10,000 ms - Sync retry nodes: 3 node(s) - batch size: 500,000 B - Max batch delay: 100 ms - - + RESULTS: - Consensus TPS: 46,478 tx/s - Consensus BPS: 23,796,531 B/s - Consensus latency: 464 ms - - End-to-end TPS: 46,149 tx/s - End-to-end BPS: 23,628,541 B/s - End-to-end latency: 557 ms ------------------------------------------ -``` - -## Next Steps - -The next step is to read the paper [Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus](https://arxiv.org/pdf/2105.11827.pdf) and [Bullshark: The Partially Synchronous Version](https://arxiv.org/pdf/2209.05633.pdf). It is then recommended to have a look at the README files of the [worker](worker) and [primary](primary) crates. An additional resource to better understand the Tusk consensus protocol is the paper [All You Need is DAG](https://arxiv.org/abs/2102.08325) as it describes a similar protocol. - -The README file of the [benchmark folder](benchmark) explains how to benchmark the codebase and read benchmarks' results. It also provides a step-by-step tutorial to run benchmarks on [Amazon Web Services (AWS)](https://aws.amazon.com) across multiple data centers (WAN). diff --git a/narwhal/config/Cargo.toml b/narwhal/config/Cargo.toml deleted file mode 100644 index e4739ddf598..00000000000 --- a/narwhal/config/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "narwhal-config" -version = "0.1.0" -authors = ["IOTA Foundation "] -edition = "2021" -license = "Apache-2.0" -publish = false - -[dependencies] -# external dependencies -fastcrypto.workspace = true -match_opt = "0.1" -rand.workspace = true -serde.workspace = true -serde_json.workspace = true -thiserror.workspace = true -tracing.workspace = true - -# internal dependencies -crypto = { path = "../crypto", package = "narwhal-crypto" } -iota-network-stack.workspace = true -iota-util-mem.workspace = true - -[dev-dependencies] -# external dependencies -insta.workspace = true -rand.workspace = true -tempfile.workspace = true - -# internal dependencies -test-utils = { path = "../test-utils", package = "narwhal-test-utils" } diff --git a/narwhal/config/src/committee.rs b/narwhal/config/src/committee.rs deleted file mode 100644 index fa8da22ef90..00000000000 --- a/narwhal/config/src/committee.rs +++ /dev/null @@ -1,501 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - collections::{BTreeMap, HashSet}, - fmt::{Display, Formatter}, - num::NonZeroU64, -}; - -use crypto::{NetworkPublicKey, PublicKey, PublicKeyBytes}; -use fastcrypto::traits::EncodeDecodeBase64; -use iota_network_stack::Multiaddr; -use iota_util_mem::MallocSizeOf; -use rand::{SeedableRng, rngs::StdRng, seq::SliceRandom}; -use serde::{Deserialize, Serialize}; - -use crate::{Epoch, Stake}; - -#[derive(Clone, Serialize, Deserialize, Debug, Eq, PartialEq)] -pub struct Authority { - /// The id under which we identify this authority across Narwhal - #[serde(skip)] - id: AuthorityIdentifier, - /// The authority's main PublicKey which is used to verify the content they - /// sign. - protocol_key: PublicKey, - /// The authority's main PublicKey expressed as pure bytes - protocol_key_bytes: PublicKeyBytes, - /// The voting power of this authority. - stake: Stake, - /// The network address of the primary. - primary_address: Multiaddr, - /// Network key of the primary. - network_key: NetworkPublicKey, - /// The validator's hostname - hostname: String, - /// There are secondary indexes that should be initialised before we are - /// ready to use the authority - this bool protect us for premature use. - #[serde(skip)] - initialised: bool, -} - -impl Authority { - /// The constructor is not public by design. Everyone who wants to create - /// authorities should do it via Committee (more specifically can use - /// CommitteeBuilder). As some internal properties of Authority are - /// initialised via the Committee, to ensure that the user will not - /// accidentally use stale Authority data, should always derive them via - /// the Committee. - fn new( - protocol_key: PublicKey, - stake: Stake, - primary_address: Multiaddr, - network_key: NetworkPublicKey, - hostname: String, - ) -> Self { - let protocol_key_bytes = PublicKeyBytes::from(&protocol_key); - - Self { - id: Default::default(), - protocol_key, - protocol_key_bytes, - stake, - primary_address, - network_key, - hostname, - initialised: false, - } - } - - fn initialise(&mut self, id: AuthorityIdentifier) { - self.id = id; - self.initialised = true; - } - - pub fn id(&self) -> AuthorityIdentifier { - assert!(self.initialised); - self.id - } - - pub fn protocol_key(&self) -> &PublicKey { - assert!(self.initialised); - &self.protocol_key - } - - pub fn protocol_key_bytes(&self) -> &PublicKeyBytes { - assert!(self.initialised); - &self.protocol_key_bytes - } - - pub fn stake(&self) -> Stake { - assert!(self.initialised); - self.stake - } - - pub fn primary_address(&self) -> Multiaddr { - assert!(self.initialised); - self.primary_address.clone() - } - - pub fn network_key(&self) -> NetworkPublicKey { - assert!(self.initialised); - self.network_key.clone() - } - - pub fn hostname(&self) -> &str { - assert!(self.initialised); - self.hostname.as_str() - } -} - -#[derive(Clone, Serialize, Deserialize, Debug, Eq, PartialEq)] -pub struct Committee { - /// The authorities of epoch. - authorities: BTreeMap, - /// Keeps and index of the Authorities by their respective identifier - #[serde(skip)] - authorities_by_id: BTreeMap, - /// The epoch number of this committee - epoch: Epoch, - /// The quorum threshold (2f+1) - #[serde(skip)] - quorum_threshold: Stake, - /// The validity threshold (f+1) - #[serde(skip)] - validity_threshold: Stake, -} - -// Every authority gets uniquely identified by the AuthorityIdentifier -// The type can be easily swapped without needing to change anything else in the -// implementation. -#[derive( - Eq, - PartialEq, - Ord, - PartialOrd, - Clone, - Copy, - Debug, - Default, - Hash, - Serialize, - Deserialize, - MallocSizeOf, -)] -pub struct AuthorityIdentifier(pub u16); - -impl Display for AuthorityIdentifier { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - f.write_str(self.0.to_string().as_str()) - } -} - -impl Committee { - pub const DEFAULT_FILENAME: &'static str = "committee.json"; - - /// Any committee should be created via the CommitteeBuilder - this is - /// intentionally be marked as private method. - fn new(authorities: BTreeMap, epoch: Epoch) -> Self { - let mut committee = Self { - authorities, - epoch, - authorities_by_id: Default::default(), - validity_threshold: 0, - quorum_threshold: 0, - }; - committee.load(); - - // Some sanity checks to ensure that we'll not end up in invalid state - assert_eq!( - committee.authorities_by_id.len(), - committee.authorities.len() - ); - - assert_eq!( - committee.validity_threshold, - committee.calculate_validity_threshold().get() - ); - assert_eq!( - committee.quorum_threshold, - committee.calculate_quorum_threshold().get() - ); - - // ensure all the authorities are ordered in incremented manner with their ids - - // just some extra confirmation here. - for (index, (_, authority)) in committee.authorities.iter().enumerate() { - assert_eq!(index as u16, authority.id.0); - } - - committee - } - - fn calculate_quorum_threshold(&self) -> NonZeroU64 { - // If N = 3f + 1 + k (0 <= k < 3) - // then (2 N + 3) / 3 = 2f + 1 + (2k + 2)/3 = 2f + 1 + k = N - f - let total_votes: Stake = self.total_stake(); - NonZeroU64::new(2 * total_votes / 3 + 1).unwrap() - } - - fn calculate_validity_threshold(&self) -> NonZeroU64 { - // If N = 3f + 1 + k (0 <= k < 3) - // then (N + 2) / 3 = f + 1 + k/3 = f + 1 - let total_votes: Stake = self.total_stake(); - NonZeroU64::new((total_votes + 2) / 3).unwrap() - } - - /// Updates the committee internal secondary indexes. - pub fn load(&mut self) { - self.authorities_by_id = (0_u16..) - .zip(self.authorities.iter_mut()) - .map(|(identifier, (_key, authority))| { - let id = AuthorityIdentifier(identifier); - authority.initialise(id); - - (id, authority.clone()) - }) - .collect(); - - self.validity_threshold = self.calculate_validity_threshold().get(); - self.quorum_threshold = self.calculate_quorum_threshold().get(); - } - - /// Returns the current epoch. - pub fn epoch(&self) -> Epoch { - self.epoch - } - - /// Provided an identifier it returns the corresponding authority - pub fn authority(&self, identifier: &AuthorityIdentifier) -> Option<&Authority> { - self.authorities_by_id.get(identifier) - } - - /// Provided an identifier it returns the corresponding authority - if is - /// not found then it panics - pub fn authority_safe(&self, identifier: &AuthorityIdentifier) -> &Authority { - self.authorities_by_id.get(identifier).unwrap_or_else(|| { - panic!( - "Authority with id {:?} should have been in committee", - identifier - ) - }) - } - - pub fn authority_by_key(&self, key: &PublicKey) -> Option<&Authority> { - self.authorities.get(key) - } - - /// Returns the keys in the committee - pub fn keys(&self) -> Vec { - self.authorities.keys().cloned().collect::>() - } - - pub fn authorities(&self) -> impl Iterator { - self.authorities.values() - } - - pub fn authority_by_network_key(&self, network_key: &NetworkPublicKey) -> Option<&Authority> { - self.authorities - .iter() - .find(|(_, authority)| authority.network_key == *network_key) - .map(|(_, authority)| authority) - } - - /// Returns the number of authorities. - pub fn size(&self) -> usize { - self.authorities.len() - } - - /// Return the stake of a specific authority. - pub fn stake(&self, name: &PublicKey) -> Stake { - self.authorities - .get(&name.clone()) - .map_or_else(|| 0, |x| x.stake) - } - - pub fn stake_by_id(&self, id: AuthorityIdentifier) -> Stake { - self.authorities_by_id - .get(&id) - .map_or_else(|| 0, |authority| authority.stake) - } - - /// Returns the stake required to reach a quorum (2f+1). - pub fn quorum_threshold(&self) -> Stake { - self.quorum_threshold - } - - /// Returns the stake required to reach availability (f+1). - pub fn validity_threshold(&self) -> Stake { - self.validity_threshold - } - - /// Returns true if the provided stake has reached quorum (2f+1) - pub fn reached_quorum(&self, stake: Stake) -> bool { - stake >= self.quorum_threshold() - } - - /// Returns true if the provided stake has reached availability (f+1) - pub fn reached_validity(&self, stake: Stake) -> bool { - stake >= self.validity_threshold() - } - - pub fn total_stake(&self) -> Stake { - self.authorities.values().map(|x| x.stake).sum() - } - - /// Returns a leader node as a weighted choice seeded by the provided - /// integer - pub fn leader(&self, seed: u64) -> Authority { - let mut seed_bytes = [0u8; 32]; - seed_bytes[32 - 8..].copy_from_slice(&seed.to_le_bytes()); - let mut rng = StdRng::from_seed(seed_bytes); - let choices = self - .authorities - .values() - .map(|authority| (authority.clone(), authority.stake as f32)) - .collect::>(); - choices - .choose_weighted(&mut rng, |item| item.1) - .expect("Weighted choice error: stake values incorrect!") - .0 - .clone() - } - - /// Return all the network addresses in the committee. - pub fn others_primaries( - &self, - myself: &PublicKey, - ) -> Vec<(PublicKey, Multiaddr, NetworkPublicKey)> { - self.authorities - .iter() - .filter(|(name, _)| *name != myself) - .map(|(name, authority)| { - ( - name.clone(), - authority.primary_address.clone(), - authority.network_key.clone(), - ) - }) - .collect() - } - - /// Return all the network addresses in the committee. - pub fn others_primaries_by_id( - &self, - myself: AuthorityIdentifier, - ) -> Vec<(AuthorityIdentifier, Multiaddr, NetworkPublicKey)> { - self.authorities - .iter() - .filter(|(_, authority)| authority.id() != myself) - .map(|(_, authority)| { - ( - authority.id(), - authority.primary_address(), - authority.network_key(), - ) - }) - .collect() - } - - fn get_all_network_addresses(&self) -> HashSet<&Multiaddr> { - self.authorities - .values() - .map(|authority| &authority.primary_address) - .collect() - } - - /// Return the network addresses that are present in the current committee - /// but that are absent from the new committee (provided as argument). - pub fn network_diff<'a>(&'a self, other: &'a Self) -> HashSet<&Multiaddr> { - self.get_all_network_addresses() - .difference(&other.get_all_network_addresses()) - .cloned() - .collect() - } - - /// Used for testing - not recommended to use for any other case. - /// It creates a new instance with updated epoch - pub fn advance_epoch(&self, new_epoch: Epoch) -> Committee { - Committee::new(self.authorities.clone(), new_epoch) - } -} - -pub struct CommitteeBuilder { - epoch: Epoch, - authorities: BTreeMap, -} - -impl CommitteeBuilder { - pub fn new(epoch: Epoch) -> Self { - Self { - epoch, - authorities: BTreeMap::new(), - } - } - - pub fn add_authority( - mut self, - protocol_key: PublicKey, - stake: Stake, - primary_address: Multiaddr, - network_key: NetworkPublicKey, - hostname: String, - ) -> Self { - let authority = Authority::new( - protocol_key.clone(), - stake, - primary_address, - network_key, - hostname, - ); - self.authorities.insert(protocol_key, authority); - self - } - - pub fn build(self) -> Committee { - Committee::new(self.authorities, self.epoch) - } -} - -impl std::fmt::Display for Committee { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "Committee E{}: {:?}", - self.epoch(), - self.authorities - .keys() - .map(|x| { - if let Some(k) = x.encode_base64().get(0..16) { - k.to_owned() - } else { - format!("Invalid key: {}", x) - } - }) - .collect::>() - ) - } -} - -#[cfg(test)] -mod tests { - use std::collections::BTreeMap; - - use crypto::{KeyPair, NetworkKeyPair, PublicKey}; - use fastcrypto::traits::KeyPair as _; - use iota_network_stack::Multiaddr; - use rand::thread_rng; - - use crate::{Authority, Committee}; - - #[test] - fn committee_load() { - // GIVEN - let mut rng = thread_rng(); - let num_of_authorities = 10; - - let authorities = (0..num_of_authorities) - .map(|i| { - let keypair = KeyPair::generate(&mut rng); - let network_keypair = NetworkKeyPair::generate(&mut rng); - - let a = Authority::new( - keypair.public().clone(), - 1, - Multiaddr::empty(), - network_keypair.public().clone(), - i.to_string(), - ); - - (keypair.public().clone(), a) - }) - .collect::>(); - - // WHEN - let committee = Committee::new(authorities, 10); - - // THEN - assert_eq!(committee.authorities_by_id.len() as u64, num_of_authorities); - - for (identifier, authority) in committee.authorities_by_id.iter() { - assert_eq!(*identifier, authority.id()); - } - - // AND ensure thresholds are calculated correctly - assert_eq!(committee.quorum_threshold(), 7); - assert_eq!(committee.validity_threshold(), 4); - - // AND ensure authorities are returned in the same order - for ((id, authority_1), (public_key, authority_2)) in committee - .authorities_by_id - .iter() - .zip(committee.authorities) - { - assert_eq!(authority_1.clone(), authority_2); - assert_eq!(*id, authority_2.id()); - assert_eq!(&public_key, authority_1.protocol_key()); - } - } -} diff --git a/narwhal/config/src/lib.rs b/narwhal/config/src/lib.rs deleted file mode 100644 index 00634c57fd9..00000000000 --- a/narwhal/config/src/lib.rs +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -#![warn( - future_incompatible, - nonstandard_style, - rust_2018_idioms, - rust_2021_compatibility -)] -#![allow(clippy::mutable_key_type)] - -use std::{ - collections::{BTreeMap, HashSet}, - fs::{self, OpenOptions}, - io::{BufWriter, Write as _}, - num::NonZeroU32, -}; - -use crypto::{NetworkPublicKey, PublicKey}; -use fastcrypto::traits::EncodeDecodeBase64; -use iota_network_stack::Multiaddr; -use serde::{Deserialize, Serialize, de::DeserializeOwned}; -use thiserror::Error; - -pub mod committee; -pub use committee::*; -pub mod utils; - -/// The epoch number. -pub type Epoch = u64; - -#[derive(Error, Debug)] -pub enum ConfigError { - #[error("Node {0} is not in the committee")] - NotInCommittee(String), - - #[error("Node {0} is not in the worker cache")] - NotInWorkerCache(String), - - #[error("Unknown worker id {0}")] - UnknownWorker(WorkerId), - - #[error("Failed to read config file '{file}': {message}")] - ImportError { file: String, message: String }, - - #[error("Failed to write config file '{file}': {message}")] - ExportError { file: String, message: String }, -} - -pub trait Import: DeserializeOwned { - fn import(path: &str) -> Result { - let reader = || -> Result { - let data = fs::read(path)?; - Ok(serde_json::from_slice(data.as_slice())?) - }; - reader().map_err(|e| ConfigError::ImportError { - file: path.to_string(), - message: e.to_string(), - }) - } -} - -impl Import for D {} - -pub trait Export: Serialize { - fn export(&self, path: &str) -> Result<(), ConfigError> { - let writer = || -> Result<(), std::io::Error> { - let file = OpenOptions::new() - .create(true) - .truncate(true) - .write(true) - .open(path)?; - let mut writer = BufWriter::new(file); - let data = serde_json::to_string_pretty(self).unwrap(); - writer.write_all(data.as_ref())?; - writer.write_all(b"\n")?; - Ok(()) - }; - writer().map_err(|e| ConfigError::ExportError { - file: path.to_string(), - message: e.to_string(), - }) - } -} - -impl Export for S {} - -// TODO: This actually represents voting power (out of 10,000) and not amount -// staked. Consider renaming to `VotingPower`. -pub type Stake = u64; -pub type WorkerId = u32; - -#[derive(Clone, Debug, Default, Deserialize, Serialize)] -pub struct AnemoParameters { - /// Per-peer rate-limits (in requests/sec) for the PrimaryToPrimary service. - pub send_certificate_rate_limit: Option, - - /// Per-peer rate-limits (in requests/sec) for the WorkerToWorker service. - pub report_batch_rate_limit: Option, - pub request_batches_rate_limit: Option, - - /// Size in bytes above which network messages are considered excessively - /// large. Excessively large messages will still be handled, but logged - /// and reported in metrics for debugging. - /// - /// If unspecified, this will default to 8 MiB. - #[serde(skip_serializing_if = "Option::is_none")] - pub excessive_message_size: Option, -} - -impl AnemoParameters { - // By default, at most 10 certificates can be sent concurrently to a peer. - pub fn send_certificate_rate_limit(&self) -> u32 { - self.send_certificate_rate_limit - .unwrap_or(NonZeroU32::new(20).unwrap()) - .get() - } - - // By default, at most 100 batches can be broadcasted concurrently. - pub fn report_batch_rate_limit(&self) -> u32 { - self.report_batch_rate_limit - .unwrap_or(NonZeroU32::new(200).unwrap()) - .get() - } - - // As of 11/02/2023, when one worker is actively fetching, each peer receives - // 20~30 requests per second. - pub fn request_batches_rate_limit(&self) -> u32 { - self.request_batches_rate_limit - .unwrap_or(NonZeroU32::new(100).unwrap()) - .get() - } - - pub fn excessive_message_size(&self) -> usize { - const EXCESSIVE_MESSAGE_SIZE: usize = 8 << 20; - - self.excessive_message_size - .unwrap_or(EXCESSIVE_MESSAGE_SIZE) - } -} - -#[derive(Clone, Serialize, Deserialize, Eq, Hash, PartialEq, Debug)] -pub struct WorkerInfo { - /// The public key of this worker. - pub name: NetworkPublicKey, - /// Address to receive client transactions (WAN). - pub transactions: Multiaddr, - /// Address to receive messages from other workers (WAN) and our primary. - pub worker_address: Multiaddr, -} - -#[derive(Clone, Serialize, Deserialize, Debug)] -pub struct WorkerIndex(pub BTreeMap); - -#[derive(Clone, Serialize, Deserialize, Debug)] -pub struct WorkerCache { - /// The authority to worker index. - pub workers: BTreeMap, - /// The epoch number for workers - pub epoch: Epoch, -} - -impl std::fmt::Display for WorkerIndex { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "WorkerIndex {:?}", - self.0 - .iter() - .map(|(key, value)| { format!("{}:{:?}", key, value) }) - .collect::>() - ) - } -} - -impl std::fmt::Display for WorkerCache { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "WorkerCache E{}: {:?}", - self.epoch(), - self.workers - .iter() - .map(|(k, v)| { - if let Some(x) = k.encode_base64().get(0..16) { - format!("{}: {}", x, v) - } else { - format!("Invalid key: {}", k) - } - }) - .collect::>() - ) - } -} - -impl WorkerCache { - pub const DEFAULT_FILENAME: &'static str = "workers.json"; - - /// Returns the current epoch. - pub fn epoch(&self) -> Epoch { - self.epoch - } - - /// Returns the addresses of a specific worker (`id`) of a specific - /// authority (`to`). - pub fn worker(&self, to: &PublicKey, id: &WorkerId) -> Result { - self.workers - .iter() - .find_map(|v| match_opt::match_opt!(v, (name, authority) if name == to => authority)) - .ok_or_else(|| { - ConfigError::NotInWorkerCache(ToString::to_string(&(*to).encode_base64())) - })? - .0 - .iter() - .find(|(worker_id, _)| worker_id == &id) - .map(|(_, worker)| worker.clone()) - .ok_or_else(|| ConfigError::NotInWorkerCache((*to).encode_base64())) - } - - /// Returns the addresses of all our workers. - pub fn our_workers(&self, myself: &PublicKey) -> Result, ConfigError> { - let res = self - .workers - .iter() - .find_map( - |v| match_opt::match_opt!(v, (name, authority) if name == myself => authority), - ) - .ok_or_else(|| ConfigError::NotInWorkerCache((*myself).encode_base64()))? - .0 - .values() - .cloned() - .collect(); - Ok(res) - } - - /// Returns the addresses of all known workers. - pub fn all_workers(&self) -> Vec<(NetworkPublicKey, Multiaddr)> { - self.workers - .iter() - .flat_map(|(_, w)| { - w.0.values() - .map(|w| (w.name.clone(), w.worker_address.clone())) - }) - .collect() - } - - /// Returns the addresses of all workers with a specific id except the ones - /// of the authority specified by `myself`. - pub fn others_workers_by_id( - &self, - myself: &PublicKey, - id: &WorkerId, - ) -> Vec<(PublicKey, WorkerInfo)> { - self.workers - .iter() - .filter(|(name, _)| *name != myself ) - .flat_map( - |(name, authority)| authority.0.iter().flat_map( - |v| match_opt::match_opt!(v,(worker_id, addresses) if worker_id == id => (name.clone(), addresses.clone())))) - .collect() - } - - /// Returns the addresses of all workers that are not of our node. - pub fn others_workers(&self, myself: &PublicKey) -> Vec<(PublicKey, WorkerInfo)> { - self.workers - .iter() - .filter(|(name, _)| *name != myself) - .flat_map(|(name, authority)| authority.0.iter().map(|v| (name.clone(), v.1.clone()))) - .collect() - } - - /// Return the network addresses that are present in the current worker - /// cache that are from a primary key that are no longer in the - /// committee. Current committee keys provided as an argument. - pub fn network_diff(&self, keys: Vec<&PublicKey>) -> HashSet<&Multiaddr> { - self.workers - .iter() - .filter(|(name, _)| !keys.contains(name)) - .flat_map(|(_, authority)| { - authority - .0 - .values() - .map(|address| &address.transactions) - .chain(authority.0.values().map(|address| &address.worker_address)) - }) - .collect() - } -} diff --git a/narwhal/config/src/utils.rs b/narwhal/config/src/utils.rs deleted file mode 100644 index 51cd8444bff..00000000000 --- a/narwhal/config/src/utils.rs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::net::{TcpListener, TcpStream}; - -/// Return an ephemeral, available port. On unix systems, the port returned will -/// be in the TIME_WAIT state ensuring that the OS won't hand out this port for -/// some grace period. Callers should be able to bind to this port given they -/// use SO_REUSEADDR. -pub fn get_available_port(host: &str) -> u16 { - const MAX_PORT_RETRIES: u32 = 1000; - - for _ in 0..MAX_PORT_RETRIES { - if let Ok(port) = get_ephemeral_port(host) { - return port; - } - } - - panic!("Error: could not find an available port"); -} - -fn get_ephemeral_port(host: &str) -> std::io::Result { - // Request a random available port from the OS - let listener = TcpListener::bind((host, 0))?; - let addr = listener.local_addr()?; - - // Create and accept a connection (which we'll promptly drop) in order to force - // the port into the TIME_WAIT state, ensuring that the port will be - // reserved from some limited amount of time (roughly 60s on some Linux - // systems) - let _sender = TcpStream::connect(addr)?; - let _incoming = listener.accept()?; - - Ok(addr.port()) -} diff --git a/narwhal/config/tests/config_tests.rs b/narwhal/config/tests/config_tests.rs deleted file mode 100644 index 433c8cb7774..00000000000 --- a/narwhal/config/tests/config_tests.rs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -#![allow(clippy::mutable_key_type)] - -// This file contains tests that detect changes in Narwhal configs and -// parameters. If a PR breaks one or more tests here, the PR probably has a real -// impact on a Narwhal configuration file. When test failure happens, the PR -// should be marked as a breaking change and reviewers should be aware of this. -// -// Owners and operators of production configuration files can add themselves to -// .github/CODEOWNERS for the corresponding snapshot tests, so they can get -// notified of changes. PRs that modifies snapshot files should wait for reviews -// from code owners (if any) before merging. -// -// To review snapshot changes, and fix snapshot differences, -// 0. Install cargo-insta -// 1. Run `cargo insta test --review` under `./config`. -// 2. Review, accept or reject changes. - -use std::collections::HashMap; - -use insta::assert_json_snapshot; -use rand::{SeedableRng, rngs::StdRng}; -use test_utils::CommitteeFixture; - -#[test] -fn leader_election_rotates_through_all() { - // this committee has equi-sized stakes - let fixture = CommitteeFixture::builder().build(); - let committee = fixture.committee(); - let mut leader_counts = HashMap::new(); - // We most probably will only call `leader` on even rounds, so let's check this - // still lets us use the whole roster of leaders. - let mut leader_counts_stepping_by_2 = HashMap::new(); - for i in 0..100 { - let leader = committee.leader(i); - let leader_id = leader.id(); - - let leader_stepping_by_2 = committee.leader(i * 2); - let leader_steeping_by_2_id = leader_stepping_by_2.id(); - - *leader_counts.entry(leader_id).or_insert(0) += 1; - *leader_counts_stepping_by_2 - .entry(leader_steeping_by_2_id) - .or_insert(0) += 1; - } - assert!(leader_counts.values().all(|v| *v >= 20)); - assert!(leader_counts_stepping_by_2.values().all(|v| *v >= 20)); -} - -#[test] -fn commmittee_snapshot_matches() { - // The shape of this configuration is load-bearing in the NW benchmarks, - // and in Iota (prod) - let rng = StdRng::from_seed([0; 32]); - let fixture = CommitteeFixture::builder().rng(rng).build(); - let committee = fixture.committee(); - - // we need authorities to be serialized in order - let mut settings = insta::Settings::clone_current(); - settings.set_sort_maps(true); - settings.bind(|| assert_json_snapshot!("committee", committee)); -} - -#[test] -fn workers_snapshot_matches() { - // The shape of this configuration is load-bearing in the NW benchmarks, - // and in Iota (prod) - let rng = StdRng::from_seed([0; 32]); - let fixture = CommitteeFixture::builder().rng(rng).build(); - let worker_cache = fixture.worker_cache(); - - // we need authorities to be serialized in order - let mut settings = insta::Settings::clone_current(); - settings.set_sort_maps(true); - settings.bind(|| assert_json_snapshot!("worker_cache", worker_cache)); -} diff --git a/narwhal/config/tests/snapshots/config_tests__committee.snap b/narwhal/config/tests/snapshots/config_tests__committee.snap deleted file mode 100644 index 41923e59baf..00000000000 --- a/narwhal/config/tests/snapshots/config_tests__committee.snap +++ /dev/null @@ -1,41 +0,0 @@ ---- -source: narwhal/config/tests/config_tests.rs -expression: committee ---- -{ - "authorities": { - "ku8PylNwBUMzkshpDSeMnbV25O8rPkUFDPcqAyeEXztH02eOq6WemzFMEsi1p0LrBvKBvTLpwLwHhkCatYptihcO75iZRjtFkYwkAlv0GmQQyHZ+xO+UYweLQiYdFHtf": { - "protocol_key": "ku8PylNwBUMzkshpDSeMnbV25O8rPkUFDPcqAyeEXztH02eOq6WemzFMEsi1p0LrBvKBvTLpwLwHhkCatYptihcO75iZRjtFkYwkAlv0GmQQyHZ+xO+UYweLQiYdFHtf", - "protocol_key_bytes": "ku8PylNwBUMzkshpDSeMnbV25O8rPkUFDPcqAyeEXztH02eOq6WemzFMEsi1p0LrBvKBvTLpwLwHhkCatYptihcO75iZRjtFkYwkAlv0GmQQyHZ+xO+UYweLQiYdFHtf", - "stake": 1, - "primary_address": "/ip4/127.0.0.1/udp/0", - "network_key": "Zm3+Rl2weh6VsEmVBAALZ9Pk1yOf+nHpT8LsI1l/0q8=", - "hostname": "/ip4/127.0.0.1/udp/0" - }, - "mfJe9h+AMrkUY2RgmCxcxvE07x3a52ZX8sv+wev8jQlzdAgN9vzw3Li8Sw2OCvXYDrv/K0xZn1T0LWMS38MUJ2B4wcw0fru+xRmL4lhRPzhrkw0CwnSagD4jMJVevRoQ": { - "protocol_key": "mfJe9h+AMrkUY2RgmCxcxvE07x3a52ZX8sv+wev8jQlzdAgN9vzw3Li8Sw2OCvXYDrv/K0xZn1T0LWMS38MUJ2B4wcw0fru+xRmL4lhRPzhrkw0CwnSagD4jMJVevRoQ", - "protocol_key_bytes": "mfJe9h+AMrkUY2RgmCxcxvE07x3a52ZX8sv+wev8jQlzdAgN9vzw3Li8Sw2OCvXYDrv/K0xZn1T0LWMS38MUJ2B4wcw0fru+xRmL4lhRPzhrkw0CwnSagD4jMJVevRoQ", - "stake": 1, - "primary_address": "/ip4/127.0.0.1/udp/0", - "network_key": "iRf3oG9ka0fwbVnVX9BQ3m9wisZbj4rDCF/q5oTjLU4=", - "hostname": "/ip4/127.0.0.1/udp/0" - }, - "ofT8sYBvqkB+c/sjDYTwar96xgZbTdi/ncbet8ja9ePYhtSje59zyarNpF/ZxM1dAncK6uyr9Xv1lS7bJs+nSj2k0bMvbStf5RORLeuPwYz/yJrDOQQf4MxOnW0u8Gzo": { - "protocol_key": "ofT8sYBvqkB+c/sjDYTwar96xgZbTdi/ncbet8ja9ePYhtSje59zyarNpF/ZxM1dAncK6uyr9Xv1lS7bJs+nSj2k0bMvbStf5RORLeuPwYz/yJrDOQQf4MxOnW0u8Gzo", - "protocol_key_bytes": "ofT8sYBvqkB+c/sjDYTwar96xgZbTdi/ncbet8ja9ePYhtSje59zyarNpF/ZxM1dAncK6uyr9Xv1lS7bJs+nSj2k0bMvbStf5RORLeuPwYz/yJrDOQQf4MxOnW0u8Gzo", - "stake": 1, - "primary_address": "/ip4/127.0.0.1/udp/0", - "network_key": "LC/82uPqS70tgF56yNcxk5O1TD37cuMArVZDxvROh6M=", - "hostname": "/ip4/127.0.0.1/udp/0" - }, - "q1ys+9ZU8B5aHgYbgyC5N0XQlGdq1B7xY9D8JOyT89upZpiuKRUDBsq3h/WbLtd4AvLNFNECBjlAG06r8heq7tEs6ol97VfaS2579e4b337eJAwd/y1bIt4F+LhEc3sV": { - "protocol_key": "q1ys+9ZU8B5aHgYbgyC5N0XQlGdq1B7xY9D8JOyT89upZpiuKRUDBsq3h/WbLtd4AvLNFNECBjlAG06r8heq7tEs6ol97VfaS2579e4b337eJAwd/y1bIt4F+LhEc3sV", - "protocol_key_bytes": "q1ys+9ZU8B5aHgYbgyC5N0XQlGdq1B7xY9D8JOyT89upZpiuKRUDBsq3h/WbLtd4AvLNFNECBjlAG06r8heq7tEs6ol97VfaS2579e4b337eJAwd/y1bIt4F+LhEc3sV", - "stake": 1, - "primary_address": "/ip4/127.0.0.1/udp/0", - "network_key": "dqJ63C6YZnD7A5GKXt7kPzZ/HzbCxobxbOy3xRXx+2U=", - "hostname": "/ip4/127.0.0.1/udp/0" - } - }, - "epoch": 0 -} diff --git a/narwhal/config/tests/snapshots/config_tests__parameters.snap b/narwhal/config/tests/snapshots/config_tests__parameters.snap deleted file mode 100644 index 6a3213abb7f..00000000000 --- a/narwhal/config/tests/snapshots/config_tests__parameters.snap +++ /dev/null @@ -1,28 +0,0 @@ ---- -source: narwhal/config/tests/config_tests.rs -expression: parameters ---- -{ - "header_num_of_batches_threshold": 32, - "max_header_num_of_batches": 1000, - "max_header_delay": "1000ms", - "min_header_delay": "500ms", - "gc_depth": 50, - "sync_retry_delay": "5000ms", - "sync_retry_nodes": 3, - "batch_size": 5000000, - "max_batch_delay": "100ms", - "max_concurrent_requests": 500000, - "prometheus_metrics": { - "socket_addr": "/ip4/127.0.0.1/tcp/8081/http" - }, - "network_admin_server": { - "primary_network_admin_server_port": 1234, - "worker_network_admin_server_base_port": 5678 - }, - "anemo": { - "send_certificate_rate_limit": null, - "report_batch_rate_limit": null, - "request_batches_rate_limit": null - } -} diff --git a/narwhal/config/tests/snapshots/config_tests__parameters_import.snap b/narwhal/config/tests/snapshots/config_tests__parameters_import.snap deleted file mode 100644 index 2f37b4905a0..00000000000 --- a/narwhal/config/tests/snapshots/config_tests__parameters_import.snap +++ /dev/null @@ -1,28 +0,0 @@ ---- -source: narwhal/config/tests/config_tests.rs -expression: params ---- -{ - "header_num_of_batches_threshold": 32, - "max_header_num_of_batches": 1000, - "max_header_delay": "1000ms", - "min_header_delay": "500ms", - "gc_depth": 50, - "sync_retry_delay": "5000ms", - "sync_retry_nodes": 3, - "batch_size": 500000, - "max_batch_delay": "100ms", - "max_concurrent_requests": 500000, - "prometheus_metrics": { - "socket_addr": "/ip4/127.0.0.1/tcp/0/http" - }, - "network_admin_server": { - "primary_network_admin_server_port": 0, - "worker_network_admin_server_base_port": 0 - }, - "anemo": { - "send_certificate_rate_limit": null, - "report_batch_rate_limit": null, - "request_batches_rate_limit": null - } -} diff --git a/narwhal/config/tests/snapshots/config_tests__worker_cache.snap b/narwhal/config/tests/snapshots/config_tests__worker_cache.snap deleted file mode 100644 index e25144f9404..00000000000 --- a/narwhal/config/tests/snapshots/config_tests__worker_cache.snap +++ /dev/null @@ -1,97 +0,0 @@ ---- -source: narwhal/config/tests/config_tests.rs -expression: worker_cache ---- -{ - "workers": { - "ku8PylNwBUMzkshpDSeMnbV25O8rPkUFDPcqAyeEXztH02eOq6WemzFMEsi1p0LrBvKBvTLpwLwHhkCatYptihcO75iZRjtFkYwkAlv0GmQQyHZ+xO+UYweLQiYdFHtf": { - "0": { - "name": "+vUstEd3Zwmk1MRBNU6KMe93it1bV/ouTWPUDuDQHOQ=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "1": { - "name": "tA1h9P/tjZVdIaW52V7TMpsYevOffi+wZ52uzvqizy8=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "2": { - "name": "a+K1bOynGp8UECGdYL1AKu+VboCKFzkuas1YrJv9USs=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "3": { - "name": "4kBB/sEnfuQrFVX4wKIWDruoWE0FdGQoAAxV3dH5Ruw=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - } - }, - "mfJe9h+AMrkUY2RgmCxcxvE07x3a52ZX8sv+wev8jQlzdAgN9vzw3Li8Sw2OCvXYDrv/K0xZn1T0LWMS38MUJ2B4wcw0fru+xRmL4lhRPzhrkw0CwnSagD4jMJVevRoQ": { - "0": { - "name": "Rl8pi3pQBvFS3qQ4Ge8XfGIWJ89Ig6gaG+hs27ITsoY=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "1": { - "name": "LEP9AK0+iW5NcUyhZbcmNIb5RYHgH69slDisEtztjG0=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "2": { - "name": "7e+czQHszqp2FRfx2nfFWAO0P62dYPZStGZrvhXxsrk=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "3": { - "name": "E9/Bo/26Ipc5+PcH6FrVcSX/vQpmNQOdnsvrQHha22g=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - } - }, - "ofT8sYBvqkB+c/sjDYTwar96xgZbTdi/ncbet8ja9ePYhtSje59zyarNpF/ZxM1dAncK6uyr9Xv1lS7bJs+nSj2k0bMvbStf5RORLeuPwYz/yJrDOQQf4MxOnW0u8Gzo": { - "0": { - "name": "XfUKCTzkq/woZ4O5HhvOQYx2Mjmj53+b2Zvf47bUNAs=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "1": { - "name": "ImcEJdnkJHGWWGfpkBU8v79yfxiBRd5dSk2fmgVot38=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "2": { - "name": "wtCRbRtWxzwz1mf3mzcJZYlJSzmWIQriK6XTW558nX8=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "3": { - "name": "6AXMr5ld8Tk2FSAG7nzpRNnxB9i/A2jvMHEo45HL1fU=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - } - }, - "q1ys+9ZU8B5aHgYbgyC5N0XQlGdq1B7xY9D8JOyT89upZpiuKRUDBsq3h/WbLtd4AvLNFNECBjlAG06r8heq7tEs6ol97VfaS2579e4b337eJAwd/y1bIt4F+LhEc3sV": { - "0": { - "name": "ZHHGcv0FFVsZHJGRHt9GyGNjuEVHfPRQtzzvr0muwdw=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "1": { - "name": "8mDA/X8DSIDB1xgO2aWggBs6c1CHpwO/8yOObxDvDVg=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "2": { - "name": "qk4EPcTqK1qa8nSDxvWLOc4eNK08K8jStJYuu4r19/I=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - }, - "3": { - "name": "8g85A29s6Un8b8sRwTLdQ626jFtHpDJOwtWEVy2t7MA=", - "transactions": "/ip4/127.0.0.1/tcp/0/http", - "worker_address": "/ip4/127.0.0.1/udp/0" - } - } - }, - "epoch": 0 -} diff --git a/narwhal/crypto/Cargo.toml b/narwhal/crypto/Cargo.toml deleted file mode 100644 index 96db44d300c..00000000000 --- a/narwhal/crypto/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "narwhal-crypto" -version = "0.1.0" -authors = ["IOTA Foundation "] -edition = "2021" -license = "Apache-2.0" -publish = false - -[dependencies] -# external dependencies -bcs.workspace = true -fastcrypto.workspace = true -serde.workspace = true - -# internal dependencies -shared-crypto.workspace = true - -[features] -default = [] - -[dev-dependencies] -bincode.workspace = true -serde_json.workspace = true diff --git a/narwhal/crypto/README.md b/narwhal/crypto/README.md deleted file mode 100644 index dd7ecffbec6..00000000000 --- a/narwhal/crypto/README.md +++ /dev/null @@ -1 +0,0 @@ -Most of the cryptographic libraries used by Narwhal are now in [fastcrypto](https://github.com/MystenLabs/fastcrypto). diff --git a/narwhal/crypto/src/lib.rs b/narwhal/crypto/src/lib.rs deleted file mode 100644 index 51fbe735418..00000000000 --- a/narwhal/crypto/src/lib.rs +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -#![warn( - future_incompatible, - nonstandard_style, - rust_2018_idioms, - rust_2021_compatibility -)] - -// This re-export allows using the trait-defined APIs -pub use fastcrypto::traits; -use fastcrypto::{ - bls12381, ed25519, - error::FastCryptoError, - hash::{Blake2b256, HashFunction}, - traits::{AggregateAuthenticator, Signer, VerifyingKey}, -}; -use serde::Serialize; -use shared_crypto::intent::{INTENT_PREFIX_LENGTH, Intent, IntentMessage, IntentScope}; - -//////////////////////////////////////////////////////////////////////// -/// Type aliases selecting the signature algorithm for the code base. -//////////////////////////////////////////////////////////////////////// -// Here we select the types that are used by default in the code base. -// The whole code base should only: -// - refer to those aliases and not use the individual scheme implementations -// - not use the schemes in a way that break genericity (e.g. using their Struct -// impl functions) -// - swap one of those aliases to point to another type if necessary -// -// Beware: if you change those aliases to point to another scheme -// implementation, you will have to change all four aliases to point to concrete -// types that work with each other. Failure to do so will result in a ton of -// compilation errors, and worse: it will not make sense! - -pub type PublicKey = bls12381::min_sig::BLS12381PublicKey; -pub type PublicKeyBytes = bls12381::min_sig::BLS12381PublicKeyAsBytes; -pub type Signature = bls12381::min_sig::BLS12381Signature; -pub type AggregateSignature = bls12381::min_sig::BLS12381AggregateSignature; -pub type AggregateSignatureBytes = bls12381::min_sig::BLS12381AggregateSignatureAsBytes; -pub type PrivateKey = bls12381::min_sig::BLS12381PrivateKey; -pub type KeyPair = bls12381::min_sig::BLS12381KeyPair; - -pub type NetworkPublicKey = ed25519::Ed25519PublicKey; -pub type NetworkKeyPair = ed25519::Ed25519KeyPair; - -//////////////////////////////////////////////////////////////////////// - -// Type alias selecting the default hash function for the code base. -pub type DefaultHashFunction = Blake2b256; -pub const DIGEST_LENGTH: usize = DefaultHashFunction::OUTPUT_SIZE; -pub const INTENT_MESSAGE_LENGTH: usize = INTENT_PREFIX_LENGTH + DIGEST_LENGTH; - -/// A trait for sign and verify over an intent message, instead of the message -/// itself. See more at [struct IntentMessage]. -pub trait NarwhalAuthoritySignature { - /// Create a new signature over an intent message. - fn new_secure(value: &IntentMessage, secret: &dyn Signer) -> Self - where - T: Serialize; - - /// Verify the signature on an intent message against the public key. - fn verify_secure( - &self, - value: &IntentMessage, - author: &PublicKey, - ) -> Result<(), FastCryptoError> - where - T: Serialize; -} - -impl NarwhalAuthoritySignature for Signature { - fn new_secure(value: &IntentMessage, secret: &dyn Signer) -> Self - where - T: Serialize, - { - let message = bcs::to_bytes(&value).expect("Message serialization should not fail"); - secret.sign(&message) - } - - fn verify_secure( - &self, - value: &IntentMessage, - public_key: &PublicKey, - ) -> Result<(), FastCryptoError> - where - T: Serialize, - { - let message = bcs::to_bytes(&value).expect("Message serialization should not fail"); - public_key.verify(&message, self) - } -} - -pub trait NarwhalAuthorityAggregateSignature { - fn verify_secure( - &self, - value: &IntentMessage, - pks: &[PublicKey], - ) -> Result<(), FastCryptoError> - where - T: Serialize; -} - -impl NarwhalAuthorityAggregateSignature for AggregateSignature { - fn verify_secure( - &self, - value: &IntentMessage, - pks: &[PublicKey], - ) -> Result<(), FastCryptoError> - where - T: Serialize, - { - let message = bcs::to_bytes(&value).expect("Message serialization should not fail"); - self.verify(pks, &message) - } -} - -/// Wrap a message in an intent message. Currently in Narwhal, the scope is -/// always IntentScope::HeaderDigest and the app id is AppId::Narwhal. -pub fn to_intent_message(value: T) -> IntentMessage { - IntentMessage::new(Intent::narwhal_app(IntentScope::HeaderDigest), value) -} diff --git a/narwhal/deny.toml b/narwhal/deny.toml deleted file mode 100644 index d963508cb83..00000000000 --- a/narwhal/deny.toml +++ /dev/null @@ -1,234 +0,0 @@ -# This template contains all of the possible sections and their default values - -# Note that all fields that take a lint level have these possible values: -# * deny - An error will be produced and the check will fail -# * warn - A warning will be produced, but the check will not fail -# * allow - No warning or error will be produced, though in some cases a note -# will be - -# The values provided in this template are the default values that will be used -# when any section or field is not specified in your own configuration - -# If 1 or more target triples (and optionally, target_features) are specified, -# only the specified targets will be checked when running `cargo deny check`. -# This means, if a particular package is only ever used as a target specific -# dependency, such as, for example, the `nix` crate only being used via the -# `target_family = "unix"` configuration, that only having windows targets in -# this list would mean the nix crate, as well as any of its exclusive -# dependencies not shared by any other crates, would be ignored, as the target -# list here is effectively saying which targets you are building for. -targets = [ - - - # The triple can be any string, but only the target triples built in to - # rustc (as of 1.40) can be checked against actual config expressions - # { triple = "x86_64-unknown-linux-musl" }, - # You can also specify which target_features you promise are enabled for a - # particular target. target_features are currently not validated against - # the actual valid features supported by the target architecture. - # { triple = "wasm32-unknown-unknown", features = ["atomics"] }, -] - -# This section is considered when running `cargo deny check advisories` -# More documentation for the advisories section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html -[advisories] -# The path where the advisory database is cloned/fetched into -db-path = "~/.cargo/advisory-db" -# The url(s) of the advisory databases to use -db-urls = ["https://github.com/rustsec/advisory-db"] -# The lint level for security vulnerabilities -vulnerability = "deny" -# The lint level for unmaintained crates -unmaintained = "warn" -# The lint level for crates that have been yanked from their source registry -yanked = "warn" -# The lint level for crates with security notices. Note that as of -# 2019-12-17 there are no security notice advisories in -# https://github.com/rustsec/advisory-db -notice = "warn" -# A list of advisory IDs to ignore. Note that ignored advisories will still -# output a note when they are encountered. -ignore = [ - - - # "RUSTSEC-0000-0000", -] -# Threshold for security vulnerabilities, any vulnerability with a CVSS score -# lower than the range specified will be ignored. Note that ignored advisories -# will still output a note when they are encountered. -# * None - CVSS Score 0.0 -# * Low - CVSS Score 0.1 - 3.9 -# * Medium - CVSS Score 4.0 - 6.9 -# * High - CVSS Score 7.0 - 8.9 -# * Critical - CVSS Score 9.0 - 10.0 -# severity-threshold = - -# This section is considered when running `cargo deny check licenses` -# More documentation for the licenses section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html -[licenses] -# The lint level for crates which do not have a detectable license -unlicensed = "deny" -# List of explicitly allowed licenses -# See https://spdx.org/licenses/ for list of possible licenses -# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. -allow = [ - "MIT", - "BSD-2-Clause", - "BSD-3-Clause", - "CC0-1.0", - "Apache-2.0", - "LicenseRef-ring", - "ISC", - "Unicode-DFS-2016", - # "Apache-2.0 WITH LLVM-exception", -] -# List of explicitly disallowed licenses -# See https://spdx.org/licenses/ for list of possible licenses -# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. -deny = [ - - - # "Nokia", -] -# Lint level for licenses considered copyleft -copyleft = "warn" -# Blanket approval or denial for OSI-approved or FSF Free/Libre licenses -# * both - The license will be approved if it is both OSI-approved *AND* FSF -# * either - The license will be approved if it is either OSI-approved *OR* FSF -# * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF -# * fsf-only - The license will be approved if is FSF *AND NOT* OSI-approved -# * neither - This predicate is ignored and the default lint level is used -allow-osi-fsf-free = "neither" -# Lint level used when no other predicates are matched -# 1. License isn't in the allow or deny lists -# 2. License isn't copyleft -# 3. License isn't OSI/FSF, or allow-osi-fsf-free = "neither" -default = "deny" -# The confidence threshold for detecting a license from license text. -# The higher the value, the more closely the license text must be to the -# canonical license text of a valid SPDX license file. -# [possible values: any between 0.0 and 1.0]. -confidence-threshold = 0.8 -# Allow 1 or more licenses on a per-crate basis, so that particular licenses -# aren't accepted for every possible crate as with the normal allow list -exceptions = [ - - - # Each entry is the crate and version constraint, and its specific allow - # list - # { allow = ["Zlib"], name = "adler32", version = "*" }, -] - -# Some crates don't have (easily) machine readable licensing information, -# adding a clarification entry for it allows you to manually specify the -# licensing information -# [[licenses.clarify]] -# The name of the crate the clarification applies to -# name = "ring" -# The optional version constraint for the crate -# version = "*" -# The SPDX expression for the license requirements of the crate -# expression = "MIT AND ISC AND OpenSSL" -# One or more files in the crate's source used as the "source of truth" for -# the license expression. If the contents match, the clarification will be used -# when running the license check, otherwise the clarification will be ignored -# and the crate will be checked normally, which may produce warnings or errors -# depending on the rest of your configuration -# license-files = [ -# Each entry is a crate relative path, and the (opaque) hash of its contents -# { path = "LICENSE", hash = 0xbd0eed23 } -# ] -[[licenses.clarify]] -name = "bls-crypto" -version = "*" -expression = "MIT AND Apache-2.0" -license-files = [ - -] -[[licenses.clarify]] -name = "ring" -expression = "LicenseRef-ring" -license-files = [ - { path = "LICENSE", hash = 0xbd0eed23 }, -] - -[licenses.private] -# If true, ignores workspace crates that aren't published, or are only -# published to private registries -ignore = false -# One or more private registries that you might publish crates to, if a crate -# is only published to private registries, and ignore is true, the crate will -# not have its license(s) checked -registries = [ - - - # "https://sekretz.com/registry -] - -# This section is considered when running `cargo deny check bans`. -# More documentation about the 'bans' section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html -[bans] -# Lint level for when multiple versions of the same crate are detected -multiple-versions = "warn" -# Lint level for when a crate version requirement is `*` -wildcards = "allow" -# The graph highlighting used when creating dotgraphs for crates -# with multiple versions -# * lowest-version - The path to the lowest versioned duplicate is highlighted -# * simplest-path - The path to the version with the fewest edges is highlighted -# * all - Both lowest-version and simplest-path are used -highlight = "all" -# List of crates that are allowed. Use with care! -allow = [ - - - # { name = "ansi_term", version = "=0.11.0" }, -] -# List of crates to deny -deny = [ - - - # Each entry the name of a crate and a version range. If version is - # not specified, all versions will be matched. - # { name = "ansi_term", version = "=0.11.0" }, - # - # Wrapper crates can optionally be specified to allow the crate when it - # is a direct dependency of the otherwise banned crate - # { name = "ansi_term", version = "=0.11.0", wrappers = [] }, -] -# Certain crates/versions that will be skipped when doing duplicate detection. -skip = [ - - - # { name = "ansi_term", version = "=0.11.0" }, -] -# Similarly to `skip` allows you to skip certain crates during duplicate -# detection. Unlike skip, it also includes the entire tree of transitive -# dependencies starting at the specified crate, up to a certain depth, which is -# by default infinite -skip-tree = [ - - - # { name = "ansi_term", version = "=0.11.0", depth = 20 }, -] - -# This section is considered when running `cargo deny check sources`. -# More documentation about the 'sources' section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html -[sources] -# Lint level for what to happen when a crate from a crate registry that is not -# in the allow list is encountered -unknown-registry = "warn" -# Lint level for what to happen when a crate from a git repository that is not -# in the allow list is encountered -unknown-git = "warn" -# List of URLs for allowed crate registries. Defaults to the crates.io index -# if not specified. If it is specified but empty, no registries are allowed. -allow-registry = ["https://github.com/rust-lang/crates.io-index"] -# List of URLs for allowed Git repositories -allow-git = [] - -[sources.allow-org] diff --git a/narwhal/network/Cargo.toml b/narwhal/network/Cargo.toml deleted file mode 100644 index 484693383b4..00000000000 --- a/narwhal/network/Cargo.toml +++ /dev/null @@ -1,34 +0,0 @@ -[package] -name = "narwhal-network" -version = "0.1.0" -authors = ["IOTA Foundation "] -edition = "2021" -license = "Apache-2.0" -publish = false - -[dependencies] -# external dependencies -anemo.workspace = true -anemo-tower.workspace = true -anyhow.workspace = true -async-trait.workspace = true -axum.workspace = true -bytes.workspace = true -dashmap.workspace = true -futures.workspace = true -parking_lot.workspace = true -prometheus.workspace = true -quinn-proto.workspace = true -rand = { workspace = true, features = ["small_rng"] } -tokio = { workspace = true, features = ["rt", "net", "sync", "macros", "time"] } -tower.workspace = true -tracing.workspace = true - -# internal dependencies -crypto = { path = "../crypto", package = "narwhal-crypto" } -iota-common.workspace = true -iota-metrics.workspace = true -types = { path = "../types", package = "narwhal-types" } - -[dev-dependencies] -bincode.workspace = true diff --git a/narwhal/network/src/lib.rs b/narwhal/network/src/lib.rs deleted file mode 100644 index 5490bb946d9..00000000000 --- a/narwhal/network/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -pub mod connectivity; -pub mod metrics; diff --git a/narwhal/test-utils/Cargo.toml b/narwhal/test-utils/Cargo.toml deleted file mode 100644 index ad0e8d8de09..00000000000 --- a/narwhal/test-utils/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "narwhal-test-utils" -version = "0.1.0" -authors = ["IOTA Foundation "] -edition = "2021" -license = "Apache-2.0" -publish = false - -[dependencies] -# external dependencies -anemo.workspace = true -fastcrypto.workspace = true -fdlimit.workspace = true -indexmap.workspace = true -once_cell.workspace = true -rand.workspace = true -tempfile.workspace = true -tokio = { workspace = true, features = ["sync", "rt", "macros"] } -tonic.workspace = true -tracing.workspace = true - -# internal dependencies -config = { path = "../config", package = "narwhal-config" } -crypto = { path = "../crypto", package = "narwhal-crypto" } -iota-network-stack.workspace = true -iota-protocol-config.workspace = true -types = { path = "../types", package = "narwhal-types" } diff --git a/narwhal/test-utils/src/lib.rs b/narwhal/test-utils/src/lib.rs deleted file mode 100644 index c276df44272..00000000000 --- a/narwhal/test-utils/src/lib.rs +++ /dev/null @@ -1,1116 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - collections::{BTreeMap, BTreeSet, HashMap, VecDeque}, - num::NonZeroUsize, - ops::RangeInclusive, -}; - -use config::{ - Authority, AuthorityIdentifier, Committee, CommitteeBuilder, Epoch, Stake, WorkerCache, - WorkerId, WorkerIndex, WorkerInfo, utils::get_available_port, -}; -use crypto::{ - KeyPair, NarwhalAuthoritySignature, NetworkKeyPair, NetworkPublicKey, PublicKey, Signature, - to_intent_message, -}; -use fastcrypto::{ - hash::Hash as _, - traits::{AllowedRng, KeyPair as _}, -}; -use indexmap::IndexMap; -use iota_network_stack::Multiaddr; -use iota_protocol_config::{Chain, ProtocolConfig, ProtocolVersion}; -use once_cell::sync::OnceCell; -use rand::{ - Rng, RngCore, SeedableRng, - distributions::{Bernoulli, Distribution}, - rngs::{OsRng, StdRng}, - thread_rng, -}; -use types::{ - Batch, BatchDigest, Certificate, CertificateAPI, CertificateDigest, Header, HeaderAPI, - HeaderV1Builder, Round, TimestampMs, Transaction, Vote, VoteAPI, -}; - -pub const VOTES_CF: &str = "votes"; -pub const HEADERS_CF: &str = "headers"; -pub const CERTIFICATES_CF: &str = "certificates"; -pub const CERTIFICATE_DIGEST_BY_ROUND_CF: &str = "certificate_digest_by_round"; -pub const CERTIFICATE_DIGEST_BY_ORIGIN_CF: &str = "certificate_digest_by_origin"; -pub const PAYLOAD_CF: &str = "payload"; - -pub fn latest_protocol_version() -> ProtocolConfig { - ProtocolConfig::get_for_version(ProtocolVersion::max(), Chain::Unknown) -} - -pub fn get_protocol_config(version_number: u64) -> ProtocolConfig { - ProtocolConfig::get_for_version(ProtocolVersion::new(version_number), Chain::Unknown) -} - -pub fn temp_dir() -> std::path::PathBuf { - tempfile::tempdir() - .expect("Failed to open temporary directory") - .into_path() -} - -pub fn ensure_test_environment() { - // One common issue when running tests on Mac is that the default ulimit is too - // low, leading to I/O errors such as "Too many open files". Raising fdlimit - // to bypass it. Also we can't do this in Windows, apparently. - #[cfg(not(target_os = "windows"))] - fdlimit::raise_fd_limit().expect("Could not raise ulimit"); -} - -#[macro_export] -macro_rules! test_channel { - ($e:expr) => { - iota_metrics::metered_channel::channel( - $e, - &prometheus::IntGauge::new("TEST_COUNTER", "test counter").unwrap(), - ); - }; -} - -// Note: use the following macros to initialize your Primary / Consensus -// channels if your test is spawning a primary and you encounter an `AllReg` -// error. -// -// Rationale: -// The primary initialization will try to edit a specific metric in its registry -// for its new_certificates and committeed_certificates channel. The gauge -// situated in the channel you're passing as an argument to the primary -// initialization is the replacement. If that gauge is a dummy gauge, such as -// the one above, the initialization of the primary will panic (to protect the -// production code against an erroneous mistake in editing this bootstrap -// logic). -#[macro_export] -macro_rules! test_committed_certificates_channel { - ($e:expr) => { - iota_metrics::metered_channel::channel( - $e, - &prometheus::IntGauge::new( - primary::PrimaryChannelMetrics::NAME_COMMITTED_CERTS, - primary::PrimaryChannelMetrics::DESC_COMMITTED_CERTS, - ) - .unwrap(), - ); - }; -} - -#[macro_export] -macro_rules! test_new_certificates_channel { - ($e:expr) => { - iota_metrics::metered_channel::channel( - $e, - &prometheus::IntGauge::new( - primary::PrimaryChannelMetrics::NAME_NEW_CERTS, - primary::PrimaryChannelMetrics::DESC_NEW_CERTS, - ) - .unwrap(), - ); - }; -} - -//////////////////////////////////////////////////////////////// -/// Keys, Committee -//////////////////////////////////////////////////////////////// - -pub fn random_key() -> KeyPair { - KeyPair::generate(&mut thread_rng()) -} - -//////////////////////////////////////////////////////////////// -/// Headers, Votes, Certificates -//////////////////////////////////////////////////////////////// -pub fn fixture_payload(number_of_batches: u8) -> IndexMap { - let mut payload: IndexMap = IndexMap::new(); - - for _ in 0..number_of_batches { - let batch_digest = batch().digest(); - - payload.insert(batch_digest, (0, 0)); - } - - payload -} - -// will create a batch with randomly formed transactions -// dictated by the parameter number_of_transactions -pub fn fixture_batch_with_transactions(number_of_transactions: u32) -> Batch { - let transactions = (0..number_of_transactions) - .map(|_v| transaction()) - .collect(); - - Batch::new(transactions) -} - -pub fn fixture_payload_with_rand( - number_of_batches: u8, - rand: &mut R, -) -> IndexMap { - let mut payload: IndexMap = IndexMap::new(); - - for _ in 0..number_of_batches { - let batch_digest = batch_with_rand(rand).digest(); - - payload.insert(batch_digest, (0, 0)); - } - - payload -} - -pub fn transaction_with_rand(rand: &mut R) -> Transaction { - // generate random value transactions, but the length will be always 100 bytes - (0..100) - .map(|_v| rand.gen_range(u8::MIN..=u8::MAX)) - .collect() -} - -pub fn batch_with_rand(rand: &mut R) -> Batch { - Batch::new(vec![ - transaction_with_rand(rand), - transaction_with_rand(rand), - ]) -} - -// Fixture -pub fn transaction() -> Transaction { - // generate random value transactions, but the length will be always 100 bytes - (0..100).map(|_v| rand::random::()).collect() -} - -//////////////////////////////////////////////////////////////// -/// Batches -//////////////////////////////////////////////////////////////// - -// Fixture -pub fn batch() -> Batch { - let transactions = vec![transaction(), transaction()]; - Batch::new(transactions) -} - -/// generate multiple fixture batches. The number of generated batches -/// are dictated by the parameter num_of_batches. -pub fn batches(num_of_batches: usize) -> Vec { - let mut batches = Vec::new(); - - for i in 1..num_of_batches + 1 { - batches.push(batch_with_transactions(i)); - } - - batches -} - -pub fn batch_with_transactions(num_of_transactions: usize) -> Batch { - let mut transactions = Vec::new(); - - for _ in 0..num_of_transactions { - transactions.push(transaction()); - } - - Batch::new(transactions) -} - -// Creates one certificate per authority starting and finishing at the specified -// rounds (inclusive). Outputs a VecDeque of certificates (the certificate with -// higher round is on the front) and a set of digests to be used as parents for -// the certificates of the next round. Note : the certificates are unsigned -pub fn make_optimal_certificates( - committee: &Committee, - range: RangeInclusive, - initial_parents: &BTreeSet, - ids: &[AuthorityIdentifier], -) -> (VecDeque, BTreeSet) { - make_certificates(committee, range, initial_parents, ids, 0.0) -} - -// Outputs rounds worth of certificates with optimal parents, signed -pub fn make_optimal_signed_certificates( - range: RangeInclusive, - initial_parents: &BTreeSet, - committee: &Committee, - keys: &[(AuthorityIdentifier, KeyPair)], -) -> (VecDeque, BTreeSet) { - make_signed_certificates(range, initial_parents, committee, keys, 0.0) -} - -// Bernoulli-samples from a set of ancestors passed as a argument, -fn this_cert_parents( - ancestors: &BTreeSet, - failure_prob: f64, -) -> BTreeSet { - std::iter::from_fn(|| { - let f: f64 = rand::thread_rng().gen(); - Some(f > failure_prob) - }) - .take(ancestors.len()) - .zip(ancestors) - .flat_map(|(parenthood, parent)| parenthood.then_some(*parent)) - .collect::>() -} - -// Utility for making several rounds worth of certificates through iterated -// parenthood sampling. The making of individual certificates once parents are -// figured out is delegated to the `make_one_certificate` argument -fn rounds_of_certificates( - range: RangeInclusive, - initial_parents: &BTreeSet, - ids: &[AuthorityIdentifier], - failure_probability: f64, - make_one_certificate: impl Fn( - AuthorityIdentifier, - Round, - BTreeSet, - ) -> (CertificateDigest, Certificate), -) -> (VecDeque, BTreeSet) { - let mut certificates = VecDeque::new(); - let mut parents = initial_parents.iter().cloned().collect::>(); - let mut next_parents = BTreeSet::new(); - - for round in range { - next_parents.clear(); - for id in ids { - let this_cert_parents = this_cert_parents(&parents, failure_probability); - - let (digest, certificate) = make_one_certificate(*id, round, this_cert_parents); - certificates.push_back(certificate); - next_parents.insert(digest); - } - parents = next_parents.clone(); - } - (certificates, next_parents) -} - -// make rounds worth of unsigned certificates with the sampled number of parents -pub fn make_certificates( - committee: &Committee, - range: RangeInclusive, - initial_parents: &BTreeSet, - ids: &[AuthorityIdentifier], - failure_probability: f64, -) -> (VecDeque, BTreeSet) { - let generator = |pk, round, parents| mock_certificate(committee, pk, round, parents); - - rounds_of_certificates(range, initial_parents, ids, failure_probability, generator) -} - -// Creates certificates for the provided rounds but also having slow nodes. -// `range`: the rounds for which we intend to create the certificates for -// `initial_parents`: the parents to use when start creating the certificates -// `keys`: the authorities for which it will create certificates for -// `slow_nodes`: the authorities which are considered slow. Being a slow -// authority means that we will still create certificates for them on each -// round, but no other authority from higher round will refer -// to those certificates. The number (by stake) of slow_nodes can not be > f , -// as otherwise no valid graph will be produced. -pub fn make_certificates_with_slow_nodes( - committee: &Committee, - range: RangeInclusive, - initial_parents: Vec, - names: &[AuthorityIdentifier], - slow_nodes: &[(AuthorityIdentifier, f64)], -) -> (VecDeque, Vec) { - let mut rand = StdRng::seed_from_u64(1); - - // ensure provided slow nodes do not account > f - let slow_nodes_stake: Stake = slow_nodes - .iter() - .map(|(key, _)| committee.authority(key).unwrap().stake()) - .sum(); - - assert!(slow_nodes_stake < committee.validity_threshold()); - - let mut certificates = VecDeque::new(); - let mut parents = initial_parents; - let mut next_parents = Vec::new(); - - for round in range { - next_parents.clear(); - for name in names { - let this_cert_parents = this_cert_parents_with_slow_nodes( - name, - parents.clone(), - slow_nodes, - &mut rand, - committee, - ); - - let (_, certificate) = mock_certificate(committee, *name, round, this_cert_parents); - certificates.push_back(certificate.clone()); - next_parents.push(certificate); - } - parents = next_parents.clone(); - } - (certificates, next_parents) -} - -#[derive(Debug, Clone, Copy)] -pub enum TestLeaderSupport { - // There will be support for the leader, but less than f+1 - Weak, - // There will be strong support for the leader, meaning >= f+1 - Strong, - // Leader will be completely omitted by the voters - NoSupport, -} - -pub struct TestLeaderConfiguration { - // The round of the leader - pub round: Round, - // The leader id. That allow us to explicitly dictate which we consider the leader to be - pub authority: AuthorityIdentifier, - // If true then the leader for that round will not be created at all - pub should_omit: bool, - // The support that this leader should receive from the voters of next round - pub support: Option, -} - -/// Creates fully connected DAG for the dictated rounds but with specific -/// conditions for the leaders. By providing the `leader_configuration` we can -/// dictate the setup for specific leaders of specific rounds. For a leader the -/// following can be configured: -/// * whether a leader will exist or not for a round -/// * whether a leader will receive enough support from the next round -pub fn make_certificates_with_leader_configuration( - committee: &Committee, - range: RangeInclusive, - initial_parents: &BTreeSet, - names: &[AuthorityIdentifier], - leader_configurations: HashMap, -) -> (VecDeque, BTreeSet) { - for round in leader_configurations.keys() { - assert_eq!(round % 2, 0, "Leaders are elected only on even rounds"); - } - - let mut certificates: VecDeque = VecDeque::new(); - let mut parents = initial_parents.iter().cloned().collect::>(); - let mut next_parents = BTreeSet::new(); - - for round in range { - next_parents.clear(); - - for name in names { - // should we produce the leader of that round? - if let Some(leader_config) = leader_configurations.get(&round) { - if leader_config.should_omit && leader_config.authority == *name { - // just skip and don't create the certificate for this authority - continue; - } - } - - // we now check for the leader of previous round. If should not be omitted we - // need to check on the support we are supposed to provide - let cert_parents = if round > 0 { - if let Some(leader_config) = leader_configurations.get(&(round - 1)) { - match leader_config.support { - Some(TestLeaderSupport::Weak) => { - // find the leader from the previous round - let leader_certificate = certificates - .iter() - .find(|c| { - c.round() == round - 1 && c.origin() == leader_config.authority - }) - .unwrap(); - - // check whether anyone from the current round already included it - // if yes, then we should remove it and not vote again. - if certificates.iter().any(|c| { - c.round() == round - && c.header().parents().contains(&leader_certificate.digest()) - }) { - let mut p = parents.clone(); - p.remove(&leader_certificate.digest()); - p - } else { - // otherwise return all the parents - parents.clone() - } - } - Some(TestLeaderSupport::Strong) => { - // just return the whole parent set so we can vote for it - parents.clone() - } - Some(TestLeaderSupport::NoSupport) => { - // remove the leader from the set of parents - let c = certificates - .iter() - .find(|c| { - c.round() == round - 1 && c.origin() == leader_config.authority - }) - .unwrap(); - let mut p = parents.clone(); - p.remove(&c.digest()); - p - } - None => parents.clone(), - } - } else { - parents.clone() - } - } else { - parents.clone() - }; - - // Create the certificates - let (_, certificate) = mock_certificate(committee, *name, round, cert_parents); - certificates.push_back(certificate.clone()); - next_parents.insert(certificate.digest()); - } - parents = next_parents.clone(); - } - (certificates, next_parents) -} - -// Returns the parents that should be used as part of a newly created -// certificate. The `slow_nodes` parameter is used to dictate which parents to -// exclude and not use. The slow node will not be used under some probability -// which is provided as part of the tuple. If probability to use it is 0.0, then -// the parent node will NEVER be used. If probability to use it is 1.0, then the -// parent node will ALWAYS be used. We always make sure to include our "own" -// certificate, thus the `name` property is needed. -pub fn this_cert_parents_with_slow_nodes( - authority_id: &AuthorityIdentifier, - ancestors: Vec, - slow_nodes: &[(AuthorityIdentifier, f64)], - rand: &mut StdRng, - committee: &Committee, -) -> BTreeSet { - let mut parents = BTreeSet::new(); - let mut not_included = Vec::new(); - let mut total_stake = 0; - - for parent in ancestors { - let authority = committee.authority(&parent.origin()).unwrap(); - - // Identify if the parent is within the slow nodes - and is not the same author - // as the one we want to create the certificate for. - if let Some((_, inclusion_probability)) = slow_nodes - .iter() - .find(|(id, _)| *id != *authority_id && *id == parent.header().author()) - { - let b = Bernoulli::new(*inclusion_probability).unwrap(); - let should_include = b.sample(rand); - - if should_include { - parents.insert(parent.digest()); - total_stake += authority.stake(); - } else { - not_included.push(parent); - } - } else { - // just add it directly as it is not within the slow nodes or we are the - // same author. - parents.insert(parent.digest()); - total_stake += authority.stake(); - } - } - - // ensure we'll have enough parents (2f + 1) - while total_stake < committee.quorum_threshold() { - let parent = not_included.pop().unwrap(); - let authority = committee.authority(&parent.origin()).unwrap(); - - total_stake += authority.stake(); - - parents.insert(parent.digest()); - } - - assert!( - committee.reached_quorum(total_stake), - "Not enough parents by stake provided. Expected at least {} but instead got {}", - committee.quorum_threshold(), - total_stake - ); - - parents -} - -// make rounds worth of unsigned certificates with the sampled number of parents -pub fn make_certificates_with_epoch( - committee: &Committee, - range: RangeInclusive, - epoch: Epoch, - initial_parents: &BTreeSet, - keys: &[AuthorityIdentifier], -) -> (VecDeque, BTreeSet) { - let mut certificates = VecDeque::new(); - let mut parents = initial_parents.iter().cloned().collect::>(); - let mut next_parents = BTreeSet::new(); - - for round in range { - next_parents.clear(); - for name in keys { - let (digest, certificate) = - mock_certificate_with_epoch(committee, *name, round, epoch, parents.clone()); - certificates.push_back(certificate); - next_parents.insert(digest); - } - parents = next_parents.clone(); - } - (certificates, next_parents) -} - -// make rounds worth of signed certificates with the sampled number of parents -pub fn make_signed_certificates( - range: RangeInclusive, - initial_parents: &BTreeSet, - committee: &Committee, - keys: &[(AuthorityIdentifier, KeyPair)], - failure_probability: f64, -) -> (VecDeque, BTreeSet) { - let ids = keys - .iter() - .map(|(authority, _)| *authority) - .collect::>(); - let generator = - |pk, round, parents| mock_signed_certificate(keys, pk, round, parents, committee); - - rounds_of_certificates( - range, - initial_parents, - &ids[..], - failure_probability, - generator, - ) -} - -pub fn mock_certificate_with_rand( - committee: &Committee, - origin: AuthorityIdentifier, - round: Round, - parents: BTreeSet, - rand: &mut R, -) -> (CertificateDigest, Certificate) { - let header_builder = HeaderV1Builder::default(); - let header = header_builder - .author(origin) - .round(round) - .epoch(0) - .parents(parents) - .payload(fixture_payload_with_rand(1, rand)) - .build() - .unwrap(); - let certificate = Certificate::new_unsigned(committee, Header::V1(header), Vec::new()).unwrap(); - (certificate.digest(), certificate) -} - -// Creates a badly signed certificate from its given round, origin and parents, -// Note: the certificate is signed by a random key rather than its author -pub fn mock_certificate( - committee: &Committee, - origin: AuthorityIdentifier, - round: Round, - parents: BTreeSet, -) -> (CertificateDigest, Certificate) { - mock_certificate_with_epoch(committee, origin, round, 0, parents) -} - -// Creates a badly signed certificate from its given round, epoch, origin, and -// parents, Note: the certificate is signed by a random key rather than its -// author -pub fn mock_certificate_with_epoch( - committee: &Committee, - origin: AuthorityIdentifier, - round: Round, - epoch: Epoch, - parents: BTreeSet, -) -> (CertificateDigest, Certificate) { - let header_builder = HeaderV1Builder::default(); - let header = header_builder - .author(origin) - .round(round) - .epoch(epoch) - .parents(parents) - .payload(fixture_payload(1)) - .build() - .unwrap(); - let certificate = Certificate::new_unsigned(committee, Header::V1(header), Vec::new()).unwrap(); - (certificate.digest(), certificate) -} - -// Creates one signed certificate from a set of signers - the signers must -// include the origin -pub fn mock_signed_certificate( - signers: &[(AuthorityIdentifier, KeyPair)], - origin: AuthorityIdentifier, - round: Round, - parents: BTreeSet, - committee: &Committee, -) -> (CertificateDigest, Certificate) { - let header_builder = HeaderV1Builder::default() - .author(origin) - .payload(fixture_payload(1)) - .round(round) - .epoch(0) - .parents(parents); - - let header = header_builder.build().unwrap(); - - let cert = - Certificate::new_unsigned(committee, Header::V1(header.clone()), Vec::new()).unwrap(); - - let mut votes = Vec::new(); - for (name, signer) in signers { - let sig = Signature::new_secure(&to_intent_message(cert.header().digest()), signer); - votes.push((*name, sig)) - } - let cert = Certificate::new_unverified(committee, Header::V1(header), votes).unwrap(); - (cert.digest(), cert) -} - -pub struct Builder { - rng: R, - committee_size: NonZeroUsize, - number_of_workers: NonZeroUsize, - randomize_ports: bool, - epoch: Epoch, - protocol_version: ProtocolVersion, - stake: VecDeque, -} - -impl Default for Builder { - fn default() -> Self { - Self::new() - } -} - -impl Builder { - pub fn new() -> Self { - Self { - epoch: Epoch::default(), - protocol_version: ProtocolVersion::max(), - rng: OsRng, - committee_size: NonZeroUsize::new(4).unwrap(), - number_of_workers: NonZeroUsize::new(4).unwrap(), - randomize_ports: false, - stake: VecDeque::new(), - } - } -} - -impl Builder { - pub fn committee_size(mut self, committee_size: NonZeroUsize) -> Self { - self.committee_size = committee_size; - self - } - - pub fn number_of_workers(mut self, number_of_workers: NonZeroUsize) -> Self { - self.number_of_workers = number_of_workers; - self - } - - pub fn randomize_ports(mut self, randomize_ports: bool) -> Self { - self.randomize_ports = randomize_ports; - self - } - - pub fn epoch(mut self, epoch: Epoch) -> Self { - self.epoch = epoch; - self - } - - pub fn protocol_version(mut self, protocol_version: ProtocolVersion) -> Self { - self.protocol_version = protocol_version; - self - } - - pub fn stake_distribution(mut self, stake: VecDeque) -> Self { - self.stake = stake; - self - } - - pub fn rng(self, rng: N) -> Builder { - Builder { - rng, - epoch: self.epoch, - protocol_version: self.protocol_version, - committee_size: self.committee_size, - number_of_workers: self.number_of_workers, - randomize_ports: self.randomize_ports, - stake: self.stake, - } - } -} - -impl Builder { - pub fn build(mut self) -> CommitteeFixture { - if !self.stake.is_empty() { - assert_eq!( - self.stake.len(), - self.committee_size.get(), - "Stake vector has been provided but is different length the committee - it should be the same" - ); - } - - let mut authorities: Vec = (0..self.committee_size.get()) - .map(|_| { - AuthorityFixture::generate( - StdRng::from_rng(&mut self.rng).unwrap(), - self.number_of_workers, - |host| { - if self.randomize_ports { - get_available_port(host) - } else { - 0 - } - }, - ) - }) - .collect(); - - // now order the AuthorityFixtures by the authority PublicKey so when we iterate - // either via the committee.authorities() or via the - // fixture.authorities() we'll get the same order. - authorities.sort_by_key(|a1| a1.public_key()); - - // create the committee in order to assign the ids to the authorities - let mut committee_builder = CommitteeBuilder::new(self.epoch); - for a in authorities.iter() { - committee_builder = committee_builder.add_authority( - a.public_key().clone(), - self.stake.pop_front().unwrap_or(1), - a.address.clone(), - a.network_public_key(), - a.address.to_string(), - ); - } - let committee = committee_builder.build(); - - // Update the Fixtures with the id assigned from the committee - for authority in authorities.iter_mut() { - let a = committee - .authority_by_key(authority.keypair.public()) - .unwrap(); - authority.authority = OnceCell::with_value(a.clone()); - authority.stake = a.stake(); - } - - // Now update the stake to follow the order of the authorities so we produce - // expected results - let authorities: Vec = authorities - .into_iter() - .map(|mut authority| { - authority.stake = self.stake.pop_front().unwrap_or(1); - authority - }) - .collect(); - - CommitteeFixture { - authorities, - committee, - epoch: self.epoch, - } - } -} - -pub struct CommitteeFixture { - authorities: Vec, - committee: Committee, - epoch: Epoch, -} - -impl CommitteeFixture { - pub fn authority(&self, index: usize) -> &AuthorityFixture { - &self.authorities[index] - } - - pub fn authorities(&self) -> impl Iterator { - self.authorities.iter() - } - - pub fn builder() -> Builder { - Builder::new() - } - - pub fn committee(&self) -> Committee { - self.committee.clone() - } - - pub fn worker_cache(&self) -> WorkerCache { - WorkerCache { - epoch: self.epoch, - workers: self - .authorities - .iter() - .map(|a| (a.public_key(), a.worker_index())) - .collect(), - } - } - - // pub fn header(&self, author: PublicKey) -> Header { - // Currently sign with the last authority - pub fn header(&self) -> Header { - self.authorities.last().unwrap().header(&self.committee()) - } - - pub fn headers(&self) -> Vec
{ - let committee = self.committee(); - - self.authorities - .iter() - .map(|a| a.header_with_round(&committee, 1)) - .collect() - } - - pub fn headers_next_round(&self) -> Vec
{ - let committee = self.committee(); - self.authorities - .iter() - .map(|a| a.header_with_round(&committee, 2)) - .collect() - } - - pub fn headers_round( - &self, - prior_round: Round, - parents: &BTreeSet, - ) -> (Round, Vec
) { - let round = prior_round + 1; - let next_headers = self - .authorities - .iter() - .map(|a| { - let builder = types::HeaderV1Builder::default(); - let header = builder - .author(a.id()) - .round(round) - .epoch(0) - .parents(parents.clone()) - .with_payload_batch(fixture_batch_with_transactions(10), 0, 0) - .build() - .unwrap(); - Header::V1(header) - }) - .collect(); - - (round, next_headers) - } - - pub fn votes(&self, header: &Header) -> Vec { - self.authorities() - .flat_map(|a| { - // we should not re-sign using the key of the authority - // that produced the header - if a.id() == header.author() { - None - } else { - Some(a.vote(header)) - } - }) - .collect() - } - - pub fn certificate(&self, header: &Header) -> Certificate { - let committee = self.committee(); - let votes: Vec<_> = self - .votes(header) - .into_iter() - .map(|x| (x.author(), x.signature().clone())) - .collect(); - Certificate::new_unverified(&committee, header.clone(), votes).unwrap() - } -} - -pub struct AuthorityFixture { - authority: OnceCell, - keypair: KeyPair, - network_keypair: NetworkKeyPair, - stake: Stake, - address: Multiaddr, - workers: BTreeMap, -} - -impl AuthorityFixture { - pub fn id(&self) -> AuthorityIdentifier { - self.authority.get().unwrap().id() - } - - pub fn authority(&self) -> &Authority { - self.authority.get().unwrap() - } - - pub fn keypair(&self) -> &KeyPair { - &self.keypair - } - - pub fn network_keypair(&self) -> NetworkKeyPair { - self.network_keypair.copy() - } - - pub fn new_network(&self, router: anemo::Router) -> anemo::Network { - anemo::Network::bind(self.address.to_anemo_address().unwrap()) - .server_name("narwhal") - .private_key(self.network_keypair().private().0.to_bytes()) - .start(router) - .unwrap() - } - - pub fn address(&self) -> &Multiaddr { - &self.address - } - - pub fn worker(&self, id: WorkerId) -> &WorkerFixture { - self.workers.get(&id).unwrap() - } - - pub fn worker_keypairs(&self) -> Vec { - self.workers - .values() - .map(|worker| worker.keypair.copy()) - .collect() - } - - pub fn public_key(&self) -> PublicKey { - self.keypair.public().clone() - } - - pub fn network_public_key(&self) -> NetworkPublicKey { - self.network_keypair.public().clone() - } - - pub fn worker_index(&self) -> WorkerIndex { - WorkerIndex( - self.workers - .iter() - .map(|(id, w)| (*id, w.info.clone())) - .collect(), - ) - } - - pub fn header(&self, committee: &Committee) -> Header { - let header = self - .header_builder(committee) - .payload(Default::default()) - .build() - .unwrap(); - Header::V1(header) - } - - pub fn header_with_round(&self, committee: &Committee, round: Round) -> Header { - let header = self - .header_builder(committee) - .payload(Default::default()) - .round(round) - .build() - .unwrap(); - Header::V1(header) - } - - pub fn header_builder(&self, committee: &Committee) -> types::HeaderV1Builder { - types::HeaderV1Builder::default() - .author(self.id()) - .round(1) - .epoch(committee.epoch()) - .parents( - Certificate::genesis(committee) - .iter() - .map(|x| x.digest()) - .collect(), - ) - } - - pub fn vote(&self, header: &Header) -> Vote { - Vote::new_with_signer(header, &self.id(), &self.keypair) - } - - fn generate(mut rng: R, number_of_workers: NonZeroUsize, mut get_port: P) -> Self - where - R: AllowedRng, - P: FnMut(&str) -> u16, - { - let keypair = KeyPair::generate(&mut rng); - let network_keypair = NetworkKeyPair::generate(&mut rng); - let host = "127.0.0.1"; - let address: Multiaddr = format!("/ip4/{}/udp/{}", host, get_port(host)) - .parse() - .unwrap(); - - let workers = (0..number_of_workers.get()) - .map(|idx| { - let worker = WorkerFixture::generate(&mut rng, idx as u32, &mut get_port); - - (idx as u32, worker) - }) - .collect(); - - Self { - authority: OnceCell::new(), - keypair, - network_keypair, - stake: 1, - address, - workers, - } - } -} - -pub struct WorkerFixture { - keypair: NetworkKeyPair, - #[allow(dead_code)] - id: WorkerId, - info: WorkerInfo, -} - -impl WorkerFixture { - pub fn keypair(&self) -> NetworkKeyPair { - self.keypair.copy() - } - - pub fn info(&self) -> &WorkerInfo { - &self.info - } - - pub fn new_network(&self, router: anemo::Router) -> anemo::Network { - anemo::Network::bind(self.info().worker_address.to_anemo_address().unwrap()) - .server_name("narwhal") - .private_key(self.keypair().private().0.to_bytes()) - .start(router) - .unwrap() - } - - fn generate(rng: R, id: WorkerId, mut get_port: P) -> Self - where - R: rand::RngCore + rand::CryptoRng, - P: FnMut(&str) -> u16, - { - let keypair = NetworkKeyPair::generate(&mut StdRng::from_rng(rng).unwrap()); - let worker_name = keypair.public().clone(); - let host = "127.0.0.1"; - let worker_address = format!("/ip4/{}/udp/{}", host, get_port(host)) - .parse() - .unwrap(); - let transactions = format!("/ip4/{}/tcp/{}/http", host, get_port(host)) - .parse() - .unwrap(); - - Self { - keypair, - id, - info: WorkerInfo { - name: worker_name, - worker_address, - transactions, - }, - } - } -} - -pub fn test_network(keypair: NetworkKeyPair, address: &Multiaddr) -> anemo::Network { - let address = address.to_anemo_address().unwrap(); - let network_key = keypair.private().0.to_bytes(); - anemo::Network::bind(address) - .server_name("narwhal") - .private_key(network_key) - .start(anemo::Router::new()) - .unwrap() -} - -pub fn random_network() -> anemo::Network { - let network_key = NetworkKeyPair::generate(&mut StdRng::from_rng(OsRng).unwrap()); - let address = "/ip4/127.0.0.1/udp/0".parse().unwrap(); - test_network(network_key, &address) -} diff --git a/narwhal/types/Cargo.toml b/narwhal/types/Cargo.toml deleted file mode 100644 index 3f8057f66be..00000000000 --- a/narwhal/types/Cargo.toml +++ /dev/null @@ -1,63 +0,0 @@ -[package] -name = "narwhal-types" -version = "0.1.0" -authors = ["IOTA Foundation "] -edition = "2021" -license = "Apache-2.0" -publish = false - -[dependencies] -# external dependencies -anyhow.workspace = true -base64.workspace = true -bcs.workspace = true -bytes.workspace = true -derive_builder = "0.12.0" -enum_dispatch.workspace = true -fastcrypto.workspace = true -futures.workspace = true -indexmap.workspace = true -once_cell.workspace = true -proptest.workspace = true -proptest-derive.workspace = true -prost.workspace = true -rand.workspace = true -roaring.workspace = true -serde.workspace = true -serde_with.workspace = true -thiserror.workspace = true -tokio = { workspace = true, features = ["sync", "rt", "macros"] } -tonic.workspace = true -tracing.workspace = true - -# internal dependencies -config = { path = "../config", package = "narwhal-config" } -crypto = { path = "../crypto", package = "narwhal-crypto" } -iota-common.workspace = true -iota-network-stack.workspace = true -iota-util-mem.workspace = true - -[dev-dependencies] -# external dependencies -criterion.workspace = true -prometheus.workspace = true -serde_test = "1.0.147" - -# internal dependencies -iota-metrics.workspace = true -test-utils = { path = "../test-utils", package = "narwhal-test-utils" } - -[build-dependencies] -tonic-build.workspace = true - -[features] -default = [] -test = [] - -[[bench]] -name = "batch_digest" -harness = false - -[[bench]] -name = "verify_certificate" -harness = false diff --git a/narwhal/types/benches/batch_digest.rs b/narwhal/types/benches/batch_digest.rs deleted file mode 100644 index a8e2f4b51e1..00000000000 --- a/narwhal/types/benches/batch_digest.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use criterion::{ - BenchmarkId, Criterion, SamplingMode, Throughput, criterion_group, criterion_main, -}; -use fastcrypto::hash::Hash; -use narwhal_types as types; -use rand::Rng; -use types::Batch; - -pub fn batch_digest(c: &mut Criterion) { - let mut digest_group = c.benchmark_group("Batch digests"); - digest_group.sampling_mode(SamplingMode::Flat); - - static BATCH_SIZES: [usize; 4] = [100, 500, 1000, 5000]; - - for size in BATCH_SIZES { - let tx_gen = || { - (0..512) - .map(|_| rand::thread_rng().gen()) - .collect::>() - }; - let batch = Batch::new((0..size).map(|_| tx_gen()).collect::>()); - digest_group.throughput(Throughput::Bytes(512 * size as u64)); - digest_group.bench_with_input(BenchmarkId::new("batch digest", size), &batch, |b, i| { - b.iter(|| i.digest()) - }); - } -} - -criterion_group! { - name = consensus_group; - config = Criterion::default(); - targets = batch_digest -} -criterion_main!(consensus_group); diff --git a/narwhal/types/benches/verify_certificate.rs b/narwhal/types/benches/verify_certificate.rs deleted file mode 100644 index 16f65e2d1b7..00000000000 --- a/narwhal/types/benches/verify_certificate.rs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::collections::BTreeSet; - -use criterion::{ - BenchmarkId, Criterion, SamplingMode, Throughput, criterion_group, criterion_main, -}; -use fastcrypto::{hash::Hash, traits::KeyPair}; -use narwhal_types::Certificate; -use test_utils::{CommitteeFixture, make_optimal_signed_certificates}; - -pub fn verify_certificates(c: &mut Criterion) { - let mut bench_group = c.benchmark_group("verify_certificate"); - bench_group.sampling_mode(SamplingMode::Flat); - - static COMMITTEE_SIZES: [usize; 4] = [4, 10, 40, 100]; - for committee_size in COMMITTEE_SIZES { - let fixture = CommitteeFixture::builder() - .committee_size(committee_size.try_into().unwrap()) - .build(); - let committee = fixture.committee(); - let keys: Vec<_> = fixture - .authorities() - .map(|a| (a.id(), a.keypair().copy())) - .collect(); - - // process certificates for rounds, check we don't grow the dag too much - let genesis = Certificate::genesis(&committee) - .iter() - .map(|x| x.digest()) - .collect::>(); - let (certificates, _next_parents) = - make_optimal_signed_certificates(1..=1, &genesis, &committee, keys.as_slice()); - let certificate = certificates.front().unwrap().clone(); - - let data_size: usize = bcs::to_bytes(&certificate).unwrap().len(); - bench_group.throughput(Throughput::Bytes(data_size as u64)); - - bench_group.bench_with_input( - BenchmarkId::new("with_committee_size", committee_size), - &certificate, - |b, cert| { - let worker_cache = fixture.worker_cache(); - b.iter(|| { - cert.clone() - .verify(&committee, &worker_cache) - .expect("Verification failed"); - }) - }, - ); - } -} - -criterion_group! { - name = verify_certificate; - config = Criterion::default().sample_size(1000).noise_threshold(0.1); - targets = verify_certificates -} -criterion_main!(verify_certificate); diff --git a/narwhal/types/build.rs b/narwhal/types/build.rs deleted file mode 100644 index b794e87509f..00000000000 --- a/narwhal/types/build.rs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{env, path::PathBuf}; - -type Result = std::result::Result>; - -fn main() -> Result<()> { - let out_dir = if env::var("DUMP_GENERATED_GRPC").is_ok() { - PathBuf::from("") - } else { - PathBuf::from(env::var("OUT_DIR")?) - }; - - let codec_path = "tonic::codec::ProstCodec"; - - let service = tonic_build::manual::Service::builder() - .name("Transactions") - .package("narwhal") - .method( - tonic_build::manual::Method::builder() - .name("submit_transaction") - .route_name("SubmitTransaction") - .input_type("crate::proto::narwhal::Transaction") - .output_type("crate::proto::narwhal::Empty") - .codec_path(codec_path) - .build(), - ) - .method( - tonic_build::manual::Method::builder() - .name("submit_transaction_stream") - .route_name("SubmitTransactionStream") - .input_type("crate::proto::narwhal::Transaction") - .output_type("crate::proto::narwhal::Empty") - .codec_path(codec_path) - .client_streaming() - .build(), - ) - .build(); - - tonic_build::manual::Builder::new() - .out_dir(&out_dir) - .compile(&[service]); - - println!("cargo:rerun-if-changed=build.rs"); - println!("cargo:rerun-if-env-changed=DUMP_GENERATED_GRPC"); - - Ok(()) -} diff --git a/narwhal/types/proptest-regressions/tests/batch_serde.txt b/narwhal/types/proptest-regressions/tests/batch_serde.txt deleted file mode 100644 index 562b5e7e30f..00000000000 --- a/narwhal/types/proptest-regressions/tests/batch_serde.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Seeds for failure cases proptest has generated in the past. It is -# automatically read and these particular cases re-run before any -# novel cases are generated. -# -# It is recommended to check this file in to source control so that -# everyone who runs the test benefits from these saved cases. -cc 52ff0bb8b13b7b46533af299298bfab7b8b98c33fa2aa286f1e053abdc4ae37e # shrinks to batch = Batch { timestamp_ms: 0, transactions: [[0]] } diff --git a/narwhal/types/proptest-regressions/tests/primary_type_tests.txt b/narwhal/types/proptest-regressions/tests/primary_type_tests.txt deleted file mode 100644 index d6337d7bc9b..00000000000 --- a/narwhal/types/proptest-regressions/tests/primary_type_tests.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Seeds for failure cases proptest has generated in the past. It is -# automatically read and these particular cases re-run before any -# novel cases are generated. -# -# It is recommended to check this file in to source control so that -# everyone who runs the test benefits from these saved cases. -cc d19c2bf3c69060e63b32480c0ab2983dfff35973a38efcb3457b3d55f23d3aef # shrinks to header = AAAAAAAAAAAAAAAA: B0(uF3Z1uPjTqBCVmJ6t3tVZHfxkV9/AGUSj+ffMZCjB8n+19vDFrgS7mKbkUzOQUjMFhbIVTqz428QKyE7OiHtDfi3M2Xj2XDNn+cKqKSQ+ley/nKvDuM7K61C0OrjBKDn, E0, 0B) diff --git a/narwhal/types/src/consensus.rs b/narwhal/types/src/consensus.rs deleted file mode 100644 index 0e9c138addb..00000000000 --- a/narwhal/types/src/consensus.rs +++ /dev/null @@ -1,565 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -#![allow(clippy::mutable_key_type)] - -use std::{ - cmp::Ordering, - collections::HashMap, - fmt, - fmt::{Display, Formatter}, - sync::Arc, -}; - -use config::{AuthorityIdentifier, Committee}; -use enum_dispatch::enum_dispatch; -use fastcrypto::hash::{Digest, Hash, HashFunction}; -use serde::{Deserialize, Serialize}; -use tokio::sync::mpsc; -use tracing::warn; - -use crate::{Batch, Certificate, CertificateAPI, CertificateDigest, HeaderAPI, Round, TimestampMs}; - -/// A global sequence number assigned to every CommittedSubDag. -pub type SequenceNumber = u64; - -#[derive(Clone, Debug)] -/// The output of Consensus, which includes all the batches for each certificate -/// in the sub dag It is sent to the ExecutionState -/// handle_consensus_transactions -pub struct ConsensusOutput { - pub sub_dag: Arc, - /// Matches certificates in the `sub_dag` one-to-one. - pub batches: Vec>, -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for ConsensusOutput { - type TypedDigest = ConsensusOutputDigest; - - fn digest(&self) -> ConsensusOutputDigest { - let mut hasher = crypto::DefaultHashFunction::new(); - hasher.update(self.sub_dag.digest()); - self.batches.iter().flatten().for_each(|b| { - hasher.update(b.digest()); - }); - ConsensusOutputDigest(hasher.finalize().into()) - } -} - -impl Display for ConsensusOutput { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - write!( - f, - "ConsensusOutput(round={:?}, sub_dag_index={:?}, timestamp={:?}, digest={:?})", - self.sub_dag.leader_round(), - self.sub_dag.sub_dag_index, - self.sub_dag.commit_timestamp(), - self.digest() - ) - } -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct CommittedSubDag { - /// The sequence of committed certificates. - pub certificates: Vec, - /// The leader certificate responsible of committing this sub-dag. - pub leader: Certificate, - /// The index associated with this CommittedSubDag - pub sub_dag_index: SequenceNumber, - /// The so far calculated reputation score for nodes - pub reputation_score: ReputationScores, - /// The timestamp that should identify this commit. This is guaranteed to be - /// monotonically incremented. This is not necessarily the leader's - /// timestamp. We compare the leader's timestamp with the previously - /// committed sud dag timestamp and we always keep the max. Property is - /// explicitly private so the method commit_timestamp() should be used - /// instead which bears additional resolution logic. - commit_timestamp: TimestampMs, -} - -impl CommittedSubDag { - pub fn new( - certificates: Vec, - leader: Certificate, - sub_dag_index: SequenceNumber, - reputation_score: ReputationScores, - previous_sub_dag: Option<&CommittedSubDag>, - ) -> Self { - // Narwhal enforces some invariants on the header.created_at, so we can use it - // as a timestamp. - let previous_sub_dag_ts = previous_sub_dag - .map(|s| s.commit_timestamp) - .unwrap_or_default(); - let commit_timestamp = previous_sub_dag_ts.max(*leader.header().created_at()); - - if previous_sub_dag_ts > *leader.header().created_at() { - warn!(sub_dag_index = ?sub_dag_index, "Leader timestamp {} is older than previously committed sub dag timestamp {}. Auto-correcting to max {}.", - leader.header().created_at(), previous_sub_dag_ts, commit_timestamp); - } - - Self { - certificates, - leader, - sub_dag_index, - reputation_score, - commit_timestamp, - } - } - - pub fn from_commit( - commit: ConsensusCommit, - certificates: Vec, - leader: Certificate, - ) -> Self { - Self { - certificates, - leader, - sub_dag_index: commit.sub_dag_index(), - reputation_score: commit.reputation_score(), - commit_timestamp: commit.commit_timestamp(), - } - } - - pub fn len(&self) -> usize { - self.certificates.len() - } - - pub fn is_empty(&self) -> bool { - self.len() == 0 - } - - pub fn num_batches(&self) -> usize { - self.certificates - .iter() - .map(|x| x.header().payload().len()) - .sum() - } - - pub fn is_last(&self, output: &Certificate) -> bool { - self.certificates - .iter() - .last() - .map_or_else(|| false, |x| x == output) - } - - pub fn leader_round(&self) -> Round { - self.leader.round() - } - - pub fn commit_timestamp(&self) -> TimestampMs { - // If commit_timestamp is zero, then safely assume that this is an upgraded node - // that is replaying this commit and field is never initialised. It's - // safe to fallback on leader's timestamp. - if self.commit_timestamp == 0 { - return *self.leader.header().created_at(); - } - self.commit_timestamp - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for CommittedSubDag { - type TypedDigest = ConsensusOutputDigest; - - fn digest(&self) -> ConsensusOutputDigest { - let mut hasher = crypto::DefaultHashFunction::new(); - // Instead of hashing serialized CommittedSubDag, hash the certificate digests - // instead. Signatures in the certificates are not part of the - // commitment. - for cert in &self.certificates { - hasher.update(cert.digest()); - } - hasher.update(self.leader.digest()); - hasher.update( - bcs::to_bytes(&self.sub_dag_index).unwrap_or_else(|_| { - panic!("Serialization of {} should not fail", self.sub_dag_index) - }), - ); - hasher.update(bcs::to_bytes(&self.reputation_score).unwrap_or_else(|_| { - panic!( - "Serialization of {:?} should not fail", - self.reputation_score - ) - })); - hasher.update(bcs::to_bytes(&self.commit_timestamp).unwrap_or_else(|_| { - panic!("Serialization of {} should not fail", self.commit_timestamp) - })); - ConsensusOutputDigest(hasher.finalize().into()) - } -} - -#[derive(Serialize, Deserialize, Clone, Debug, Default, Eq, PartialEq)] -pub struct ReputationScores { - /// Holds the score for every authority. If an authority is not amongst - /// the records of the map then we assume that its score is zero. - pub scores_per_authority: HashMap, - /// When true it notifies us that those scores will be the last updated - /// scores of the current schedule before they get reset for the next - /// schedule and start scoring from the beginning. In practice we can - /// leverage this information to use the scores during the next schedule - /// until the next final ones are calculated. - pub final_of_schedule: bool, -} - -impl ReputationScores { - /// Creating a new ReputationScores instance pre-populating the authorities - /// entries with zero score value. - pub fn new(committee: &Committee) -> Self { - let scores_per_authority = committee.authorities().map(|a| (a.id(), 0_u64)).collect(); - - Self { - scores_per_authority, - ..Default::default() - } - } - /// Adds the provided `score` to the existing score for the provided - /// `authority` - pub fn add_score(&mut self, authority: AuthorityIdentifier, score: u64) { - self.scores_per_authority - .entry(authority) - .and_modify(|value| *value += score) - .or_insert(score); - } - - pub fn total_authorities(&self) -> u64 { - self.scores_per_authority.len() as u64 - } - - pub fn all_zero(&self) -> bool { - !self.scores_per_authority.values().any(|e| *e > 0) - } - - // Returns the authorities in score descending order. - pub fn authorities_by_score_desc(&self) -> Vec<(AuthorityIdentifier, u64)> { - let mut authorities: Vec<_> = self - .scores_per_authority - .iter() - .map(|(authority, score)| (*authority, *score)) - .collect(); - - authorities.sort_by(|a1, a2| { - match a2.1.cmp(&a1.1) { - Ordering::Equal => { - // we resolve the score equality deterministically by ordering in authority - // identifier order descending. - a2.0.cmp(&a1.0) - } - result => result, - } - }); - - authorities - } -} - -#[enum_dispatch(ConsensusCommitAPI)] -trait ConsensusCommitAPI { - fn certificates(&self) -> Vec; - fn leader(&self) -> CertificateDigest; - fn leader_round(&self) -> Round; - fn sub_dag_index(&self) -> SequenceNumber; - fn reputation_score(&self) -> ReputationScores; - fn commit_timestamp(&self) -> TimestampMs; -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct ConsensusCommitV1 { - /// The sequence of committed certificates' digests. - pub certificates: Vec, - /// The leader certificate's digest responsible of committing this sub-dag. - pub leader: CertificateDigest, - /// The round of the leader - pub leader_round: Round, - /// Sequence number of the CommittedSubDag - pub sub_dag_index: SequenceNumber, - /// The so far calculated reputation score for nodes - pub reputation_score: ReputationScores, - /// The timestamp that should identify this commit. This is guaranteed to be - /// monotonically incremented - pub commit_timestamp: TimestampMs, -} - -impl ConsensusCommitV1 { - pub fn from_sub_dag(sub_dag: &CommittedSubDag) -> Self { - Self { - certificates: sub_dag.certificates.iter().map(|x| x.digest()).collect(), - leader: sub_dag.leader.digest(), - leader_round: sub_dag.leader.round(), - sub_dag_index: sub_dag.sub_dag_index, - reputation_score: sub_dag.reputation_score.clone(), - commit_timestamp: sub_dag.commit_timestamp, - } - } -} - -impl ConsensusCommitAPI for ConsensusCommitV1 { - fn certificates(&self) -> Vec { - self.certificates.clone() - } - - fn leader(&self) -> CertificateDigest { - self.leader - } - - fn leader_round(&self) -> Round { - self.leader_round - } - - fn sub_dag_index(&self) -> SequenceNumber { - self.sub_dag_index - } - - fn reputation_score(&self) -> ReputationScores { - self.reputation_score.clone() - } - - fn commit_timestamp(&self) -> TimestampMs { - self.commit_timestamp - } -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -#[enum_dispatch(ConsensusCommitAPI)] -pub enum ConsensusCommit { - V1(ConsensusCommitV1), -} - -impl ConsensusCommit { - pub fn certificates(&self) -> Vec { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.certificates(), - } - } - - pub fn leader(&self) -> CertificateDigest { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.leader(), - } - } - - pub fn leader_round(&self) -> Round { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.leader_round(), - } - } - - pub fn sub_dag_index(&self) -> SequenceNumber { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.sub_dag_index(), - } - } - - pub fn reputation_score(&self) -> ReputationScores { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.reputation_score(), - } - } - - pub fn commit_timestamp(&self) -> TimestampMs { - match self { - ConsensusCommit::V1(sub_dag) => sub_dag.commit_timestamp(), - } - } -} - -/// Shutdown token dropped when a task is properly shut down. -pub type ShutdownToken = mpsc::Sender<()>; - -// Digest of ConsususOutput and CommittedSubDag. -// In non-byzantine environment, ConsensusOutputDigest of each consensus output -// in different validator must be the same. -#[derive(Clone, Copy, Default, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)] -pub struct ConsensusOutputDigest([u8; crypto::DIGEST_LENGTH]); - -impl ConsensusOutputDigest { - pub const fn into_inner(self) -> [u8; crypto::DIGEST_LENGTH] { - self.0 - } -} - -impl AsRef<[u8]> for ConsensusOutputDigest { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl From for Digest<{ crypto::DIGEST_LENGTH }> { - fn from(d: ConsensusOutputDigest) -> Self { - Digest::new(d.0) - } -} - -impl fmt::Debug for ConsensusOutputDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - ) - } -} - -impl fmt::Display for ConsensusOutputDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - .get(0..16) - .ok_or(fmt::Error)? - ) - } -} - -#[cfg(test)] -mod tests { - use std::{collections::BTreeSet, num::NonZeroUsize}; - - use config::AuthorityIdentifier; - use indexmap::IndexMap; - use test_utils::CommitteeFixture; - - use crate::{Certificate, CommittedSubDag, Header, HeaderV1Builder, ReputationScores}; - - #[test] - fn test_zero_timestamp_in_sub_dag() { - let fixture = CommitteeFixture::builder().build(); - let committee = fixture.committee(); - - let header_builder = HeaderV1Builder::default(); - let header = header_builder - .author(AuthorityIdentifier(1u16)) - .round(2) - .epoch(0) - .created_at(50) - .payload(IndexMap::new()) - .parents(BTreeSet::new()) - .build() - .unwrap(); - - let certificate = - Certificate::new_unsigned(&committee, Header::V1(header), Vec::new()).unwrap(); - - // AND we initialise the sub dag via the "restore" way - let sub_dag_round = CommittedSubDag { - certificates: vec![certificate.clone()], - leader: certificate, - sub_dag_index: 1, - reputation_score: ReputationScores::default(), - commit_timestamp: 0, - }; - - // AND commit timestamp is the leader's timestamp - assert_eq!(sub_dag_round.commit_timestamp(), 50); - } - - #[test] - fn test_monotonically_incremented_commit_timestamps() { - // Create a certificate (leader) of round 2 with a high timestamp - let newer_timestamp = 100; - let older_timestamp = 50; - - let fixture = CommitteeFixture::builder().build(); - let committee = fixture.committee(); - - let header_builder = HeaderV1Builder::default(); - let header = header_builder - .author(AuthorityIdentifier(1u16)) - .round(2) - .epoch(0) - .created_at(newer_timestamp) - .payload(IndexMap::new()) - .parents(BTreeSet::new()) - .build() - .unwrap(); - - let certificate = - Certificate::new_unsigned(&committee, Header::V1(header), Vec::new()).unwrap(); - - // AND - let sub_dag_round_2 = CommittedSubDag::new( - vec![certificate.clone()], - certificate, - 1, - ReputationScores::default(), - None, - ); - - // AND commit timestamp is the leader's timestamp - assert_eq!(sub_dag_round_2.commit_timestamp, newer_timestamp); - - // Now create the leader of round 4 with the older timestamp - let header_builder = HeaderV1Builder::default(); - let header = header_builder - .author(AuthorityIdentifier(1u16)) - .round(4) - .epoch(0) - .created_at(older_timestamp) - .payload(IndexMap::new()) - .parents(BTreeSet::new()) - .build() - .unwrap(); - - let certificate = - Certificate::new_unsigned(&committee, Header::V1(header), Vec::new()).unwrap(); - - // WHEN create the sub dag based on the "previously committed" sub dag. - let sub_dag_round_4 = CommittedSubDag::new( - vec![certificate.clone()], - certificate, - 2, - ReputationScores::default(), - Some(&sub_dag_round_2), - ); - - // THEN the latest sub dag should have the highest committed timestamp - - // basically the same as the previous commit round - assert_eq!( - sub_dag_round_4.commit_timestamp, - sub_dag_round_2.commit_timestamp - ); - } - - #[test] - fn test_authority_sorting_in_reputation_scores() { - let fixture = CommitteeFixture::builder() - .committee_size(NonZeroUsize::new(10).unwrap()) - .build(); - let committee = fixture.committee(); - - let mut scores = ReputationScores::new(&committee); - - let ids: Vec = fixture.authorities().map(|a| a.id()).collect(); - - // adding some scores - scores.add_score(ids[0], 0); - scores.add_score(ids[1], 10); - scores.add_score(ids[2], 10); - scores.add_score(ids[3], 10); - scores.add_score(ids[4], 10); - scores.add_score(ids[5], 20); - scores.add_score(ids[6], 30); - scores.add_score(ids[7], 30); - scores.add_score(ids[8], 40); - scores.add_score(ids[9], 40); - - // the expected authorities - let expected_authorities = vec![ - (ids[9], 40), - (ids[8], 40), - (ids[7], 30), - (ids[6], 30), - (ids[5], 20), - (ids[4], 10), - (ids[3], 10), - (ids[2], 10), - (ids[1], 10), - (ids[0], 0), - ]; - - // sorting the authorities - let sorted_authorities = scores.authorities_by_score_desc(); - assert_eq!(sorted_authorities, expected_authorities); - } -} diff --git a/narwhal/types/src/error.rs b/narwhal/types/src/error.rs deleted file mode 100644 index 90e1d0b30ab..00000000000 --- a/narwhal/types/src/error.rs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::sync::Arc; - -use config::Epoch; -use iota_common::sync::notify_once::NotifyOnce; -use thiserror::Error; - -use crate::HeaderDigest; - -#[cfg(test)] -#[path = "./tests/error_test.rs"] -mod error_test; - -#[macro_export] -macro_rules! bail { - ($e:expr) => { - return Err($e); - }; -} - -#[macro_export(local_inner_macros)] -macro_rules! ensure { - ($cond:expr, $e:expr) => { - if !($cond) { - bail!($e); - } - }; -} - -pub type DagResult = Result; - -// Notification for certificate accepted. -pub type AcceptNotification = Arc; - -#[derive(Clone, Debug, Error)] -pub enum DagError { - #[error("Invalid Authorities Bitmap: {0}")] - InvalidBitmap(String), - - #[error("Invalid signature")] - InvalidSignature, - - #[error("Invalid header digest")] - InvalidHeaderDigest, - - #[error("Header {0} has bad worker IDs")] - HeaderHasBadWorkerIds(HeaderDigest), - - #[error("Received message from unknown authority {0}")] - UnknownAuthority(String), - - #[error("Received certificate without a quorum")] - CertificateRequiresQuorum, - - #[error("Invalid epoch (expected {expected}, received {received})")] - InvalidEpoch { expected: Epoch, received: Epoch }, - - #[error("System shutting down")] - ShuttingDown, - - #[error("Channel full")] - ChannelFull, -} - -impl From> for DagError { - fn from(err: tokio::sync::mpsc::error::TrySendError) -> Self { - match err { - tokio::sync::mpsc::error::TrySendError::Full(_) => DagError::ChannelFull, - tokio::sync::mpsc::error::TrySendError::Closed(_) => DagError::ShuttingDown, - } - } -} diff --git a/narwhal/types/src/lib.rs b/narwhal/types/src/lib.rs deleted file mode 100644 index 137fce6551d..00000000000 --- a/narwhal/types/src/lib.rs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -#![forbid(unsafe_code)] - -// Error types -#[macro_use] -pub mod error; - -mod consensus; -pub use consensus::*; - -mod primary; -pub use primary::*; - -mod proto; -pub use proto::*; - -mod serde; - -mod pre_subscribed_broadcast; -pub use pre_subscribed_broadcast::*; diff --git a/narwhal/types/src/pre_subscribed_broadcast.rs b/narwhal/types/src/pre_subscribed_broadcast.rs deleted file mode 100644 index ab99c41055a..00000000000 --- a/narwhal/types/src/pre_subscribed_broadcast.rs +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use tokio::sync::{broadcast, broadcast::error::SendError}; - -/// PreSubscribedBroadcastSender is a wrapped Broadcast channel that limits -/// subscription to initialization time. This is designed to be used for -/// cancellation signal to all the components, and the limitation is intended to -/// prevent a component missing the shutdown signal due to a subscription that -/// happens after the shutdown signal was sent. The receivers have a special -/// peek method which can be used to conditionally check for shutdown signal on -/// the channel. -pub struct PreSubscribedBroadcastSender { - sender: broadcast::Sender<()>, - receivers: Vec, -} - -#[derive(Debug)] -pub struct ConditionalBroadcastReceiver { - pub receiver: broadcast::Receiver<()>, -} - -/// ConditionalBroadcastReceiver has an additional method for convenience to be -/// able to use to conditionally check for shutdown in all branches of a select -/// statement. Using this method will allow for the shutdown signal to propagate -/// faster, since we will no longer be waiting until the branch that checks the -/// receiver is randomly selected by the select macro. -impl ConditionalBroadcastReceiver { - pub async fn received_signal(&mut self) -> bool { - futures::future::poll_immediate(&mut Box::pin(self.receiver.recv())) - .await - .is_some() - } -} - -impl PreSubscribedBroadcastSender { - pub fn new(num_subscribers: u64) -> Self { - let (tx_init, _) = broadcast::channel(1); - let mut receivers = Vec::new(); - for _i in 0..num_subscribers { - receivers.push(ConditionalBroadcastReceiver { - receiver: tx_init.subscribe(), - }); - } - - PreSubscribedBroadcastSender { - sender: tx_init, - receivers, - } - } - - pub fn try_subscribe(&mut self) -> Option { - self.receivers.pop() - } - - pub fn subscribe(&mut self) -> ConditionalBroadcastReceiver { - self.receivers.pop().expect("No remaining subscribers ") - } - - pub fn subscribe_n(&mut self, n: u64) -> Vec { - let mut output = Vec::new(); - for _ in 0..n { - output.push(self.subscribe()); - } - output - } - - pub fn send(&self) -> Result> { - self.sender.send(()) - } -} - -#[tokio::test] -async fn test_pre_subscribed_broadcast() { - let mut tx_shutdown = PreSubscribedBroadcastSender::new(2); - let mut rx_shutdown_a = tx_shutdown.try_subscribe().unwrap(); - - let a = tokio::spawn(async move { - loop { - tokio::select! { - _ = rx_shutdown_a.receiver.recv() => { - return 1 - } - - _ = async{}, if true => { - if rx_shutdown_a.received_signal().await { - return 1 - } - } - } - } - }); - - let mut rx_shutdown_b = tx_shutdown.try_subscribe().unwrap(); - let rx_shutdown_c = tx_shutdown.try_subscribe(); - - assert!(rx_shutdown_c.is_none()); - - // send the shutdown signal before we start component b and started listening - // for shutdown there - assert!(tx_shutdown.send().is_ok()); - - let b = tokio::spawn(async move { - loop { - tokio::select! { - _ = rx_shutdown_b.receiver.recv() => { - return 2 - } - - _ = async{}, if true => { - if rx_shutdown_b.received_signal().await { - return 2 - } - } - } - } - }); - - // assert that both component a and b loops have exited, effectively shutting - // down - assert_eq!(a.await.unwrap() + b.await.unwrap(), 3); -} - -#[tokio::test] -async fn test_conditional_broadcast_receiver() { - let mut tx_shutdown = PreSubscribedBroadcastSender::new(2); - let mut rx_shutdown = tx_shutdown.try_subscribe().unwrap(); - - let a = tokio::spawn(async move { - loop { - tokio::select! { - _ = async{}, if true => { - if rx_shutdown.received_signal().await { - return 1 - } - } - } - } - }); - - assert!(tx_shutdown.send().is_ok()); - - assert_eq!(a.await.unwrap(), 1); -} diff --git a/narwhal/types/src/primary.rs b/narwhal/types/src/primary.rs deleted file mode 100644 index d5ebd4cf080..00000000000 --- a/narwhal/types/src/primary.rs +++ /dev/null @@ -1,1556 +0,0 @@ -// Copyright (c) 2021, Facebook, Inc. and its affiliates -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}, - fmt, - time::{Duration, SystemTime}, -}; - -use config::{AuthorityIdentifier, Committee, Epoch, Stake, WorkerCache, WorkerId}; -use crypto::{ - AggregateSignature, AggregateSignatureBytes, NarwhalAuthorityAggregateSignature, - NarwhalAuthoritySignature, NetworkPublicKey, PublicKey, Signature, to_intent_message, -}; -use derive_builder::Builder; -use enum_dispatch::enum_dispatch; -use fastcrypto::{ - hash::{Digest, Hash, HashFunction}, - signature_service::SignatureService, - traits::{AggregateAuthenticator, Signer, VerifyingKey}, -}; -use indexmap::IndexMap; -use iota_util_mem::MallocSizeOf; -use once_cell::sync::OnceCell; -use proptest_derive::Arbitrary; -use roaring::RoaringBitmap; -use serde::{Deserialize, Serialize}; -use serde_with::serde_as; -use tracing::warn; - -use crate::{ - error::{DagError, DagResult}, - serde::NarwhalBitmap, -}; - -/// The round number. -pub type Round = u64; - -/// The epoch UNIX timestamp in milliseconds -pub type TimestampMs = u64; - -pub trait Timestamp { - // Returns the time elapsed between the timestamp - // and "now". The result is a Duration. - fn elapsed(&self) -> Duration; -} - -impl Timestamp for TimestampMs { - fn elapsed(&self) -> Duration { - let diff = now().saturating_sub(*self); - Duration::from_millis(diff) - } -} - -// Returns the current time expressed as UNIX -// timestamp in milliseconds -pub fn now() -> TimestampMs { - match SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) { - Ok(n) => n.as_millis() as TimestampMs, - Err(_) => panic!("SystemTime before UNIX EPOCH!"), - } -} - -/// DEPRECATED. Can't be deleted until tables that use this are removed. -#[derive( - Clone, Copy, Serialize, Deserialize, Debug, PartialEq, Eq, PartialOrd, Ord, MallocSizeOf, -)] -pub struct RandomnessRound(pub u64); - -// Additional metadata information for an entity. -// -// The structure as a whole is not signed. As a result this data -// should not be treated as trustworthy data and should be used -// for NON CRITICAL purposes only. For example should not be used -// for any processes that are part of our protocol that can affect -// safety or liveness. -#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Arbitrary, MallocSizeOf)] -pub struct Metadata { - // timestamp of when the entity created. This is generated - // by the node which creates the entity. - pub created_at: TimestampMs, -} - -impl Default for Metadata { - fn default() -> Self { - Metadata { created_at: now() } - } -} - -// This is a versioned `Metadata` type -// Refer to comments above the original `Metadata` struct for more details. -#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Arbitrary, MallocSizeOf)] -#[enum_dispatch(MetadataAPI)] -pub enum VersionedMetadata { - V1(MetadataV1), -} - -impl VersionedMetadata { - pub fn new() -> Self { - Self::V1(MetadataV1 { - created_at: now(), - received_at: None, - }) - } -} - -impl Default for VersionedMetadata { - fn default() -> Self { - Self::new() - } -} - -#[enum_dispatch] -pub trait MetadataAPI { - fn created_at(&self) -> &TimestampMs; - fn set_created_at(&mut self, ts: TimestampMs); - fn received_at(&self) -> Option; - fn set_received_at(&mut self, ts: TimestampMs); -} - -#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Arbitrary, MallocSizeOf)] -pub struct MetadataV1 { - // timestamp of when the entity created. This is generated - // by the node which creates the entity. - pub created_at: TimestampMs, - // timestamp of when the entity was received by an other node. This will help - // us calculate latencies that are not affected by clock drift or network - // delays. This field is not set for own batches. - pub received_at: Option, -} - -impl MetadataAPI for MetadataV1 { - fn created_at(&self) -> &TimestampMs { - &self.created_at - } - - fn set_created_at(&mut self, ts: TimestampMs) { - self.created_at = ts; - } - - fn received_at(&self) -> Option { - self.received_at - } - - fn set_received_at(&mut self, ts: TimestampMs) { - self.received_at = Some(ts); - } -} - -#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Arbitrary)] -#[enum_dispatch(BatchAPI)] -pub enum Batch { - V1(BatchV1), -} - -impl Batch { - pub fn new(transactions: Vec) -> Self { - Self::V1(BatchV1::new(transactions)) - } - - pub fn size(&self) -> usize { - match self { - Batch::V1(data) => data.size(), - } - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for Batch { - type TypedDigest = BatchDigest; - - fn digest(&self) -> BatchDigest { - match self { - Batch::V1(data) => data.digest(), - } - } -} - -#[enum_dispatch] -pub trait BatchAPI { - fn transactions(&self) -> &Vec; - fn transactions_mut(&mut self) -> &mut Vec; - fn into_transactions(self) -> Vec; - - fn versioned_metadata(&self) -> &VersionedMetadata; - fn versioned_metadata_mut(&mut self) -> &mut VersionedMetadata; -} - -pub type Transaction = Vec; - -#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq, Arbitrary)] -pub struct BatchV1 { - pub transactions: Vec, - // This field is not included as part of the batch digest - pub versioned_metadata: VersionedMetadata, -} - -impl BatchAPI for BatchV1 { - fn transactions(&self) -> &Vec { - &self.transactions - } - - fn transactions_mut(&mut self) -> &mut Vec { - &mut self.transactions - } - - fn into_transactions(self) -> Vec { - self.transactions - } - - fn versioned_metadata(&self) -> &VersionedMetadata { - &self.versioned_metadata - } - - fn versioned_metadata_mut(&mut self) -> &mut VersionedMetadata { - &mut self.versioned_metadata - } -} - -impl BatchV1 { - pub fn new(transactions: Vec) -> Self { - Self { - transactions, - versioned_metadata: VersionedMetadata::new(), - } - } - - pub fn size(&self) -> usize { - self.transactions.iter().map(|t| t.len()).sum() - } -} - -#[derive( - Clone, - Copy, - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - MallocSizeOf, - Arbitrary, -)] -pub struct BatchDigest(pub [u8; crypto::DIGEST_LENGTH]); - -impl fmt::Debug for BatchDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - ) - } -} - -impl fmt::Display for BatchDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - .get(0..16) - .ok_or(fmt::Error)? - ) - } -} - -impl From for Digest<{ crypto::DIGEST_LENGTH }> { - fn from(digest: BatchDigest) -> Self { - Digest::new(digest.0) - } -} - -impl AsRef<[u8]> for BatchDigest { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl BatchDigest { - pub fn new(val: [u8; crypto::DIGEST_LENGTH]) -> BatchDigest { - BatchDigest(val) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for BatchV1 { - type TypedDigest = BatchDigest; - - fn digest(&self) -> Self::TypedDigest { - BatchDigest::new( - crypto::DefaultHashFunction::digest_iterator(self.transactions.iter()).into(), - ) - } -} - -#[derive(Clone, Deserialize, MallocSizeOf, Serialize)] -#[enum_dispatch(HeaderAPI)] -pub enum Header { - V1(HeaderV1), -} - -// TODO: Revisit if we should not impl Default for Header and just use -// versioned header in Certificate -impl Default for Header { - fn default() -> Self { - Self::V1(HeaderV1::default()) - } -} - -impl Header { - pub fn digest(&self) -> HeaderDigest { - match self { - Header::V1(data) => data.digest(), - } - } - - pub fn validate(&self, committee: &Committee, worker_cache: &WorkerCache) -> DagResult<()> { - match self { - Header::V1(data) => data.validate(committee, worker_cache), - } - } - - pub fn as_v1(&self) -> &HeaderV1 { - match self { - Header::V1(header) => header, - } - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for Header { - type TypedDigest = HeaderDigest; - - fn digest(&self) -> HeaderDigest { - match self { - Header::V1(data) => data.digest(), - } - } -} - -impl fmt::Debug for Header { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}: B{}({}, E{}, {}B)", - self.digest(), - self.round(), - self.author(), - self.epoch(), - self.payload() - .keys() - .map(|x| Digest::from(*x).size()) - .sum::(), - ) - } -} - -impl fmt::Display for Header { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - match self { - Self::V1(data) => { - write!(f, "B{}({})", data.round, data.author) - } - } - } -} - -impl PartialEq for Header { - fn eq(&self, other: &Self) -> bool { - match self { - Self::V1(data) => data.digest() == other.digest(), - } - } -} - -#[enum_dispatch] -pub trait HeaderAPI { - fn author(&self) -> AuthorityIdentifier; - fn round(&self) -> Round; - fn epoch(&self) -> Epoch; - fn created_at(&self) -> &TimestampMs; - fn payload(&self) -> &IndexMap; - fn parents(&self) -> &BTreeSet; - - // Used for testing. - fn update_payload(&mut self, new_payload: IndexMap); - fn update_round(&mut self, new_round: Round); - fn clear_parents(&mut self); -} - -#[derive(Builder, Clone, Default, Deserialize, MallocSizeOf, Serialize)] -#[builder(pattern = "owned", build_fn(skip))] -pub struct HeaderV1 { - // Primary that created the header. Must be the same primary that broadcasted the header. - // Validation is at: https://github.com/iotaledger/iota/blob/f0b80d9eeef44edd9fbe606cee16717622b68651/narwhal/primary/src/primary.rs#L713-L719 - pub author: AuthorityIdentifier, - pub round: Round, - pub epoch: Epoch, - pub created_at: TimestampMs, - #[serde(with = "indexmap::map::serde_seq")] - pub payload: IndexMap, - pub parents: BTreeSet, - #[serde(skip)] - digest: OnceCell, -} - -impl HeaderAPI for HeaderV1 { - fn author(&self) -> AuthorityIdentifier { - self.author - } - fn round(&self) -> Round { - self.round - } - fn epoch(&self) -> Epoch { - self.epoch - } - fn created_at(&self) -> &TimestampMs { - &self.created_at - } - fn payload(&self) -> &IndexMap { - &self.payload - } - fn parents(&self) -> &BTreeSet { - &self.parents - } - - // Used for testing. - fn update_payload(&mut self, new_payload: IndexMap) { - self.payload = new_payload; - } - fn update_round(&mut self, new_round: Round) { - self.round = new_round; - } - fn clear_parents(&mut self) { - self.parents.clear(); - } -} - -impl HeaderV1Builder { - pub fn build(self) -> Result { - let h = HeaderV1 { - author: self.author.unwrap(), - round: self.round.unwrap(), - epoch: self.epoch.unwrap(), - created_at: self.created_at.unwrap_or(0), - payload: self.payload.unwrap(), - parents: self.parents.unwrap(), - digest: OnceCell::default(), - }; - h.digest.set(Hash::digest(&h)).unwrap(); - - Ok(h) - } - - // helper method to set directly values to the payload - pub fn with_payload_batch( - mut self, - batch: Batch, - worker_id: WorkerId, - created_at: TimestampMs, - ) -> Self { - if self.payload.is_none() { - self.payload = Some(Default::default()); - } - let payload = self.payload.as_mut().unwrap(); - - payload.insert(batch.digest(), (worker_id, created_at)); - - self - } -} - -impl HeaderV1 { - pub async fn new( - author: AuthorityIdentifier, - round: Round, - epoch: Epoch, - payload: IndexMap, - parents: BTreeSet, - ) -> Self { - let header = Self { - author, - round, - epoch, - created_at: now(), - payload, - parents, - digest: OnceCell::default(), - }; - let digest = Hash::digest(&header); - header.digest.set(digest).unwrap(); - header - } - - pub fn digest(&self) -> HeaderDigest { - *self.digest.get_or_init(|| Hash::digest(self)) - } - - pub fn validate(&self, committee: &Committee, worker_cache: &WorkerCache) -> DagResult<()> { - // Ensure the header is from the correct epoch. - ensure!(self.epoch == committee.epoch(), DagError::InvalidEpoch { - expected: committee.epoch(), - received: self.epoch - }); - - // Ensure the header digest is well formed. - ensure!( - Hash::digest(self) == self.digest(), - DagError::InvalidHeaderDigest - ); - - // Ensure the authority has voting rights. - let voting_rights = committee.stake_by_id(self.author); - ensure!( - voting_rights > 0, - DagError::UnknownAuthority(self.author.to_string()) - ); - - // Ensure all worker ids are correct. - for (worker_id, _) in self.payload.values() { - worker_cache - .worker( - committee.authority(&self.author).unwrap().protocol_key(), - worker_id, - ) - .map_err(|_| DagError::HeaderHasBadWorkerIds(self.digest()))?; - } - - Ok(()) - } -} - -#[derive( - Clone, - Copy, - Serialize, - Deserialize, - Default, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - MallocSizeOf, - Arbitrary, -)] -pub struct HeaderDigest([u8; crypto::DIGEST_LENGTH]); - -impl From for Digest<{ crypto::DIGEST_LENGTH }> { - fn from(hd: HeaderDigest) -> Self { - Digest::new(hd.0) - } -} - -impl AsRef<[u8]> for HeaderDigest { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl fmt::Debug for HeaderDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - ) - } -} - -impl fmt::Display for HeaderDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - .get(0..16) - .ok_or(fmt::Error)? - ) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for HeaderV1 { - type TypedDigest = HeaderDigest; - - fn digest(&self) -> HeaderDigest { - let mut hasher = crypto::DefaultHashFunction::new(); - hasher.update(bcs::to_bytes(&self).expect("Serialization should not fail")); - HeaderDigest(hasher.finalize().into()) - } -} - -/// A Vote on a Header is a claim by the voting authority that all payloads and -/// the full history of Certificates included in the Header are available. -#[derive(Clone, Serialize, Deserialize)] -#[enum_dispatch(VoteAPI)] -pub enum Vote { - V1(VoteV1), -} - -impl Vote { - // TODO: Add version number and match on that - pub async fn new( - header: &Header, - author: &AuthorityIdentifier, - signature_service: &SignatureService, - ) -> Self { - Vote::V1(VoteV1::new(header, author, signature_service).await) - } - - pub fn new_with_signer(header: &Header, author: &AuthorityIdentifier, signer: &S) -> Self - where - S: Signer, - { - Vote::V1(VoteV1::new_with_signer(header, author, signer)) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for Vote { - type TypedDigest = VoteDigest; - - fn digest(&self) -> VoteDigest { - match self { - Vote::V1(data) => data.digest(), - } - } -} - -#[enum_dispatch] -pub trait VoteAPI { - fn header_digest(&self) -> HeaderDigest; - fn round(&self) -> Round; - fn epoch(&self) -> Epoch; - fn origin(&self) -> AuthorityIdentifier; - fn author(&self) -> AuthorityIdentifier; - fn signature(&self) -> &::Sig; -} - -#[derive(Clone, Serialize, Deserialize)] -pub struct VoteV1 { - // HeaderDigest, round, epoch and origin for the header being voted on. - pub header_digest: HeaderDigest, - pub round: Round, - pub epoch: Epoch, - pub origin: AuthorityIdentifier, - // Author of this vote. - pub author: AuthorityIdentifier, - // Signature of the HeaderDigest. - pub signature: ::Sig, -} - -impl VoteAPI for VoteV1 { - fn header_digest(&self) -> HeaderDigest { - self.header_digest - } - fn round(&self) -> Round { - self.round - } - fn epoch(&self) -> Epoch { - self.epoch - } - fn origin(&self) -> AuthorityIdentifier { - self.origin - } - fn author(&self) -> AuthorityIdentifier { - self.author - } - fn signature(&self) -> &::Sig { - &self.signature - } -} - -impl VoteV1 { - pub async fn new( - header: &Header, - author: &AuthorityIdentifier, - signature_service: &SignatureService, - ) -> Self { - let vote = Self { - header_digest: header.digest(), - round: header.round(), - epoch: header.epoch(), - origin: header.author(), - author: *author, - signature: Signature::default(), - }; - let signature = signature_service - .request_signature(vote.digest().into()) - .await; - Self { signature, ..vote } - } - - pub fn new_with_signer(header: &Header, author: &AuthorityIdentifier, signer: &S) -> Self - where - S: Signer, - { - let vote = Self { - header_digest: header.digest(), - round: header.round(), - epoch: header.epoch(), - origin: header.author(), - author: *author, - signature: Signature::default(), - }; - - let vote_digest: Digest<{ crypto::DIGEST_LENGTH }> = vote.digest().into(); - let signature = Signature::new_secure(&to_intent_message(vote_digest), signer); - - Self { signature, ..vote } - } -} -#[derive( - Clone, Serialize, Deserialize, Default, PartialEq, Eq, Hash, PartialOrd, Ord, Copy, Arbitrary, -)] -pub struct VoteDigest([u8; crypto::DIGEST_LENGTH]); - -impl From for Digest<{ crypto::DIGEST_LENGTH }> { - fn from(hd: VoteDigest) -> Self { - Digest::new(hd.0) - } -} - -impl From for Digest<{ crypto::INTENT_MESSAGE_LENGTH }> { - fn from(digest: VoteDigest) -> Self { - let intent_message = to_intent_message(HeaderDigest(digest.0)); - Digest { - digest: bcs::to_bytes(&intent_message) - .expect("Serialization message should not fail") - .try_into() - .expect("INTENT_MESSAGE_LENGTH is correct"), - } - } -} - -impl fmt::Debug for VoteDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - ) - } -} - -impl fmt::Display for VoteDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - .get(0..16) - .ok_or(fmt::Error)? - ) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for VoteV1 { - type TypedDigest = VoteDigest; - - fn digest(&self) -> VoteDigest { - VoteDigest(self.header_digest().0) - } -} - -impl fmt::Debug for Vote { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}: V{}({}, {}, E{})", - self.digest(), - self.round(), - self.author(), - self.origin(), - self.epoch() - ) - } -} - -impl PartialEq for Vote { - fn eq(&self, other: &Self) -> bool { - self.digest() == other.digest() - } -} - -#[derive(Clone, Serialize, Deserialize, MallocSizeOf)] -#[enum_dispatch(CertificateAPI)] -pub enum Certificate { - V1(CertificateV1), -} - -impl Certificate { - pub fn genesis(committee: &Committee) -> Vec { - CertificateV1::genesis(committee) - .into_iter() - .map(Self::V1) - .collect() - } - - pub fn new_unverified( - committee: &Committee, - header: Header, - votes: Vec<(AuthorityIdentifier, Signature)>, - ) -> DagResult { - CertificateV1::new_unverified(committee, header, votes) - } - - pub fn new_unsigned( - committee: &Committee, - header: Header, - votes: Vec<(AuthorityIdentifier, Signature)>, - ) -> DagResult { - CertificateV1::new_unsigned(committee, header, votes) - } - - /// This function requires that certificate was verified against given - /// committee - pub fn signed_authorities(&self, committee: &Committee) -> Vec { - match self { - Self::V1(certificate) => certificate.signed_authorities(committee), - } - } - - pub fn signed_by(&self, committee: &Committee) -> (Stake, Vec) { - match self { - Self::V1(certificate) => certificate.signed_by(committee), - } - } - - pub fn verify( - self, - committee: &Committee, - worker_cache: &WorkerCache, - ) -> DagResult { - match self { - Self::V1(certificate) => certificate.verify(committee, worker_cache), - } - } - - pub fn round(&self) -> Round { - match self { - Self::V1(certificate) => certificate.round(), - } - } - - pub fn epoch(&self) -> Epoch { - match self { - Self::V1(certificate) => certificate.epoch(), - } - } - - pub fn origin(&self) -> AuthorityIdentifier { - match self { - Self::V1(certificate) => certificate.origin(), - } - } - - pub fn default_for_testing() -> Certificate { - Certificate::V1(CertificateV1::default()) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for Certificate { - type TypedDigest = CertificateDigest; - - fn digest(&self) -> CertificateDigest { - match self { - Certificate::V1(data) => data.digest(), - } - } -} - -#[enum_dispatch] -pub trait CertificateAPI { - fn header(&self) -> &Header; - fn aggregated_signature(&self) -> Option<&AggregateSignatureBytes>; - fn signed_authorities(&self) -> &roaring::RoaringBitmap; - fn metadata(&self) -> &Metadata; - - // Used for testing. - fn update_header(&mut self, header: Header); - fn header_mut(&mut self) -> &mut Header; - - // CertificateV1 - fn signature_verification_state(&self) -> &SignatureVerificationState; - fn set_signature_verification_state(&mut self, state: SignatureVerificationState); -} - -// Holds AggregateSignatureBytes but with the added layer to specify the -// signatures verification state. This will be used to take advantage of the -// certificate chain that is formed via the DAG by only verifying the -// leaves of the certificate chain when they are fetched from validators -// during catchup. -#[derive(Clone, Serialize, Deserialize, MallocSizeOf, Debug)] -pub enum SignatureVerificationState { - // This state occurs when the certificate has not yet received a quorum of - // signatures. - Unsigned(AggregateSignatureBytes), - // This state occurs when a certificate has just been received from the network - // and has not been verified yet. - Unverified(AggregateSignatureBytes), - // This state occurs when a certificate was either created locally, received - // via broadcast, or fetched but was not the parent of another certificate. - // Therefore this certificate had to be verified directly. - VerifiedDirectly(AggregateSignatureBytes), - // This state occurs when the cert was a parent of another fetched certificate - // that was verified directly, then this certificate is verified indirectly. - VerifiedIndirectly(AggregateSignatureBytes), - // This state occurs only for genesis certificates which always has valid - // signatures bytes but the bytes are garbage so we don't mark them as verified. - Genesis, -} - -impl Default for SignatureVerificationState { - fn default() -> Self { - SignatureVerificationState::Unsigned(AggregateSignatureBytes::default()) - } -} - -#[serde_as] -#[derive(Clone, Serialize, Deserialize, Default, MallocSizeOf)] -pub struct CertificateV1 { - pub header: Header, - pub signature_verification_state: SignatureVerificationState, - #[serde_as(as = "NarwhalBitmap")] - signed_authorities: roaring::RoaringBitmap, - pub metadata: Metadata, -} - -impl CertificateAPI for CertificateV1 { - fn header(&self) -> &Header { - &self.header - } - - fn aggregated_signature(&self) -> Option<&AggregateSignatureBytes> { - match &self.signature_verification_state { - SignatureVerificationState::VerifiedDirectly(bytes) - | SignatureVerificationState::Unverified(bytes) - | SignatureVerificationState::VerifiedIndirectly(bytes) - | SignatureVerificationState::Unsigned(bytes) => Some(bytes), - SignatureVerificationState::Genesis => None, - } - } - - fn signature_verification_state(&self) -> &SignatureVerificationState { - &self.signature_verification_state - } - - fn set_signature_verification_state(&mut self, state: SignatureVerificationState) { - self.signature_verification_state = state; - } - - fn signed_authorities(&self) -> &roaring::RoaringBitmap { - &self.signed_authorities - } - - fn metadata(&self) -> &Metadata { - &self.metadata - } - - // Used for testing. - fn update_header(&mut self, header: Header) { - self.header = header; - } - - fn header_mut(&mut self) -> &mut Header { - &mut self.header - } -} - -impl CertificateV1 { - pub fn genesis(committee: &Committee) -> Vec { - committee - .authorities() - .map(|authority| Self { - header: Header::V1(HeaderV1 { - author: authority.id(), - epoch: committee.epoch(), - ..Default::default() - }), - signature_verification_state: SignatureVerificationState::Genesis, - ..Self::default() - }) - .collect() - } - - pub fn new_unverified( - committee: &Committee, - header: Header, - votes: Vec<(AuthorityIdentifier, Signature)>, - ) -> DagResult { - Self::new_unsafe(committee, header, votes, true) - } - - pub fn new_unsigned( - committee: &Committee, - header: Header, - votes: Vec<(AuthorityIdentifier, Signature)>, - ) -> DagResult { - Self::new_unsafe(committee, header, votes, false) - } - - fn new_unsafe( - committee: &Committee, - header: Header, - votes: Vec<(AuthorityIdentifier, Signature)>, - check_stake: bool, - ) -> DagResult { - let mut votes = votes; - votes.sort_by_key(|(pk, _)| *pk); - let mut votes: VecDeque<_> = votes.into_iter().collect(); - - let mut weight = 0; - let mut sigs = Vec::new(); - - let filtered_votes = committee - .authorities() - .enumerate() - .filter(|(_, authority)| { - if !votes.is_empty() && authority.id() == votes.front().unwrap().0 { - sigs.push(votes.pop_front().unwrap()); - weight += authority.stake(); - // If there are repeats, also remove them - while !votes.is_empty() && votes.front().unwrap() == sigs.last().unwrap() { - votes.pop_front().unwrap(); - } - return true; - } - false - }) - .map(|(index, _)| index as u32); - - let signed_authorities = roaring::RoaringBitmap::from_sorted_iter(filtered_votes) - .map_err(|_| DagError::InvalidBitmap("Failed to convert votes into a bitmap of authority keys. Something is likely very wrong...".to_string()))?; - - // Ensure that all authorities in the set of votes are known - ensure!( - votes.is_empty(), - DagError::UnknownAuthority(votes.front().unwrap().0.to_string()) - ); - - // Ensure that the authorities have enough weight - ensure!( - !check_stake || weight >= committee.quorum_threshold(), - DagError::CertificateRequiresQuorum - ); - - let aggregated_signature = if sigs.is_empty() { - AggregateSignature::default() - } else { - AggregateSignature::aggregate::>( - sigs.iter().map(|(_, sig)| sig).collect(), - ) - .map_err(|_| DagError::InvalidSignature)? - }; - - let aggregate_signature_bytes = AggregateSignatureBytes::from(&aggregated_signature); - - let signature_verification_state = if !check_stake { - SignatureVerificationState::Unsigned(aggregate_signature_bytes) - } else { - SignatureVerificationState::Unverified(aggregate_signature_bytes) - }; - - Ok(Certificate::V1(CertificateV1 { - header, - signature_verification_state, - signed_authorities, - metadata: Metadata::default(), - })) - } - - /// This function requires that certificate was verified against given - /// committee - pub fn signed_authorities(&self, committee: &Committee) -> Vec { - assert_eq!(committee.epoch(), self.epoch()); - let (_stake, pks) = self.signed_by(committee); - pks - } - - pub fn signed_by(&self, committee: &Committee) -> (Stake, Vec) { - // Ensure the certificate has a quorum. - let mut weight = 0; - - let auth_indexes = self.signed_authorities.iter().collect::>(); - let mut auth_iter = 0; - let pks = committee - .authorities() - .enumerate() - .filter(|(i, authority)| match auth_indexes.get(auth_iter) { - Some(index) if *index == *i as u32 => { - weight += authority.stake(); - auth_iter += 1; - true - } - _ => false, - }) - .map(|(_, authority)| authority.protocol_key().clone()) - .collect(); - (weight, pks) - } - - /// Verifies the validity of the certificate. - pub fn verify( - self, - committee: &Committee, - worker_cache: &WorkerCache, - ) -> DagResult { - // Ensure the header is from the correct epoch. - ensure!(self.epoch() == committee.epoch(), DagError::InvalidEpoch { - expected: committee.epoch(), - received: self.epoch() - }); - - // Genesis certificates are always valid. - if self.round() == 0 && Self::genesis(committee).contains(&self) { - return Ok(Certificate::V1(self)); - } - - // Save signature verifications when the header is invalid. - self.header.validate(committee, worker_cache)?; - - let (weight, pks) = self.signed_by(committee); - - ensure!( - weight >= committee.quorum_threshold(), - DagError::CertificateRequiresQuorum - ); - - let verified_cert = self.verify_signature(pks)?; - - Ok(verified_cert) - } - - fn verify_signature(mut self, pks: Vec) -> DagResult { - let aggregate_signature_bytes = match self.signature_verification_state { - SignatureVerificationState::VerifiedIndirectly(_) - | SignatureVerificationState::VerifiedDirectly(_) - | SignatureVerificationState::Genesis => return Ok(Certificate::V1(self)), - SignatureVerificationState::Unverified(ref bytes) => bytes, - SignatureVerificationState::Unsigned(_) => { - bail!(DagError::CertificateRequiresQuorum); - } - }; - - // Verify the signatures - let certificate_digest: Digest<{ crypto::DIGEST_LENGTH }> = Digest::from(self.digest()); - AggregateSignature::try_from(aggregate_signature_bytes) - .map_err(|_| DagError::InvalidSignature)? - .verify_secure(&to_intent_message(certificate_digest), &pks[..]) - .map_err(|_| DagError::InvalidSignature)?; - - self.signature_verification_state = - SignatureVerificationState::VerifiedDirectly(aggregate_signature_bytes.clone()); - - Ok(Certificate::V1(self)) - } - - pub fn round(&self) -> Round { - self.header.round() - } - - pub fn epoch(&self) -> Epoch { - self.header.epoch() - } - - pub fn origin(&self) -> AuthorityIdentifier { - self.header.author() - } -} - -// Certificate version is validated against network protocol version. If -// CertificateV1 is being used then the cert will also be marked as Unverified -// as this certificate is assumed to be received from the network. This -// SignatureVerificationState is why the modified certificate is being returned. -pub fn validate_received_certificate_version( - mut certificate: Certificate, -) -> anyhow::Result { - match certificate { - Certificate::V1(_) => { - // CertificateV1 was received from the network so we need to mark - // certificate aggregated signature state as unverified. - certificate.set_signature_verification_state(SignatureVerificationState::Unverified( - certificate - .aggregated_signature() - .ok_or(anyhow::anyhow!("Invalid signature"))? - .clone(), - )); - } - }; - Ok(certificate) -} - -#[derive( - Clone, - Copy, - Serialize, - Deserialize, - Default, - MallocSizeOf, - PartialEq, - Eq, - Hash, - PartialOrd, - Ord, - Arbitrary, -)] - -pub struct CertificateDigest([u8; crypto::DIGEST_LENGTH]); - -impl CertificateDigest { - pub fn new(digest: [u8; crypto::DIGEST_LENGTH]) -> CertificateDigest { - CertificateDigest(digest) - } -} - -impl AsRef<[u8]> for CertificateDigest { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl From for Digest<{ crypto::DIGEST_LENGTH }> { - fn from(hd: CertificateDigest) -> Self { - Digest::new(hd.0) - } -} - -impl fmt::Debug for CertificateDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - ) - } -} - -impl fmt::Display for CertificateDigest { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!( - f, - "{}", - base64::Engine::encode(&base64::engine::general_purpose::STANDARD, self.0) - .get(0..16) - .ok_or(fmt::Error)? - ) - } -} - -impl Hash<{ crypto::DIGEST_LENGTH }> for CertificateV1 { - type TypedDigest = CertificateDigest; - - fn digest(&self) -> CertificateDigest { - CertificateDigest(self.header.digest().0) - } -} - -impl fmt::Debug for Certificate { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - match self { - Certificate::V1(data) => write!( - f, - "{}: C{}({}, {}, E{})", - data.digest(), - data.round(), - data.origin(), - data.header.digest(), - data.epoch() - ), - } - } -} - -impl PartialEq for Certificate { - fn eq(&self, other: &Self) -> bool { - match (self, other) { - (Certificate::V1(data), Certificate::V1(other_data)) => data.eq(other_data), - } - } -} - -impl PartialEq for CertificateV1 { - fn eq(&self, other: &Self) -> bool { - let mut ret = self.header().digest() == other.header().digest(); - ret &= self.round() == other.round(); - ret &= self.epoch() == other.epoch(); - ret &= self.origin() == other.origin(); - ret - } -} - -/// Request for broadcasting certificates to peers. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct SendCertificateRequest { - pub certificate: Certificate, -} - -/// Response from peers after receiving a certificate. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct SendCertificateResponse { - pub accepted: bool, -} - -/// Used by the primary to request a vote from other primaries on newly produced -/// headers. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RequestVoteRequest { - pub header: Header, - - // Optional parent certificates provided by the requester, in case this primary doesn't yet - // have them and requires them in order to offer a vote. - pub parents: Vec, -} - -/// Used by the primary to reply to RequestVoteRequest. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RequestVoteResponse { - pub vote: Option, - - // Indicates digests of missing certificates without which a vote cannot be provided. - pub missing: Vec, -} - -/// Used by the primary to fetch certificates from other primaries. -#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] -pub struct FetchCertificatesRequest { - /// The exclusive lower bound is a round number where each primary should - /// return certificates above that. This corresponds to the GC round at - /// the requestor. - pub exclusive_lower_bound: Round, - /// This contains per authority serialized RoaringBitmap for the round diffs - /// between - /// - rounds of certificates to be skipped from the response and - /// - the GC round. - /// - /// These rounds are skipped because the requestor already has them. - pub skip_rounds: Vec<(AuthorityIdentifier, Vec)>, - /// Maximum number of certificates that should be returned. - pub max_items: usize, -} - -impl FetchCertificatesRequest { - #[allow(clippy::mutable_key_type)] - pub fn get_bounds(&self) -> (Round, BTreeMap>) { - let skip_rounds: BTreeMap> = self - .skip_rounds - .iter() - .filter_map(|(k, serialized)| { - match RoaringBitmap::deserialize_from(&mut &serialized[..]) { - Ok(bitmap) => { - let rounds: BTreeSet = bitmap - .into_iter() - .map(|r| self.exclusive_lower_bound + r as Round) - .collect(); - Some((*k, rounds)) - } - Err(e) => { - warn!("Failed to deserialize RoaringBitmap {e}"); - None - } - } - }) - .collect(); - (self.exclusive_lower_bound, skip_rounds) - } - - #[allow(clippy::mutable_key_type)] - pub fn set_bounds( - mut self, - gc_round: Round, - skip_rounds: BTreeMap>, - ) -> Self { - self.exclusive_lower_bound = gc_round; - self.skip_rounds = skip_rounds - .into_iter() - .map(|(k, rounds)| { - let mut serialized = Vec::new(); - rounds - .into_iter() - .map(|v| u32::try_from(v - gc_round).unwrap()) - .collect::() - .serialize_into(&mut serialized) - .unwrap(); - (k, serialized) - }) - .collect(); - self - } - - pub fn set_max_items(mut self, max_items: usize) -> Self { - self.max_items = max_items; - self - } -} - -/// Used by the primary to reply to FetchCertificatesRequest. -#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] -pub struct FetchCertificatesResponse { - /// Certificates sorted from lower to higher rounds. - pub certificates: Vec, -} - -/// Used by the primary to request that the worker sync the target missing -/// batches. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct WorkerSynchronizeMessage { - pub digests: Vec, - pub target: AuthorityIdentifier, - // Used to indicate to the worker that it does not need to fully validate - // the batch it receives because it is part of a certificate. Only digest - // verification is required. - pub is_certified: bool, -} - -/// Used by the primary to request that the worker fetch the missing batches and -/// reply with all of the content. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct FetchBatchesRequest { - pub digests: HashSet, - pub known_workers: HashSet, -} - -/// All batches requested by the primary. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct FetchBatchesResponse { - pub batches: HashMap, -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct BatchMessage { - // TODO: revisit including the digest here [see #188] - pub digest: BatchDigest, - pub batch: Batch, -} - -/// Used by worker to inform primary it sealed a new batch. -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq, Debug)] -pub struct WorkerOwnBatchMessage { - pub digest: BatchDigest, - pub worker_id: WorkerId, - pub metadata: VersionedMetadata, -} - -/// Used by worker to inform primary it received a batch from another authority. -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq, Debug)] -pub struct WorkerOthersBatchMessage { - pub digest: BatchDigest, - pub worker_id: WorkerId, -} - -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq, Debug)] -#[enum_dispatch(VoteInfoAPI)] -pub enum VoteInfo { - V1(VoteInfoV1), -} - -#[enum_dispatch] -pub trait VoteInfoAPI { - fn epoch(&self) -> Epoch; - fn round(&self) -> Round; - fn vote_digest(&self) -> VoteDigest; -} - -#[derive(Clone, Serialize, Deserialize, Eq, PartialEq, Debug)] -pub struct VoteInfoV1 { - /// The latest Epoch for which a vote was sent to given authority - pub epoch: Epoch, - /// The latest round for which a vote was sent to given authority - pub round: Round, - /// The hash of the vote used to ensure equality - pub vote_digest: VoteDigest, -} - -impl VoteInfoAPI for VoteInfoV1 { - fn epoch(&self) -> Epoch { - self.epoch - } - - fn round(&self) -> Round { - self.round - } - - fn vote_digest(&self) -> VoteDigest { - self.vote_digest - } -} - -impl From<&VoteV1> for VoteInfoV1 { - fn from(vote: &VoteV1) -> Self { - VoteInfoV1 { - epoch: vote.epoch(), - round: vote.round(), - vote_digest: vote.digest(), - } - } -} - -impl From<&Vote> for VoteInfo { - fn from(vote: &Vote) -> Self { - match vote { - Vote::V1(vote) => VoteInfo::V1(VoteInfoV1::from(vote)), - } - } -} - -#[cfg(test)] -mod tests { - use std::time::Duration; - - use tokio::time::sleep; - - use crate::{Batch, BatchAPI, BatchV1, MetadataAPI, MetadataV1, Timestamp, VersionedMetadata}; - - #[tokio::test] - async fn test_elapsed() { - let batch = Batch::new(vec![]); - - assert!(*batch.versioned_metadata().created_at() > 0); - - assert!(batch.versioned_metadata().received_at().is_none()); - - sleep(Duration::from_secs(2)).await; - - assert!( - batch - .versioned_metadata() - .created_at() - .elapsed() - .as_secs_f64() - >= 2.0 - ); - } - - #[test] - fn test_elapsed_when_newer_than_now() { - let batch = Batch::V1(BatchV1 { - transactions: vec![], - versioned_metadata: VersionedMetadata::V1(MetadataV1 { - created_at: 2999309726980, // something in the future - Fri Jan 16 2065 05:35:26 - received_at: None, - }), - }); - - assert_eq!( - batch - .versioned_metadata() - .created_at() - .elapsed() - .as_secs_f64(), - 0.0 - ); - } -} diff --git a/narwhal/types/src/proto.rs b/narwhal/types/src/proto.rs deleted file mode 100644 index 1a7483120ac..00000000000 --- a/narwhal/types/src/proto.rs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -mod narwhal { - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Transaction { - #[prost(bytes = "bytes", repeated, tag = "1")] - pub transactions: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>, - } - /// Empty message for when we don't have anything to return - #[derive(Clone, Copy, PartialEq, ::prost::Message)] - pub struct Empty {} - - include!(concat!(env!("OUT_DIR"), "/narwhal.Transactions.rs")); -} - -use bytes::Bytes; -pub use narwhal::{ - Empty, Transaction as TransactionProto, - transactions_client::TransactionsClient, - transactions_server::{Transactions, TransactionsServer}, -}; - -use crate::Transaction; - -impl From for TransactionProto { - fn from(transaction: Transaction) -> Self { - TransactionProto { - transactions: vec![Bytes::from(transaction)], - } - } -} - -impl From> for TransactionProto { - fn from(transactions: Vec) -> Self { - TransactionProto { - transactions: transactions.into_iter().map(Bytes::from).collect(), - } - } -} diff --git a/narwhal/types/src/serde.rs b/narwhal/types/src/serde.rs deleted file mode 100644 index 462f25e44eb..00000000000 --- a/narwhal/types/src/serde.rs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::fmt::Debug; - -use serde::{ - de::{Deserializer, Error}, - ser::{Error as SerError, Serializer}, -}; -use serde_with::{Bytes, DeserializeAs, SerializeAs}; - -#[cfg(test)] -#[path = "./tests/batch_serde.rs"] -mod batch_serde; - -#[inline] -fn to_custom_error<'de, D, E>(e: E) -> D::Error -where - E: Debug, - D: Deserializer<'de>, -{ - Error::custom(format!("byte deserialization failed, cause by: {:?}", e)) -} - -#[inline] -fn to_custom_ser_error(e: E) -> S::Error -where - E: Debug, - S: Serializer, -{ - S::Error::custom(format!("byte serialization failed, cause by: {:?}", e)) -} - -// Serializes a bitmap according to the roaring bitmap on-disk standard. -/// https://github.com/RoaringBitmap/RoaringFormatSpec -pub struct NarwhalBitmap; - -impl SerializeAs for NarwhalBitmap { - fn serialize_as(source: &roaring::RoaringBitmap, serializer: S) -> Result - where - S: Serializer, - { - let mut bytes = vec![]; - - source - .serialize_into(&mut bytes) - .map_err(to_custom_ser_error::)?; - Bytes::serialize_as(&bytes, serializer) - } -} - -impl<'de> DeserializeAs<'de, roaring::RoaringBitmap> for NarwhalBitmap { - fn deserialize_as(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let bytes: Vec = Bytes::deserialize_as(deserializer)?; - roaring::RoaringBitmap::deserialize_from(&bytes[..]).map_err(to_custom_error::<'de, D, _>) - } -} diff --git a/narwhal/types/src/tests/batch_serde.rs b/narwhal/types/src/tests/batch_serde.rs deleted file mode 100644 index 3529421ae9f..00000000000 --- a/narwhal/types/src/tests/batch_serde.rs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use serde_test::{Token, assert_tokens}; - -use crate::{ - Batch, BatchV1, MetadataV1, VersionedMetadata, serde::batch_serde::Token::NewtypeVariant, -}; -#[test] -fn test_serde_batch() { - let tx = || vec![1; 5]; - - let batch = Batch::V1(BatchV1 { - transactions: (0..2).map(|_| tx()).collect(), - versioned_metadata: VersionedMetadata::V1(MetadataV1 { - created_at: 1666205365890, - received_at: None, - }), - }); - - assert_tokens(&batch, &[ - NewtypeVariant { - name: "Batch", - variant: "V1", - }, - Token::Struct { - name: "BatchV1", - len: 2, - }, - Token::Str("transactions"), - Token::Seq { len: Some(2) }, - Token::Seq { len: Some(5) }, - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::SeqEnd, - Token::Seq { len: Some(5) }, - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::U8(1), - Token::SeqEnd, - Token::SeqEnd, - Token::Str("versioned_metadata"), - NewtypeVariant { - name: "VersionedMetadata", - variant: "V1", - }, - Token::Struct { - name: "MetadataV1", - len: 2, - }, - Token::Str("created_at"), - Token::U64(1666205365890), - Token::Str("received_at"), - Token::None, - Token::StructEnd, - Token::StructEnd, - ]); -} diff --git a/narwhal/types/src/tests/error_test.rs b/narwhal/types/src/tests/error_test.rs deleted file mode 100644 index 0c26b098aff..00000000000 --- a/narwhal/types/src/tests/error_test.rs +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{future, time::Duration}; - -use futures::{StreamExt, stream::FuturesUnordered}; -use iota_metrics::metered_channel::{Receiver, Sender, WithPermit, channel}; -use prometheus::IntGauge; - -use super::DagError; - -pub struct Processor { - input: Receiver, - output: Sender, -} - -impl Processor { - pub fn new(input: Receiver, output: Sender) -> Self { - Self { input, output } - } - - pub fn spawn(input: Receiver, output: Sender) { - tokio::spawn(async move { - let mut processor = Processor::new(input, output); - processor.run().await; - }); - } - - pub async fn run(&mut self) { - let mut waiting = FuturesUnordered::new(); - - loop { - tokio::select! { - Some(input) = self.input.recv() => { - let deliver: future::Ready> = future::ready( - Ok(input) - ); - waiting.push(deliver) - } - - - Some((permit, Some(res_value))) = self.output.with_permit(waiting.next()) => { - permit.send(res_value.unwrap()); - } - } - } - } -} - -#[tokio::test] -async fn with_permit_unhappy_case() { - let counter = IntGauge::new("TEST_COUNTER", "test").unwrap(); - - let (tx_inbound, rx_inbound) = channel(100, &counter); // we'll make sure we always have stuff inbound - let (tx_outbound, mut rx_outbound) = channel(1, &counter); // we'll constrain the output - - Processor::spawn(rx_inbound, tx_outbound); - // we fill the inbound channel with stuff - (0..100).for_each(|i| { - tx_inbound - .try_send(i) - .expect("failed to send to inbound channel"); - }); - - tokio::time::sleep(Duration::from_secs(1)).await; - // by now, the outbound channel should fail to deliver permits on each loop - // pass, whereas the inbound channel is full - - // we now try to receive all the things we can from the outbound channel - let mut recvd = vec![]; - while let Ok(Some(val)) = tokio::time::timeout(Duration::from_secs(1), rx_outbound.recv()).await - { - recvd.push(val); - } - - assert_eq!(recvd, (0..100).collect::>()); -} diff --git a/narwhal/types/tests/primary_tests.rs b/narwhal/types/tests/primary_tests.rs deleted file mode 100644 index 3c31c2f8bb0..00000000000 --- a/narwhal/types/tests/primary_tests.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) Mysten Labs, Inc. -// Modifications Copyright (c) 2024 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{collections::BTreeSet, num::NonZeroUsize}; - -use config::{AuthorityIdentifier, Committee, Stake}; -use crypto::{PublicKey, Signature}; -use fastcrypto::traits::KeyPair; -use indexmap::IndexMap; -use narwhal_types::{Certificate, Header, HeaderV1, Vote, VoteAPI}; -use rand::{rngs::OsRng, seq::SliceRandom}; -use test_utils::{AuthorityFixture, CommitteeFixture}; - -#[tokio::test] -async fn test_certificate_signers_are_ordered() { - // GIVEN - let fixture = CommitteeFixture::builder() - .committee_size(NonZeroUsize::new(4).unwrap()) - .stake_distribution((1..=4).collect()) // provide some non-uniform stake - .build(); - let committee: Committee = fixture.committee(); - - let authorities = fixture.authorities().collect::>(); - - // The authority that creates the Header - let authority = authorities[0]; - - let header = HeaderV1::new(authority.id(), 1, 1, IndexMap::new(), BTreeSet::new()).await; - - // WHEN - let mut votes: Vec<(AuthorityIdentifier, Signature)> = Vec::new(); - let mut sorted_signers: Vec = Vec::new(); - - // The authorities on position 1, 2, 3 are the ones who would sign - for authority in &authorities[1..=3] { - sorted_signers.push(authority.keypair().public().clone()); - - let vote = Vote::new_with_signer( - &Header::V1(header.clone()), - &authority.id(), - authority.keypair(), - ); - votes.push((vote.author(), vote.signature().clone())); - } - - // Just shuffle to ensure that any underlying sorting will work correctly - votes.shuffle(&mut OsRng); - - // Create a certificate - let certificate = Certificate::new_unverified(&committee, Header::V1(header), votes).unwrap(); - - let (stake, signers) = certificate.signed_by(&committee); - - // THEN - assert_eq!(signers.len(), 3); - - // AND authorities public keys are returned in order - assert_eq!(signers, sorted_signers); - - assert_eq!(stake, 9 as Stake); -} diff --git a/nre/ansible/roles/iota-node/files/iota-node.service b/nre/ansible/roles/iota-node/files/iota-node.service index f24b17b6748..76512d92601 100644 --- a/nre/ansible/roles/iota-node/files/iota-node.service +++ b/nre/ansible/roles/iota-node/files/iota-node.service @@ -5,7 +5,7 @@ Description=Iota Node User=iota WorkingDirectory=/opt/iota/ Environment=RUST_BACKTRACE=1 -Environment=RUST_LOG=info,iota_core=debug,narwhal=debug,consensus=debug,jsonrpsee=error +Environment=RUST_LOG=info,iota_core=debug,consensus=debug,jsonrpsee=error ExecStart=/opt/iota/bin/iota-node --config-path /opt/iota/config/validator.yaml Restart=always diff --git a/nre/config/validator.yaml b/nre/config/validator.yaml index 57773f17f7d..4b2f60eba69 100644 --- a/nre/config/validator.yaml +++ b/nre/config/validator.yaml @@ -12,21 +12,6 @@ admin-interface-port: 1337 consensus-config: db-path: /opt/iota/db/consensus_db internal-worker-address: null - narwhal-config: - header_num_of_batches_threshold: 32 - max_header_num_of_batches: 1000 - max_header_delay: 1000ms - gc_depth: 50 - sync_retry_delay: 5000ms - sync_retry_nodes: 3 - batch_size: 500000 - max_batch_delay: 100ms - max_concurrent_requests: 500000 - prometheus_metrics: - socket_addr: /ip4/127.0.0.1/tcp/33291/http - network_admin_server: - primary_network_admin_server_port: 41303 - worker_network_admin_server_base_port: 41669 enable-event-processing: false p2p-config: listen-address: 0.0.0.0:8084 diff --git a/nre/dashboards/iota_mainnet_validators.json b/nre/dashboards/iota_mainnet_validators.json index 7b4e69ac19e..ccba9b70714 100644 --- a/nre/dashboards/iota_mainnet_validators.json +++ b/nre/dashboards/iota_mainnet_validators.json @@ -1128,7 +1128,7 @@ "type": "prometheus", "uid": "e6b9ae38-5a18-477b-bd96-c67b655dd4aa" }, - "description": "e2e latency of handling certificates that go through Narwhal (p67 across validators)", + "description": "e2e latency of handling certificates that go through consensus (p67 across validators)", "fieldConfig": { "defaults": { "color": { @@ -1457,119 +1457,6 @@ "title": "Average time to generate consensus proposal latency", "type": "status-history" }, - { - "datasource": { - "type": "prometheus", - "uid": "e6b9ae38-5a18-477b-bd96-c67b655dd4aa" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "fillOpacity": 70, - "lineWidth": 1 - }, - "mappings": [ - { - "options": { - "from": 20, - "result": { - "color": "red", - "index": 0 - }, - "to": 100000000 - }, - "type": "range" - }, - { - "options": { - "from": 10, - "result": { - "color": "orange", - "index": 1 - }, - "to": 20 - }, - "type": "range" - }, - { - "options": { - "from": 0, - "result": { - "color": "dark-green", - "index": 2 - }, - "to": 10 - }, - "type": "range" - }, - { - "options": { - "match": "null+nan", - "result": { - "color": "transparent", - "index": 3 - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 29, - "w": 8, - "x": 16, - "y": 36 - }, - "id": 262, - "interval": "2m", - "options": { - "colWidth": 0.9, - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "rowHeight": 0.9, - "showValue": "never", - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "e6b9ae38-5a18-477b-bd96-c67b655dd4aa" - }, - "editorMode": "code", - "exemplar": false, - "expr": "histogram_quantile(0.5, sum by(le, host) (rate(primary_inbound_request_latency_bucket{network=\"mainnet\", route=\"/narwhal.PrimaryToPrimary/SendCertificate\"}[5m]))) * 1000", - "format": "time_series", - "instant": false, - "legendFormat": "{{host}}", - "range": true, - "refId": "A" - } - ], - "title": "p50 process certificate (internal processing only)", - "type": "status-history" - }, { "datasource": { "type": "prometheus", @@ -1764,7 +1651,7 @@ "type": "prometheus", "uid": "e6b9ae38-5a18-477b-bd96-c67b655dd4aa" }, - "description": "The rate of node participation in consensus via sending certified Narwhal proposals.", + "description": "The rate of node participation in consensus via sending certified consensus proposals.", "fieldConfig": { "defaults": { "color": { diff --git a/nre/docker/docker-compose.yaml b/nre/docker/docker-compose.yaml index 40b43da228e..d5d56fc1368 100644 --- a/nre/docker/docker-compose.yaml +++ b/nre/docker/docker-compose.yaml @@ -7,7 +7,7 @@ services: image: iotaledger/iota-node:${IOTA_SHA} # UPDATE HERE environment: - RUST_BACKTRACE=1 - - RUST_LOG=info,iota_core=debug,narwhal=debug,consensus=debug,jsonrpsee=error + - RUST_LOG=info,iota_core=debug,consensus=debug,jsonrpsee=error labels: org.label-schema.name: "validator" ports: diff --git a/nre/k8s/iota-node-statefulset.yaml b/nre/k8s/iota-node-statefulset.yaml index 2e616e27d27..cbf5c09b40b 100644 --- a/nre/k8s/iota-node-statefulset.yaml +++ b/nre/k8s/iota-node-statefulset.yaml @@ -59,7 +59,7 @@ spec: - name: RUST_BACKTRACE value: "1" - name: RUST_LOG - value: info,iota_core=debug,iota_network=debug,narwhal=info,consensus=debug,jsonrpsee=error + value: info,iota_core=debug,iota_network=debug,consensus=debug,jsonrpsee=error image: x imagePullPolicy: Always name: iota-node diff --git a/nre/systemd/iota-node.service b/nre/systemd/iota-node.service index f24b17b6748..76512d92601 100644 --- a/nre/systemd/iota-node.service +++ b/nre/systemd/iota-node.service @@ -5,7 +5,7 @@ Description=Iota Node User=iota WorkingDirectory=/opt/iota/ Environment=RUST_BACKTRACE=1 -Environment=RUST_LOG=info,iota_core=debug,narwhal=debug,consensus=debug,jsonrpsee=error +Environment=RUST_LOG=info,iota_core=debug,consensus=debug,jsonrpsee=error ExecStart=/opt/iota/bin/iota-node --config-path /opt/iota/config/validator.yaml Restart=always diff --git a/scripts/dependency.py b/scripts/dependency.py index 3565e018efa..0deb1bb3d55 100644 --- a/scripts/dependency.py +++ b/scripts/dependency.py @@ -68,7 +68,6 @@ def try_match_line(line): def switch_to_local(project): default_path_map = { "move": "move/language", - "narwhal": "narwhal", } # Packages that don't directly map to a directory under move/language # go here as special cases. By default, we just use language/[name]. @@ -98,7 +97,6 @@ def switch_to_local(project): "move-table-extension": "extensions/move-table-extension", "move-transactional-test-runner": "testing-infra/transactional-test-runner", }, - "narwhal": {}, } def process_line(line, depth): @@ -109,8 +107,6 @@ def process_line(line, depth): path = default_path_map[project] if project == "move": subpath = subpath_path_map[project].get(name, name) - elif project == "narwhal": - subpath = name.replace("narwhal-", "") return '{} = {{ path = "{}{}/{}"{} }}\n'.format( name, go_back, path, subpath, extra ) @@ -138,7 +134,7 @@ def process_line(line, _): args = parse_args() -assert (args.project == "move" or args.project == "narwhal") +assert (args.project == "move") PATTERN = re.compile( '(.+)={git="https://github.com/.+/' + diff --git a/scripts/generate-release-notes.sh b/scripts/generate-release-notes.sh index d13b374aa50..ed757cc67e2 100755 --- a/scripts/generate-release-notes.sh +++ b/scripts/generate-release-notes.sh @@ -15,7 +15,7 @@ else fi echo -e "Iota Protocol Version in this release: XX\n" -for pr_number in $(git log --grep "\[x\]" --pretty=oneline --abbrev-commit origin/"${new_branch}"...origin/"${prev_branch}" -- crates dashboards doc docker external-crates kiosk narwhal nre iota-execution | grep -o '#[0-9]\+' | grep -o '[0-9]\+') +for pr_number in $(git log --grep "\[x\]" --pretty=oneline --abbrev-commit origin/"${new_branch}"...origin/"${prev_branch}" -- crates dashboards doc docker external-crates kiosk nre iota-execution | grep -o '#[0-9]\+' | grep -o '[0-9]\+') do pr_body=$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/iotaledger/iota/pulls/"${pr_number}" --jq ".body") release_notes="${pr_body#*### Release notes}" diff --git a/scripts/release_notes.py b/scripts/release_notes.py index ac3715a63a5..f3afcb8fda9 100755 --- a/scripts/release_notes.py +++ b/scripts/release_notes.py @@ -44,7 +44,6 @@ "docker", "external-crates", "kiosk", - "narwhal", "nre", "iota-execution", ] diff --git a/scripts/update_narwhal.sh b/scripts/update_narwhal.sh deleted file mode 100755 index 30f5d7b0536..00000000000 --- a/scripts/update_narwhal.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash -# Copyright (c) Mysten Labs, Inc. -# Modifications Copyright (c) 2024 IOTA Stiftung -# SPDX-License-Identifier: Apache-2.0 - -# shellcheck disable=SC2181 -# This script attempts to update the Narwhal pointer in Iota -# It is expected to fail in cases -set -e -set -eo pipefail - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -TOPLEVEL="${DIR}/../" -GREP=${GREP:=grep} - -# Crutch for old bash versions -# Very minimal readarray implementation using read. Does NOT work with lines that contain double-quotes due to eval() -readarray() { - while IFS= read -r var; do - MAPFILE+=("$var") - done -} - - -# check for the presence of needed executables: -# - we use GNU grep in perl re mode -function check_gnu_grep() { - GNUSTRING=$($GREP --version|head -n1| grep 'GNU grep') - if [[ -z $GNUSTRING ]]; - then - echo "Could not find GNU grep. This requires GNU grep 3.7 with PCRE expressions"; exit 1 - else - return 0 - fi -} - - -function latest_nw_revision() { - NW_CHECKOUT=$(mktemp -d) - cd "$NW_CHECKOUT" - git clone --depth 1 https://github.com/mystenlabs/narwhal - cd narwhal - git rev-parse HEAD -} - -function current_nw_revision() { - cd "$TOPLEVEL" - readarray -t <<< "$(find ./ -iname '*.toml' -exec $GREP -oPe 'git = "https://github.com/MystenLabs/narwhal", *rev *= *\"\K[0-9a-fA-F]+' '{}' \;)" - watermark=${MAPFILE[0]} - for i in "${MAPFILE[@]}"; do - if [[ "$watermark" != "$i" ]]; then - not_equal=true - break - fi - done - - [[ -n "$not_equal" ]] && echo "Different values found for the current NW revision in Iota, aborting" && exit 1 - echo "$watermark" -} - -# Check for tooling -check_gnu_grep - -# Debug prints -CURRENT_NW=$(current_nw_revision) -LATEST_NW=$(latest_nw_revision) -if [[ "$CURRENT_NW" != "$LATEST_NW" ]]; then - echo "About to replace $CURRENT_NW with $LATEST_NW as the Narwhal pointer in Iota" -else - exit 0 -fi - -# Edit the source -find ./ -iname "*.toml" -execdir sed -i '' -re "s/$CURRENT_NW/$LATEST_NW/" '{}' \; diff --git a/sdk/graphql-transport/src/methods.ts b/sdk/graphql-transport/src/methods.ts index 46c91c9656c..60e39b15542 100644 --- a/sdk/graphql-transport/src/methods.ts +++ b/sdk/graphql-transport/src/methods.ts @@ -1344,7 +1344,6 @@ export const RPC_METHODS: { const attributes: Record = {}; const configTypeMap: Record = { - max_accumulated_txn_cost_per_object_in_narwhal_commit: 'u64', max_arguments: 'u32', max_gas_payment_objects: 'u32', max_modules_in_publish: 'u32',