From 2504833a7318c61d5cbd9d3261330eab99266a2c Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:22:58 -0500 Subject: [PATCH 01/31] fix: allow mfx minting only --- src/many-ledger/src/module/ledger_mintburn.rs | 30 ++++++++++++------- .../disable_token_minting_migration.bats | 25 +++++++++++++--- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 2f765c23..906ee910 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -10,6 +10,7 @@ use many_modules::ledger; use many_modules::ledger::{TokenBurnArgs, TokenBurnReturns, TokenMintArgs, TokenMintReturns}; use many_types::ledger::Symbol; use std::collections::BTreeSet; +use std::str::FromStr; /// Check if a symbol exists in the storage fn check_symbol_exists(symbol: &Symbol, symbols: BTreeSet) -> Result<(), ManyError> { @@ -30,22 +31,31 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { return Err(ManyError::invalid_method_name("tokens.mint")); } - if self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) - { - return Err(ManyError::unknown( - "Token minting is disabled on this network", - )); - } - let TokenMintArgs { symbol, distribution, memo, } = args; + let mfx = if cfg!(migration_testing) { + // Test network MFX address + Symbol::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz")? + } else { + // Production network MFX address + Symbol::from_str("mqbh741x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l")? + }; + + if symbol != mfx + && self + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + { + return Err(ManyError::unknown( + "Token minting is disabled on this network", + )); + } + self.verify_mint_burn_identity(sender, &symbol)?; check_symbol_exists(&symbol, self.storage.get_symbols()?)?; diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index 0090c7b4..c58e2c78 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -73,18 +73,35 @@ function teardown() { check_consistency --pem=2 --balance=123 8000 8001 8002 8003 check_consistency --pem=3 --balance=456 8000 8001 8002 8003 + # Create a new token + create_token --pem=1 --port=8000 + call_ledger --pem=1 --port=8000 token update --name "\"ZZZ name\"" \ + --ticker "ZZZ" \ + --decimals "6" \ + --memo "\"Update memo\"" \ + --owner "$(identity 2)" \ + "${SYMBOL}" + # Disable Token Minting wait_for_block 35 - # Token endpoints should be disabled + # MFX minting should still work call_ledger --pem=1 --port=8000 token mint MFX ''\''{"'$(identity 2)'": 123, "'$(identity 3)'": 456}'\''' - assert_output --partial "Token minting is disabled on this network" + refute_output --partial "Token minting is disabled on this network" check_consistency --pem=1 --balance=1000000 --id="$(identity 1)" 8000 8001 8002 8003 - check_consistency --pem=2 --balance=123 8000 8001 8002 8003 - check_consistency --pem=3 --balance=456 8000 8001 8002 8003 + check_consistency --pem=2 --balance=246 8000 8001 8002 8003 + check_consistency --pem=3 --balance=912 8000 8001 8002 8003 # Token burn should still work call_ledger --pem=1 --port=8000 token burn MFX ''\''{"'$(identity 2)'": 123, "'$(identity 3)'": 456}'\''' --error-on-under-burn check_consistency --pem=2 --balance=0 8000 8001 8002 8003 check_consistency --pem=3 --balance=0 8000 8001 8002 8003 + + # ZZZ minting should fail + call_ledger --pem=1 --port=8000 token mint ZZZ ''\''{"'$(identity 2)'": 123, "'$(identity 3)'": 456}'\''' + assert_output --partial "Token minting is disabled on this network" + + call_ledger --port=8000 token info "${SYMBOL}" + assert_output --regexp "total:.*(.*0,.*)" + assert_output --regexp "circulating:.*(.*0,.*)" } From b1f41f24f57bbb4f958bb4de2ab4d1ae19e126ce Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:37:30 -0500 Subject: [PATCH 02/31] ci: bump rust msrv --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 189e714d..6f87c4e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,7 +11,7 @@ orbs: executors: linux2204: docker: - - image: cimg/rust:1.67 + - image: cimg/rust:1.81 resource_class: xlarge # 8 cores, 16Gb linux2204_machine: machine: From a886a50fc7be2b4890cca1cc0002e8a184d0d7fc Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:43:11 -0500 Subject: [PATCH 03/31] ci: install rust stable --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f87c4e9..bac01c38 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: codecov: codecov/codecov@3.2.4 detect: circleci/os-detect@0.3.0 docker: circleci/docker@2.2.0 - rust: circleci/rust@1.6.0 + rust: circleci/rust@1.6.1 executors: linux2204: @@ -46,6 +46,7 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: + - rust/install - run: name: install cbor-diag command: cargo install --force cbor-diag-cli From 62e4e870a0a87558b6c9e7b799f48b8bdebe7359 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:04:15 -0500 Subject: [PATCH 04/31] ci: rust nightly --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bac01c38..a1f5049a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,7 +46,8 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: - - rust/install + - rust/install: + version: nightly - run: name: install cbor-diag command: cargo install --force cbor-diag-cli From 1c188558a2a550b3a6aad000d9d02109467eca55 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:16:25 -0500 Subject: [PATCH 05/31] build: rust stable --- .circleci/config.yml | 2 -- WORKSPACE.bazel | 2 +- rust-toolchain.toml | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a1f5049a..6e9c63ca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,8 +46,6 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: - - rust/install: - version: nightly - run: name: install cbor-diag command: cargo install --force cbor-diag-cli diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 08c81ce1..abbd58b5 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -13,7 +13,7 @@ load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_regi rules_rust_dependencies() -RUST_VERSION = "nightly/2023-09-20" +RUST_VERSION = "stable" rust_register_toolchains( edition = "2021", diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 3b0e5949..eaa24db9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] components = [ "rustfmt", "rustc", "clippy", "llvm-tools-preview" ] -channel = "nightly-2023-09-20" +channel = "stable" From 0c3a1c1273e1a1d0d25d21952533ab7a1a1d3563 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:19:29 -0500 Subject: [PATCH 06/31] build: stable, maybe? --- WORKSPACE.bazel | 2 +- rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index abbd58b5..a49b61e7 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -13,7 +13,7 @@ load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_regi rules_rust_dependencies() -RUST_VERSION = "stable" +RUST_VERSION = "1.82.0" rust_register_toolchains( edition = "2021", diff --git a/rust-toolchain.toml b/rust-toolchain.toml index eaa24db9..e08503f7 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] components = [ "rustfmt", "rustc", "clippy", "llvm-tools-preview" ] -channel = "stable" +channel = "1.82.0" From 4d02e9b8850cb78ba6156f78c510610bee9c6dab Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:16:53 -0500 Subject: [PATCH 07/31] Revert "build: stable, maybe?" This reverts commit 0c3a1c1273e1a1d0d25d21952533ab7a1a1d3563. --- WORKSPACE.bazel | 2 +- rust-toolchain.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index a49b61e7..abbd58b5 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -13,7 +13,7 @@ load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_regi rules_rust_dependencies() -RUST_VERSION = "1.82.0" +RUST_VERSION = "stable" rust_register_toolchains( edition = "2021", diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e08503f7..eaa24db9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] components = [ "rustfmt", "rustc", "clippy", "llvm-tools-preview" ] -channel = "1.82.0" +channel = "stable" From 932958a224a8a26cf384f4ea55f4c8b7a6d8cc2a Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:16:55 -0500 Subject: [PATCH 08/31] Revert "build: rust stable" This reverts commit 1c188558a2a550b3a6aad000d9d02109467eca55. --- .circleci/config.yml | 2 ++ WORKSPACE.bazel | 2 +- rust-toolchain.toml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6e9c63ca..a1f5049a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,6 +46,8 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: + - rust/install: + version: nightly - run: name: install cbor-diag command: cargo install --force cbor-diag-cli diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index abbd58b5..08c81ce1 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -13,7 +13,7 @@ load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_regi rules_rust_dependencies() -RUST_VERSION = "stable" +RUST_VERSION = "nightly/2023-09-20" rust_register_toolchains( edition = "2021", diff --git a/rust-toolchain.toml b/rust-toolchain.toml index eaa24db9..3b0e5949 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] components = [ "rustfmt", "rustc", "clippy", "llvm-tools-preview" ] -channel = "stable" +channel = "nightly-2023-09-20" From ca1785a9e8a299e68cbdca0fd1e3f1419c26d5f1 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:16:56 -0500 Subject: [PATCH 09/31] Revert "ci: rust nightly" This reverts commit 62e4e870a0a87558b6c9e7b799f48b8bdebe7359. --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a1f5049a..bac01c38 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,8 +46,7 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: - - rust/install: - version: nightly + - rust/install - run: name: install cbor-diag command: cargo install --force cbor-diag-cli From d90eebde9d56a2b93ba0fd577083c628b4bdea83 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:16:56 -0500 Subject: [PATCH 10/31] Revert "ci: install rust stable" This reverts commit a886a50fc7be2b4890cca1cc0002e8a184d0d7fc. --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bac01c38..6f87c4e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: codecov: codecov/codecov@3.2.4 detect: circleci/os-detect@0.3.0 docker: circleci/docker@2.2.0 - rust: circleci/rust@1.6.1 + rust: circleci/rust@1.6.0 executors: linux2204: @@ -46,7 +46,6 @@ jobs: condition: equal: [ "linux2204", << parameters.os >> ] steps: - - rust/install - run: name: install cbor-diag command: cargo install --force cbor-diag-cli From 7cd115527e19b44ecff39f3336ae32ed90d10142 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:33:55 -0500 Subject: [PATCH 11/31] ci: fetch pre-built cbor-diag --- .circleci/config.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f87c4e9..dfdd68af 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,11 @@ jobs: steps: - run: name: install cbor-diag - command: cargo install --force cbor-diag-cli + command: | + wget https://github.com/liftedinit/cbor-diag-rs/releases/download/cbor-diag-cli-0.1.8-ll.1/cbor-diag + chmod +x cbor-diag + sudo mv cbor-diag /usr/local/bin/cbor-diag + cbor-diag --version - run: name: rustfmt, clippy, build and tests and doc tests (linux) command: | From 228ad74e757dacb27bd51a238298d10cf9d51da0 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 13:44:57 -0500 Subject: [PATCH 12/31] fix: mfx minting --- cargo-bazel-lock.json | 10 +++--- src/many-ledger/Cargo.toml | 2 +- src/many-ledger/src/module/ledger_mintburn.rs | 35 ++++++++++--------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/cargo-bazel-lock.json b/cargo-bazel-lock.json index 37e7bc29..150e2c27 100644 --- a/cargo-bazel-lock.json +++ b/cargo-bazel-lock.json @@ -1,5 +1,5 @@ { - "checksum": "2c2c0c43c761a46e0a0663ae8f918b710f8933b2c1dfe8904026181106228cb6", + "checksum": "8e608299ab3beef4115906f61ad02c79b63133baa41a1a2630c68c562a5bdaee", "crates": { "addr2line 0.21.0": { "name": "addr2line", @@ -15235,6 +15235,10 @@ "id": "num-traits 0.2.16", "target": "num_traits" }, + { + "id": "once_cell 1.18.0", + "target": "once_cell" + }, { "id": "rand 0.8.5", "target": "rand" @@ -15280,10 +15284,6 @@ "id": "cucumber 0.20.0", "target": "cucumber" }, - { - "id": "once_cell 1.18.0", - "target": "once_cell" - }, { "id": "proptest 1.2.0", "target": "proptest" diff --git a/src/many-ledger/Cargo.toml b/src/many-ledger/Cargo.toml index c883fdfd..2a5bc815 100644 --- a/src/many-ledger/Cargo.toml +++ b/src/many-ledger/Cargo.toml @@ -41,6 +41,7 @@ many-protocol = { path = "../many-protocol", version = "0.2.6" } # managed by re many-server = { path = "../many-server", version = "0.2.6" } # managed by release.sh many-server-cache = { path = "../many-server-cache", version = "0.2.6" } # managed by release.sh many-types = { path = "../many-types", version = "0.2.6" } # managed by release.sh +once_cell = "1.17.1" rand = "0.8.5" serde = "=1.0.163" serde_json = "1.0.96" @@ -53,7 +54,6 @@ typenum = "1.16.0" [dev-dependencies] cucumber = { version = "0.20.0", features = ["libtest"] } -once_cell = "1.17.1" many-identity = { path = "../many-identity", features = ["default", "serde", "testing"], version = "0.2.6" } # managed by release.sh many-identity-dsa = { path = "../many-identity-dsa", features = [ "ed25519", "testing" ], version = "0.2.6" } # managed by release.sh many-ledger = { path = ".", features = ["balance_testing", "migration_testing"] } diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 906ee910..e46920f3 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -11,6 +11,15 @@ use many_modules::ledger::{TokenBurnArgs, TokenBurnReturns, TokenMintArgs, Token use many_types::ledger::Symbol; use std::collections::BTreeSet; use std::str::FromStr; +use once_cell::sync::Lazy; + +pub static MFX: Lazy
= if cfg!(migration_testing) { + // Test network MFX address + Lazy::new(|| { Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() }) +} else { + // Production network MFX address + Lazy::new(|| { Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() }) +}; /// Check if a symbol exists in the storage fn check_symbol_exists(symbol: &Symbol, symbols: BTreeSet) -> Result<(), ManyError> { @@ -37,19 +46,11 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { memo, } = args; - let mfx = if cfg!(migration_testing) { - // Test network MFX address - Symbol::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz")? - } else { - // Production network MFX address - Symbol::from_str("mqbh741x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l")? - }; - - if symbol != mfx + if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( "Token minting is disabled on this network", @@ -128,11 +129,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From d89c167b47338019c97e3d818205ee0ba03afcc4 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Mon, 11 Nov 2024 13:49:50 -0500 Subject: [PATCH 13/31] fix: fmt --- src/many-ledger/src/module/ledger_mintburn.rs | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index e46920f3..342f0a37 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -9,16 +9,20 @@ use many_modules::events::EventInfo; use many_modules::ledger; use many_modules::ledger::{TokenBurnArgs, TokenBurnReturns, TokenMintArgs, TokenMintReturns}; use many_types::ledger::Symbol; +use once_cell::sync::Lazy; use std::collections::BTreeSet; use std::str::FromStr; -use once_cell::sync::Lazy; pub static MFX: Lazy
= if cfg!(migration_testing) { // Test network MFX address - Lazy::new(|| { Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() }) + Lazy::new(|| { + Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() + }) } else { // Production network MFX address - Lazy::new(|| { Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() }) + Lazy::new(|| { + Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() + }) }; /// Check if a symbol exists in the storage @@ -48,9 +52,9 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( "Token minting is disabled on this network", @@ -129,11 +133,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From f068e645bca63422b8bac06e022553dde178bb6f Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:45:38 -0500 Subject: [PATCH 14/31] Trigger Build From 45708ce3e75fcebdd53416e845e055d70bc0af43 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:07:17 -0500 Subject: [PATCH 15/31] chore: symbol debug --- src/many-ledger/src/module/ledger_mintburn.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 342f0a37..ed14f723 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -57,7 +57,7 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( - "Token minting is disabled on this network", + "Token minting is disabled on this network: {symbol}", )); } From 1990c796f78bdb9cefb05e1f96163043dbe6b4f0 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:13:47 -0500 Subject: [PATCH 16/31] fix: format --- src/many-ledger/src/module/ledger_mintburn.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index ed14f723..e8a3d099 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -57,7 +57,7 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( - "Token minting is disabled on this network: {symbol}", + format!("Token minting is disabled on this network: {symbol}"), )); } From 44cf25d08d4fd1ea1c04aad740039b3b1b520ab4 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:23:57 -0500 Subject: [PATCH 17/31] fix: debug --- src/many-ledger/src/module/ledger_mintburn.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index e8a3d099..e8f0d4fb 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -57,7 +57,7 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( - format!("Token minting is disabled on this network: {symbol}"), + format!("Token minting is disabled on this network: {symbol} != {MFX}"), )); } From f6fb7813cf7e97e7a6dad3e25a032ba1d4ef3564 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:37:04 -0500 Subject: [PATCH 18/31] fix: debug --- src/many-ledger/src/module/ledger_mintburn.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index e8f0d4fb..fe925ece 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -57,7 +57,7 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( - format!("Token minting is disabled on this network: {symbol} != {MFX}"), + format!("Token minting is disabled on this network: {symbol} != {}", *MFX), )); } From d8494b568cac179b5f7cdff2a27c2a615f898a18 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:48:14 -0500 Subject: [PATCH 19/31] fix: cfg --- src/many-ledger/src/module/ledger_mintburn.rs | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index fe925ece..164a0be6 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -13,17 +13,17 @@ use once_cell::sync::Lazy; use std::collections::BTreeSet; use std::str::FromStr; -pub static MFX: Lazy
= if cfg!(migration_testing) { - // Test network MFX address - Lazy::new(|| { - Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() - }) -} else { - // Production network MFX address - Lazy::new(|| { - Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() - }) -}; +// Test network MFX address +#[cfg(migration_testing)] +pub static MFX: Lazy
= Lazy::new(|| { + Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() +}); + +// Production network MFX address +#[cfg(not(migration_testing))] +pub static MFX: Lazy
= Lazy::new(|| { + Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() +}); /// Check if a symbol exists in the storage fn check_symbol_exists(symbol: &Symbol, symbols: BTreeSet) -> Result<(), ManyError> { @@ -52,9 +52,9 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( format!("Token minting is disabled on this network: {symbol} != {}", *MFX), @@ -133,11 +133,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From 9a614b7cd91fdeff53fe3732f0a6154467900f29 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:02:37 -0500 Subject: [PATCH 20/31] fix: maybe --- src/many-ledger/src/module/ledger_mintburn.rs | 7 ------- .../resiliency/ledger/disable_token_minting_migration.bats | 7 ++++++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 164a0be6..c60d5bb9 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -13,14 +13,7 @@ use once_cell::sync::Lazy; use std::collections::BTreeSet; use std::str::FromStr; -// Test network MFX address -#[cfg(migration_testing)] -pub static MFX: Lazy
= Lazy::new(|| { - Address::from_str("mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz").unwrap() -}); - // Production network MFX address -#[cfg(not(migration_testing))] pub static MFX: Lazy
= Lazy::new(|| { Address::from_str("mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l").unwrap() }); diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index c58e2c78..4e0a13c3 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -3,7 +3,7 @@ GIT_ROOT="$BATS_TEST_DIRNAME/../../../" MIGRATION_ROOT="$GIT_ROOT/staging/ledger_migrations.json" MAKEFILE="Makefile.ledger" -MFX_ADDRESS=mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz +MFX_ADDRESS=mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l load '../../test_helper/load' load '../../test_helper/ledger' @@ -32,11 +32,16 @@ function setup() { }' \ "$MIGRATION_ROOT" > "$BATS_TEST_ROOTDIR/migrations.json" + cp "$GIT_ROOT/staging/ledger_state.json5" "$BATS_TEST_ROOTDIR/ledger_state.json5" + + sed -i.bak 's/mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz/mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l/g' "$BATS_TEST_ROOTDIR/ledger_state.json5" + ( cd "$GIT_ROOT/docker/" || exit make -f $MAKEFILE clean make -f $MAKEFILE start-nodes-detached \ ID_WITH_BALANCES="$(identity 1):1000000" \ + STATE="$BATS_TEST_ROOTDIR/ledger_state.json5" \ MIGRATIONS="$BATS_TEST_ROOTDIR/migrations.json" || { echo '# Could not start nodes...' >&3 exit 1 From c759c47e2267c911915b3117102cc10467f77519 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:11:03 -0500 Subject: [PATCH 21/31] fix: hash --- tests/resiliency/ledger/disable_token_minting_migration.bats | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index 4e0a13c3..de82ebc6 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -34,8 +34,12 @@ function setup() { cp "$GIT_ROOT/staging/ledger_state.json5" "$BATS_TEST_ROOTDIR/ledger_state.json5" + # Use production MFX address sed -i.bak 's/mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz/mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l/g' "$BATS_TEST_ROOTDIR/ledger_state.json5" + # Skip hash check + sed -i.bak 's/hash/\/\/hash/' "$BATS_TEST_ROOTDIR/ledger_state.json5" + ( cd "$GIT_ROOT/docker/" || exit make -f $MAKEFILE clean From df9fdf4b12b9bbc277cf7579403382f6e3587973 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:07:12 -0500 Subject: [PATCH 22/31] fix: token --- docker/docker-compose-ledger.jsonnet | 10 +++++----- .../ledger/disable_token_minting_migration.bats | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/docker-compose-ledger.jsonnet b/docker/docker-compose-ledger.jsonnet index 743cdebd..391af576 100644 --- a/docker/docker-compose-ledger.jsonnet +++ b/docker/docker-compose-ledger.jsonnet @@ -1,6 +1,6 @@ // -local generate_balance_flags(id_with_balances="", token="mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz") = +local generate_balance_flags(id_with_balances, token) = if std.length(id_with_balances) == 0 then [] else std.map( @@ -55,7 +55,7 @@ local abci(i, user, allow_addrs, abci_migrations) = { depends_on: [ "ledger-" + i ], }; -local ledger(i, user, id_with_balances, enable_migrations) = { +local ledger(i, user, id_with_balances, token, enable_migrations) = { image: "bazel/src/many-ledger:many-ledger-image", user: "" + user, volumes: [ @@ -70,7 +70,7 @@ local ledger(i, user, id_with_balances, enable_migrations) = { "--persistent=/persistent/ledger.db", "--addr=0.0.0.0:8000", ] + load_migrations(enable_migrations) - + generate_balance_flags(id_with_balances) + + generate_balance_flags(id_with_balances, token) }; local tendermint(i, user) = { @@ -87,12 +87,12 @@ local tendermint(i, user) = { ports: [ "" + (26600 + i) + ":26657" ], }; -function(nb_nodes=4, user=1000, id_with_balances="", allow_addrs=false, enable_migrations=false, abci_migrations=false) { +function(nb_nodes=4, user=1000, id_with_balances="", token="mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz", allow_addrs=false, enable_migrations=false, abci_migrations=false) { version: '3', services: { ["abci-" + i]: abci(i, user, allow_addrs, abci_migrations) for i in std.range(0, nb_nodes - 1) } + { - ["ledger-" + i]: ledger(i, user, id_with_balances, enable_migrations) for i in std.range(0, nb_nodes - 1) + ["ledger-" + i]: ledger(i, user, id_with_balances, token, enable_migrations) for i in std.range(0, nb_nodes - 1) } + { ["tendermint-" + i]: tendermint(i, user) for i in std.range(0, nb_nodes - 1) }, diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index de82ebc6..296a46e0 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -46,6 +46,7 @@ function setup() { make -f $MAKEFILE start-nodes-detached \ ID_WITH_BALANCES="$(identity 1):1000000" \ STATE="$BATS_TEST_ROOTDIR/ledger_state.json5" \ + TOKEN="$MFX_ADDRESS" \ MIGRATIONS="$BATS_TEST_ROOTDIR/migrations.json" || { echo '# Could not start nodes...' >&3 exit 1 From d3e0ce4dbeeca4e5d912a63d6c89b403e88934ed Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:28:45 -0500 Subject: [PATCH 23/31] fix: compose --- docker/Makefile.common | 1 + docker/Makefile.ledger | 1 + 2 files changed, 2 insertions(+) diff --git a/docker/Makefile.common b/docker/Makefile.common index 447fdeca..a446d69a 100644 --- a/docker/Makefile.common +++ b/docker/Makefile.common @@ -1,6 +1,7 @@ # Options NB_NODES ?= 4 ID_WITH_BALANCES ?= +TOKEN ?= # Constants SHELL = bash diff --git a/docker/Makefile.ledger b/docker/Makefile.ledger index de3505e7..969c7176 100644 --- a/docker/Makefile.ledger +++ b/docker/Makefile.ledger @@ -44,6 +44,7 @@ genfiles-ledger/docker-compose.json: genfiles-common/jsonnet-docker docker-compo /volume/copy-docker-compose-ledger.jsonnet \ --tla-code nb_nodes=$(NB_NODES) \ --tla-code user=$$(id -u) \ + --tla-code token=\"$(TOKEN)\" \ --tla-code id_with_balances=\"$(ID_WITH_BALANCES)\" \ --tla-code enable_migrations=$(ENABLE_MIGRATIONS) \ --tla-code abci_migrations=$(ENABLE_ABCI_MIGRATIONS) \ From 733b4b46b5ab3c9263106cf0179873e746b05d1b Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:45:58 -0500 Subject: [PATCH 24/31] fix: amounts --- tests/resiliency/ledger/disable_token_minting_migration.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index 296a46e0..5f3de34c 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -103,7 +103,7 @@ function teardown() { check_consistency --pem=3 --balance=912 8000 8001 8002 8003 # Token burn should still work - call_ledger --pem=1 --port=8000 token burn MFX ''\''{"'$(identity 2)'": 123, "'$(identity 3)'": 456}'\''' --error-on-under-burn + call_ledger --pem=1 --port=8000 token burn MFX ''\''{"'$(identity 2)'": 246, "'$(identity 3)'": 912}'\''' --error-on-under-burn check_consistency --pem=2 --balance=0 8000 8001 8002 8003 check_consistency --pem=3 --balance=0 8000 8001 8002 8003 From 55fb2a21e1ca69a9af98665e3f408ceb53cc6145 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:54:24 -0500 Subject: [PATCH 25/31] fix: fmt --- src/many-ledger/src/module/ledger_mintburn.rs | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index c60d5bb9..47d1bfb9 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -45,13 +45,14 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { - return Err(ManyError::unknown( - format!("Token minting is disabled on this network: {symbol} != {}", *MFX), - )); + return Err(ManyError::unknown(format!( + "Token minting is disabled on this network: {symbol} != {}", + *MFX + ))); } self.verify_mint_burn_identity(sender, &symbol)?; @@ -126,11 +127,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From 048ea8c5a3d738cc78bef27555678fc17c5cc69b Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:00:57 -0500 Subject: [PATCH 26/31] chore: revert error msg --- src/many-ledger/src/module/ledger_mintburn.rs | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 47d1bfb9..1e8f345c 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -45,14 +45,13 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { - return Err(ManyError::unknown(format!( - "Token minting is disabled on this network: {symbol} != {}", - *MFX - ))); + return Err(ManyError::unknown( + "Token minting is disabled on this network" + )); } self.verify_mint_burn_identity(sender, &symbol)?; @@ -127,11 +126,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From 45d091d96f1e716ec490b91e04192db581648832 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:05:16 -0500 Subject: [PATCH 27/31] fix: fmt --- src/many-ledger/src/module/ledger_mintburn.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/many-ledger/src/module/ledger_mintburn.rs b/src/many-ledger/src/module/ledger_mintburn.rs index 1e8f345c..656cfc28 100644 --- a/src/many-ledger/src/module/ledger_mintburn.rs +++ b/src/many-ledger/src/module/ledger_mintburn.rs @@ -45,12 +45,12 @@ impl ledger::LedgerMintBurnModuleBackend for LedgerModuleImpl { if symbol != *MFX && self - .storage - .migrations() - .is_active(&DISABLE_TOKEN_MINT_MIGRATION) + .storage + .migrations() + .is_active(&DISABLE_TOKEN_MINT_MIGRATION) { return Err(ManyError::unknown( - "Token minting is disabled on this network" + "Token minting is disabled on this network", )); } @@ -126,11 +126,11 @@ impl LedgerModuleImpl { .get_identity(crate::storage::ledger_tokens::TOKEN_IDENTITY_ROOT) .or_else(|_| self.storage.get_identity(crate::storage::IDENTITY_ROOT))?, ) - // Are we the token owner? - .or_else(|_| match self.storage.get_owner(symbol) { - Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), - _ => Err(error::no_token_owner()), - })?; + // Are we the token owner? + .or_else(|_| match self.storage.get_owner(symbol) { + Ok((Some(token_owner), _)) => verify_tokens_sender(sender, token_owner), + _ => Err(error::no_token_owner()), + })?; Ok(()) } } From 1af263edde6cae9ab93407200ce574ae8e6e1120 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:18:02 -0500 Subject: [PATCH 28/31] fix: other tests --- .../ledger/disable_token_minting_migration.bats | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index 5f3de34c..6fc85c9f 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -3,7 +3,7 @@ GIT_ROOT="$BATS_TEST_DIRNAME/../../../" MIGRATION_ROOT="$GIT_ROOT/staging/ledger_migrations.json" MAKEFILE="Makefile.ledger" -MFX_ADDRESS=mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l +MFX_ADDRESS_PROD=mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l load '../../test_helper/load' load '../../test_helper/ledger' @@ -22,13 +22,13 @@ function setup() { (.migrations[] | select(.name == "Token Migration")) |= . + { "token_identity": "'$(identity 1)'", "token_next_subresource": 0, - "symbol": "'${MFX_ADDRESS}'", + "symbol": "'${MFX_ADDRESS_PROD}'", "symbol_name": "Manifest Network Token", "symbol_decimals": 9, "symbol_total": 100000000000000, "symbol_circulating": 100000000000000, "symbol_maximum": null, - "symbol_owner": "'${MFX_ADDRESS}'" + "symbol_owner": "'${MFX_ADDRESS_PROD}'" }' \ "$MIGRATION_ROOT" > "$BATS_TEST_ROOTDIR/migrations.json" @@ -46,7 +46,7 @@ function setup() { make -f $MAKEFILE start-nodes-detached \ ID_WITH_BALANCES="$(identity 1):1000000" \ STATE="$BATS_TEST_ROOTDIR/ledger_state.json5" \ - TOKEN="$MFX_ADDRESS" \ + TOKEN="$MFX_ADDRESS_PROD" \ MIGRATIONS="$BATS_TEST_ROOTDIR/migrations.json" || { echo '# Could not start nodes...' >&3 exit 1 @@ -71,7 +71,7 @@ function teardown() { check_consistency --pem=1 --balance=1000000 --id="$(identity 1)" 8000 8001 8002 8003 # Token endpoints should be disabled - call_ledger --pem=1 --port=8000 token info ${MFX_ADDRESS} + call_ledger --pem=1 --port=8000 token info ${MFX_ADDRESS_PROD} assert_output --partial "Invalid method name" # Enable Token Migration From 8404277cb052a519515a428484ac9e48cc3e6c04 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:27:49 -0500 Subject: [PATCH 29/31] fix: other tests, maybe? --- docker/docker-compose-ledger.jsonnet | 2 +- .../ledger/disable_token_minting_migration.bats | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/docker-compose-ledger.jsonnet b/docker/docker-compose-ledger.jsonnet index 391af576..42db742e 100644 --- a/docker/docker-compose-ledger.jsonnet +++ b/docker/docker-compose-ledger.jsonnet @@ -1,6 +1,6 @@ // -local generate_balance_flags(id_with_balances, token) = +local generate_balance_flags(id_with_balances="", token="mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz") = if std.length(id_with_balances) == 0 then [] else std.map( diff --git a/tests/resiliency/ledger/disable_token_minting_migration.bats b/tests/resiliency/ledger/disable_token_minting_migration.bats index 6fc85c9f..5f3de34c 100644 --- a/tests/resiliency/ledger/disable_token_minting_migration.bats +++ b/tests/resiliency/ledger/disable_token_minting_migration.bats @@ -3,7 +3,7 @@ GIT_ROOT="$BATS_TEST_DIRNAME/../../../" MIGRATION_ROOT="$GIT_ROOT/staging/ledger_migrations.json" MAKEFILE="Makefile.ledger" -MFX_ADDRESS_PROD=mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l +MFX_ADDRESS=mqbh742x4s356ddaryrxaowt4wxtlocekzpufodvowrirfrqaaaaa3l load '../../test_helper/load' load '../../test_helper/ledger' @@ -22,13 +22,13 @@ function setup() { (.migrations[] | select(.name == "Token Migration")) |= . + { "token_identity": "'$(identity 1)'", "token_next_subresource": 0, - "symbol": "'${MFX_ADDRESS_PROD}'", + "symbol": "'${MFX_ADDRESS}'", "symbol_name": "Manifest Network Token", "symbol_decimals": 9, "symbol_total": 100000000000000, "symbol_circulating": 100000000000000, "symbol_maximum": null, - "symbol_owner": "'${MFX_ADDRESS_PROD}'" + "symbol_owner": "'${MFX_ADDRESS}'" }' \ "$MIGRATION_ROOT" > "$BATS_TEST_ROOTDIR/migrations.json" @@ -46,7 +46,7 @@ function setup() { make -f $MAKEFILE start-nodes-detached \ ID_WITH_BALANCES="$(identity 1):1000000" \ STATE="$BATS_TEST_ROOTDIR/ledger_state.json5" \ - TOKEN="$MFX_ADDRESS_PROD" \ + TOKEN="$MFX_ADDRESS" \ MIGRATIONS="$BATS_TEST_ROOTDIR/migrations.json" || { echo '# Could not start nodes...' >&3 exit 1 @@ -71,7 +71,7 @@ function teardown() { check_consistency --pem=1 --balance=1000000 --id="$(identity 1)" 8000 8001 8002 8003 # Token endpoints should be disabled - call_ledger --pem=1 --port=8000 token info ${MFX_ADDRESS_PROD} + call_ledger --pem=1 --port=8000 token info ${MFX_ADDRESS} assert_output --partial "Invalid method name" # Enable Token Migration From 4c57deee6a50295d8e1c3700064d0aee3a432d73 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:42:07 -0500 Subject: [PATCH 30/31] fix: default token, maybe? --- docker/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Makefile.common b/docker/Makefile.common index a446d69a..8902b695 100644 --- a/docker/Makefile.common +++ b/docker/Makefile.common @@ -1,7 +1,7 @@ # Options NB_NODES ?= 4 ID_WITH_BALANCES ?= -TOKEN ?= +TOKEN ?= "mqbfbahksdwaqeenayy2gxke32hgb7aq4ao4wt745lsfs6wiaaaaqnz" # Constants SHELL = bash From 8c67488cd67cd399a1d2ebd3a050905d39966a06 Mon Sep 17 00:00:00 2001 From: "Felix C. Morency" <1102868+fmorency@users.noreply.github.com> Date: Wed, 19 Feb 2025 16:42:42 -0500 Subject: [PATCH 31/31] ci: trigger build