diff --git a/.github/workflows/nym-wallet-publish-macos.yml b/.github/workflows/nym-wallet-publish-macos.yml
index 23044a79f6..c491db6451 100644
--- a/.github/workflows/nym-wallet-publish-macos.yml
+++ b/.github/workflows/nym-wallet-publish-macos.yml
@@ -66,6 +66,7 @@ jobs:
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
+ ADMIN_ADDRESS: ${{ secrets.WALLET_ADMIN_ADDRESS }}
run: yarn && yarn build
- name: Upload to release based on tag name
diff --git a/.github/workflows/nym-wallet-publish-ubuntu.yml b/.github/workflows/nym-wallet-publish-ubuntu.yml
index 36893ba388..b319f5eb2a 100644
--- a/.github/workflows/nym-wallet-publish-ubuntu.yml
+++ b/.github/workflows/nym-wallet-publish-ubuntu.yml
@@ -44,6 +44,7 @@ jobs:
env:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
+ ADMIN_ADDRESS: ${{ secrets.WALLET_ADMIN_ADDRESS }}
- name: Upload to release based on tag name
uses: softprops/action-gh-release@v1
with:
diff --git a/.github/workflows/nym-wallet-publish-windows10.yml b/.github/workflows/nym-wallet-publish-windows10.yml
index 132cb71df6..ef67b73718 100644
--- a/.github/workflows/nym-wallet-publish-windows10.yml
+++ b/.github/workflows/nym-wallet-publish-windows10.yml
@@ -65,6 +65,7 @@ jobs:
WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
+ ADMIN_ADDRESS: ${{ secrets.WALLET_ADMIN_ADDRESS }}
run: yarn build
- name: Upload to release based on tag name
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d5127b964..1bde8b06ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,9 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
- wallet: compound and claim reward endpoints for operators and delegators ([#1302])
- wallet: require password to switch accounts
- wallet: the wallet backend learned how to keep track of validator name, either hardcoded or by querying the status endpoint.
+- wallet: new delegation and rewards UI
+- wallet: show version in nav bar
+- wallet: contract admin route put back
- network-statistics: a new mixnet service that aggregates and exposes anonymized data about mixnet services ([#1328])
### Fixed
diff --git a/Cargo.lock b/Cargo.lock
index d800d74f15..48c921e8d3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -218,9 +218,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "base64ct"
-version = "1.5.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179"
+checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b"
[[package]]
name = "binascii"
@@ -3204,6 +3204,32 @@ dependencies = [
"version-checker",
]
+[[package]]
+name = "nym-types"
+version = "1.0.0"
+dependencies = [
+ "coconut-interface",
+ "config",
+ "cosmrs",
+ "cosmwasm-std",
+ "eyre",
+ "itertools",
+ "log",
+ "mixnet-contract-common",
+ "reqwest",
+ "schemars",
+ "serde",
+ "serde_json",
+ "strum",
+ "tempfile",
+ "thiserror",
+ "ts-rs",
+ "url",
+ "validator-client",
+ "vesting-contract",
+ "vesting-contract-common",
+]
+
[[package]]
name = "nym-validator-api"
version = "1.0.1"
@@ -3251,6 +3277,7 @@ dependencies = [
"tokio",
"tokio-stream",
"topology",
+ "ts-rs",
"url",
"validator-api-requests",
"validator-client",
@@ -3258,6 +3285,24 @@ dependencies = [
"version-checker",
]
+[[package]]
+name = "nym-wallet-types"
+version = "1.0.0"
+dependencies = [
+ "config",
+ "cosmrs",
+ "cosmwasm-std",
+ "mixnet-contract-common",
+ "nym-types",
+ "serde",
+ "serde_json",
+ "strum",
+ "ts-rs",
+ "validator-client",
+ "vesting-contract",
+ "vesting-contract-common",
+]
+
[[package]]
name = "nymcoconut"
version = "0.5.0"
@@ -5399,6 +5444,28 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+[[package]]
+name = "strum"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38"
+dependencies = [
+ "heck 0.3.3",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn",
+]
+
[[package]]
name = "subtle"
version = "1.0.0"
@@ -6025,6 +6092,21 @@ dependencies = [
"ts-rs-macros",
]
+[[package]]
+name = "ts-rs-cli"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "mixnet-contract-common",
+ "nym-types",
+ "nym-wallet-types",
+ "ts-rs",
+ "validator-api-requests",
+ "validator-client",
+ "vesting-contract-common",
+ "walkdir",
+]
+
[[package]]
name = "ts-rs-macros"
version = "6.1.2"
diff --git a/Cargo.toml b/Cargo.toml
index 4ffc4cbdd2..7f6f46a9f3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -58,6 +58,7 @@ members = [
"common/socks5/requests",
"common/task",
"common/topology",
+ "common/types",
"common/wasm-utils",
"explorer-api",
"gateway",
@@ -67,6 +68,7 @@ members = [
"service-providers/network-statistics",
"validator-api",
"validator-api/validator-api-requests",
+ "tools/ts-rs-cli"
]
default-members = [
@@ -79,4 +81,4 @@ default-members = [
"explorer-api",
]
-exclude = ["explorer", "contracts", "tokenomics-py", "clients/webassembly"]
+exclude = ["explorer", "contracts", "tokenomics-py", "clients/webassembly", "nym-wallet"]
diff --git a/Makefile b/Makefile
index 3d87c659b5..bef0f9e874 100644
--- a/Makefile
+++ b/Makefile
@@ -54,3 +54,7 @@ fmt-wallet:
wasm:
RUSTFLAGS='-C link-arg=-s' cargo build --manifest-path contracts/Cargo.toml --release --target wasm32-unknown-unknown
+
+generate-typescript:
+ cd tools/ts-rs-cli && cargo run && cd ../..
+ yarn types:lint:fix
diff --git a/assets/token/token-dark-testnet.svg b/assets/token/token-dark-testnet.svg
new file mode 100644
index 0000000000..1487796dfd
--- /dev/null
+++ b/assets/token/token-dark-testnet.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/token/token-dark.svg b/assets/token/token-dark.svg
index 9c5b8401e8..958a3a39ba 100644
--- a/assets/token/token-dark.svg
+++ b/assets/token/token-dark.svg
@@ -1,4 +1,4 @@
-