diff --git a/apps/namadillo/package.json b/apps/namadillo/package.json index 5fdfda8509..33b2573968 100644 --- a/apps/namadillo/package.json +++ b/apps/namadillo/package.json @@ -12,6 +12,7 @@ "@keplr-wallet/types": "^0.12.136", "@namada/chain-registry": "^1.3.0", "@namada/indexer-client": "3.0.1", + "@namada/sdk-multicore": "../../../namada-sdkjs/dist", "@tailwindcss/container-queries": "^0.1.1", "@tanstack/query-core": "^5.40.0", "@tanstack/react-query": "^5.40.0", diff --git a/apps/namadillo/src/hooks/useSdk.tsx b/apps/namadillo/src/hooks/useSdk.tsx index 8e107ef223..d2c8ed1188 100644 --- a/apps/namadillo/src/hooks/useSdk.tsx +++ b/apps/namadillo/src/hooks/useSdk.tsx @@ -1,4 +1,4 @@ -import { Sdk } from "@namada/sdk/web"; +import { Sdk } from "@namada/sdk-multicore"; import { QueryStatus, useQuery } from "@tanstack/react-query"; import { PageLoader } from "App/Common/PageLoader"; import { chainParametersAtom, nativeTokenAddressAtom } from "atoms/chain"; diff --git a/apps/namadillo/src/lib/query.ts b/apps/namadillo/src/lib/query.ts index e50f460f0f..ba58a182ae 100644 --- a/apps/namadillo/src/lib/query.ts +++ b/apps/namadillo/src/lib/query.ts @@ -1,4 +1,4 @@ -import { Sdk } from "@namada/sdk/web"; +import { Sdk } from "@namada/sdk-multicore"; import { Account, AccountType, diff --git a/apps/namadillo/src/utils/sdk.ts b/apps/namadillo/src/utils/sdk.ts index bfd39b78d5..1d7beeff8d 100644 --- a/apps/namadillo/src/utils/sdk.ts +++ b/apps/namadillo/src/utils/sdk.ts @@ -1,11 +1,10 @@ -import initSdk from "@namada/sdk/inline-init"; -import { getSdk, Sdk } from "@namada/sdk/web"; +import { Sdk } from "@namada/sdk-multicore"; +import { initSdk } from "@namada/sdk-multicore/inline"; import { nativeTokenAddressAtom } from "atoms/chain"; import { maspIndexerUrlAtom, rpcUrlAtom } from "atoms/settings"; import { getDefaultStore } from "jotai"; const initializeSdk = async (): Promise => { - const { cryptoMemory } = await initSdk(); const store = getDefaultStore(); const rpcUrl = store.get(rpcUrlAtom); const maspIndexerUrl = store.get(maspIndexerUrlAtom); @@ -15,13 +14,12 @@ const initializeSdk = async (): Promise => { throw "Native token not loaded"; } - const sdk = getSdk( - cryptoMemory, + const sdk = await initSdk({ rpcUrl, maspIndexerUrl, - "", - nativeToken.data - ); + token: nativeToken.data, + }); + return sdk; }; diff --git a/apps/namadillo/src/workers/MaspTxWorker.ts b/apps/namadillo/src/workers/MaspTxWorker.ts index aadbdfaf7f..311b1ad06b 100644 --- a/apps/namadillo/src/workers/MaspTxWorker.ts +++ b/apps/namadillo/src/workers/MaspTxWorker.ts @@ -1,5 +1,5 @@ -import { initMulticore } from "@namada/sdk/inline-init"; -import { getSdk, Sdk } from "@namada/sdk/web"; +import { Sdk } from "@namada/sdk-multicore"; +import { initSdk } from "@namada/sdk-multicore/inline"; import { IbcTransferMsgValue, ShieldedTransferMsgValue, @@ -37,8 +37,7 @@ export class Worker { private sdk: Sdk | undefined; async init(m: Init): Promise { - const { cryptoMemory } = await initMulticore(); - this.sdk = newSdk(cryptoMemory, m.payload); + this.sdk = await newSdk(m.payload); return { type: "init-done", payload: null }; } @@ -287,12 +286,9 @@ async function broadcast( return result; } -function newSdk( - cryptoMemory: WebAssembly.Memory, - payload: Init["payload"] -): Sdk { +async function newSdk(payload: Init["payload"]): Promise { const { rpcUrl, token, maspIndexerUrl } = payload; - return getSdk(cryptoMemory, rpcUrl, maspIndexerUrl, "", token); + return await initSdk({ rpcUrl, maspIndexerUrl, dbName: "", token }); } export const registerTransferHandlers = (): void => { diff --git a/apps/namadillo/tsconfig.json b/apps/namadillo/tsconfig.json index c602a34a56..0036eda83d 100644 --- a/apps/namadillo/tsconfig.json +++ b/apps/namadillo/tsconfig.json @@ -11,7 +11,8 @@ "jsx": "react-jsx", "lib": ["dom", "dom.iterable", "esnext"], "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", + "moduleDetection": "force", "noEmit": false, "noFallthroughCasesInSwitch": true, "resolveJsonModule": true, diff --git a/packages/hooks/src/useSanitizedLocation.ts b/packages/hooks/src/useSanitizedLocation.ts index 4f29e055e3..0140ea974d 100644 --- a/packages/hooks/src/useSanitizedLocation.ts +++ b/packages/hooks/src/useSanitizedLocation.ts @@ -1,12 +1,12 @@ -import { sanitize } from "isomorphic-dompurify"; +import DOMPurify from "isomorphic-dompurify"; import { Location, useLocation } from "react-router-dom"; export const useSanitizedLocation = (): Location => { const location = useLocation(); return { ...location, - pathname: sanitize(location.pathname), - search: sanitize(location.search), - hash: sanitize(location.hash), + pathname: DOMPurify.sanitize(location.pathname), + search: DOMPurify.sanitize(location.search), + hash: DOMPurify.sanitize(location.hash), }; }; diff --git a/packages/hooks/src/useSanitizedParams.ts b/packages/hooks/src/useSanitizedParams.ts index 0032f29609..c6ce5e58ad 100644 --- a/packages/hooks/src/useSanitizedParams.ts +++ b/packages/hooks/src/useSanitizedParams.ts @@ -1,4 +1,4 @@ -import { sanitize } from "isomorphic-dompurify"; +import DOMPurify from "isomorphic-dompurify"; import { Params, useParams } from "react-router-dom"; type ParamsT = Readonly< @@ -12,7 +12,7 @@ export function useSanitizedParams< return Object.entries(params).reduce( (acc, [key, value]) => ({ ...acc, - [key]: typeof value === "string" ? sanitize(value) : value, + [key]: typeof value === "string" ? DOMPurify.sanitize(value) : value, }), {} as ParamsT ); diff --git a/yarn.lock b/yarn.lock index bbe13e1c17..8e01f6a798 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3828,6 +3828,7 @@ __metadata: "@keplr-wallet/types": "npm:^0.12.136" "@namada/chain-registry": "npm:^1.3.0" "@namada/indexer-client": "npm:3.0.1" + "@namada/sdk-multicore": ../../../namada-sdkjs/dist "@playwright/test": "npm:^1.24.1" "@svgr/webpack": "npm:^6.5.1" "@tailwindcss/container-queries": "npm:^0.1.1" @@ -3912,6 +3913,23 @@ __metadata: languageName: unknown linkType: soft +"@namada/sdk-multicore@file:../../../namada-sdkjs/dist::locator=%40namada%2Fnamadillo%40workspace%3Aapps%2Fnamadillo": + version: 1.0.0 + resolution: "@namada/sdk-multicore@file:../../../namada-sdkjs/dist#../../../namada-sdkjs/dist::hash=c3ad56&locator=%40namada%2Fnamadillo%40workspace%3Aapps%2Fnamadillo" + dependencies: + "@cosmjs/encoding": "npm:^0.29.0" + "@dao-xyz/borsh": "npm:^5.1.5" + "@ledgerhq/hw-transport": "npm:^6.31.4" + "@ledgerhq/hw-transport-webusb": "npm:^6.29.4" + "@zondax/ledger-namada": "npm:^2.0.0" + bignumber.js: "npm:^9.1.1" + buffer: "npm:^6.0.3" + semver: "npm:^7.6.3" + slip44: "npm:^3.0.18" + checksum: 10c0/fb87926252bd9af03e3ee15a9abe975657d9f9fe30491aef2355e10dd73c1a0b140ad38161d61c4cc9e4b55cb8b17a362e644e4565b2d0548a291d1b0dcebd1a + languageName: node + linkType: hard + "@namada/sdk@workspace:packages/sdk": version: 0.0.0-use.local resolution: "@namada/sdk@workspace:packages/sdk"