From 8cc7982000a5ae1c220e721b5587ebdaba7890e9 Mon Sep 17 00:00:00 2001 From: Thibault Martinez Date: Fri, 14 Jul 2023 10:05:39 +0200 Subject: [PATCH] Move old nodejs bindings out of the SDK crate (#778) * Move old nodejs bindings out of the SDK crate * Workflows * covector fix --- .changes/config.json | 2 +- .../bindings-wallet-covector-publish.yml | 10 +- .github/workflows/bindings-wallet-nodejs.yml | 12 +- .github/workflows/wasm-compatibility.yml | 2 +- Cargo.lock | 3 +- Cargo.toml | 2 +- bindings/core/Cargo.toml | 4 +- bindings/core/src/lib.rs | 1 + .../message_interface_old}/account_method.rs | 24 +- .../src/message_interface_old}/message.rs | 12 +- .../message_interface_old}/message_handler.rs | 37 +- .../core/src/message_interface_old}/mod.rs | 11 +- .../src/message_interface_old}/response.rs | 25 +- bindings/core/src/method_handler/wallet.rs | 2 +- bindings/core/src/response.rs | 9 +- .../nodejs-old}/.cargo/config.toml | 0 .../nodejs-old}/.eslintignore | 0 .../nodejs-old}/.eslintrc.js | 0 .../nodejs => bindings/nodejs-old}/.gitignore | 0 .../nodejs => bindings/nodejs-old}/.npmignore | 0 .../nodejs-old}/.prettierrc.js | 0 .../nodejs-old}/CHANGELOG.md | 0 .../nodejs => bindings/nodejs-old}/Cargo.toml | 2 +- .../nodejs => bindings/nodejs-old}/README.md | 0 .../nodejs-old}/binding.gyp | 0 .../nodejs-old}/examples/.env.example | 0 .../nodejs-old}/examples/1-create-account.js | 0 .../nodejs-old}/examples/10-node-info.js | 0 .../examples/11-set-client-options.js | 0 .../nodejs-old}/examples/12a-list-outputs.js | 0 .../examples/12b-list-pending-transactions.js | 0 .../examples/12c-list-transactions.js | 0 .../examples/12d-list-unspent-outputs.js | 0 ...tputs-with-additional-unlock-conditions.js | 0 .../examples/14-stronghold-methods.js | 0 .../examples/15-get-transaction.js | 0 .../examples/16a-prepare-and-send-amount.js | 0 .../examples/16b-prepare-output.js | 0 .../examples/17-change-stronghold-password.js | 0 .../examples/18-consolidate-outputs.js | 0 .../examples/19-remove-latest-account.js | 0 .../examples/2-generate-address.js | 0 .../examples/20-address-conversion.js | 0 .../nodejs-old}/examples/21-claim-outputs.js | 0 .../examples/22-create-native-token.js | 0 .../examples/23-get-foundry-output.js | 0 .../examples/24-send-native-tokens.js | 0 .../nodejs-old}/examples/25-mint-nft.js | 0 .../nodejs-old}/examples/26-send-nft.js | 0 .../nodejs-old}/examples/27-burn-nft.js | 0 .../examples/28-get-voting-information.js | 0 .../nodejs-old}/examples/29-voting.js | 0 .../nodejs-old}/examples/3-check-balance.js | 0 .../examples/30a-mint-native-token.js | 0 .../examples/30b-melt-native-token.js | 0 .../examples/31-burn-native-token.js | 0 .../examples/32-destroy-foundry.js | 0 .../nodejs-old}/examples/33-request-funds.js | 0 .../examples/34-tagged-data-payload.js | 0 .../examples/35-recreate-account-manager.js | 0 .../examples/36-check-unlock-conditions.js | 0 .../nodejs-old}/examples/4a-send-amount.js | 0 .../examples/4b-build-and-send-output.js | 0 .../examples/4c-send-micro-transaction.js | 0 .../nodejs-old}/examples/5-backup.js | 0 .../nodejs-old}/examples/6-restore.js | 0 .../nodejs-old}/examples/7-events.js | 0 .../nodejs-old}/examples/8-logger.js | 0 .../nodejs-old}/examples/9-mnemonic.js | 0 .../nodejs-old}/examples/account-manager.js | 0 .../nodejs-old}/examples/create-alias.js | 0 .../nodejs-old}/examples/destroy-alias.js | 0 .../nodejs-old}/examples/events.ts | 0 .../examples/exchange/0-generate-mnemonic.js | 0 .../examples/exchange/1-create-account.js | 0 .../examples/exchange/2-generate-address.js | 0 .../examples/exchange/3-check-balance.js | 0 .../examples/exchange/4-listen-events.js | 0 .../examples/exchange/5-send-amount.js | 0 .../nodejs-old}/examples/generateAddress.js | 0 .../nodejs-old}/examples/getting-started.js | 0 .../nodejs-old}/examples/ledger_nano.js | 0 .../migrate-stronghold-snapshot-v2-to-v3.js | 0 .../nodejs-old}/examples/package-lock.json | 0 .../nodejs-old}/examples/package.json | 0 .../nodejs-old}/jest.config.js | 0 .../nodejs-old}/lib/Account.ts | 0 .../nodejs-old}/lib/AccountManager.ts | 0 .../nodejs-old}/lib/MessageHandler.ts | 0 .../nodejs-old}/lib/bindings.ts | 0 .../nodejs-old}/lib/index.ts | 0 .../nodejs-old}/package-lock.json | 0 .../nodejs-old}/package.json | 0 .../scripts/download-node-lib-win-arm64.ps1 | 0 .../nodejs-old}/scripts/move-artifact.js | 0 .../nodejs-old}/scripts/neon-build.js | 0 .../nodejs-old}/scripts/strip.js | 0 .../nodejs => bindings/nodejs-old}/src/lib.rs | 0 .../nodejs-old}/src/message_handler.rs | 18 +- .../nodejs-old}/tests/accountManager.spec.ts | 0 .../nodejs-old}/tsconfig.json | 0 .../nodejs-old}/types/account.ts | 0 .../nodejs-old}/types/accountManager.ts | 0 .../nodejs-old}/types/address.ts | 0 .../nodejs-old}/types/bridge/account.ts | 0 .../types/bridge/accountManager.ts | 0 .../nodejs-old}/types/bridge/index.ts | 0 .../nodejs-old}/types/buildOutputData.ts | 0 .../nodejs-old}/types/burn.ts | 0 .../nodejs-old}/types/event.ts | 0 .../nodejs-old}/types/index.ts | 0 .../nodejs-old}/types/loggerConfig.ts | 0 .../nodejs-old}/types/network.ts | 0 .../nodejs-old}/types/output.ts | 0 .../nodejs-old}/types/outputParams.ts | 0 .../nodejs-old}/types/participation.ts | 0 .../types/preparedTransactionData.ts | 0 .../nodejs-old}/types/secretManager.ts | 0 .../types/signedTransactionEssence.ts | 0 .../nodejs-old}/types/transaction.ts | 0 .../nodejs-old}/types/transactionOptions.ts | 0 .../nodejs => bindings/nodejs-old}/yarn.lock | 0 sdk/Cargo.toml | 4 +- sdk/src/wallet/account/mod.rs | 83 +++- sdk/src/wallet/message_interface/dtos.rs | 92 ---- sdk/src/wallet/mod.rs | 5 - sdk/tests/wallet/message_interface.rs | 436 ------------------ sdk/tests/wallet/mod.rs | 2 - 128 files changed, 159 insertions(+), 639 deletions(-) rename {sdk/src/wallet/message_interface => bindings/core/src/message_interface_old}/account_method.rs (97%) rename {sdk/src/wallet/message_interface => bindings/core/src/message_interface_old}/message.rs (98%) rename {sdk/src/wallet/message_interface => bindings/core/src/message_interface_old}/message_handler.rs (97%) rename {sdk/src/wallet/message_interface => bindings/core/src/message_interface_old}/mod.rs (97%) rename {sdk/src/wallet/message_interface => bindings/core/src/message_interface_old}/response.rs (96%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.cargo/config.toml (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.eslintignore (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.eslintrc.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.gitignore (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.npmignore (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/.prettierrc.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/CHANGELOG.md (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/Cargo.toml (83%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/README.md (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/binding.gyp (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/.env.example (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/1-create-account.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/10-node-info.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/11-set-client-options.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/12a-list-outputs.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/12b-list-pending-transactions.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/12c-list-transactions.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/12d-list-unspent-outputs.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/13-get-outputs-with-additional-unlock-conditions.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/14-stronghold-methods.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/15-get-transaction.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/16a-prepare-and-send-amount.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/16b-prepare-output.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/17-change-stronghold-password.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/18-consolidate-outputs.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/19-remove-latest-account.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/2-generate-address.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/20-address-conversion.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/21-claim-outputs.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/22-create-native-token.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/23-get-foundry-output.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/24-send-native-tokens.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/25-mint-nft.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/26-send-nft.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/27-burn-nft.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/28-get-voting-information.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/29-voting.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/3-check-balance.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/30a-mint-native-token.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/30b-melt-native-token.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/31-burn-native-token.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/32-destroy-foundry.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/33-request-funds.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/34-tagged-data-payload.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/35-recreate-account-manager.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/36-check-unlock-conditions.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/4a-send-amount.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/4b-build-and-send-output.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/4c-send-micro-transaction.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/5-backup.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/6-restore.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/7-events.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/8-logger.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/9-mnemonic.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/account-manager.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/create-alias.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/destroy-alias.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/events.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/0-generate-mnemonic.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/1-create-account.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/2-generate-address.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/3-check-balance.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/4-listen-events.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/exchange/5-send-amount.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/generateAddress.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/getting-started.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/ledger_nano.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/migrate-stronghold-snapshot-v2-to-v3.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/package-lock.json (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/examples/package.json (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/jest.config.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/lib/Account.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/lib/AccountManager.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/lib/MessageHandler.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/lib/bindings.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/lib/index.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/package-lock.json (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/package.json (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/scripts/download-node-lib-win-arm64.ps1 (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/scripts/move-artifact.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/scripts/neon-build.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/scripts/strip.js (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/src/lib.rs (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/src/message_handler.rs (95%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/tests/accountManager.spec.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/tsconfig.json (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/account.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/accountManager.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/address.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/bridge/account.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/bridge/accountManager.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/bridge/index.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/buildOutputData.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/burn.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/event.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/index.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/loggerConfig.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/network.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/output.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/outputParams.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/participation.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/preparedTransactionData.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/secretManager.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/signedTransactionEssence.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/transaction.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/types/transactionOptions.ts (100%) rename {sdk/src/wallet/bindings/nodejs => bindings/nodejs-old}/yarn.lock (100%) delete mode 100644 sdk/src/wallet/message_interface/dtos.rs delete mode 100644 sdk/tests/wallet/message_interface.rs diff --git a/.changes/config.json b/.changes/config.json index c0dd35e610..f3d7849296 100644 --- a/.changes/config.json +++ b/.changes/config.json @@ -8,7 +8,7 @@ }, "packages": { "wallet-nodejs-binding": { - "path": "./sdk/src/wallet/bindings/nodejs", + "path": "./bindings/nodejs-old", "manager": "javascript", "getPublishedVersion": "npm view ${ pkgFile.pkg.name } version", "prepublish": [ diff --git a/.github/workflows/bindings-wallet-covector-publish.yml b/.github/workflows/bindings-wallet-covector-publish.yml index 882c0f25ed..71800a990c 100644 --- a/.github/workflows/bindings-wallet-covector-publish.yml +++ b/.github/workflows/bindings-wallet-covector-publish.yml @@ -103,7 +103,7 @@ jobs: $NodeVersion = (node --version) -replace '^.' $NodeFallbackVersion = "16.19.0" & .\scripts\download-node-lib-win-arm64.ps1 $NodeVersion $NodeFallbackVersion - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old - name: Install LLVM and Clang (Windows) # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797 uses: KyleMayes/install-llvm-action@32c4866ebb71e0949e8833eb49beeebed48532bd @@ -167,17 +167,17 @@ jobs: - name: Install dependencies run: npm install typescript && npm ci - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old - name: Build Node.js prebuild (x64) run: npm run prebuild-x64 - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old # Temporarily disabled because it does not work like this https://github.com/iotaledger/iota-sdk/issues/97 # - name: Build Node.js prebuild (arm64) # run: npm run prebuild-arm64 - # working-directory: sdk/src/wallet/bindings/nodejs + # working-directory: bindings/nodejs-old - name: Upload prebuild to GitHub release run: npx prebuild --upload-all ${{ secrets.GITHUB_TOKEN }} --tag-prefix wallet-nodejs-binding-v - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old diff --git a/.github/workflows/bindings-wallet-nodejs.yml b/.github/workflows/bindings-wallet-nodejs.yml index 7d22e688db..8941116bd8 100644 --- a/.github/workflows/bindings-wallet-nodejs.yml +++ b/.github/workflows/bindings-wallet-nodejs.yml @@ -12,7 +12,7 @@ on: - "!**/tests/**" # Exclude all tests - "!cli/**" # Exclude CLI - "!**/bindings/**" # Exclude all bindings - - "sdk/src/wallet/bindings/nodejs/**" + - "bindings/nodejs-old/**" - ".github/workflows/bindings-wallet-nodejs.yml" - ".patches/*" pull_request: @@ -26,7 +26,7 @@ on: - "!**/tests/**" # Exclude all tests - "!cli/**" # Exclude CLI - "!**/bindings/**" # Exclude all bindings - - "sdk/src/wallet/bindings/nodejs/**" + - "bindings/nodejs-old/**" - ".github/workflows/bindings-wallet-nodejs.yml" - ".patches/*" schedule: @@ -67,14 +67,14 @@ jobs: - name: Set up Rust uses: ./.github/actions/setup-rust with: - cache-root: sdk/src/wallet/bindings/nodejs + cache-root: bindings/nodejs-old - name: Set Up Node.js ${{ matrix.node }} and Yarn Cache uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: npm - cache-dependency-path: sdk/src/wallet/bindings/nodejs/package-lock.json + cache-dependency-path: bindings/nodejs-old/package-lock.json # This step is required for bindgen to work on Windows. - name: Set Up Clang/LLVM (Windows) @@ -99,8 +99,8 @@ jobs: - name: Build nodejs binding run: npm ci --build-from-source - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old - name: Run npm test run: npm test - working-directory: sdk/src/wallet/bindings/nodejs + working-directory: bindings/nodejs-old diff --git a/.github/workflows/wasm-compatibility.yml b/.github/workflows/wasm-compatibility.yml index 8087b2b2c9..fa7644d649 100644 --- a/.github/workflows/wasm-compatibility.yml +++ b/.github/workflows/wasm-compatibility.yml @@ -43,4 +43,4 @@ jobs: uses: actions-rs/cargo@v1 with: command: check - args: --profile ci --target=wasm32-unknown-unknown --manifest-path sdk/Cargo.toml --no-default-features --features client,tls,events,storage,message_interface,participation,wallet + args: --profile ci --target=wasm32-unknown-unknown --manifest-path sdk/Cargo.toml --no-default-features --features client,tls,events,storage,participation,wallet diff --git a/Cargo.lock b/Cargo.lock index 59a57355c7..8d2df173c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1606,7 +1606,6 @@ version = "0.4.0" dependencies = [ "anymap", "async-trait", - "backtrace", "bech32 0.9.1", "bitflags 2.3.3", "bytemuck", @@ -1718,7 +1717,7 @@ dependencies = [ name = "iota-wallet-nodejs" version = "0.2.0" dependencies = [ - "iota-sdk", + "iota-sdk-bindings-core", "log", "neon", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index ba89f6f739..1a62ec11cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,11 +3,11 @@ resolver = "2" members = [ "bindings/core", "bindings/nodejs", + "bindings/nodejs-old", "bindings/python", "bindings/wasm", "cli", "sdk", - "sdk/src/wallet/bindings/nodejs" ] [profile.dev] diff --git a/bindings/core/Cargo.toml b/bindings/core/Cargo.toml index 5a2eef5867..eac6dd049e 100644 --- a/bindings/core/Cargo.toml +++ b/bindings/core/Cargo.toml @@ -9,9 +9,9 @@ license = "Apache-2.0" publish = false [dependencies] -iota-sdk = { path = "../../sdk", default-features = false, features = [ "wallet", "tls", "message_interface" ] } +iota-sdk = { path = "../../sdk", default-features = false, features = [ "wallet", "tls" ] } -backtrace = { version = "0.3.67", default-features = false } +backtrace = { version = "0.3.67", default-features = false, features = [ "std" ] } derivative = { version = "2.2.0", default-features = false } fern-logger = { version = "0.5.0", default-features = false } futures = { version = "0.3.28", default-features = false } diff --git a/bindings/core/src/lib.rs b/bindings/core/src/lib.rs index 9b41ad719c..dabde56ed6 100644 --- a/bindings/core/src/lib.rs +++ b/bindings/core/src/lib.rs @@ -4,6 +4,7 @@ //! Core library for iota-sdk bindings mod error; +pub mod message_interface_old; mod method; mod method_handler; mod panic; diff --git a/sdk/src/wallet/message_interface/account_method.rs b/bindings/core/src/message_interface_old/account_method.rs similarity index 97% rename from sdk/src/wallet/message_interface/account_method.rs rename to bindings/core/src/message_interface_old/account_method.rs index 42cb02257c..a5b1d1a8d4 100644 --- a/sdk/src/wallet/message_interface/account_method.rs +++ b/bindings/core/src/message_interface_old/account_method.rs @@ -1,16 +1,14 @@ // Copyright 2022 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -use serde::{Deserialize, Serialize}; - #[cfg(feature = "participation")] -use crate::wallet::account::types::participation::ParticipationEventRegistrationOptions; +use iota_sdk::wallet::account::types::participation::ParticipationEventRegistrationOptions; #[cfg(feature = "participation")] -use crate::{ +use iota_sdk::{ client::node_manager::node::Node, types::api::plugins::participation::types::{ParticipationEventId, ParticipationEventType}, }; -use crate::{ +use iota_sdk::{ client::{ api::{GetAddressesOptions, PreparedTransactionDataDto, SignedTransactionDataDto}, secret::GenerateAddressOptions, @@ -28,24 +26,14 @@ use crate::{ }, wallet::{ account::{ - operations::{ - output_claiming::OutputsToClaim, - syncing::SyncOptions, - transaction::{ - high_level::{ - create_alias::CreateAliasParams, - minting::{create_native_token::CreateNativeTokenParams, mint_nfts::MintNftParams}, - }, - prepare_output::OutputParams, - TransactionOptionsDto, - }, - }, - FilterOptions, + CreateAliasParams, CreateNativeTokenParams, FilterOptions, MintNftParams, OutputParams, OutputsToClaim, + SyncOptions, TransactionOptionsDto, }, SendNativeTokensParams, SendNftParams, SendParams, }, U256, }; +use serde::{Deserialize, Serialize}; /// Each public account method. #[derive(Clone, Debug, Serialize, Deserialize)] diff --git a/sdk/src/wallet/message_interface/message.rs b/bindings/core/src/message_interface_old/message.rs similarity index 98% rename from sdk/src/wallet/message_interface/message.rs rename to bindings/core/src/message_interface_old/message.rs index ef01355ffc..4b6f275190 100644 --- a/sdk/src/wallet/message_interface/message.rs +++ b/bindings/core/src/message_interface_old/message.rs @@ -5,20 +5,20 @@ use std::fmt::{Debug, Formatter, Result}; #[cfg(feature = "stronghold")] use std::path::PathBuf; -use serde::{Deserialize, Serialize}; - -use super::account_method::AccountMethod; #[cfg(feature = "events")] -use crate::wallet::events::types::{WalletEvent, WalletEventType}; -use crate::{ +use iota_sdk::wallet::events::types::{WalletEvent, WalletEventType}; +use iota_sdk::{ client::{node_manager::node::NodeAuth, secret::GenerateAddressOptions}, types::block::address::{Bech32Address, Hrp}, wallet::{ - account::{operations::syncing::SyncOptions, types::AccountIdentifier}, + account::{types::AccountIdentifier, SyncOptions}, ClientOptions, }, Url, }; +use serde::{Deserialize, Serialize}; + +use super::account_method::AccountMethod; /// The messages that can be sent to the actor. #[derive(Clone, Serialize, Deserialize)] diff --git a/sdk/src/wallet/message_interface/message_handler.rs b/bindings/core/src/message_interface_old/message_handler.rs similarity index 97% rename from sdk/src/wallet/message_interface/message_handler.rs rename to bindings/core/src/message_interface_old/message_handler.rs index e1c8b12ef2..817c9a8032 100644 --- a/sdk/src/wallet/message_interface/message_handler.rs +++ b/bindings/core/src/message_interface_old/message_handler.rs @@ -12,11 +12,9 @@ use std::{ use backtrace::Backtrace; use crypto::keys::slip10::Chain; use futures::{Future, FutureExt}; -use zeroize::Zeroize; - #[cfg(feature = "events")] -use crate::wallet::events::types::{Event, WalletEventType}; -use crate::{ +use iota_sdk::wallet::events::types::{Event, WalletEventType}; +use iota_sdk::{ client::{ api::{PreparedTransactionData, PreparedTransactionDataDto, SignedTransactionData, SignedTransactionDataDto}, constants::SHIMMER_TESTNET_BECH32_HRP, @@ -35,18 +33,15 @@ use crate::{ }, wallet::{ account::{ - operations::transaction::{ - high_level::minting::create_native_token::CreateNativeTokenTransactionDto, TransactionOptions, - }, types::{AccountIdentifier, TransactionDto}, - OutputDataDto, - }, - message_interface::{ - account_method::AccountMethod, dtos::AccountDetailsDto, message::Message, response::Response, + AccountDetailsDto, CreateNativeTokenTransactionDto, OutputDataDto, TransactionOptions, }, Result, Wallet, }, }; +use zeroize::Zeroize; + +use crate::message_interface_old::{account_method::AccountMethod, message::Message, response::Response}; fn panic_to_response_message(panic: Box) -> Response { let msg = panic.downcast_ref::().map_or_else( @@ -569,8 +564,7 @@ impl WalletMessageHandler { } AccountMethod::GenerateEvmAddresses { options } => { let addresses = account - .wallet - .secret_manager + .get_secret_manager() .read() .await .generate_evm_addresses(options) @@ -579,7 +573,7 @@ impl WalletMessageHandler { } AccountMethod::VerifyEd25519Signature { signature, message } => { let signature = Ed25519Signature::try_from(signature)?; - let message: Vec = prefix_hex::decode(message).map_err(crate::client::Error::from)?; + let message: Vec = prefix_hex::decode(message).map_err(iota_sdk::client::Error::from)?; Ok(Response::Bool(signature.verify(&message)?)) } AccountMethod::VerifySecp256k1EcdsaSignature { @@ -592,14 +586,13 @@ impl WalletMessageHandler { let public_key = secp256k1_ecdsa::PublicKey::try_from_bytes(&public_key)?; let signature = prefix_hex::decode(signature).map_err(|_| Error::InvalidField("signature"))?; let signature = secp256k1_ecdsa::Signature::try_from_bytes(&signature)?; - let message: Vec = prefix_hex::decode(message).map_err(crate::client::Error::from)?; + let message: Vec = prefix_hex::decode(message).map_err(iota_sdk::client::Error::from)?; Ok(Response::Bool(public_key.verify(&signature, &message))) } AccountMethod::SignSecp256k1Ecdsa { message, chain } => { - let msg: Vec = prefix_hex::decode(message).map_err(crate::client::Error::from)?; + let msg: Vec = prefix_hex::decode(message).map_err(iota_sdk::client::Error::from)?; let (public_key, signature) = account - .wallet - .secret_manager + .get_secret_manager() .read() .await .sign_secp256k1_ecdsa(&msg, &Chain::from_u32(chain)) @@ -848,7 +841,7 @@ impl WalletMessageHandler { outputs .into_iter() .map(|o| Ok(Output::try_from_dto(o, token_supply)?)) - .collect::>>()?, + .collect::>>()?, options.map(TransactionOptions::try_from_dto).transpose()?, ) .await?; @@ -923,7 +916,8 @@ impl WalletMessageHandler { convert_async_panics(|| async { let transaction = account .increase_voting_power( - u64::from_str(&amount).map_err(|_| crate::client::Error::InvalidAmount(amount.clone()))?, + u64::from_str(&amount) + .map_err(|_| iota_sdk::client::Error::InvalidAmount(amount.clone()))?, ) .await?; Ok(Response::SentTransaction(TransactionDto::from(&transaction))) @@ -935,7 +929,8 @@ impl WalletMessageHandler { convert_async_panics(|| async { let transaction = account .decrease_voting_power( - u64::from_str(&amount).map_err(|_| crate::client::Error::InvalidAmount(amount.clone()))?, + u64::from_str(&amount) + .map_err(|_| iota_sdk::client::Error::InvalidAmount(amount.clone()))?, ) .await?; Ok(Response::SentTransaction(TransactionDto::from(&transaction))) diff --git a/sdk/src/wallet/message_interface/mod.rs b/bindings/core/src/message_interface_old/mod.rs similarity index 97% rename from sdk/src/wallet/message_interface/mod.rs rename to bindings/core/src/message_interface_old/mod.rs index 7721a6f95c..3c0f5ac9aa 100644 --- a/sdk/src/wallet/message_interface/mod.rs +++ b/bindings/core/src/message_interface_old/mod.rs @@ -2,21 +2,20 @@ // SPDX-License-Identifier: Apache-2.0 mod account_method; -pub mod dtos; mod message; mod message_handler; mod response; use fern_logger::{logger_init, LoggerConfig, LoggerOutputConfigBuilder}; +use iota_sdk::{ + client::secret::{SecretManager, SecretManagerDto}, + wallet::{ClientOptions, Wallet}, +}; use serde::{Deserialize, Serialize, Serializer}; pub use self::{ account_method::AccountMethod, message::Message, message_handler::WalletMessageHandler, response::Response, }; -use crate::{ - client::secret::{SecretManager, SecretManagerDto}, - wallet::{ClientOptions, Wallet}, -}; #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] @@ -59,7 +58,7 @@ pub fn init_logger(config: String) -> Result<(), fern_logger::Error> { logger_init(config) } -pub async fn create_message_handler(options: Option) -> crate::wallet::Result { +pub async fn create_message_handler(options: Option) -> iota_sdk::wallet::Result { log::debug!( "create_message_handler with options: {}", serde_json::to_string(&options)?, diff --git a/sdk/src/wallet/message_interface/response.rs b/bindings/core/src/message_interface_old/response.rs similarity index 96% rename from sdk/src/wallet/message_interface/response.rs rename to bindings/core/src/message_interface_old/response.rs index 9dfe1fea6a..4528a2f1da 100644 --- a/sdk/src/wallet/message_interface/response.rs +++ b/bindings/core/src/message_interface_old/response.rs @@ -3,17 +3,9 @@ use std::fmt::{Debug, Formatter, Result}; -use serde::Serialize; -#[cfg(feature = "participation")] -use { - crate::types::api::plugins::participation::types::{ParticipationEventId, ParticipationEventStatus}, - crate::wallet::account::operations::participation::{AccountParticipationOverview, ParticipationEventWithNodes}, - std::collections::HashMap, -}; - #[cfg(feature = "ledger_nano")] -use crate::client::secret::LedgerNanoStatus; -use crate::{ +use iota_sdk::client::secret::LedgerNanoStatus; +use iota_sdk::{ client::{ api::{PreparedTransactionDataDto, SignedTransactionDataDto}, NodeInfoWrapper, @@ -25,14 +17,19 @@ use crate::{ }, wallet::{ account::{ - operations::transaction::high_level::minting::create_native_token::CreateNativeTokenTransactionDto, - types::{address::AccountAddress, AddressWithUnspentOutputs, Balance, TransactionDto}, - OutputDataDto, + types::{AccountAddress, AddressWithUnspentOutputs, Balance, TransactionDto}, + AccountDetailsDto, CreateNativeTokenTransactionDto, OutputDataDto, }, - message_interface::dtos::AccountDetailsDto, Error, }, }; +use serde::Serialize; +#[cfg(feature = "participation")] +use { + iota_sdk::types::api::plugins::participation::types::{ParticipationEventId, ParticipationEventStatus}, + iota_sdk::wallet::account::{AccountParticipationOverview, ParticipationEventWithNodes}, + std::collections::HashMap, +}; /// The response message. #[derive(Serialize)] diff --git a/bindings/core/src/method_handler/wallet.rs b/bindings/core/src/method_handler/wallet.rs index c25919492e..dbc138cc43 100644 --- a/bindings/core/src/method_handler/wallet.rs +++ b/bindings/core/src/method_handler/wallet.rs @@ -5,7 +5,7 @@ use std::time::Duration; use iota_sdk::{ types::block::address::ToBech32Ext, - wallet::{message_interface::dtos::AccountDetailsDto, Wallet}, + wallet::{account::AccountDetailsDto, Wallet}, }; use super::account::call_account_method_internal; diff --git a/bindings/core/src/response.rs b/bindings/core/src/response.rs index d82ce4ce17..ce72afc758 100644 --- a/bindings/core/src/response.rs +++ b/bindings/core/src/response.rs @@ -39,12 +39,9 @@ use iota_sdk::{ BlockDto, BlockId, }, }, - wallet::{ - account::{ - types::{AccountAddress, AddressWithUnspentOutputs, Balance, OutputDataDto, TransactionDto}, - PreparedCreateNativeTokenTransactionDto, - }, - message_interface::dtos::AccountDetailsDto, + wallet::account::{ + types::{AccountAddress, AddressWithUnspentOutputs, Balance, OutputDataDto, TransactionDto}, + AccountDetailsDto, PreparedCreateNativeTokenTransactionDto, }, }; use serde::Serialize; diff --git a/sdk/src/wallet/bindings/nodejs/.cargo/config.toml b/bindings/nodejs-old/.cargo/config.toml similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.cargo/config.toml rename to bindings/nodejs-old/.cargo/config.toml diff --git a/sdk/src/wallet/bindings/nodejs/.eslintignore b/bindings/nodejs-old/.eslintignore similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.eslintignore rename to bindings/nodejs-old/.eslintignore diff --git a/sdk/src/wallet/bindings/nodejs/.eslintrc.js b/bindings/nodejs-old/.eslintrc.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.eslintrc.js rename to bindings/nodejs-old/.eslintrc.js diff --git a/sdk/src/wallet/bindings/nodejs/.gitignore b/bindings/nodejs-old/.gitignore similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.gitignore rename to bindings/nodejs-old/.gitignore diff --git a/sdk/src/wallet/bindings/nodejs/.npmignore b/bindings/nodejs-old/.npmignore similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.npmignore rename to bindings/nodejs-old/.npmignore diff --git a/sdk/src/wallet/bindings/nodejs/.prettierrc.js b/bindings/nodejs-old/.prettierrc.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/.prettierrc.js rename to bindings/nodejs-old/.prettierrc.js diff --git a/sdk/src/wallet/bindings/nodejs/CHANGELOG.md b/bindings/nodejs-old/CHANGELOG.md similarity index 100% rename from sdk/src/wallet/bindings/nodejs/CHANGELOG.md rename to bindings/nodejs-old/CHANGELOG.md diff --git a/sdk/src/wallet/bindings/nodejs/Cargo.toml b/bindings/nodejs-old/Cargo.toml similarity index 83% rename from sdk/src/wallet/bindings/nodejs/Cargo.toml rename to bindings/nodejs-old/Cargo.toml index 786425eb2b..88e837665b 100644 --- a/sdk/src/wallet/bindings/nodejs/Cargo.toml +++ b/bindings/nodejs-old/Cargo.toml @@ -18,7 +18,7 @@ crate-type = [ "cdylib" ] doc = false [dependencies] -iota-sdk = { path = "../../../..", default-features = false, features = [ "wallet", "events", "ledger_nano", "storage", "stronghold", "tls", "message_interface", "participation", "rocksdb" ] } +iota-sdk-bindings-core = { path = "../core", default-features = false, features = [ "events", "ledger_nano", "storage", "stronghold", "participation", "rocksdb", "mqtt" ] } log = { version = "0.4.18", default-features = false } neon = { version = "0.10.1", default-features = false, features = [ "napi-6", "event-queue-api", "promise-api" ] } diff --git a/sdk/src/wallet/bindings/nodejs/README.md b/bindings/nodejs-old/README.md similarity index 100% rename from sdk/src/wallet/bindings/nodejs/README.md rename to bindings/nodejs-old/README.md diff --git a/sdk/src/wallet/bindings/nodejs/binding.gyp b/bindings/nodejs-old/binding.gyp similarity index 100% rename from sdk/src/wallet/bindings/nodejs/binding.gyp rename to bindings/nodejs-old/binding.gyp diff --git a/sdk/src/wallet/bindings/nodejs/examples/.env.example b/bindings/nodejs-old/examples/.env.example similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/.env.example rename to bindings/nodejs-old/examples/.env.example diff --git a/sdk/src/wallet/bindings/nodejs/examples/1-create-account.js b/bindings/nodejs-old/examples/1-create-account.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/1-create-account.js rename to bindings/nodejs-old/examples/1-create-account.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/10-node-info.js b/bindings/nodejs-old/examples/10-node-info.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/10-node-info.js rename to bindings/nodejs-old/examples/10-node-info.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/11-set-client-options.js b/bindings/nodejs-old/examples/11-set-client-options.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/11-set-client-options.js rename to bindings/nodejs-old/examples/11-set-client-options.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/12a-list-outputs.js b/bindings/nodejs-old/examples/12a-list-outputs.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/12a-list-outputs.js rename to bindings/nodejs-old/examples/12a-list-outputs.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/12b-list-pending-transactions.js b/bindings/nodejs-old/examples/12b-list-pending-transactions.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/12b-list-pending-transactions.js rename to bindings/nodejs-old/examples/12b-list-pending-transactions.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/12c-list-transactions.js b/bindings/nodejs-old/examples/12c-list-transactions.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/12c-list-transactions.js rename to bindings/nodejs-old/examples/12c-list-transactions.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/12d-list-unspent-outputs.js b/bindings/nodejs-old/examples/12d-list-unspent-outputs.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/12d-list-unspent-outputs.js rename to bindings/nodejs-old/examples/12d-list-unspent-outputs.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/13-get-outputs-with-additional-unlock-conditions.js b/bindings/nodejs-old/examples/13-get-outputs-with-additional-unlock-conditions.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/13-get-outputs-with-additional-unlock-conditions.js rename to bindings/nodejs-old/examples/13-get-outputs-with-additional-unlock-conditions.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/14-stronghold-methods.js b/bindings/nodejs-old/examples/14-stronghold-methods.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/14-stronghold-methods.js rename to bindings/nodejs-old/examples/14-stronghold-methods.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/15-get-transaction.js b/bindings/nodejs-old/examples/15-get-transaction.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/15-get-transaction.js rename to bindings/nodejs-old/examples/15-get-transaction.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/16a-prepare-and-send-amount.js b/bindings/nodejs-old/examples/16a-prepare-and-send-amount.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/16a-prepare-and-send-amount.js rename to bindings/nodejs-old/examples/16a-prepare-and-send-amount.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/16b-prepare-output.js b/bindings/nodejs-old/examples/16b-prepare-output.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/16b-prepare-output.js rename to bindings/nodejs-old/examples/16b-prepare-output.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/17-change-stronghold-password.js b/bindings/nodejs-old/examples/17-change-stronghold-password.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/17-change-stronghold-password.js rename to bindings/nodejs-old/examples/17-change-stronghold-password.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/18-consolidate-outputs.js b/bindings/nodejs-old/examples/18-consolidate-outputs.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/18-consolidate-outputs.js rename to bindings/nodejs-old/examples/18-consolidate-outputs.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/19-remove-latest-account.js b/bindings/nodejs-old/examples/19-remove-latest-account.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/19-remove-latest-account.js rename to bindings/nodejs-old/examples/19-remove-latest-account.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/2-generate-address.js b/bindings/nodejs-old/examples/2-generate-address.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/2-generate-address.js rename to bindings/nodejs-old/examples/2-generate-address.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/20-address-conversion.js b/bindings/nodejs-old/examples/20-address-conversion.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/20-address-conversion.js rename to bindings/nodejs-old/examples/20-address-conversion.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/21-claim-outputs.js b/bindings/nodejs-old/examples/21-claim-outputs.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/21-claim-outputs.js rename to bindings/nodejs-old/examples/21-claim-outputs.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/22-create-native-token.js b/bindings/nodejs-old/examples/22-create-native-token.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/22-create-native-token.js rename to bindings/nodejs-old/examples/22-create-native-token.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/23-get-foundry-output.js b/bindings/nodejs-old/examples/23-get-foundry-output.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/23-get-foundry-output.js rename to bindings/nodejs-old/examples/23-get-foundry-output.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/24-send-native-tokens.js b/bindings/nodejs-old/examples/24-send-native-tokens.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/24-send-native-tokens.js rename to bindings/nodejs-old/examples/24-send-native-tokens.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/25-mint-nft.js b/bindings/nodejs-old/examples/25-mint-nft.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/25-mint-nft.js rename to bindings/nodejs-old/examples/25-mint-nft.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/26-send-nft.js b/bindings/nodejs-old/examples/26-send-nft.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/26-send-nft.js rename to bindings/nodejs-old/examples/26-send-nft.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/27-burn-nft.js b/bindings/nodejs-old/examples/27-burn-nft.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/27-burn-nft.js rename to bindings/nodejs-old/examples/27-burn-nft.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/28-get-voting-information.js b/bindings/nodejs-old/examples/28-get-voting-information.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/28-get-voting-information.js rename to bindings/nodejs-old/examples/28-get-voting-information.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/29-voting.js b/bindings/nodejs-old/examples/29-voting.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/29-voting.js rename to bindings/nodejs-old/examples/29-voting.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/3-check-balance.js b/bindings/nodejs-old/examples/3-check-balance.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/3-check-balance.js rename to bindings/nodejs-old/examples/3-check-balance.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/30a-mint-native-token.js b/bindings/nodejs-old/examples/30a-mint-native-token.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/30a-mint-native-token.js rename to bindings/nodejs-old/examples/30a-mint-native-token.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/30b-melt-native-token.js b/bindings/nodejs-old/examples/30b-melt-native-token.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/30b-melt-native-token.js rename to bindings/nodejs-old/examples/30b-melt-native-token.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/31-burn-native-token.js b/bindings/nodejs-old/examples/31-burn-native-token.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/31-burn-native-token.js rename to bindings/nodejs-old/examples/31-burn-native-token.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/32-destroy-foundry.js b/bindings/nodejs-old/examples/32-destroy-foundry.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/32-destroy-foundry.js rename to bindings/nodejs-old/examples/32-destroy-foundry.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/33-request-funds.js b/bindings/nodejs-old/examples/33-request-funds.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/33-request-funds.js rename to bindings/nodejs-old/examples/33-request-funds.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/34-tagged-data-payload.js b/bindings/nodejs-old/examples/34-tagged-data-payload.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/34-tagged-data-payload.js rename to bindings/nodejs-old/examples/34-tagged-data-payload.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/35-recreate-account-manager.js b/bindings/nodejs-old/examples/35-recreate-account-manager.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/35-recreate-account-manager.js rename to bindings/nodejs-old/examples/35-recreate-account-manager.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/36-check-unlock-conditions.js b/bindings/nodejs-old/examples/36-check-unlock-conditions.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/36-check-unlock-conditions.js rename to bindings/nodejs-old/examples/36-check-unlock-conditions.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/4a-send-amount.js b/bindings/nodejs-old/examples/4a-send-amount.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/4a-send-amount.js rename to bindings/nodejs-old/examples/4a-send-amount.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/4b-build-and-send-output.js b/bindings/nodejs-old/examples/4b-build-and-send-output.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/4b-build-and-send-output.js rename to bindings/nodejs-old/examples/4b-build-and-send-output.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/4c-send-micro-transaction.js b/bindings/nodejs-old/examples/4c-send-micro-transaction.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/4c-send-micro-transaction.js rename to bindings/nodejs-old/examples/4c-send-micro-transaction.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/5-backup.js b/bindings/nodejs-old/examples/5-backup.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/5-backup.js rename to bindings/nodejs-old/examples/5-backup.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/6-restore.js b/bindings/nodejs-old/examples/6-restore.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/6-restore.js rename to bindings/nodejs-old/examples/6-restore.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/7-events.js b/bindings/nodejs-old/examples/7-events.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/7-events.js rename to bindings/nodejs-old/examples/7-events.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/8-logger.js b/bindings/nodejs-old/examples/8-logger.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/8-logger.js rename to bindings/nodejs-old/examples/8-logger.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/9-mnemonic.js b/bindings/nodejs-old/examples/9-mnemonic.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/9-mnemonic.js rename to bindings/nodejs-old/examples/9-mnemonic.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/account-manager.js b/bindings/nodejs-old/examples/account-manager.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/account-manager.js rename to bindings/nodejs-old/examples/account-manager.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/create-alias.js b/bindings/nodejs-old/examples/create-alias.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/create-alias.js rename to bindings/nodejs-old/examples/create-alias.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/destroy-alias.js b/bindings/nodejs-old/examples/destroy-alias.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/destroy-alias.js rename to bindings/nodejs-old/examples/destroy-alias.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/events.ts b/bindings/nodejs-old/examples/events.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/events.ts rename to bindings/nodejs-old/examples/events.ts diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/0-generate-mnemonic.js b/bindings/nodejs-old/examples/exchange/0-generate-mnemonic.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/0-generate-mnemonic.js rename to bindings/nodejs-old/examples/exchange/0-generate-mnemonic.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/1-create-account.js b/bindings/nodejs-old/examples/exchange/1-create-account.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/1-create-account.js rename to bindings/nodejs-old/examples/exchange/1-create-account.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/2-generate-address.js b/bindings/nodejs-old/examples/exchange/2-generate-address.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/2-generate-address.js rename to bindings/nodejs-old/examples/exchange/2-generate-address.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/3-check-balance.js b/bindings/nodejs-old/examples/exchange/3-check-balance.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/3-check-balance.js rename to bindings/nodejs-old/examples/exchange/3-check-balance.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/4-listen-events.js b/bindings/nodejs-old/examples/exchange/4-listen-events.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/4-listen-events.js rename to bindings/nodejs-old/examples/exchange/4-listen-events.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/exchange/5-send-amount.js b/bindings/nodejs-old/examples/exchange/5-send-amount.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/exchange/5-send-amount.js rename to bindings/nodejs-old/examples/exchange/5-send-amount.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/generateAddress.js b/bindings/nodejs-old/examples/generateAddress.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/generateAddress.js rename to bindings/nodejs-old/examples/generateAddress.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/getting-started.js b/bindings/nodejs-old/examples/getting-started.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/getting-started.js rename to bindings/nodejs-old/examples/getting-started.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/ledger_nano.js b/bindings/nodejs-old/examples/ledger_nano.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/ledger_nano.js rename to bindings/nodejs-old/examples/ledger_nano.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/migrate-stronghold-snapshot-v2-to-v3.js b/bindings/nodejs-old/examples/migrate-stronghold-snapshot-v2-to-v3.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/migrate-stronghold-snapshot-v2-to-v3.js rename to bindings/nodejs-old/examples/migrate-stronghold-snapshot-v2-to-v3.js diff --git a/sdk/src/wallet/bindings/nodejs/examples/package-lock.json b/bindings/nodejs-old/examples/package-lock.json similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/package-lock.json rename to bindings/nodejs-old/examples/package-lock.json diff --git a/sdk/src/wallet/bindings/nodejs/examples/package.json b/bindings/nodejs-old/examples/package.json similarity index 100% rename from sdk/src/wallet/bindings/nodejs/examples/package.json rename to bindings/nodejs-old/examples/package.json diff --git a/sdk/src/wallet/bindings/nodejs/jest.config.js b/bindings/nodejs-old/jest.config.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/jest.config.js rename to bindings/nodejs-old/jest.config.js diff --git a/sdk/src/wallet/bindings/nodejs/lib/Account.ts b/bindings/nodejs-old/lib/Account.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/lib/Account.ts rename to bindings/nodejs-old/lib/Account.ts diff --git a/sdk/src/wallet/bindings/nodejs/lib/AccountManager.ts b/bindings/nodejs-old/lib/AccountManager.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/lib/AccountManager.ts rename to bindings/nodejs-old/lib/AccountManager.ts diff --git a/sdk/src/wallet/bindings/nodejs/lib/MessageHandler.ts b/bindings/nodejs-old/lib/MessageHandler.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/lib/MessageHandler.ts rename to bindings/nodejs-old/lib/MessageHandler.ts diff --git a/sdk/src/wallet/bindings/nodejs/lib/bindings.ts b/bindings/nodejs-old/lib/bindings.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/lib/bindings.ts rename to bindings/nodejs-old/lib/bindings.ts diff --git a/sdk/src/wallet/bindings/nodejs/lib/index.ts b/bindings/nodejs-old/lib/index.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/lib/index.ts rename to bindings/nodejs-old/lib/index.ts diff --git a/sdk/src/wallet/bindings/nodejs/package-lock.json b/bindings/nodejs-old/package-lock.json similarity index 100% rename from sdk/src/wallet/bindings/nodejs/package-lock.json rename to bindings/nodejs-old/package-lock.json diff --git a/sdk/src/wallet/bindings/nodejs/package.json b/bindings/nodejs-old/package.json similarity index 100% rename from sdk/src/wallet/bindings/nodejs/package.json rename to bindings/nodejs-old/package.json diff --git a/sdk/src/wallet/bindings/nodejs/scripts/download-node-lib-win-arm64.ps1 b/bindings/nodejs-old/scripts/download-node-lib-win-arm64.ps1 similarity index 100% rename from sdk/src/wallet/bindings/nodejs/scripts/download-node-lib-win-arm64.ps1 rename to bindings/nodejs-old/scripts/download-node-lib-win-arm64.ps1 diff --git a/sdk/src/wallet/bindings/nodejs/scripts/move-artifact.js b/bindings/nodejs-old/scripts/move-artifact.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/scripts/move-artifact.js rename to bindings/nodejs-old/scripts/move-artifact.js diff --git a/sdk/src/wallet/bindings/nodejs/scripts/neon-build.js b/bindings/nodejs-old/scripts/neon-build.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/scripts/neon-build.js rename to bindings/nodejs-old/scripts/neon-build.js diff --git a/sdk/src/wallet/bindings/nodejs/scripts/strip.js b/bindings/nodejs-old/scripts/strip.js similarity index 100% rename from sdk/src/wallet/bindings/nodejs/scripts/strip.js rename to bindings/nodejs-old/scripts/strip.js diff --git a/sdk/src/wallet/bindings/nodejs/src/lib.rs b/bindings/nodejs-old/src/lib.rs similarity index 100% rename from sdk/src/wallet/bindings/nodejs/src/lib.rs rename to bindings/nodejs-old/src/lib.rs diff --git a/sdk/src/wallet/bindings/nodejs/src/message_handler.rs b/bindings/nodejs-old/src/message_handler.rs similarity index 95% rename from sdk/src/wallet/bindings/nodejs/src/message_handler.rs rename to bindings/nodejs-old/src/message_handler.rs index 1877f7d36e..56cd2c9e4b 100644 --- a/sdk/src/wallet/bindings/nodejs/src/message_handler.rs +++ b/bindings/nodejs-old/src/message_handler.rs @@ -3,15 +3,17 @@ use std::sync::Arc; -use iota_sdk::{ - client::stronghold::StrongholdAdapter, - wallet::{ - events::types::{Event, WalletEventType}, - message_interface::{ - create_message_handler, init_logger as init_logger_rust, ManagerOptions, Message, Response, - WalletMessageHandler, +use iota_sdk_bindings_core::{ + iota_sdk::{ + client::stronghold::StrongholdAdapter, + wallet::{ + events::types::{Event, WalletEventType}, + Result, }, - Result, + }, + message_interface_old::{ + create_message_handler, init_logger as init_logger_rust, ManagerOptions, Message, Response, + WalletMessageHandler, }, }; use neon::prelude::*; diff --git a/sdk/src/wallet/bindings/nodejs/tests/accountManager.spec.ts b/bindings/nodejs-old/tests/accountManager.spec.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/tests/accountManager.spec.ts rename to bindings/nodejs-old/tests/accountManager.spec.ts diff --git a/sdk/src/wallet/bindings/nodejs/tsconfig.json b/bindings/nodejs-old/tsconfig.json similarity index 100% rename from sdk/src/wallet/bindings/nodejs/tsconfig.json rename to bindings/nodejs-old/tsconfig.json diff --git a/sdk/src/wallet/bindings/nodejs/types/account.ts b/bindings/nodejs-old/types/account.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/account.ts rename to bindings/nodejs-old/types/account.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/accountManager.ts b/bindings/nodejs-old/types/accountManager.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/accountManager.ts rename to bindings/nodejs-old/types/accountManager.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/address.ts b/bindings/nodejs-old/types/address.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/address.ts rename to bindings/nodejs-old/types/address.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/bridge/account.ts b/bindings/nodejs-old/types/bridge/account.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/bridge/account.ts rename to bindings/nodejs-old/types/bridge/account.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/bridge/accountManager.ts b/bindings/nodejs-old/types/bridge/accountManager.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/bridge/accountManager.ts rename to bindings/nodejs-old/types/bridge/accountManager.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/bridge/index.ts b/bindings/nodejs-old/types/bridge/index.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/bridge/index.ts rename to bindings/nodejs-old/types/bridge/index.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/buildOutputData.ts b/bindings/nodejs-old/types/buildOutputData.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/buildOutputData.ts rename to bindings/nodejs-old/types/buildOutputData.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/burn.ts b/bindings/nodejs-old/types/burn.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/burn.ts rename to bindings/nodejs-old/types/burn.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/event.ts b/bindings/nodejs-old/types/event.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/event.ts rename to bindings/nodejs-old/types/event.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/index.ts b/bindings/nodejs-old/types/index.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/index.ts rename to bindings/nodejs-old/types/index.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/loggerConfig.ts b/bindings/nodejs-old/types/loggerConfig.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/loggerConfig.ts rename to bindings/nodejs-old/types/loggerConfig.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/network.ts b/bindings/nodejs-old/types/network.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/network.ts rename to bindings/nodejs-old/types/network.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/output.ts b/bindings/nodejs-old/types/output.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/output.ts rename to bindings/nodejs-old/types/output.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/outputParams.ts b/bindings/nodejs-old/types/outputParams.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/outputParams.ts rename to bindings/nodejs-old/types/outputParams.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/participation.ts b/bindings/nodejs-old/types/participation.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/participation.ts rename to bindings/nodejs-old/types/participation.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/preparedTransactionData.ts b/bindings/nodejs-old/types/preparedTransactionData.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/preparedTransactionData.ts rename to bindings/nodejs-old/types/preparedTransactionData.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/secretManager.ts b/bindings/nodejs-old/types/secretManager.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/secretManager.ts rename to bindings/nodejs-old/types/secretManager.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/signedTransactionEssence.ts b/bindings/nodejs-old/types/signedTransactionEssence.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/signedTransactionEssence.ts rename to bindings/nodejs-old/types/signedTransactionEssence.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/transaction.ts b/bindings/nodejs-old/types/transaction.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/transaction.ts rename to bindings/nodejs-old/types/transaction.ts diff --git a/sdk/src/wallet/bindings/nodejs/types/transactionOptions.ts b/bindings/nodejs-old/types/transactionOptions.ts similarity index 100% rename from sdk/src/wallet/bindings/nodejs/types/transactionOptions.ts rename to bindings/nodejs-old/types/transactionOptions.ts diff --git a/sdk/src/wallet/bindings/nodejs/yarn.lock b/bindings/nodejs-old/yarn.lock similarity index 100% rename from sdk/src/wallet/bindings/nodejs/yarn.lock rename to bindings/nodejs-old/yarn.lock diff --git a/sdk/Cargo.toml b/sdk/Cargo.toml index 6d88dc584f..a561dd568e 100644 --- a/sdk/Cargo.toml +++ b/sdk/Cargo.toml @@ -37,7 +37,6 @@ serde_json = { version = "1.0.96", default-features = false, features = [ "alloc # Optional dependencies anymap = { version = "0.12.1", default-features = false, optional = true } async-trait = { version = "0.1.68", default-features = false, optional = true } -backtrace = { version = "0.3.67", default-features = false, optional = true } derive_builder = { version = "0.12.0", default-features = false, optional = true } fern-logger = { version = "0.5.0", default-features = false, optional = true } futures = { version = "0.3.28", default-features = false, features = [ "thread-pool" ], optional = true } @@ -84,14 +83,13 @@ default = [ "client", "wallet", "tls" ] events = [ ] ledger_nano = [ "iota-ledger-nano" ] -message_interface = [ "backtrace", "fern-logger" ] mqtt = [ "std", "regex", "rumqttc", "dep:once_cell" ] participation = [ "storage" ] pow = [ "std", "num_cpus", "iota-crypto/curl-p" ] rand = [ "dep:rand" ] rocksdb = [ "dep:rocksdb", "storage" ] serde = [ "serde_repr", "serde-big-array", "hashbrown/serde", "packable/serde", "primitive-types/serde_no_std", "zeroize?/serde" ] -std = [ "packable/std", "prefix-hex/std", "primitive-types/std", "bech32/std", "bitflags/std", "rand?/std_rng", "regex?/std", "backtrace?/std", "derive_builder?/std", "iota_stronghold?/std", "iota-crypto/std", "once_cell?/std", "itertools/use_std" ] +std = [ "packable/std", "prefix-hex/std", "primitive-types/std", "bech32/std", "bitflags/std", "rand?/std_rng", "regex?/std", "derive_builder?/std", "iota_stronghold?/std", "iota-crypto/std", "once_cell?/std", "itertools/use_std" ] storage = [ "iota-crypto/chacha", "dep:time", "dep:anymap", "dep:once_cell", "dep:heck" ] stronghold = [ "iota_stronghold", "derive_builder", "iota-crypto/chacha", "dep:time", "dep:anymap", "dep:once_cell", "dep:heck" ] tls = [ "reqwest?/rustls-tls", "rumqttc?/use-rustls" ] diff --git a/sdk/src/wallet/account/mod.rs b/sdk/src/wallet/account/mod.rs index 0bd01df450..925345e8fb 100644 --- a/sdk/src/wallet/account/mod.rs +++ b/sdk/src/wallet/account/mod.rs @@ -27,7 +27,7 @@ use tokio::sync::{Mutex, RwLock}; pub use self::operations::participation::{AccountParticipationOverview, ParticipationEventWithNodes}; use self::types::{ address::{AccountAddress, AddressWithUnspentOutputs}, - Balance, OutputData, Transaction, + Balance, OutputData, Transaction, TransactionDto, }; pub use self::{ operations::{ @@ -62,7 +62,7 @@ use crate::{ types::{ api::core::response::OutputWithMetadataResponse, block::{ - output::{AliasId, FoundryId, FoundryOutput, NftId, Output, OutputId, TokenId}, + output::{dto::FoundryOutputDto, AliasId, FoundryId, FoundryOutput, NftId, Output, OutputId, TokenId}, payload::{ transaction::{TransactionEssence, TransactionId}, TransactionPayload, @@ -156,6 +156,12 @@ impl Clone for Account { } } +impl Account { + pub fn get_secret_manager(&self) -> &Arc> { + self.wallet.get_secret_manager() + } +} + #[derive(Debug)] pub struct AccountInner { details: RwLock, @@ -463,6 +469,79 @@ pub(crate) fn build_transaction_from_payload_and_inputs( }) } +/// Dto for an Account. +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AccountDetailsDto { + /// The account index + pub index: u32, + /// The coin type + pub coin_type: u32, + /// The account alias. + pub alias: String, + /// Public addresses + pub public_addresses: Vec, + /// Internal addresses + pub internal_addresses: Vec, + /// Addresses with unspent outputs + pub addresses_with_unspent_outputs: Vec, + /// Outputs + pub outputs: HashMap, + /// Unspent outputs that are currently used as input for transactions + pub locked_outputs: HashSet, + /// Unspent outputs + pub unspent_outputs: HashMap, + /// Sent transactions + pub transactions: HashMap, + /// Pending transactions + pub pending_transactions: HashSet, + /// Incoming transactions + pub incoming_transactions: HashMap, + /// Foundries for native tokens in outputs + #[serde(default)] + pub native_token_foundries: HashMap, +} + +impl From<&AccountDetails> for AccountDetailsDto { + fn from(value: &AccountDetails) -> Self { + Self { + index: *value.index(), + coin_type: *value.coin_type(), + alias: value.alias().clone(), + public_addresses: value.public_addresses().clone(), + internal_addresses: value.internal_addresses().clone(), + addresses_with_unspent_outputs: value.addresses_with_unspent_outputs().clone(), + outputs: value + .outputs() + .iter() + .map(|(id, output)| (*id, OutputDataDto::from(output))) + .collect(), + locked_outputs: value.locked_outputs().clone(), + unspent_outputs: value + .unspent_outputs() + .iter() + .map(|(id, output)| (*id, OutputDataDto::from(output))) + .collect(), + transactions: value + .transactions() + .iter() + .map(|(id, transaction)| (*id, TransactionDto::from(transaction))) + .collect(), + pending_transactions: value.pending_transactions().clone(), + incoming_transactions: value + .incoming_transactions() + .iter() + .map(|(id, transaction)| (*id, TransactionDto::from(transaction))) + .collect(), + native_token_foundries: value + .native_token_foundries() + .iter() + .map(|(id, foundry)| (*id, FoundryOutputDto::from(foundry))) + .collect(), + } + } +} + #[test] fn serialize() { use crate::types::block::{ diff --git a/sdk/src/wallet/message_interface/dtos.rs b/sdk/src/wallet/message_interface/dtos.rs deleted file mode 100644 index cf143527e2..0000000000 --- a/sdk/src/wallet/message_interface/dtos.rs +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2022 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -// Dtos with amount as String, to prevent overflow issues in other languages - -use std::collections::{HashMap, HashSet}; - -use serde::{Deserialize, Serialize}; - -use crate::{ - types::block::{ - output::{dto::FoundryOutputDto, FoundryId, OutputId}, - payload::transaction::TransactionId, - }, - wallet::account::{ - types::{AccountAddress, AddressWithUnspentOutputs, TransactionDto}, - AccountDetails, OutputDataDto, - }, -}; - -/// Dto for an Account. -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct AccountDetailsDto { - /// The account index - pub index: u32, - /// The coin type - pub coin_type: u32, - /// The account alias. - pub alias: String, - /// Public addresses - pub public_addresses: Vec, - /// Internal addresses - pub internal_addresses: Vec, - /// Addresses with unspent outputs - pub addresses_with_unspent_outputs: Vec, - /// Outputs - pub outputs: HashMap, - /// Unspent outputs that are currently used as input for transactions - pub locked_outputs: HashSet, - /// Unspent outputs - pub unspent_outputs: HashMap, - /// Sent transactions - pub transactions: HashMap, - /// Pending transactions - pub pending_transactions: HashSet, - /// Incoming transactions - pub incoming_transactions: HashMap, - /// Foundries for native tokens in outputs - #[serde(default)] - pub native_token_foundries: HashMap, -} - -impl From<&AccountDetails> for AccountDetailsDto { - fn from(value: &AccountDetails) -> Self { - Self { - index: *value.index(), - coin_type: *value.coin_type(), - alias: value.alias().clone(), - public_addresses: value.public_addresses.clone(), - internal_addresses: value.internal_addresses.clone(), - addresses_with_unspent_outputs: value.addresses_with_unspent_outputs().clone(), - outputs: value - .outputs() - .iter() - .map(|(id, output)| (*id, OutputDataDto::from(output))) - .collect(), - locked_outputs: value.locked_outputs().clone(), - unspent_outputs: value - .unspent_outputs() - .iter() - .map(|(id, output)| (*id, OutputDataDto::from(output))) - .collect(), - transactions: value - .transactions() - .iter() - .map(|(id, transaction)| (*id, TransactionDto::from(transaction))) - .collect(), - pending_transactions: value.pending_transactions().clone(), - incoming_transactions: value - .incoming_transactions() - .iter() - .map(|(id, transaction)| (*id, TransactionDto::from(transaction))) - .collect(), - native_token_foundries: value - .native_token_foundries() - .iter() - .map(|(id, foundry)| (*id, FoundryOutputDto::from(foundry))) - .collect(), - } - } -} diff --git a/sdk/src/wallet/mod.rs b/sdk/src/wallet/mod.rs index 497ab8b265..49cec89678 100644 --- a/sdk/src/wallet/mod.rs +++ b/sdk/src/wallet/mod.rs @@ -8,11 +8,6 @@ pub mod account; /// The core module. pub mod core; -/// The message passing interface for the library. A different way to call the wallet functions, useful for bindings to -/// other languages. -#[cfg(feature = "message_interface")] -#[cfg_attr(docsrs, doc(cfg(feature = "message_interface")))] -pub mod message_interface; #[cfg(any(feature = "stronghold", feature = "storage"))] pub(crate) mod migration; diff --git a/sdk/tests/wallet/message_interface.rs b/sdk/tests/wallet/message_interface.rs deleted file mode 100644 index 115694cf32..0000000000 --- a/sdk/tests/wallet/message_interface.rs +++ /dev/null @@ -1,436 +0,0 @@ -// Copyright 2023 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::sync::{atomic::Ordering, Arc}; - -#[cfg(feature = "events")] -use iota_sdk::wallet::events::types::WalletEvent; -use iota_sdk::{ - client::{constants::SHIMMER_COIN_TYPE, secret::GenerateAddressOptions, ClientBuilder}, - types::block::{ - address::{Address, Bech32Address, Hrp}, - output::{dto::OutputDto, unlock_condition::AddressUnlockCondition, BasicOutputBuilder}, - }, - wallet::{ - message_interface::{create_message_handler, AccountMethod, ManagerOptions, Message, Response}, - Result, - }, -}; - -use crate::wallet::common::{setup, tear_down, FAUCET_URL}; - -const TOKEN_SUPPLY: u64 = 1_813_620_509_061_365; - -#[tokio::test] -async fn message_interface_validate_mnemonic() -> Result<()> { - let storage_path = "test-storage/message_interface_validate_mnemonic"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"acoustic trophy damage hint search taste love bicycle foster cradle brown govern endless depend situate athlete pudding blame question genius transfer van random vast"}"#; - let client_options = r#"{"nodes":["http://localhost:14265"]}"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - let response = wallet_handle.send_message(Message::GenerateMnemonic).await; - - match response { - Response::GeneratedMnemonic(mnemonic) => { - let response = wallet_handle - .send_message(Message::VerifyMnemonic { - mnemonic: mnemonic.to_string(), - }) - .await; - - let Response::Ok(_) = response else { - panic!("Unexpected response type: {response:?}"); - }; - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - - tear_down(storage_path) -} - -#[tokio::test] -async fn message_interface_create_account() -> Result<()> { - let storage_path = "test-storage/message_interface_create_account"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"about solution utility exist rail budget vacuum major survey clerk pave ankle wealth gym gossip still medal expect strong rely amazing inspire lazy lunar"}"#; - let client_options = r#"{ - "nodes":[ - { - "url":"http://localhost:14265", - "auth":null, - "disabled":false - }, - { - "url":"https://api.testnet.shimmer.network", - "auth":null, - "disabled":false - } - ], - "localPow":true, - "apiTimeout":{ - "secs":20, - "nanos":0 - } - }"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - // create an account - let response = wallet_handle - .send_message(Message::CreateAccount { - alias: None, - bech32_hrp: None, - }) - .await; - - match response { - Response::Account(account) => { - assert_eq!(account.index, 0); - let id = account.index; - println!("Created account index: {id}") - } - _ => panic!("unexpected response {response:?}"), - } - - tear_down(storage_path) -} - -#[ignore] -#[cfg(feature = "events")] -#[tokio::test] -async fn message_interface_events() -> Result<()> { - let storage_path = "test-storage/message_interface_events"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"member captain exotic police quit giraffe oval album proof skin fame cannon soccer cinnamon gaze mango fetch identify vocal cause drink stem produce twice"}"#; - let client_options = r#"{ - "nodes":[ - { - "url":"http://localhost:14265", - "auth":null, - "disabled":false - } - ] - }"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - wallet_handle - .listen([], |event| { - if let WalletEvent::TransactionProgress(event) = &event.event { - println!("Received event....: {event:?}"); - } - }) - .await; - - // create an account - let response = wallet_handle - .send_message(Message::CreateAccount { - alias: Some("alias".to_string()), - bech32_hrp: None, - }) - .await; - - match response { - Response::Account(account) => { - assert_eq!(account.index, 0); - - // get funds from faucet - let transaction = Message::CallAccountMethod { - account_id: "alias".into(), - method: AccountMethod::RequestFundsFromFaucet { - url: FAUCET_URL.to_string(), - address: *account.public_addresses[0].address(), - }, - }; - - let _response = wallet_handle.send_message(transaction).await; - - tokio::time::sleep(std::time::Duration::from_secs(20)).await; - } - _ => panic!("unexpected response {response:?}"), - } - - // sync the account - let sync_method = Message::CallAccountMethod { - account_id: "alias".into(), - method: AccountMethod::SyncAccount { options: None }, - }; - - let _response = wallet_handle.send_message(sync_method).await; - - // send transaction - let outputs = vec![OutputDto::from( - &BasicOutputBuilder::new_with_amount(1_000_000) - .add_unlock_condition(AddressUnlockCondition::new( - Address::try_from_bech32("rms1qpszqzadsym6wpppd6z037dvlejmjuke7s24hm95s9fg9vpua7vluaw60xu").unwrap(), - )) - .finish_output(TOKEN_SUPPLY) - .unwrap(), - )]; - - let transaction = Message::CallAccountMethod { - account_id: "alias".into(), - method: AccountMethod::SendOutputs { outputs, options: None }, - }; - - let response = wallet_handle.send_message(transaction).await; - - let Response::SentTransaction(_) = response else { - panic!("unexpected response {response:?}"); - }; - - tear_down(storage_path) -} - -#[cfg(feature = "events")] -#[tokio::test] -async fn message_interface_emit_event() -> Result<()> { - let storage_path = "test-storage/message_interface_emit_event"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"father defy final warm illness local fetch property staff boss diamond icon burger people lemon scene silent slender never vacant lab lazy tube tomato"}"#; - let client_options = r#"{"nodes":["http://localhost:14265"]}"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - let event_counter = Arc::new(std::sync::atomic::AtomicUsize::new(0)); - let event_counter_clone = Arc::clone(&event_counter); - wallet_handle - .listen([], move |_name| { - event_counter_clone.fetch_add(1, Ordering::SeqCst); - }) - .await; - - for count in 1..11 { - let response = wallet_handle - .send_message(Message::EmitTestEvent { - event: WalletEvent::ConsolidationRequired, - }) - .await; - match response { - Response::Ok(()) => { - assert_eq!(count, event_counter.load(Ordering::SeqCst)) - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - dbg!(&count); - } - - wallet_handle - .send_message(Message::ClearListeners { event_types: vec![] }) - .await; - wallet_handle - .send_message(Message::EmitTestEvent { - event: WalletEvent::ConsolidationRequired, - }) - .await; - - // Event should not have fired, so we are still on 10 calls - assert_eq!(10, event_counter.load(Ordering::SeqCst)); - - tear_down(storage_path) -} - -#[cfg(feature = "stronghold")] -#[tokio::test] -async fn message_interface_stronghold() -> Result<()> { - iota_stronghold::engine::snapshot::try_set_encrypt_work_factor(0).unwrap(); - - let storage_path = "test-storage/message_interface_stronghold"; - setup(storage_path)?; - let snapshot_path = "test-storage/message_interface_stronghold/message_interface.stronghold"; - let secret_manager = format!("{{\"Stronghold\": {{\"snapshotPath\": \"{snapshot_path}\"}}}}"); - - let client_options = r#"{ - "nodes":[ - { - "url":"http://localhost:14265", - "auth":null, - "disabled":false - } - ] - }"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(&secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - // Set password and store mnemonic - let _ = wallet_handle - .send_message(Message::SetStrongholdPassword { - password: "some_hopefully_secure_password".to_string(), - }) - .await; - let mnemonic = "acoustic trophy damage hint search taste love bicycle foster cradle brown govern endless depend situate athlete pudding blame question genius transfer van random vast".to_string(); - let _ = wallet_handle.send_message(Message::StoreMnemonic { mnemonic }).await; - - // create an account, if password or storing mnemonic failed, it would fail here, because it couldn't generate - // an address - let response = wallet_handle - .send_message(Message::CreateAccount { - alias: None, - bech32_hrp: None, - }) - .await; - - match response { - Response::Account(account) => { - let id = account.index; - println!("Created account index: {id}") - } - _ => panic!("unexpected response {response:?}"), - } - - tear_down(storage_path) -} - -#[tokio::test] -async fn address_conversion_methods() -> Result<()> { - let storage_path = "test-storage/address_conversion_methods"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"acoustic trophy damage hint search taste love bicycle foster cradle brown govern endless depend situate athlete pudding blame question genius transfer van random vast"}"#; - let client_options = r#"{"nodes":["http://localhost:14265"]}"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - let bech32_address = - Bech32Address::try_from_str("rms1qqk4svqpc89lxx89w7vksv9jgjjm2vwnrhad2j3cds9ev4cu434wjapdsxs").unwrap(); - let hex_address = "0x2d583001c1cbf318e577996830b244a5b531d31dfad54a386c0b96571cac6ae9"; - - let response = wallet_handle - .send_message(Message::Bech32ToHex { bech32_address }) - .await; - - match response { - Response::HexAddress(hex) => { - assert_eq!(hex, hex_address); - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - - let response = wallet_handle - .send_message(Message::HexToBech32 { - hex: hex_address.into(), - bech32_hrp: Some(Hrp::from_str_unchecked("rms")), - }) - .await; - - match response { - Response::Bech32Address(bech32) => { - assert_eq!(bech32, bech32_address); - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - - tear_down(storage_path) -} - -#[tokio::test] -async fn message_interface_address_generation() -> Result<()> { - let storage_path = "test-storage/message_interface_address_generation"; - setup(storage_path)?; - - let secret_manager = r#"{"Mnemonic":"acoustic trophy damage hint search taste love bicycle foster cradle brown govern endless depend situate athlete pudding blame question genius transfer van random vast"}"#; - let client_options = r#"{"nodes":["http://localhost:14265"]}"#; - - let options = ManagerOptions { - #[cfg(feature = "storage")] - storage_path: Some(storage_path.to_string()), - client_options: Some(ClientBuilder::new().from_json(client_options).unwrap()), - coin_type: Some(SHIMMER_COIN_TYPE), - secret_manager: Some(serde_json::from_str(secret_manager).unwrap()), - }; - - let wallet_handle = create_message_handler(Some(options)).await.unwrap(); - - let response = wallet_handle - .send_message(Message::GenerateEd25519Address { - account_index: 0, - address_index: 0, - options: None, - bech32_hrp: Some(Hrp::from_str_unchecked("rms")), - }) - .await; - - match response { - Response::Bech32Address(address) => { - assert_eq!( - address.to_string(), - "rms1qzev36lk0gzld0k28fd2fauz26qqzh4hd4cwymlqlv96x7phjxcw6v3ea5a" - ); - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - - let response = wallet_handle - .send_message(Message::GenerateEd25519Address { - account_index: 10, - address_index: 10, - options: Some(GenerateAddressOptions::internal()), - bech32_hrp: Some(Hrp::from_str_unchecked("rms")), - }) - .await; - - match response { - Response::Bech32Address(address) => { - assert_eq!( - address.to_string(), - "rms1qr239vcjzxxdyre8jsek8wrdves9hnnk6mguplvs43cwftt4svaszsvy98h" - ); - } - response_type => panic!("Unexpected response type: {response_type:?}"), - } - - tear_down(storage_path) -} diff --git a/sdk/tests/wallet/mod.rs b/sdk/tests/wallet/mod.rs index 95504a385c..4e192805bd 100644 --- a/sdk/tests/wallet/mod.rs +++ b/sdk/tests/wallet/mod.rs @@ -15,8 +15,6 @@ mod core; mod error; #[cfg(feature = "events")] mod events; -#[cfg(feature = "message_interface")] -mod message_interface; #[cfg(feature = "stronghold")] mod migrate_stronghold_snapshot_v2_to_v3; mod native_tokens;