From 4786715cfc019b44e8eb8fff04fb06b7be60fe19 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 12 Aug 2025 17:09:28 +0900 Subject: [PATCH 01/59] o --- packages/web/package.json | 2 + yarn.lock | 119 +++++++++++++++++++++++++++++++++++++- 2 files changed, 119 insertions(+), 2 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 05b04b9bad..3b16e618a2 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,6 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.27", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.28", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 586b7f0107..be17b4d81f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2350,6 +2350,16 @@ "@cosmjs/math" "^0.31.3" "@cosmjs/utils" "^0.31.3" +"@cosmjs/amino@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.33.1.tgz#0d4957b2e755af8392627c0c0f72bee129dcdcf3" + integrity sha512-WfWiBf2EbIWpwKG9AOcsIIkR717SY+JdlXM/SL/bI66BdrhniAF+/ZNis9Vo9HF6lP2UU5XrSmFA4snAvEgdrg== + dependencies: + "@cosmjs/crypto" "^0.33.1" + "@cosmjs/encoding" "^0.33.1" + "@cosmjs/math" "^0.33.1" + "@cosmjs/utils" "^0.33.1" + "@cosmjs/cosmwasm-stargate@0.32.3", "@cosmjs/cosmwasm-stargate@^0.32.3": version "0.32.3" resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.32.3.tgz#26a110a6bb0c15fdeef647e3433bd9553a1acd5f" @@ -2439,6 +2449,19 @@ elliptic "^6.5.4" libsodium-wrappers-sumo "^0.7.11" +"@cosmjs/crypto@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.33.1.tgz#761b1623e4abe8af4cbf7ca92639561314f04c3b" + integrity sha512-U4kGIj/SNBzlb2FGgA0sMR0MapVgJUg8N+oIAiN5+vl4GZ3aefmoL1RDyTrFS/7HrB+M+MtHsxC0tvEu4ic/zA== + dependencies: + "@cosmjs/encoding" "^0.33.1" + "@cosmjs/math" "^0.33.1" + "@cosmjs/utils" "^0.33.1" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.6.1" + libsodium-wrappers-sumo "^0.7.11" + "@cosmjs/encoding@0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" @@ -2493,6 +2516,15 @@ bech32 "^1.1.4" readonly-date "^1.0.0" +"@cosmjs/encoding@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.33.1.tgz#77d6a8e0152c658ecf07b5aee3f5968d9071da50" + integrity sha512-nuNxf29fUcQE14+1p//VVQDwd1iau5lhaW/7uMz7V2AH3GJbFJoJVaKvVyZvdFk+Cnu+s3wCqgq4gJkhRCJfKw== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + "@cosmjs/json-rpc@^0.24.1": version "0.24.1" resolved "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.24.1.tgz" @@ -2600,6 +2632,13 @@ dependencies: bn.js "^5.2.0" +"@cosmjs/math@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.33.1.tgz#04ae4cfdb05f04f1b13e908f9551ca85b13ba4d4" + integrity sha512-ytGkWdKFCPiiBU5eqjHNd59djPpIsOjbr2CkNjlnI1Zmdj+HDkSoD9MUGpz9/RJvRir5IvsXqdE05x8EtoQkJA== + dependencies: + bn.js "^5.2.0" + "@cosmjs/proto-signing@0.32.3", "@cosmjs/proto-signing@^0.32.0", "@cosmjs/proto-signing@^0.32.3": version "0.32.3" resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.32.3.tgz#91ae149b747d18666a6ccc924165b306431f7c0d" @@ -2647,6 +2686,18 @@ cosmjs-types "^0.8.0" long "^4.0.0" +"@cosmjs/proto-signing@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.33.1.tgz#b084eb86410486cff30da7de34a636421db90ca8" + integrity sha512-Sv4W+MxX+0LVnd+2rU4Fw1HRsmMwSVSYULj7pRkij3wnPwUlTVoJjmKFgKz13ooIlfzPrz/dnNjGp/xnmXChFQ== + dependencies: + "@cosmjs/amino" "^0.33.1" + "@cosmjs/crypto" "^0.33.1" + "@cosmjs/encoding" "^0.33.1" + "@cosmjs/math" "^0.33.1" + "@cosmjs/utils" "^0.33.1" + cosmjs-types "^0.9.0" + "@cosmjs/socket@^0.24.1": version "0.24.1" resolved "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.24.1.tgz" @@ -2867,6 +2918,11 @@ resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.32.3.tgz#5dcaee6dd7cc846cdc073e9a7a7f63242f5f7e31" integrity sha512-WCZK4yksj2hBDz4w7xFZQTRZQ/RJhBX26uFHmmQFIcNUUVAihrLO+RerqJgk0dZqC42wstM9pEUQGtPmLcIYvg== +"@cosmjs/utils@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.33.1.tgz#8882cd26172cb5b0b692c179407d6c3904493fed" + integrity sha512-UnLHDY6KMmC+UXf3Ufyh+onE19xzEXjT4VZ504Acmk4PXxqyvG4cCPprlKUFnGUX7f0z8Or9MAOHXBx41uHBcg== + "@cosmology/ast@^1.8.4": version "1.8.4" resolved "https://registry.yarnpkg.com/@cosmology/ast/-/ast-1.8.4.tgz#43d18b9a7066937207109e5135a0f017eb783b0c" @@ -4457,6 +4513,35 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.27", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.24": + version "0.0.6-rc.27" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.27.tgz#f1bc7f560c1af6adb2895485fb1df80240f8345d" + integrity sha512-W6dHlaGuvPMR4WZ26U72p62WYTkOWhL3Y/us5jJGKsQVYlsh0q5G0MCZi+5Zi29EMxM6K8NtzLuItRGboM9UeA== + dependencies: + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.4" + "@keplr-wallet/types" "^0.12.257" + +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.28": + version "0.0.6-rc.28" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.28.tgz#d4a63d9688cecc155c4e6f6f52508f16fe16e7b6" + integrity sha512-jI5J5XJyDhvknAnZHWC5fipliL/QLNcNwGA/0HmSyOlfZeq2iOm4OG0WPQrcZATA7psgPL4NKQJcgDuKiuhSUw== + dependencies: + "@cosmjs/amino" "^0.33.1" + "@cosmjs/proto-signing" "^0.33.1" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.24" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.3" + "@keplr-wallet/common" "^0.12.253" + "@keplr-wallet/simple-fetch" "^0.12.253" + "@keplr-wallet/types" "^0.12.253" + "@noble/curves" "^1.9.2" + "@noble/hashes" "^1.8.0" + bech32 "^2.0.0" + +"@keplr-ewallet/stdlib-js@^0.0.2-rc.3", "@keplr-ewallet/stdlib-js@^0.0.2-rc.4": + version "0.0.2-rc.4" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.4.tgz#cc70fd9f2bdea5ee00040ff5ca3d349dc6bd4a0f" + integrity sha512-guGfcvGDmLV62S3e59BwAblCg813NUHTBNxEeXIcGRoXQF9yS6bIsMactyo6Jo9zNpmZWZVcIe+KXNhUrLZTbQ== + "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/background/-/background-0.10.24-ibc.go.v7.hot.fix.tgz" @@ -4492,7 +4577,7 @@ secretjs "^0.17.0" utility-types "^3.10.0" -"@keplr-wallet/common@0.10.24-ibc.go.v7.hot.fix": +"@keplr-wallet/common@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/common@^0.12.253": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/common/-/common-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-yxgMFyBm32noKKuH8grKmOOvm6MnFfBOnxu3H6mSXAiZbxP8cMqw5ZOewDCLgQtLA6UCctFjBkn7kpDte+Dgiw== @@ -4678,7 +4763,12 @@ resolved "https://registry.npmjs.org/@keplr-wallet/router/-/router-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-bt9weexlbhlh8KsOvbDrvHJ8jtUXrXgB2LX+hEAwjclHQt7PMUhx9a5z0Obd19/ive5G/1M7/ccdPIWxRBpKQw== -"@keplr-wallet/types@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/types@0.12.107", "@keplr-wallet/types@0.12.12", "@keplr-wallet/types@0.12.96", "@keplr-wallet/types@^0.12.95": +"@keplr-wallet/simple-fetch@^0.12.253": + version "0.12.263" + resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.263.tgz#b0c59c6e699de5e1839ac364ac50e579866b135f" + integrity sha512-ENgzTbj287lhcfrCXbcx2m3DQuaNKKzsoFC+iUC157hFw9l3C2+vR+4w4VOiHVUsY13U2zyKxgeT6Rm9KPff3g== + +"@keplr-wallet/types@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/types@0.12.107", "@keplr-wallet/types@0.12.12", "@keplr-wallet/types@0.12.96", "@keplr-wallet/types@^0.12.253", "@keplr-wallet/types@^0.12.257", "@keplr-wallet/types@^0.12.95": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/types/-/types-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-3KUjDMUCscYkvKnC+JsJh9+X0NHlsvBgAghP/uy2p5OGtiULqPBAjWiO+hnBbhis3ZEkzGcCROnnBOoccKd3CQ== @@ -5278,6 +5368,13 @@ dependencies: "@noble/hashes" "1.7.1" +"@noble/curves@^1.9.2": + version "1.9.6" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.6.tgz#b45ebedca85bb75782f6be7e7f120f0c423c99e0" + integrity sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA== + dependencies: + "@noble/hashes" "1.8.0" + "@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": version "1.3.3" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" @@ -5293,6 +5390,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== +"@noble/hashes@1.8.0", "@noble/hashes@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== + "@noble/hashes@^1", "@noble/hashes@^1.0.0": version "1.1.2" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" @@ -11883,6 +11985,19 @@ elliptic@^6.5.7: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emittery@^0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" From ed6ac901cbbd606d2130dc58681ecd62bfc7e95f Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 04:18:39 +0900 Subject: [PATCH 02/59] Remove ewallet connect button and clean up integration --- packages/web/components/navbar/index.tsx | 5 ++- packages/web/config/wallet-registry.ts | 24 +++++++++++ .../integrations/ewallet/ewallet-wallet.ts | 9 ++++ packages/web/package.json | 4 +- yarn.lock | 43 ++++++++----------- 5 files changed, 58 insertions(+), 27 deletions(-) create mode 100644 packages/web/integrations/ewallet/ewallet-wallet.ts diff --git a/packages/web/components/navbar/index.tsx b/packages/web/components/navbar/index.tsx index 3a7223f92a..f0c04d7444 100644 --- a/packages/web/components/navbar/index.tsx +++ b/packages/web/components/navbar/index.tsx @@ -361,7 +361,10 @@ const WalletInfo: FunctionComponent< logEvent([EventName.Topnav.connectWalletClicked]); onOpenWalletSelect({ walletOptions: [ - { walletType: "cosmos", chainId: accountStore.osmosisChainId }, + { + walletType: "cosmos", + chainId: accountStore.osmosisChainId, + }, ], }); }} diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 6b610e8d84..975278d225 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -4,10 +4,34 @@ import { WalletConnectionInProgressError, } from "@osmosis-labs/stores"; +import { EWalletWallet } from "~/integrations/ewallet/ewallet-wallet"; + import { MainnetChainIds } from "./generated/chain-list"; import { CosmosKitWalletList } from "./generated/cosmos-kit-wallet-list"; export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ + { + name: "keplr-ewallet", + prettyName: "Keplr EWallet", + logo: "/wallets/keplr.svg", + mode: "extension", + mobileDisabled: false, + rejectMessage: { + source: "Request rejected", + }, + downloads: [ + { + device: "desktop", + browser: "chrome", + link: "https://wallet.keplr.app", + }, + ], + lazyInstall: () => Promise.resolve(EWalletWallet), + windowPropertyName: "keplr", + stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", + governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", + features: ["notifications"], + }, { ...CosmosKitWalletList["keplr-extension"], mobileDisabled: false, diff --git a/packages/web/integrations/ewallet/ewallet-wallet.ts b/packages/web/integrations/ewallet/ewallet-wallet.ts new file mode 100644 index 0000000000..586f920af7 --- /dev/null +++ b/packages/web/integrations/ewallet/ewallet-wallet.ts @@ -0,0 +1,9 @@ +import { ChainRecord, ChainWalletBase, Wallet } from "@cosmos-kit/core"; + +export class EWalletWallet extends ChainWalletBase { + constructor(walletInfo: Wallet, chainInfo: ChainRecord) { + super(walletInfo, chainInfo); + } + + async initClient() {} +} diff --git a/packages/web/package.json b/packages/web/package.json index 3b16e618a2..8f2e4f7b3c 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.27", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.28", + "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.34", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.42", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index be17b4d81f..01c7bdb8f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,34 +4513,34 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.27", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.24": - version "0.0.6-rc.27" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.27.tgz#f1bc7f560c1af6adb2895485fb1df80240f8345d" - integrity sha512-W6dHlaGuvPMR4WZ26U72p62WYTkOWhL3Y/us5jJGKsQVYlsh0q5G0MCZi+5Zi29EMxM6K8NtzLuItRGboM9UeA== +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.34": + version "0.0.6-rc.34" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.34.tgz#78b06bd37c27967d9506e3b6b7972bd275c5313f" + integrity sha512-f6QzW6l4K1u0rE38h+30UNM1/MMlzEfNKbHaLTUaLwE8PJUlGlO8/Kq91gE5CmR6hRnCS6SlF3i8bkH15j76dw== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.4" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.28": - version "0.0.6-rc.28" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.28.tgz#d4a63d9688cecc155c4e6f6f52508f16fe16e7b6" - integrity sha512-jI5J5XJyDhvknAnZHWC5fipliL/QLNcNwGA/0HmSyOlfZeq2iOm4OG0WPQrcZATA7psgPL4NKQJcgDuKiuhSUw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.42": + version "0.0.6-rc.42" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.42.tgz#6c5c1ad9a827bd2ae4501a8cbc2edea9da43979a" + integrity sha512-Ni2aCi5rBrYhT7zMeJjZPi/6FOI2HSu5cT1nHJPzm9AwRqfP8G+MSx3/PdFAd9w388866kOGXACo+34ZhsPtmw== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.24" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.3" - "@keplr-wallet/common" "^0.12.253" - "@keplr-wallet/simple-fetch" "^0.12.253" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.34" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" + "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" "@noble/hashes" "^1.8.0" bech32 "^2.0.0" + buffer "^6.0.3" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.3", "@keplr-ewallet/stdlib-js@^0.0.2-rc.4": - version "0.0.2-rc.4" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.4.tgz#cc70fd9f2bdea5ee00040ff5ca3d349dc6bd4a0f" - integrity sha512-guGfcvGDmLV62S3e59BwAblCg813NUHTBNxEeXIcGRoXQF9yS6bIsMactyo6Jo9zNpmZWZVcIe+KXNhUrLZTbQ== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.5": + version "0.0.2-rc.5" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.5.tgz#40c2850099760c7d23140de961a7c4bf808a7808" + integrity sha512-O7q98kM2Vx/CZQF4e8kZCHAp6p5ItNkjh4Jd33AVUl6ngT3AAeYPeUWn7FKUK4KBYSC9Lk/y0JbRzvGt3pMrtA== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" @@ -4577,7 +4577,7 @@ secretjs "^0.17.0" utility-types "^3.10.0" -"@keplr-wallet/common@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/common@^0.12.253": +"@keplr-wallet/common@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/common/-/common-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-yxgMFyBm32noKKuH8grKmOOvm6MnFfBOnxu3H6mSXAiZbxP8cMqw5ZOewDCLgQtLA6UCctFjBkn7kpDte+Dgiw== @@ -4675,7 +4675,7 @@ resolved "https://registry.npmjs.org/@keplr-wallet/popup/-/popup-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-Q/teyV6vdmpH3SySGd1xrNc/mVGK/tCP5vFEG2I3Y4FDCSV1yD7vcVgUy+tN19Z8EM3goR57V2QlarSOidtdjQ== -"@keplr-wallet/proto-types@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/proto-types@0.12.12": +"@keplr-wallet/proto-types@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/proto-types@0.12.12", "@keplr-wallet/proto-types@^0.12.253": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/proto-types/-/proto-types-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-fLUJEtDadYJIMBzhMSZpEDTvXqk8wW68TwnUCRAcAooEQEtXPwY5gfo3hcekQEiCYtIu8XqzJ9fg01rp2Z4d3w== @@ -4763,11 +4763,6 @@ resolved "https://registry.npmjs.org/@keplr-wallet/router/-/router-0.10.24-ibc.go.v7.hot.fix.tgz" integrity sha512-bt9weexlbhlh8KsOvbDrvHJ8jtUXrXgB2LX+hEAwjclHQt7PMUhx9a5z0Obd19/ive5G/1M7/ccdPIWxRBpKQw== -"@keplr-wallet/simple-fetch@^0.12.253": - version "0.12.263" - resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.263.tgz#b0c59c6e699de5e1839ac364ac50e579866b135f" - integrity sha512-ENgzTbj287lhcfrCXbcx2m3DQuaNKKzsoFC+iUC157hFw9l3C2+vR+4w4VOiHVUsY13U2zyKxgeT6Rm9KPff3g== - "@keplr-wallet/types@0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/types@0.12.107", "@keplr-wallet/types@0.12.12", "@keplr-wallet/types@0.12.96", "@keplr-wallet/types@^0.12.253", "@keplr-wallet/types@^0.12.257", "@keplr-wallet/types@^0.12.95": version "0.10.24-ibc.go.v7.hot.fix" resolved "https://registry.npmjs.org/@keplr-wallet/types/-/types-0.10.24-ibc.go.v7.hot.fix.tgz" From c0c215b3baed624073872d2f85ca744dbc75808a Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 16:01:06 +0900 Subject: [PATCH 03/59] o --- packages/web/package.json | 4 ++-- yarn.lock | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 8f2e4f7b3c..3e7e40409d 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.34", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.42", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.35", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 01c7bdb8f5..af66c48df3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,22 +4513,22 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.34": - version "0.0.6-rc.34" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.34.tgz#78b06bd37c27967d9506e3b6b7972bd275c5313f" - integrity sha512-f6QzW6l4K1u0rE38h+30UNM1/MMlzEfNKbHaLTUaLwE8PJUlGlO8/Kq91gE5CmR6hRnCS6SlF3i8bkH15j76dw== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.35", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.35": + version "0.0.6-rc.35" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.35.tgz#bba64e1a06b22c01470a959afdd8bcb32710857b" + integrity sha512-EoGSO4WZrBSHv9cmc41oVVzuK6Ttx7KhbEWbi/OnzPWZWR02IoYZDU8crx+3kpLp1rc8HcLrwACFjfCJJRXwvQ== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.42": - version "0.0.6-rc.42" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.42.tgz#6c5c1ad9a827bd2ae4501a8cbc2edea9da43979a" - integrity sha512-Ni2aCi5rBrYhT7zMeJjZPi/6FOI2HSu5cT1nHJPzm9AwRqfP8G+MSx3/PdFAd9w388866kOGXACo+34ZhsPtmw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": + version "0.0.6-rc.43" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" + integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.34" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.35" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" From 73ff1dc9b7175b21ff0480ca6c893fbccc399797 Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 17:48:02 +0900 Subject: [PATCH 04/59] Revert "o" This reverts commit c0c215b3baed624073872d2f85ca744dbc75808a. --- packages/web/package.json | 4 ++-- yarn.lock | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 3e7e40409d..8f2e4f7b3c 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.35", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", + "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.34", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.42", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index af66c48df3..01c7bdb8f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,22 +4513,22 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.35", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.35": - version "0.0.6-rc.35" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.35.tgz#bba64e1a06b22c01470a959afdd8bcb32710857b" - integrity sha512-EoGSO4WZrBSHv9cmc41oVVzuK6Ttx7KhbEWbi/OnzPWZWR02IoYZDU8crx+3kpLp1rc8HcLrwACFjfCJJRXwvQ== +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.34": + version "0.0.6-rc.34" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.34.tgz#78b06bd37c27967d9506e3b6b7972bd275c5313f" + integrity sha512-f6QzW6l4K1u0rE38h+30UNM1/MMlzEfNKbHaLTUaLwE8PJUlGlO8/Kq91gE5CmR6hRnCS6SlF3i8bkH15j76dw== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": - version "0.0.6-rc.43" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" - integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.42": + version "0.0.6-rc.42" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.42.tgz#6c5c1ad9a827bd2ae4501a8cbc2edea9da43979a" + integrity sha512-Ni2aCi5rBrYhT7zMeJjZPi/6FOI2HSu5cT1nHJPzm9AwRqfP8G+MSx3/PdFAd9w388866kOGXACo+34ZhsPtmw== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.35" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.34" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" From 203025c7128656346529f78d1cd44b78c03d34ce Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 19:43:16 +0900 Subject: [PATCH 05/59] o --- packages/web/config/wallet-registry.ts | 11 +- .../web/integrations/ewallet/chain-wallet.ts | 118 ++++++++++++++++++ .../integrations/ewallet/ewallet-wallet.ts | 9 -- packages/web/integrations/ewallet/index.ts | 5 + .../web/integrations/ewallet/main-wallet.ts | 58 +++++++++ packages/web/package.json | 4 +- yarn.lock | 18 +-- 7 files changed, 194 insertions(+), 29 deletions(-) create mode 100644 packages/web/integrations/ewallet/chain-wallet.ts delete mode 100644 packages/web/integrations/ewallet/ewallet-wallet.ts create mode 100644 packages/web/integrations/ewallet/index.ts create mode 100644 packages/web/integrations/ewallet/main-wallet.ts diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 975278d225..0abb3ca4cd 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -4,7 +4,7 @@ import { WalletConnectionInProgressError, } from "@osmosis-labs/stores"; -import { EWalletWallet } from "~/integrations/ewallet/ewallet-wallet"; +import { EWalletMainWallet } from "~/integrations/ewallet"; import { MainnetChainIds } from "./generated/chain-list"; import { CosmosKitWalletList } from "./generated/cosmos-kit-wallet-list"; @@ -19,14 +19,7 @@ export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ rejectMessage: { source: "Request rejected", }, - downloads: [ - { - device: "desktop", - browser: "chrome", - link: "https://wallet.keplr.app", - }, - ], - lazyInstall: () => Promise.resolve(EWalletWallet), + lazyInstall: () => Promise.resolve(EWalletMainWallet), windowPropertyName: "keplr", stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", diff --git a/packages/web/integrations/ewallet/chain-wallet.ts b/packages/web/integrations/ewallet/chain-wallet.ts new file mode 100644 index 0000000000..7eaa0980f2 --- /dev/null +++ b/packages/web/integrations/ewallet/chain-wallet.ts @@ -0,0 +1,118 @@ +import { ChainRecord, ChainWalletBase, Wallet } from "@cosmos-kit/core"; +import type { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; + +import { EWalletMainWallet } from "./main-wallet"; + +export class EWalletChainWallet extends ChainWalletBase { + constructor(walletInfo: Wallet, chainInfo: ChainRecord) { + super(walletInfo, chainInfo); + } + + async initClient(): Promise { + if (this.client) { + return; // Already initialized + } + + try { + // Get the main wallet instance + const mainWallet = this.mainWallet as EWalletMainWallet; + + // Ensure main wallet is initialized + await mainWallet.initClient(); + + // Get the cosmos ewallet instance + const cosmosEWallet = mainWallet.getCosmosEWallet(); + + if (!cosmosEWallet) { + throw new Error( + "CosmosEWallet instance not available from main wallet" + ); + } + + this.logger?.info("[EWallet] Creating chain wallet client..."); + + // Create a Keplr-compatible wrapper + const keplrCompatibleWallet = + this.createKeplrCompatibleInterface(cosmosEWallet); + + this.logger?.info("[EWallet] Chain wallet client created successfully"); + + this.initClientDone(keplrCompatibleWallet); + } catch (error) { + const err = error as Error; + this.logger?.error("[EWallet] Chain wallet initialization failed:", err); + this.initClientError(err); + } + } + + private createKeplrCompatibleInterface(cosmosEWallet: CosmosEWallet): any { + // Create a Keplr-compatible interface that wraps the CosmosEWallet + return { + // Core wallet info + version: "ewallet-0.0.6-rc.43", + mode: "ewallet", + + // Enable chain support + enable: (chainId: string) => cosmosEWallet.enable(chainId), + + // Account management + getKey: (chainId: string) => cosmosEWallet.getKey(chainId), + getAccounts: () => cosmosEWallet.getAccounts(), + getKeysSettled: (chainIds: string[]) => + cosmosEWallet.getKeysSettled(chainIds), + + // Signing operations + signAmino: ( + chainId: string, + signer: string, + signDoc: any, + signOptions?: any + ) => cosmosEWallet.signAmino(chainId, signer, signDoc, signOptions), + signDirect: ( + chainId: string, + signer: string, + signDoc: any, + signOptions?: any + ) => cosmosEWallet.signDirect(chainId, signer, signDoc, signOptions), + signArbitrary: ( + chainId: string, + signer: string, + data: string | Uint8Array + ) => cosmosEWallet.signArbitrary(chainId, signer, data), + verifyArbitrary: ( + chainId: string, + signer: string, + data: string | Uint8Array, + signature: any + ) => cosmosEWallet.verifyArbitrary(chainId, signer, data, signature), + + // Offline signers + getOfflineSigner: (chainId: string, signOptions?: any) => + cosmosEWallet.getOfflineSigner(chainId, signOptions), + getOfflineSignerOnlyAmino: (chainId: string, signOptions?: any) => + cosmosEWallet.getOfflineSignerOnlyAmino(chainId, signOptions), + getOfflineSignerAuto: (chainId: string, signOptions?: any) => + cosmosEWallet.getOfflineSignerAuto(chainId, signOptions), + + // Transaction sending + sendTx: ( + chainId: string, + tx: unknown, + mode: "async" | "sync" | "block", + options?: any + ) => cosmosEWallet.sendTx(chainId, tx, mode, options), + + // Chain management + experimentalSuggestChain: (chainInfo: any) => + cosmosEWallet.experimentalSuggestChain(chainInfo), + + // EWallet specific methods + getCosmosChainInfo: () => cosmosEWallet.getCosmosChainInfo(), + getPublicKey: () => cosmosEWallet.getPublicKey(), + + // Additional properties for compatibility + isEWallet: true, + _cosmosEWallet: cosmosEWallet, // Keep reference to original ewallet instance + }; + } +} diff --git a/packages/web/integrations/ewallet/ewallet-wallet.ts b/packages/web/integrations/ewallet/ewallet-wallet.ts deleted file mode 100644 index 586f920af7..0000000000 --- a/packages/web/integrations/ewallet/ewallet-wallet.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ChainRecord, ChainWalletBase, Wallet } from "@cosmos-kit/core"; - -export class EWalletWallet extends ChainWalletBase { - constructor(walletInfo: Wallet, chainInfo: ChainRecord) { - super(walletInfo, chainInfo); - } - - async initClient() {} -} diff --git a/packages/web/integrations/ewallet/index.ts b/packages/web/integrations/ewallet/index.ts new file mode 100644 index 0000000000..438e7a6102 --- /dev/null +++ b/packages/web/integrations/ewallet/index.ts @@ -0,0 +1,5 @@ +export { EWalletChainWallet } from "./chain-wallet"; +export { EWalletMainWallet } from "./main-wallet"; + +// For backward compatibility +export { EWalletMainWallet as EWalletWallet } from "./main-wallet"; diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts new file mode 100644 index 0000000000..50a530c455 --- /dev/null +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -0,0 +1,58 @@ +import { Wallet } from "@cosmos-kit/core"; +import { MainWalletBase } from "@cosmos-kit/core"; +import { + type CosmosEWallet, + initCosmosEWallet, +} from "@keplr-ewallet/ewallet-sdk-cosmos"; + +import { EWalletChainWallet } from "./chain-wallet"; + +export class EWalletMainWallet extends MainWalletBase { + private cosmosEWallet: CosmosEWallet | null = null; + + constructor(walletInfo: Wallet) { + super(walletInfo, EWalletChainWallet); + } + + async initClient(): Promise { + if (typeof window === "undefined") { + throw new Error("EWallet is only available in browser environment"); + } + + if (this.cosmosEWallet) { + return; // Already initialized + } + + try { + this.logger?.info("[EWallet] Starting main wallet initialization...", { + has_api_key: + "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", + }); + + // Initialize the Cosmos EWallet with API key + const cosmosEWallet = await initCosmosEWallet({ + api_key: + "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", + }); + + if (!cosmosEWallet) { + throw new Error( + "Failed to initialize CosmosEWallet - initialization returned null" + ); + } + + this.cosmosEWallet = cosmosEWallet; + this.logger?.info("[EWallet] Main wallet initialized successfully"); + } catch (error) { + const err = error as Error; + this.logger?.error("[EWallet] Main wallet initialization failed:", err); + throw new Error( + `EWallet main wallet initialization failed: ${err.message}` + ); + } + } + + public getCosmosEWallet(): CosmosEWallet | null { + return this.cosmosEWallet; + } +} diff --git a/packages/web/package.json b/packages/web/package.json index 8f2e4f7b3c..a707e3c24a 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.34", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.42", + "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.35", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 01c7bdb8f5..462271361a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,22 +4513,22 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.34": - version "0.0.6-rc.34" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.34.tgz#78b06bd37c27967d9506e3b6b7972bd275c5313f" - integrity sha512-f6QzW6l4K1u0rE38h+30UNM1/MMlzEfNKbHaLTUaLwE8PJUlGlO8/Kq91gE5CmR6hRnCS6SlF3i8bkH15j76dw== +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.35": + version "0.0.6-rc.35" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.35.tgz#bba64e1a06b22c01470a959afdd8bcb32710857b" + integrity sha512-EoGSO4WZrBSHv9cmc41oVVzuK6Ttx7KhbEWbi/OnzPWZWR02IoYZDU8crx+3kpLp1rc8HcLrwACFjfCJJRXwvQ== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.42": - version "0.0.6-rc.42" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.42.tgz#6c5c1ad9a827bd2ae4501a8cbc2edea9da43979a" - integrity sha512-Ni2aCi5rBrYhT7zMeJjZPi/6FOI2HSu5cT1nHJPzm9AwRqfP8G+MSx3/PdFAd9w388866kOGXACo+34ZhsPtmw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": + version "0.0.6-rc.43" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" + integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.34" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.35" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" From ba62e2ace7b9d7290deb917a67e8a19c57f757b1 Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 23:22:27 +0900 Subject: [PATCH 06/59] o --- packages/web/package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index a707e3c24a..d4ef153c27 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.35", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.35", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.46", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 462271361a..edbfc5b019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4521,10 +4521,10 @@ "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": - version "0.0.6-rc.43" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" - integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.46": + version "0.0.6-rc.46" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.46.tgz#124155a78164f00528a9813d84cc091c23d09a4a" + integrity sha512-PBdMBAU9RL8hU2SohvT+9mY0uyAOpaKJTybZuu/cbjgbgbOWbGOu3hxCWDuSdI/OOX8mNPqUlUrNvg81eq+XFQ== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" From d8fb6917f0364d4b61c1526831be15b9f12799d3 Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 23:30:04 +0900 Subject: [PATCH 07/59] Revert "o" This reverts commit ba62e2ace7b9d7290deb917a67e8a19c57f757b1. --- packages/web/package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index d4ef153c27..a707e3c24a 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.35", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.46", + "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.35", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index edbfc5b019..462271361a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4521,10 +4521,10 @@ "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.46": - version "0.0.6-rc.46" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.46.tgz#124155a78164f00528a9813d84cc091c23d09a4a" - integrity sha512-PBdMBAU9RL8hU2SohvT+9mY0uyAOpaKJTybZuu/cbjgbgbOWbGOu3hxCWDuSdI/OOX8mNPqUlUrNvg81eq+XFQ== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": + version "0.0.6-rc.43" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" + integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" From ad9c5eea5372a14e1b093ef1524f349416dc989a Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 13 Aug 2025 23:58:24 +0900 Subject: [PATCH 08/59] o --- .../web/integrations/ewallet/main-wallet.ts | 4 ++-- packages/web/package.json | 4 ++-- yarn.lock | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 50a530c455..e86f71ac85 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -35,13 +35,13 @@ export class EWalletMainWallet extends MainWalletBase { "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", }); - if (!cosmosEWallet) { + if (!cosmosEWallet.success) { throw new Error( "Failed to initialize CosmosEWallet - initialization returned null" ); } - this.cosmosEWallet = cosmosEWallet; + this.cosmosEWallet = cosmosEWallet.data; this.logger?.info("[EWallet] Main wallet initialized successfully"); } catch (error) { const err = error as Error; diff --git a/packages/web/package.json b/packages/web/package.json index a707e3c24a..bec31bf2d4 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "^0.0.6-rc.35", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.43", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.36", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.47", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 462271361a..35399eef6b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,22 +4513,22 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.35": - version "0.0.6-rc.35" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.35.tgz#bba64e1a06b22c01470a959afdd8bcb32710857b" - integrity sha512-EoGSO4WZrBSHv9cmc41oVVzuK6Ttx7KhbEWbi/OnzPWZWR02IoYZDU8crx+3kpLp1rc8HcLrwACFjfCJJRXwvQ== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.36", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.36": + version "0.0.6-rc.36" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.36.tgz#f40ce5d83e61e6717ef2bb847eb588df7bdc488e" + integrity sha512-1+qOPhSyTiuSDWf3pNviFrw4dPm6neE3ogZZoTwib3Z7Ce6zyqQCOAdVFWRQqyqTZusm8409rJTO7igI1okguA== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.43": - version "0.0.6-rc.43" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.43.tgz#ba6faa5255e4db3dfdac11d7b0ab4462ae167b33" - integrity sha512-J3wWMZtXFZV4y5HLV4DRNLxQqwlZtgq5wZg3H3u806+IF35NeYS+3QZBzz5ZZCnNpfHoznO4uLg/VA4NoPSDtA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.47": + version "0.0.6-rc.47" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.47.tgz#1646fdfdad84d86570dc8e4d212b4ebac9102699" + integrity sha512-lYLWtOb+89kmtw9tVZF6Vbs0gFT+Px11NiatoV2gpNCMZc7G7YMLhD5dPSYgdJKYoNuuISHZT8+kzLX/9qJKSg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.35" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.36" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" From b3e6c89cb0c7c9861f3ca6f692db3c19179cea47 Mon Sep 17 00:00:00 2001 From: devmosis Date: Thu, 14 Aug 2025 17:36:05 +0900 Subject: [PATCH 09/59] o --- packages/web/package.json | 4 ++-- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index bec31bf2d4..15012a369c 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.36", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.47", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.38", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.49", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 35399eef6b..97fc02188e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.36", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.36": - version "0.0.6-rc.36" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.36.tgz#f40ce5d83e61e6717ef2bb847eb588df7bdc488e" - integrity sha512-1+qOPhSyTiuSDWf3pNviFrw4dPm6neE3ogZZoTwib3Z7Ce6zyqQCOAdVFWRQqyqTZusm8409rJTO7igI1okguA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.38", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.38": + version "0.0.6-rc.38" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.38.tgz#1a6787b1477e7896e854082661ecf2022c12d98b" + integrity sha512-xy9sJurewx+Z/1H7bjahxwP721AiDP5XPqjIuMRMqcifhwEyTXAK8G4xJgLldc8CPhnFVmkCesEHQTgjMwBBjA== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.47": - version "0.0.6-rc.47" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.47.tgz#1646fdfdad84d86570dc8e4d212b4ebac9102699" - integrity sha512-lYLWtOb+89kmtw9tVZF6Vbs0gFT+Px11NiatoV2gpNCMZc7G7YMLhD5dPSYgdJKYoNuuISHZT8+kzLX/9qJKSg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.49": + version "0.0.6-rc.49" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.49.tgz#9eccdf82f49e92c412958d980b55b18308343b56" + integrity sha512-YZ6s8tHBPufy5DpdbnueXniuxWF/hGZEZMfoZEalEiPT3UOA1hQefENxCp+9uh+2P2E3t1lbd02ElFeFpT1vUg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.36" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.5" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.38" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4537,10 +4537,10 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.5": - version "0.0.2-rc.5" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.5.tgz#40c2850099760c7d23140de961a7c4bf808a7808" - integrity sha512-O7q98kM2Vx/CZQF4e8kZCHAp6p5ItNkjh4Jd33AVUl6ngT3AAeYPeUWn7FKUK4KBYSC9Lk/y0JbRzvGt3pMrtA== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.6": + version "0.0.2-rc.6" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.6.tgz#9b748022cb9cead6d0de24d51dd754d8e1b6673d" + integrity sha512-MrP9fDyffgsdZZzCk+dg0JzcnjAne2F2OiFMgP3b+XDfDORJFMe8R07P+CCzB1VFhUMMpvRcV/PvFPMq44Pqbg== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From 0fa8409bf7cc68ce2e3c12f14fd90b75d9d387f3 Mon Sep 17 00:00:00 2001 From: devmosis Date: Thu, 14 Aug 2025 20:20:46 +0900 Subject: [PATCH 10/59] o --- .../web/integrations/ewallet/chain-wallet.ts | 425 ++++++++++++++---- 1 file changed, 334 insertions(+), 91 deletions(-) diff --git a/packages/web/integrations/ewallet/chain-wallet.ts b/packages/web/integrations/ewallet/chain-wallet.ts index 7eaa0980f2..2d8e4dc04e 100644 --- a/packages/web/integrations/ewallet/chain-wallet.ts +++ b/packages/web/integrations/ewallet/chain-wallet.ts @@ -1,118 +1,361 @@ -import { ChainRecord, ChainWalletBase, Wallet } from "@cosmos-kit/core"; +import { AccountData, OfflineAminoSigner } from "@cosmjs/amino"; +import { OfflineDirectSigner } from "@cosmjs/proto-signing"; +import { ChainRecord, ChainWalletBase, State, Wallet } from "@cosmos-kit/core"; import type { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; import { EWalletMainWallet } from "./main-wallet"; export class EWalletChainWallet extends ChainWalletBase { + mainWallet!: EWalletMainWallet; + private _accountData: AccountData | undefined; + constructor(walletInfo: Wallet, chainInfo: ChainRecord) { super(walletInfo, chainInfo); } - async initClient(): Promise { - if (this.client) { - return; // Already initialized - } + get address() { + return this._accountData?.address; + } - try { - // Get the main wallet instance - const mainWallet = this.mainWallet as EWalletMainWallet; + get username() { + return undefined; + } + + connect = async (_sync?: boolean) => { + console.log(`[EWallet] Connect called for chain: ${this.chainId}`); - // Ensure main wallet is initialized - await mainWallet.initClient(); + try { + this.setState(State.Pending); - // Get the cosmos ewallet instance - const cosmosEWallet = mainWallet.getCosmosEWallet(); + // Ensure mainWallet is properly initialized + await this.mainWallet.initClient(); + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); if (!cosmosEWallet) { - throw new Error( - "CosmosEWallet instance not available from main wallet" - ); + throw new Error("Cosmos EWallet not available"); } - this.logger?.info("[EWallet] Creating chain wallet client..."); + // Check login status and handle login if needed + await this.ensureLogin(cosmosEWallet); - // Create a Keplr-compatible wrapper - const keplrCompatibleWallet = - this.createKeplrCompatibleInterface(cosmosEWallet); + // Get account information for this chain + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + // Get account key + const account = await cosmosEWallet.getKey(chainId); - this.logger?.info("[EWallet] Chain wallet client created successfully"); + this._accountData = { + address: account.bech32Address, + algo: account.algo as any, + pubkey: account.pubKey, + }; - this.initClientDone(keplrCompatibleWallet); + console.log( + `[EWallet] Connected successfully to chain: ${chainId}, address: ${account.bech32Address}` + ); + this.setState(State.Done); } catch (error) { - const err = error as Error; - this.logger?.error("[EWallet] Chain wallet initialization failed:", err); - this.initClientError(err); + console.error(`[EWallet] Connect failed:`, error); + this.setState(State.Error); + throw error; + } + }; + + private async ensureLogin(cosmosEWallet: CosmosEWallet): Promise { + console.log("[EWallet] Checking login status..."); + + // 현재 로그인 상태 확인 + const publicKey = await cosmosEWallet.getPublicKey(); + + if (!publicKey) { + console.log("[EWallet] User not logged in, triggering login..."); + + // Get core EWallet for login + const coreEWallet = (cosmosEWallet as any).eWallet; + if (coreEWallet && typeof coreEWallet.signIn === "function") { + await coreEWallet.signIn("google"); + console.log("[EWallet] Login successful"); + + // 로그인 후 다시 확인 + const newPublicKey = await cosmosEWallet.getPublicKey(); + if (!newPublicKey) { + throw new Error("Login verification failed"); + } + } else { + throw new Error("Please login to EWallet first"); + } + } else { + console.log("[EWallet] User already logged in"); + } + } + + async getAccount() { + if (!this._accountData) { + await this.connect(); + } + return this._accountData; + } + + async signAmino(signerAddress: string, signDoc: any, signOptions?: any) { + console.log(`[EWallet] SignAmino called for address: ${signerAddress}`); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return await cosmosEWallet.signAmino( + chainId, + signerAddress, + signDoc, + signOptions + ); + } + + async signDirect(signerAddress: string, signDoc: any, signOptions?: any) { + console.log(`[EWallet] SignDirect called for address: ${signerAddress}`); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return await cosmosEWallet.signDirect( + chainId, + signerAddress, + signDoc, + signOptions + ); + } + + async signArbitrary(signerAddress: string, data: string | Uint8Array) { + console.log(`[EWallet] SignArbitrary called for address: ${signerAddress}`); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return await cosmosEWallet.signArbitrary(chainId, signerAddress, data); + } + + async verifyArbitrary( + signerAddress: string, + data: string | Uint8Array, + signature: any + ): Promise { + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return (await cosmosEWallet.verifyArbitrary( + chainId, + signerAddress, + data, + signature + )) as boolean; + } + + on() { + // Event handling placeholder } - private createKeplrCompatibleInterface(cosmosEWallet: CosmosEWallet): any { - // Create a Keplr-compatible interface that wraps the CosmosEWallet + off() { + // Event handling placeholder + } + + removeAllListeners() { + // Event handling placeholder + } + + async initOfflineSigner(): Promise { + console.log("[EWallet] InitOfflineSigner called"); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + // Get the offline signer and set it + const [aminoSigner, directSigner] = await Promise.all([ + cosmosEWallet.getOfflineSignerOnlyAmino(chainId), + cosmosEWallet.getOfflineSigner(chainId), + ]); + + // Create a combined signer that satisfies both interfaces + const combinedSigner = { + getAccounts: () => directSigner.getAccounts(), + signDirect: directSigner.signDirect.bind(directSigner), + signAmino: aminoSigner.signAmino.bind(aminoSigner), + }; + + // Set the offline signer and client property for downstream checks + this.offlineSigner = combinedSigner as unknown as OfflineAminoSigner & + OfflineDirectSigner; + + // Set client property safely + if (!(this as any).client) { + Object.defineProperty(this, "client", { + value: combinedSigner, + writable: true, + configurable: true, + }); + } else { + (this as any).client = combinedSigner; + } + + console.log("[EWallet] OfflineSigner initialized successfully"); + } + + async getOfflineSigner(): Promise { + console.log("[EWallet] GetOfflineSigner called"); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + const [aminoSigner, directSigner] = await Promise.all([ + cosmosEWallet.getOfflineSignerOnlyAmino(chainId), + cosmosEWallet.getOfflineSigner(chainId), + ]); + return { - // Core wallet info - version: "ewallet-0.0.6-rc.43", - mode: "ewallet", - - // Enable chain support - enable: (chainId: string) => cosmosEWallet.enable(chainId), - - // Account management - getKey: (chainId: string) => cosmosEWallet.getKey(chainId), - getAccounts: () => cosmosEWallet.getAccounts(), - getKeysSettled: (chainIds: string[]) => - cosmosEWallet.getKeysSettled(chainIds), - - // Signing operations - signAmino: ( - chainId: string, - signer: string, - signDoc: any, - signOptions?: any - ) => cosmosEWallet.signAmino(chainId, signer, signDoc, signOptions), - signDirect: ( - chainId: string, - signer: string, - signDoc: any, - signOptions?: any - ) => cosmosEWallet.signDirect(chainId, signer, signDoc, signOptions), - signArbitrary: ( - chainId: string, - signer: string, - data: string | Uint8Array - ) => cosmosEWallet.signArbitrary(chainId, signer, data), - verifyArbitrary: ( - chainId: string, - signer: string, - data: string | Uint8Array, - signature: any - ) => cosmosEWallet.verifyArbitrary(chainId, signer, data, signature), - - // Offline signers - getOfflineSigner: (chainId: string, signOptions?: any) => - cosmosEWallet.getOfflineSigner(chainId, signOptions), - getOfflineSignerOnlyAmino: (chainId: string, signOptions?: any) => - cosmosEWallet.getOfflineSignerOnlyAmino(chainId, signOptions), - getOfflineSignerAuto: (chainId: string, signOptions?: any) => - cosmosEWallet.getOfflineSignerAuto(chainId, signOptions), - - // Transaction sending - sendTx: ( - chainId: string, - tx: unknown, - mode: "async" | "sync" | "block", - options?: any - ) => cosmosEWallet.sendTx(chainId, tx, mode, options), - - // Chain management - experimentalSuggestChain: (chainInfo: any) => - cosmosEWallet.experimentalSuggestChain(chainInfo), - - // EWallet specific methods - getCosmosChainInfo: () => cosmosEWallet.getCosmosChainInfo(), - getPublicKey: () => cosmosEWallet.getPublicKey(), - - // Additional properties for compatibility - isEWallet: true, - _cosmosEWallet: cosmosEWallet, // Keep reference to original ewallet instance + getAccounts: () => directSigner.getAccounts(), + signDirect: directSigner.signDirect.bind(directSigner), + signAmino: aminoSigner.signAmino.bind(aminoSigner), }; } + + async getOfflineSignerAuto(): Promise< + OfflineAminoSigner | OfflineDirectSigner + > { + console.log("[EWallet] GetOfflineSignerAuto called"); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return await cosmosEWallet.getOfflineSignerAuto(chainId); + } + + async getOfflineSignerOnlyAmino(): Promise { + console.log("[EWallet] GetOfflineSignerOnlyAmino called"); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + return await cosmosEWallet.getOfflineSignerOnlyAmino(chainId); + } + + async sendTx(tx: Uint8Array, mode?: any) { + console.log("[EWallet] SendTx called"); + + // Ensure wallet is connected + if (!this._accountData) { + await this.connect(); + } + + const cosmosEWallet = this.mainWallet.getCosmosEWallet(); + if (!cosmosEWallet) { + throw new Error("Cosmos EWallet not available"); + } + + const chainId = this.chainRecord.chain?.chain_id; + if (!chainId) { + throw new Error("Chain ID not available"); + } + + // Default to sync mode if not specified + const txMode = mode || "sync"; + + return await cosmosEWallet.sendTx(chainId, tx, txMode); + } } From 268bb199663a92386ba3c2ccc685e0c46045c52c Mon Sep 17 00:00:00 2001 From: devmosis Date: Sat, 16 Aug 2025 04:52:03 +0900 Subject: [PATCH 11/59] o --- .../web/integrations/ewallet/chain-wallet.ts | 362 +----------------- packages/web/integrations/ewallet/client.ts | 185 +++++++++ packages/web/integrations/ewallet/constant.ts | 2 + packages/web/integrations/ewallet/index.ts | 8 +- .../web/integrations/ewallet/main-wallet.ts | 53 +-- packages/web/integrations/ewallet/registry.ts | 15 + 6 files changed, 229 insertions(+), 396 deletions(-) create mode 100644 packages/web/integrations/ewallet/client.ts create mode 100644 packages/web/integrations/ewallet/constant.ts create mode 100644 packages/web/integrations/ewallet/registry.ts diff --git a/packages/web/integrations/ewallet/chain-wallet.ts b/packages/web/integrations/ewallet/chain-wallet.ts index 2d8e4dc04e..3756e56d26 100644 --- a/packages/web/integrations/ewallet/chain-wallet.ts +++ b/packages/web/integrations/ewallet/chain-wallet.ts @@ -1,361 +1,11 @@ -import { AccountData, OfflineAminoSigner } from "@cosmjs/amino"; -import { OfflineDirectSigner } from "@cosmjs/proto-signing"; -import { ChainRecord, ChainWalletBase, State, Wallet } from "@cosmos-kit/core"; -import type { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; - -import { EWalletMainWallet } from "./main-wallet"; - -export class EWalletChainWallet extends ChainWalletBase { - mainWallet!: EWalletMainWallet; - private _accountData: AccountData | undefined; +import { + type ChainRecord, + ChainWalletBase, + type Wallet, +} from "@cosmos-kit/core"; +export class ChainEWallet extends ChainWalletBase { constructor(walletInfo: Wallet, chainInfo: ChainRecord) { super(walletInfo, chainInfo); } - - get address() { - return this._accountData?.address; - } - - get username() { - return undefined; - } - - connect = async (_sync?: boolean) => { - console.log(`[EWallet] Connect called for chain: ${this.chainId}`); - - try { - this.setState(State.Pending); - - // Ensure mainWallet is properly initialized - await this.mainWallet.initClient(); - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - // Check login status and handle login if needed - await this.ensureLogin(cosmosEWallet); - - // Get account information for this chain - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - // Get account key - const account = await cosmosEWallet.getKey(chainId); - - this._accountData = { - address: account.bech32Address, - algo: account.algo as any, - pubkey: account.pubKey, - }; - - console.log( - `[EWallet] Connected successfully to chain: ${chainId}, address: ${account.bech32Address}` - ); - this.setState(State.Done); - } catch (error) { - console.error(`[EWallet] Connect failed:`, error); - this.setState(State.Error); - throw error; - } - }; - - private async ensureLogin(cosmosEWallet: CosmosEWallet): Promise { - console.log("[EWallet] Checking login status..."); - - // 현재 로그인 상태 확인 - const publicKey = await cosmosEWallet.getPublicKey(); - - if (!publicKey) { - console.log("[EWallet] User not logged in, triggering login..."); - - // Get core EWallet for login - const coreEWallet = (cosmosEWallet as any).eWallet; - if (coreEWallet && typeof coreEWallet.signIn === "function") { - await coreEWallet.signIn("google"); - console.log("[EWallet] Login successful"); - - // 로그인 후 다시 확인 - const newPublicKey = await cosmosEWallet.getPublicKey(); - if (!newPublicKey) { - throw new Error("Login verification failed"); - } - } else { - throw new Error("Please login to EWallet first"); - } - } else { - console.log("[EWallet] User already logged in"); - } - } - - async getAccount() { - if (!this._accountData) { - await this.connect(); - } - return this._accountData; - } - - async signAmino(signerAddress: string, signDoc: any, signOptions?: any) { - console.log(`[EWallet] SignAmino called for address: ${signerAddress}`); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return await cosmosEWallet.signAmino( - chainId, - signerAddress, - signDoc, - signOptions - ); - } - - async signDirect(signerAddress: string, signDoc: any, signOptions?: any) { - console.log(`[EWallet] SignDirect called for address: ${signerAddress}`); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return await cosmosEWallet.signDirect( - chainId, - signerAddress, - signDoc, - signOptions - ); - } - - async signArbitrary(signerAddress: string, data: string | Uint8Array) { - console.log(`[EWallet] SignArbitrary called for address: ${signerAddress}`); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return await cosmosEWallet.signArbitrary(chainId, signerAddress, data); - } - - async verifyArbitrary( - signerAddress: string, - data: string | Uint8Array, - signature: any - ): Promise { - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return (await cosmosEWallet.verifyArbitrary( - chainId, - signerAddress, - data, - signature - )) as boolean; - } - - on() { - // Event handling placeholder - } - - off() { - // Event handling placeholder - } - - removeAllListeners() { - // Event handling placeholder - } - - async initOfflineSigner(): Promise { - console.log("[EWallet] InitOfflineSigner called"); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - // Get the offline signer and set it - const [aminoSigner, directSigner] = await Promise.all([ - cosmosEWallet.getOfflineSignerOnlyAmino(chainId), - cosmosEWallet.getOfflineSigner(chainId), - ]); - - // Create a combined signer that satisfies both interfaces - const combinedSigner = { - getAccounts: () => directSigner.getAccounts(), - signDirect: directSigner.signDirect.bind(directSigner), - signAmino: aminoSigner.signAmino.bind(aminoSigner), - }; - - // Set the offline signer and client property for downstream checks - this.offlineSigner = combinedSigner as unknown as OfflineAminoSigner & - OfflineDirectSigner; - - // Set client property safely - if (!(this as any).client) { - Object.defineProperty(this, "client", { - value: combinedSigner, - writable: true, - configurable: true, - }); - } else { - (this as any).client = combinedSigner; - } - - console.log("[EWallet] OfflineSigner initialized successfully"); - } - - async getOfflineSigner(): Promise { - console.log("[EWallet] GetOfflineSigner called"); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - const [aminoSigner, directSigner] = await Promise.all([ - cosmosEWallet.getOfflineSignerOnlyAmino(chainId), - cosmosEWallet.getOfflineSigner(chainId), - ]); - - return { - getAccounts: () => directSigner.getAccounts(), - signDirect: directSigner.signDirect.bind(directSigner), - signAmino: aminoSigner.signAmino.bind(aminoSigner), - }; - } - - async getOfflineSignerAuto(): Promise< - OfflineAminoSigner | OfflineDirectSigner - > { - console.log("[EWallet] GetOfflineSignerAuto called"); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return await cosmosEWallet.getOfflineSignerAuto(chainId); - } - - async getOfflineSignerOnlyAmino(): Promise { - console.log("[EWallet] GetOfflineSignerOnlyAmino called"); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - return await cosmosEWallet.getOfflineSignerOnlyAmino(chainId); - } - - async sendTx(tx: Uint8Array, mode?: any) { - console.log("[EWallet] SendTx called"); - - // Ensure wallet is connected - if (!this._accountData) { - await this.connect(); - } - - const cosmosEWallet = this.mainWallet.getCosmosEWallet(); - if (!cosmosEWallet) { - throw new Error("Cosmos EWallet not available"); - } - - const chainId = this.chainRecord.chain?.chain_id; - if (!chainId) { - throw new Error("Chain ID not available"); - } - - // Default to sync mode if not specified - const txMode = mode || "sync"; - - return await cosmosEWallet.sendTx(chainId, tx, txMode); - } } diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts new file mode 100644 index 0000000000..ee4b8c2b0c --- /dev/null +++ b/packages/web/integrations/ewallet/client.ts @@ -0,0 +1,185 @@ +import type { + AminoSignResponse, + OfflineAminoSigner, + StdSignature, + StdSignDoc, +} from "@cosmjs/amino"; +import type { + Algo, + DirectSignResponse, + OfflineDirectSigner, +} from "@cosmjs/proto-signing"; +import type { + ChainRecord, + DirectSignDoc, + SignOptions, + SignType, + SuggestToken, + WalletAccount, + WalletClient, +} from "@cosmos-kit/core"; +import { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; + +export class EWalletClient implements WalletClient { + readonly client: CosmosEWallet; + private _defaultSignOptions: SignOptions = { + preferNoSetFee: false, + preferNoSetMemo: true, + disableBalanceCheck: true, + }; + + get defaultSignOptions() { + return this._defaultSignOptions; + } + + setDefaultSignOptions(options: SignOptions) { + this._defaultSignOptions = options; + } + + constructor(client: CosmosEWallet) { + this.client = client; + } + + async enable(_chainIds: string | string[]) { + // Do nothing + } + + async suggestToken(_suggestToken: SuggestToken) { + // Do nothing + } + + async getSimpleAccount(chainId: string) { + const { address, username } = await this.getAccount(chainId); + return { + namespace: "cosmos", + chainId, + address, + username, + }; + } + + async getAccount(chainId: string): Promise { + const key = await this.client.getKey(chainId); + return { + username: key.name, + address: key.bech32Address, + algo: key.algo as Algo, + pubkey: key.pubKey, + isNanoLedger: key.isNanoLedger, + }; + } + + getOfflineSigner(chainId: string, preferredSignType?: SignType) { + switch (preferredSignType) { + case "amino": + return this.getOfflineSignerAmino(chainId); + case "direct": + return this.getOfflineSignerDirect(chainId); + default: + return this.getOfflineSignerAmino(chainId); + } + } + + getOfflineSignerAmino(chainId: string): OfflineAminoSigner { + return { + getAccounts: async () => { + return [await this.getAccount(chainId)]; + }, + signAmino: async (signerAddress, signDoc): Promise => { + return this.signAmino( + chainId, + signerAddress, + signDoc, + this.defaultSignOptions + ); + }, + }; + } + + getOfflineSignerDirect(chainId: string): OfflineDirectSigner { + return { + getAccounts: async () => { + return [await this.getAccount(chainId)]; + }, + signDirect: async ( + signerAddress, + signDoc + ): Promise => { + const resp = await this.signDirect( + chainId, + signerAddress, + signDoc, + this.defaultSignOptions + ); + return { + ...resp, + signed: { + ...resp.signed, + accountNumber: BigInt(resp.signed.accountNumber.toString()), + }, + }; + }, + }; + } + + async addChain(_chainInfo: ChainRecord) { + // Do nothing + } + + async signAmino( + chainId: string, + signer: string, + signDoc: StdSignDoc, + signOptions?: SignOptions + ): Promise { + return await this.client.signAmino( + chainId, + signer, + signDoc, + signOptions || this.defaultSignOptions + ); + } + + async signArbitrary( + chainId: string, + signer: string, + data: string | Uint8Array + ): Promise { + return await this.client.signArbitrary(chainId, signer, data); + } + + async signDirect( + chainId: string, + signer: string, + signDoc: DirectSignDoc, + signOptions?: SignOptions + ): Promise { + const resp = await this.client.signDirect( + chainId, + signer, + { + ...signDoc, + bodyBytes: signDoc.bodyBytes ?? new Uint8Array(), + authInfoBytes: signDoc.authInfoBytes ?? new Uint8Array(), + chainId: signDoc.chainId ?? "", + accountNumber: BigInt(signDoc.accountNumber ?? "0"), + }, + signOptions || this.defaultSignOptions + ); + return { + ...resp, + signed: { + ...resp.signed, + accountNumber: BigInt(resp.signed.accountNumber.toString()), + }, + }; + } + + async sendTx( + chainId: string, + tx: Uint8Array, + mode: "block" | "async" | "sync" + ) { + return await this.client.sendTx(chainId, tx, mode); + } +} diff --git a/packages/web/integrations/ewallet/constant.ts b/packages/web/integrations/ewallet/constant.ts new file mode 100644 index 0000000000..dafc69f74c --- /dev/null +++ b/packages/web/integrations/ewallet/constant.ts @@ -0,0 +1,2 @@ +export const ICON = + "data:image/png;base64,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"; diff --git a/packages/web/integrations/ewallet/index.ts b/packages/web/integrations/ewallet/index.ts index 438e7a6102..e5a33ab1fb 100644 --- a/packages/web/integrations/ewallet/index.ts +++ b/packages/web/integrations/ewallet/index.ts @@ -1,5 +1,3 @@ -export { EWalletChainWallet } from "./chain-wallet"; -export { EWalletMainWallet } from "./main-wallet"; - -// For backward compatibility -export { EWalletMainWallet as EWalletWallet } from "./main-wallet"; +export * from "./chain-wallet"; +export * from "./main-wallet"; +export * from "./registry"; diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index e86f71ac85..6943361148 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -1,34 +1,25 @@ -import { Wallet } from "@cosmos-kit/core"; -import { MainWalletBase } from "@cosmos-kit/core"; import { - type CosmosEWallet, - initCosmosEWallet, -} from "@keplr-ewallet/ewallet-sdk-cosmos"; + type EndpointOptions, + MainWalletBase, + type Wallet, +} from "@cosmos-kit/core"; +import { initCosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; -import { EWalletChainWallet } from "./chain-wallet"; +import { ChainEWallet } from "./chain-wallet"; +import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { - private cosmosEWallet: CosmosEWallet | null = null; - - constructor(walletInfo: Wallet) { - super(walletInfo, EWalletChainWallet); + constructor( + walletInfo: Wallet, + preferredEndpoints?: EndpointOptions["endpoints"] + ) { + super(walletInfo, ChainEWallet); + this.preferredEndpoints = preferredEndpoints; } - async initClient(): Promise { - if (typeof window === "undefined") { - throw new Error("EWallet is only available in browser environment"); - } - - if (this.cosmosEWallet) { - return; // Already initialized - } - + async initClient() { + this.initingClient(); try { - this.logger?.info("[EWallet] Starting main wallet initialization...", { - has_api_key: - "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", - }); - // Initialize the Cosmos EWallet with API key const cosmosEWallet = await initCosmosEWallet({ api_key: @@ -40,19 +31,11 @@ export class EWalletMainWallet extends MainWalletBase { "Failed to initialize CosmosEWallet - initialization returned null" ); } - - this.cosmosEWallet = cosmosEWallet.data; - this.logger?.info("[EWallet] Main wallet initialized successfully"); + this.initClientDone(new EWalletClient(cosmosEWallet.data)); } catch (error) { - const err = error as Error; - this.logger?.error("[EWallet] Main wallet initialization failed:", err); - throw new Error( - `EWallet main wallet initialization failed: ${err.message}` + this.initClientError( + error instanceof Error ? error : new Error(String(error)) ); } } - - public getCosmosEWallet(): CosmosEWallet | null { - return this.cosmosEWallet; - } } diff --git a/packages/web/integrations/ewallet/registry.ts b/packages/web/integrations/ewallet/registry.ts new file mode 100644 index 0000000000..6a1b8333b1 --- /dev/null +++ b/packages/web/integrations/ewallet/registry.ts @@ -0,0 +1,15 @@ +import type { Wallet } from "@cosmos-kit/core"; + +import { ICON } from "./constant"; + +export const ewalletInfo: Wallet = { + name: "ewallet", + prettyName: "eWallet", + logo: ICON, + mode: "extension", + mobileDisabled: false, + rejectMessage: { + source: "Request rejected", + }, + connectEventNamesOnWindow: ["ewallet_keystorechange"], +}; From eaa69094d0729a749017c636c0b634f86950aa2d Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 18:17:05 +0900 Subject: [PATCH 12/59] o --- packages/web/package.json | 4 ++-- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 15012a369c..6218e1ce32 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.38", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.49", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.41", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.52", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 97fc02188e..244b8c70bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.38", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.38": - version "0.0.6-rc.38" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.38.tgz#1a6787b1477e7896e854082661ecf2022c12d98b" - integrity sha512-xy9sJurewx+Z/1H7bjahxwP721AiDP5XPqjIuMRMqcifhwEyTXAK8G4xJgLldc8CPhnFVmkCesEHQTgjMwBBjA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.41", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.41": + version "0.0.6-rc.41" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.41.tgz#938b237b45109d6a5ba44e47ccffeb1de9ae4684" + integrity sha512-dh0HFTionbY1/mPLO5RekUeLUgmkwgBn++b8Cp7vjSP24Dqe8Y5K5miJWK/UHYrvKg3uTUDbCgb77ZSbrFJ4Ew== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.8" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.49": - version "0.0.6-rc.49" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.49.tgz#9eccdf82f49e92c412958d980b55b18308343b56" - integrity sha512-YZ6s8tHBPufy5DpdbnueXniuxWF/hGZEZMfoZEalEiPT3UOA1hQefENxCp+9uh+2P2E3t1lbd02ElFeFpT1vUg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.52": + version "0.0.6-rc.52" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.52.tgz#e8f695309daa02760d0015f40f6ece512aeb3746" + integrity sha512-0TButyVpP+MIEkvBTta7443KRAKJdAqRtMRAxAqCbLjjlhks34ohkoznd6rTOrQPM9YO6DOSKDOSstVVzbkhSg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.38" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.41" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.8" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4537,10 +4537,10 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.6": - version "0.0.2-rc.6" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.6.tgz#9b748022cb9cead6d0de24d51dd754d8e1b6673d" - integrity sha512-MrP9fDyffgsdZZzCk+dg0JzcnjAne2F2OiFMgP3b+XDfDORJFMe8R07P+CCzB1VFhUMMpvRcV/PvFPMq44Pqbg== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.8": + version "0.0.2-rc.8" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.8.tgz#6926ace3c8e73feeb4b2638de897978d28f1b11c" + integrity sha512-1hQ0Q6qgLKlWiwLMWbt1M3dew87OAD38x5gDOPJpW1QP23b1+REVYn1U7MntWGL/fjT10+u//f4ElBJrf6MeLw== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From fbb2b7e1850ff00c7efc7397ab0bb0a77a3ad656 Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 19:46:39 +0900 Subject: [PATCH 13/59] o --- .../config/generate-cosmos-kit-wallet-list.ts | 5 +++- .../web/integrations/ewallet/main-wallet.ts | 15 +++++----- packages/web/integrations/ewallet/registry.ts | 7 ++++- packages/web/package.json | 4 +-- yarn.lock | 30 ++++++++++++------- 5 files changed, 38 insertions(+), 23 deletions(-) diff --git a/packages/web/config/generate-cosmos-kit-wallet-list.ts b/packages/web/config/generate-cosmos-kit-wallet-list.ts index 5a2ee99017..9161df20a1 100644 --- a/packages/web/config/generate-cosmos-kit-wallet-list.ts +++ b/packages/web/config/generate-cosmos-kit-wallet-list.ts @@ -16,6 +16,8 @@ import { xdefiExtensionInfo } from "@cosmos-kit/xdefi-extension"; import { isFunction } from "@osmosis-labs/utils"; import * as prettier from "prettier"; +import { ewalletInfo } from "~/integrations/ewallet/registry"; + type UpdateWalletMode = | "ledger" | "extension" @@ -28,6 +30,7 @@ interface Wallet extends Omit { } const CosmosKitWalletList: Wallet[] = [ + ewalletInfo as Wallet, keplrExtensionInfo, keplrMobileInfo, leapExtensionInfo, @@ -104,7 +107,7 @@ async function generateCosmosKitWalletList() { wallet.name }"` ).join(",")}} - export const CosmosKitWalletList: Record = ${getStringifiedWallet( + export const CosmosKitWalletList: Record = ${getStringifiedWallet( registryObject )} `; diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 6943361148..6bbe05663c 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -1,20 +1,20 @@ -import { - type EndpointOptions, - MainWalletBase, - type Wallet, -} from "@cosmos-kit/core"; +import { type EndpointOptions, MainWalletBase } from "@cosmos-kit/core"; import { initCosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; +import { type EWalletInfo } from "~/integrations/ewallet/registry"; + import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { + private apiKey: string; constructor( - walletInfo: Wallet, + walletInfo: EWalletInfo, preferredEndpoints?: EndpointOptions["endpoints"] ) { super(walletInfo, ChainEWallet); this.preferredEndpoints = preferredEndpoints; + this.apiKey = walletInfo.apiKey; } async initClient() { @@ -22,8 +22,7 @@ export class EWalletMainWallet extends MainWalletBase { try { // Initialize the Cosmos EWallet with API key const cosmosEWallet = await initCosmosEWallet({ - api_key: - "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", + api_key: this.apiKey, }); if (!cosmosEWallet.success) { diff --git a/packages/web/integrations/ewallet/registry.ts b/packages/web/integrations/ewallet/registry.ts index 6a1b8333b1..5b92f3d930 100644 --- a/packages/web/integrations/ewallet/registry.ts +++ b/packages/web/integrations/ewallet/registry.ts @@ -2,7 +2,11 @@ import type { Wallet } from "@cosmos-kit/core"; import { ICON } from "./constant"; -export const ewalletInfo: Wallet = { +export interface EWalletInfo extends Wallet { + apiKey: string; +} + +export const ewalletInfo: EWalletInfo = { name: "ewallet", prettyName: "eWallet", logo: ICON, @@ -12,4 +16,5 @@ export const ewalletInfo: Wallet = { source: "Request rejected", }, connectEventNamesOnWindow: ["ewallet_keystorechange"], + apiKey: "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", }; diff --git a/packages/web/package.json b/packages/web/package.json index 6218e1ce32..15012a369c 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.41", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.52", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.38", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.49", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 244b8c70bf..024f81ab46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,31 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.41", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.41": - version "0.0.6-rc.41" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.41.tgz#938b237b45109d6a5ba44e47ccffeb1de9ae4684" - integrity sha512-dh0HFTionbY1/mPLO5RekUeLUgmkwgBn++b8Cp7vjSP24Dqe8Y5K5miJWK/UHYrvKg3uTUDbCgb77ZSbrFJ4Ew== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.38": + version "0.0.6-rc.38" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.38.tgz#1a6787b1477e7896e854082661ecf2022c12d98b" + integrity sha512-xy9sJurewx+Z/1H7bjahxwP721AiDP5XPqjIuMRMqcifhwEyTXAK8G4xJgLldc8CPhnFVmkCesEHQTgjMwBBjA== + dependencies: + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" + "@keplr-wallet/types" "^0.12.257" + +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.38": + version "0.0.6-rc.42" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.42.tgz#d343e1d4f25f2489e48cf0e0b4a8460077f0f1e5" + integrity sha512-MRZ9F9mqOpyvUHaHSGZTN0/fn+A23wNkE50GNBd0VNuqZyAsffID8ln9ywuOK5DkQ9szQcgLJVkOrzQdZ7MMBg== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.8" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.52": - version "0.0.6-rc.52" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.52.tgz#e8f695309daa02760d0015f40f6ece512aeb3746" - integrity sha512-0TButyVpP+MIEkvBTta7443KRAKJdAqRtMRAxAqCbLjjlhks34ohkoznd6rTOrQPM9YO6DOSKDOSstVVzbkhSg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.49": + version "0.0.6-rc.49" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.49.tgz#9eccdf82f49e92c412958d980b55b18308343b56" + integrity sha512-YZ6s8tHBPufy5DpdbnueXniuxWF/hGZEZMfoZEalEiPT3UOA1hQefENxCp+9uh+2P2E3t1lbd02ElFeFpT1vUg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.41" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.8" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.38" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4537,7 +4545,7 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.8": +"@keplr-ewallet/stdlib-js@^0.0.2-rc.6", "@keplr-ewallet/stdlib-js@^0.0.2-rc.8": version "0.0.2-rc.8" resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.8.tgz#6926ace3c8e73feeb4b2638de897978d28f1b11c" integrity sha512-1hQ0Q6qgLKlWiwLMWbt1M3dew87OAD38x5gDOPJpW1QP23b1+REVYn1U7MntWGL/fjT10+u//f4ElBJrf6MeLw== From b29367db8a8688cc060bfae9e8a553406a0e9562 Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 21:01:04 +0900 Subject: [PATCH 14/59] o --- packages/web/config/wallet-registry.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 0abb3ca4cd..5297c87286 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -5,6 +5,7 @@ import { } from "@osmosis-labs/stores"; import { EWalletMainWallet } from "~/integrations/ewallet"; +import { type EWalletInfo, ewalletInfo } from "~/integrations/ewallet/registry"; import { MainnetChainIds } from "./generated/chain-list"; import { CosmosKitWalletList } from "./generated/cosmos-kit-wallet-list"; @@ -19,7 +20,15 @@ export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ rejectMessage: { source: "Request rejected", }, - lazyInstall: () => Promise.resolve(EWalletMainWallet), + lazyInstall: () => + Promise.resolve( + class extends EWalletMainWallet { + constructor(walletInfo: EWalletInfo) { + // Ensure apiKey is passed to the constructor for keplr-ewallet too + super({ ...walletInfo, apiKey: ewalletInfo.apiKey }); + } + } + ), windowPropertyName: "keplr", stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", From 2e9f716acddbc7443e4c2db2d358e92e2810550a Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 23:06:58 +0900 Subject: [PATCH 15/59] o --- packages/web/config/wallet-registry.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 5297c87286..4764bbcf7b 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -12,8 +12,8 @@ import { CosmosKitWalletList } from "./generated/cosmos-kit-wallet-list"; export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ { - name: "keplr-ewallet", - prettyName: "Keplr EWallet", + name: "ewallet", + prettyName: "eWallet", logo: "/wallets/keplr.svg", mode: "extension", mobileDisabled: false, From d58f2898fe597b6ae9497ccdb15d031fc57999ad Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 23:22:16 +0900 Subject: [PATCH 16/59] o --- .../web/integrations/ewallet/main-wallet.ts | 126 ++++++++++++++++-- 1 file changed, 116 insertions(+), 10 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 6bbe05663c..2b3f85a7b6 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -1,5 +1,12 @@ import { type EndpointOptions, MainWalletBase } from "@cosmos-kit/core"; -import { initCosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; +import { + initKeplrEwalletCore, + KeplrEWallet, +} from "@keplr-ewallet/ewallet-sdk-core"; +import { + CosmosEWallet, + initCosmosEWallet, +} from "@keplr-ewallet/ewallet-sdk-cosmos"; import { type EWalletInfo } from "~/integrations/ewallet/registry"; @@ -8,6 +15,9 @@ import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { private apiKey: string; + private eWallet: KeplrEWallet | null = null; + private cosmosEWallet: CosmosEWallet | null = null; + constructor( walletInfo: EWalletInfo, preferredEndpoints?: EndpointOptions["endpoints"] @@ -20,21 +30,117 @@ export class EWalletMainWallet extends MainWalletBase { async initClient() { this.initingClient(); try { - // Initialize the Cosmos EWallet with API key - const cosmosEWallet = await initCosmosEWallet({ - api_key: this.apiKey, - }); + await this.init(); - if (!cosmosEWallet.success) { - throw new Error( - "Failed to initialize CosmosEWallet - initialization returned null" - ); + if (!this.eWallet) { + throw new Error("eWallet not initialized after init()"); + } + + // Check if already signed in before calling signIn + let isSignedIn = false; + try { + const publicKey = await this.eWallet.getPublicKey(); + isSignedIn = !!publicKey; + } catch (error) { + isSignedIn = false; + } + + // Skip signIn during initialization to avoid popup during page refresh + if (!isSignedIn) { + // Don't call signIn during initialization - let it be called manually + // await this.eWallet.signIn("google"); + } + + if (this.cosmosEWallet) { + this.initClientDone(new EWalletClient(this.cosmosEWallet)); + } else { + this.initClientError(new Error("CosmosEWallet not initialized")); } - this.initClientDone(new EWalletClient(cosmosEWallet.data)); } catch (error) { this.initClientError( error instanceof Error ? error : new Error(String(error)) ); } } + + async init() { + console.log( + `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( + 0, + 10 + )}...` + ); + + if (!this.eWallet) { + console.log(`[EWalletMainWallet] Initializing KeplrEwalletCore...`); + const result = await initKeplrEwalletCore({ + api_key: this.apiKey, + }); + + if (result && result.success) { + this.eWallet = result.data; + console.log( + `[EWalletMainWallet] KeplrEwalletCore initialized successfully` + ); + } else { + console.error( + `[EWalletMainWallet] KeplrEwalletCore init failed:`, + result?.err + ); + throw new Error(result?.err || "Unknown initialization error"); + } + } + + if (!this.cosmosEWallet && this.eWallet) { + console.log(`[EWalletMainWallet] Initializing CosmosEWallet...`); + const result = await initCosmosEWallet({ + api_key: this.apiKey, + }); + + if (result && result.success) { + this.cosmosEWallet = result.data; + console.log( + `[EWalletMainWallet] CosmosEWallet initialized successfully` + ); + } else { + console.error( + `[EWalletMainWallet] CosmosEWallet init failed:`, + result?.err + ); + throw new Error( + result?.err || "Unknown cosmos ewallet initialization error" + ); + } + } + } + + connect = async ( + _syncOrChainIds?: boolean | string | string[], + _options?: any + ) => { + // Ensure client is initialized first + if (this.state === "Init") { + await this.initClient(); + } + + await this.init(); + + if (!this.eWallet) { + throw new Error("Ewallet not initialized"); + } + + // Check if already signed in before calling signIn + let isSignedIn = false; + try { + const publicKey = await this.eWallet.getPublicKey(); + isSignedIn = !!publicKey; + } catch (error) { + isSignedIn = false; + } + + if (!isSignedIn) { + console.log("Calling signIn from connect method"); + await this.eWallet.signIn("google"); + } + }; } From abf0bf0493990ef868b6211c9e7bad5995871f27 Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 18 Aug 2025 23:37:13 +0900 Subject: [PATCH 17/59] o --- packages/web/config/wallet-registry.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 4764bbcf7b..8f55bdf447 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -29,7 +29,6 @@ export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ } } ), - windowPropertyName: "keplr", stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", features: ["notifications"], From fb55d6f826f30401ac67770717d7aa27f84653e1 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 14:33:00 +0900 Subject: [PATCH 18/59] Revert "o" This reverts commit abf0bf0493990ef868b6211c9e7bad5995871f27. --- packages/web/config/wallet-registry.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 8f55bdf447..4764bbcf7b 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -29,6 +29,7 @@ export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ } } ), + windowPropertyName: "keplr", stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", features: ["notifications"], From 1e48a8432ed59405eacfc4b14808e5ab21fba35b Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 14:33:32 +0900 Subject: [PATCH 19/59] Reapply "o" This reverts commit fb55d6f826f30401ac67770717d7aa27f84653e1. --- packages/web/config/wallet-registry.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web/config/wallet-registry.ts b/packages/web/config/wallet-registry.ts index 4764bbcf7b..8f55bdf447 100644 --- a/packages/web/config/wallet-registry.ts +++ b/packages/web/config/wallet-registry.ts @@ -29,7 +29,6 @@ export const CosmosWalletRegistry: CosmosRegistryWallet[] = [ } } ), - windowPropertyName: "keplr", stakeUrl: "https://wallet.keplr.app/chains/osmosis?tab=staking", governanceUrl: "https://wallet.keplr.app/chains/osmosis?tab=governance", features: ["notifications"], From 5415dc8009928c865dca7c82549d4e83b1bfd472 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 15:08:27 +0900 Subject: [PATCH 20/59] o --- packages/web/integrations/ewallet/main-wallet.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 2b3f85a7b6..351a81af17 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -45,10 +45,8 @@ export class EWalletMainWallet extends MainWalletBase { isSignedIn = false; } - // Skip signIn during initialization to avoid popup during page refresh if (!isSignedIn) { - // Don't call signIn during initialization - let it be called manually - // await this.eWallet.signIn("google"); + await this.eWallet.signIn("google"); } if (this.cosmosEWallet) { From f4dd002b4e68c805b2178e75384980a948a7641a Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 16:32:21 +0900 Subject: [PATCH 21/59] o --- packages/web/package.json | 4 ++-- yarn.lock | 38 +++++++++++++++----------------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 15012a369c..6ee2ab1eb5 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,8 +39,8 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.38", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.49", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.44", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.58", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 024f81ab46..caf3e3d8f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,31 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.38": - version "0.0.6-rc.38" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.38.tgz#1a6787b1477e7896e854082661ecf2022c12d98b" - integrity sha512-xy9sJurewx+Z/1H7bjahxwP721AiDP5XPqjIuMRMqcifhwEyTXAK8G4xJgLldc8CPhnFVmkCesEHQTgjMwBBjA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.44", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.44": + version "0.0.6-rc.44" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.44.tgz#44eaf521c09bec617839053fabe394ced50af5a7" + integrity sha512-hp30g/tI8k6Yc4r5//7zycpeKxkgOLWZzuanexYLskKI2KbwzPPH3+jk6RvwtI1z5B8co5MWUerMXGN6gmAlDw== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.38": - version "0.0.6-rc.42" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.42.tgz#d343e1d4f25f2489e48cf0e0b4a8460077f0f1e5" - integrity sha512-MRZ9F9mqOpyvUHaHSGZTN0/fn+A23wNkE50GNBd0VNuqZyAsffID8ln9ywuOK5DkQ9szQcgLJVkOrzQdZ7MMBg== - dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.8" - "@keplr-wallet/types" "^0.12.257" - -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.49": - version "0.0.6-rc.49" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.49.tgz#9eccdf82f49e92c412958d980b55b18308343b56" - integrity sha512-YZ6s8tHBPufy5DpdbnueXniuxWF/hGZEZMfoZEalEiPT3UOA1hQefENxCp+9uh+2P2E3t1lbd02ElFeFpT1vUg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.58": + version "0.0.6-rc.58" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.58.tgz#9806e0bcb01f83eb5297ab6b1cf7946da976caa6" + integrity sha512-HttsR9WqrRi1XA9jaXBgc5QGKiFxo6Gt8le80o35J7mL4C6LIAI9ZUtQOtU2pF0/DC/h5B8F39tYMAt+5GO1mw== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.38" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.6" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.44" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4545,10 +4537,10 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.6", "@keplr-ewallet/stdlib-js@^0.0.2-rc.8": - version "0.0.2-rc.8" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.8.tgz#6926ace3c8e73feeb4b2638de897978d28f1b11c" - integrity sha512-1hQ0Q6qgLKlWiwLMWbt1M3dew87OAD38x5gDOPJpW1QP23b1+REVYn1U7MntWGL/fjT10+u//f4ElBJrf6MeLw== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.9": + version "0.0.2-rc.9" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.9.tgz#d34598a4223135d724cc3e83cc0aa57e9df06cf5" + integrity sha512-m+R9bggNnIUdx3OLM6OZmsHIsB8v7boKZ7XeEStS3HQJEVokZOeYNvHtb6nHVOISBmLCHzph+C1nQUyrtIKAlg== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From f7490a76a2815f68e934b80dfc0d1e59871079fe Mon Sep 17 00:00:00 2001 From: Thunnini Date: Tue, 19 Aug 2025 16:19:52 +0900 Subject: [PATCH 22/59] =?UTF-8?q?EWalletMainWallet=EC=9D=B4=20singleton?= =?UTF-8?q?=EC=9D=B8=20=EA=B2=83=EC=B2=98=EB=9F=BC=20&=20init()=EC=9D=B4?= =?UTF-8?q?=20=ED=95=9C=EB=B2=88=EB=A7=8C=20=EC=8B=A4=ED=96=89=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=9E=84=EC=8B=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/integrations/ewallet/main-wallet.ts | 67 ++++++++++++------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 351a81af17..3a0038aaae 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -14,9 +14,11 @@ import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { + private static initPromise: Promise | undefined; + private static ewallet: KeplrEWallet | null = null; + private static cosmosEWallet: CosmosEWallet | null = null; + private apiKey: string; - private eWallet: KeplrEWallet | null = null; - private cosmosEWallet: CosmosEWallet | null = null; constructor( walletInfo: EWalletInfo, @@ -32,25 +34,25 @@ export class EWalletMainWallet extends MainWalletBase { try { await this.init(); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { throw new Error("eWallet not initialized after init()"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - const publicKey = await this.eWallet.getPublicKey(); + const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { isSignedIn = false; } if (!isSignedIn) { - await this.eWallet.signIn("google"); + await EWalletMainWallet.eWallet.signIn("google"); } - if (this.cosmosEWallet) { - this.initClientDone(new EWalletClient(this.cosmosEWallet)); + if (EWalletMainWallet.cosmosEWallet) { + this.initClientDone(new EWalletClient(EWalletMainWallet.cosmosEWallet)); } else { this.initClientError(new Error("CosmosEWallet not initialized")); } @@ -61,52 +63,62 @@ export class EWalletMainWallet extends MainWalletBase { } } - async init() { + init() { + if (EWalletMainWallet.initPromise) { + return EWalletMainWallet.initPromise + } + + EWalletMainWallet.initPromise = this.initInternal(); + + return EWalletMainWallet.initPromise + } + + protected async initInternal() { console.log( - `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( - 0, - 10 - )}...` + `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( + 0, + 10 + )}...` ); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { console.log(`[EWalletMainWallet] Initializing KeplrEwalletCore...`); const result = await initKeplrEwalletCore({ api_key: this.apiKey, }); if (result && result.success) { - this.eWallet = result.data; + EWalletMainWallet.eWallet = result.data; console.log( - `[EWalletMainWallet] KeplrEwalletCore initialized successfully` + `[EWalletMainWallet] KeplrEwalletCore initialized successfully` ); } else { console.error( - `[EWalletMainWallet] KeplrEwalletCore init failed:`, - result?.err + `[EWalletMainWallet] KeplrEwalletCore init failed:`, + result?.err ); throw new Error(result?.err || "Unknown initialization error"); } } - if (!this.cosmosEWallet && this.eWallet) { + if (!EWalletMainWallet.cosmosEWallet && EWalletMainWallet.eWallet) { console.log(`[EWalletMainWallet] Initializing CosmosEWallet...`); const result = await initCosmosEWallet({ api_key: this.apiKey, }); if (result && result.success) { - this.cosmosEWallet = result.data; + EWalletMainWallet.cosmosEWallet = result.data; console.log( - `[EWalletMainWallet] CosmosEWallet initialized successfully` + `[EWalletMainWallet] CosmosEWallet initialized successfully` ); } else { console.error( - `[EWalletMainWallet] CosmosEWallet init failed:`, - result?.err + `[EWalletMainWallet] CosmosEWallet init failed:`, + result?.err ); throw new Error( - result?.err || "Unknown cosmos ewallet initialization error" + result?.err || "Unknown cosmos ewallet initialization error" ); } } @@ -123,22 +135,25 @@ export class EWalletMainWallet extends MainWalletBase { await this.init(); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { throw new Error("Ewallet not initialized"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - const publicKey = await this.eWallet.getPublicKey(); + console.log("XXX try get pubkey"); + const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { + console.log("!!!!", error); isSignedIn = false; } + console.log("???? pubkey get", isSignedIn); if (!isSignedIn) { console.log("Calling signIn from connect method"); - await this.eWallet.signIn("google"); + await EWalletMainWallet.eWallet.signIn("google"); } }; } From b16fcf442e309b0b09d4ea84eadea56c889965fc Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 16:51:05 +0900 Subject: [PATCH 23/59] =?UTF-8?q?Revert=20"EWalletMainWallet=EC=9D=B4=20si?= =?UTF-8?q?ngleton=EC=9D=B8=20=EA=B2=83=EC=B2=98=EB=9F=BC=20&=20init()?= =?UTF-8?q?=EC=9D=B4=20=ED=95=9C=EB=B2=88=EB=A7=8C=20=EC=8B=A4=ED=96=89?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=9E=84=EC=8B=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f7490a76a2815f68e934b80dfc0d1e59871079fe. --- .../web/integrations/ewallet/main-wallet.ts | 67 +++++++------------ 1 file changed, 26 insertions(+), 41 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 3a0038aaae..351a81af17 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -14,11 +14,9 @@ import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { - private static initPromise: Promise | undefined; - private static ewallet: KeplrEWallet | null = null; - private static cosmosEWallet: CosmosEWallet | null = null; - private apiKey: string; + private eWallet: KeplrEWallet | null = null; + private cosmosEWallet: CosmosEWallet | null = null; constructor( walletInfo: EWalletInfo, @@ -34,25 +32,25 @@ export class EWalletMainWallet extends MainWalletBase { try { await this.init(); - if (!EWalletMainWallet.eWallet) { + if (!this.eWallet) { throw new Error("eWallet not initialized after init()"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); + const publicKey = await this.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { isSignedIn = false; } if (!isSignedIn) { - await EWalletMainWallet.eWallet.signIn("google"); + await this.eWallet.signIn("google"); } - if (EWalletMainWallet.cosmosEWallet) { - this.initClientDone(new EWalletClient(EWalletMainWallet.cosmosEWallet)); + if (this.cosmosEWallet) { + this.initClientDone(new EWalletClient(this.cosmosEWallet)); } else { this.initClientError(new Error("CosmosEWallet not initialized")); } @@ -63,62 +61,52 @@ export class EWalletMainWallet extends MainWalletBase { } } - init() { - if (EWalletMainWallet.initPromise) { - return EWalletMainWallet.initPromise - } - - EWalletMainWallet.initPromise = this.initInternal(); - - return EWalletMainWallet.initPromise - } - - protected async initInternal() { + async init() { console.log( - `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( - 0, - 10 - )}...` + `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( + 0, + 10 + )}...` ); - if (!EWalletMainWallet.eWallet) { + if (!this.eWallet) { console.log(`[EWalletMainWallet] Initializing KeplrEwalletCore...`); const result = await initKeplrEwalletCore({ api_key: this.apiKey, }); if (result && result.success) { - EWalletMainWallet.eWallet = result.data; + this.eWallet = result.data; console.log( - `[EWalletMainWallet] KeplrEwalletCore initialized successfully` + `[EWalletMainWallet] KeplrEwalletCore initialized successfully` ); } else { console.error( - `[EWalletMainWallet] KeplrEwalletCore init failed:`, - result?.err + `[EWalletMainWallet] KeplrEwalletCore init failed:`, + result?.err ); throw new Error(result?.err || "Unknown initialization error"); } } - if (!EWalletMainWallet.cosmosEWallet && EWalletMainWallet.eWallet) { + if (!this.cosmosEWallet && this.eWallet) { console.log(`[EWalletMainWallet] Initializing CosmosEWallet...`); const result = await initCosmosEWallet({ api_key: this.apiKey, }); if (result && result.success) { - EWalletMainWallet.cosmosEWallet = result.data; + this.cosmosEWallet = result.data; console.log( - `[EWalletMainWallet] CosmosEWallet initialized successfully` + `[EWalletMainWallet] CosmosEWallet initialized successfully` ); } else { console.error( - `[EWalletMainWallet] CosmosEWallet init failed:`, - result?.err + `[EWalletMainWallet] CosmosEWallet init failed:`, + result?.err ); throw new Error( - result?.err || "Unknown cosmos ewallet initialization error" + result?.err || "Unknown cosmos ewallet initialization error" ); } } @@ -135,25 +123,22 @@ export class EWalletMainWallet extends MainWalletBase { await this.init(); - if (!EWalletMainWallet.eWallet) { + if (!this.eWallet) { throw new Error("Ewallet not initialized"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - console.log("XXX try get pubkey"); - const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); + const publicKey = await this.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { - console.log("!!!!", error); isSignedIn = false; } - console.log("???? pubkey get", isSignedIn); if (!isSignedIn) { console.log("Calling signIn from connect method"); - await EWalletMainWallet.eWallet.signIn("google"); + await this.eWallet.signIn("google"); } }; } From 98d2e480650e111644dbf78d12f6fed478eb5067 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 16:56:06 +0900 Subject: [PATCH 24/59] o --- packages/web/integrations/ewallet/client.ts | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts index ee4b8c2b0c..91e0213cac 100644 --- a/packages/web/integrations/ewallet/client.ts +++ b/packages/web/integrations/ewallet/client.ts @@ -132,6 +132,14 @@ export class EWalletClient implements WalletClient { signDoc: StdSignDoc, signOptions?: SignOptions ): Promise { + console.log("[EWallet] signAmino - Gas fee settings:", { + chainId, + fee: signDoc.fee, + gasWanted: signDoc.fee?.gas, + gasPrice: signDoc.fee?.amount, + signOptions: signOptions || this.defaultSignOptions, + }); + return await this.client.signAmino( chainId, signer, @@ -154,6 +162,16 @@ export class EWalletClient implements WalletClient { signDoc: DirectSignDoc, signOptions?: SignOptions ): Promise { + console.log("[EWallet] signDirect - Gas fee settings:", { + chainId, + signDoc: { + chainId: signDoc.chainId, + accountNumber: signDoc.accountNumber, + authInfoBytes: signDoc.authInfoBytes?.length + " bytes", + }, + signOptions: signOptions || this.defaultSignOptions, + }); + const resp = await this.client.signDirect( chainId, signer, @@ -180,6 +198,12 @@ export class EWalletClient implements WalletClient { tx: Uint8Array, mode: "block" | "async" | "sync" ) { + console.log("[EWallet] sendTx - Transaction details:", { + chainId, + txSize: tx.length + " bytes", + mode, + }); + return await this.client.sendTx(chainId, tx, mode); } } From 614f072f33509c8bf9f948805932fa17b35bea03 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 17:11:25 +0900 Subject: [PATCH 25/59] o --- packages/web/integrations/ewallet/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts index 91e0213cac..bf5c8cab3e 100644 --- a/packages/web/integrations/ewallet/client.ts +++ b/packages/web/integrations/ewallet/client.ts @@ -23,7 +23,7 @@ import { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; export class EWalletClient implements WalletClient { readonly client: CosmosEWallet; private _defaultSignOptions: SignOptions = { - preferNoSetFee: false, + preferNoSetFee: true, preferNoSetMemo: true, disableBalanceCheck: true, }; From b043956ad387fef56baff1b3c332f156e748cfda Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 17:41:40 +0900 Subject: [PATCH 26/59] o --- packages/stores/src/account/base.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stores/src/account/base.ts b/packages/stores/src/account/base.ts index e3b63df344..c17e33d5fd 100644 --- a/packages/stores/src/account/base.ts +++ b/packages/stores/src/account/base.ts @@ -1372,6 +1372,7 @@ export class AccountStore[] = []> { initialFee?: Optional; signOptions?: SignOptions; }): Promise { + console.log("signOptions", signOptions); if (!wallet.address) throw new Error("No wallet address available."); try { From 728d4b5b6176e6ae190298878b89220bf70275f6 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 17:50:36 +0900 Subject: [PATCH 27/59] o --- packages/stores/src/account/base.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/stores/src/account/base.ts b/packages/stores/src/account/base.ts index c17e33d5fd..9822bb3a89 100644 --- a/packages/stores/src/account/base.ts +++ b/packages/stores/src/account/base.ts @@ -571,15 +571,31 @@ export class AccountStore[] = []> { ...signOptions, }; + console.log("[AccountStore] signAndBroadcast - Fee check:", { + walletName: wallet.walletName, + "typeof fee": typeof fee, + "fee value": fee, + "will call estimateFee": typeof fee === "undefined", + }); + // Estimate gas fee & token if not provided if (typeof fee === "undefined") { + console.log("[AccountStore] signAndBroadcast - Calling estimateFee..."); try { fee = await this.estimateFee({ wallet, messages: msgs, signOptions: mergedSignOptions, }); + console.log( + "[AccountStore] signAndBroadcast - estimateFee result:", + fee + ); } catch (e) { + console.error( + "[AccountStore] signAndBroadcast - estimateFee error:", + e + ); if (e instanceof SimulateNotAvailableError) { console.warn( "Gas simulation not supported for chain ID:", @@ -589,6 +605,10 @@ export class AccountStore[] = []> { throw e; } + } else { + console.log( + "[AccountStore] signAndBroadcast - Fee already provided, skipping estimateFee" + ); } const txRaw = await this.sign({ From 45dd414b3fe4fac23d2c1a9f4be394939b10781a Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 17:57:02 +0900 Subject: [PATCH 28/59] Revert "o" This reverts commit 728d4b5b6176e6ae190298878b89220bf70275f6. --- packages/stores/src/account/base.ts | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/packages/stores/src/account/base.ts b/packages/stores/src/account/base.ts index 9822bb3a89..c17e33d5fd 100644 --- a/packages/stores/src/account/base.ts +++ b/packages/stores/src/account/base.ts @@ -571,31 +571,15 @@ export class AccountStore[] = []> { ...signOptions, }; - console.log("[AccountStore] signAndBroadcast - Fee check:", { - walletName: wallet.walletName, - "typeof fee": typeof fee, - "fee value": fee, - "will call estimateFee": typeof fee === "undefined", - }); - // Estimate gas fee & token if not provided if (typeof fee === "undefined") { - console.log("[AccountStore] signAndBroadcast - Calling estimateFee..."); try { fee = await this.estimateFee({ wallet, messages: msgs, signOptions: mergedSignOptions, }); - console.log( - "[AccountStore] signAndBroadcast - estimateFee result:", - fee - ); } catch (e) { - console.error( - "[AccountStore] signAndBroadcast - estimateFee error:", - e - ); if (e instanceof SimulateNotAvailableError) { console.warn( "Gas simulation not supported for chain ID:", @@ -605,10 +589,6 @@ export class AccountStore[] = []> { throw e; } - } else { - console.log( - "[AccountStore] signAndBroadcast - Fee already provided, skipping estimateFee" - ); } const txRaw = await this.sign({ From 28e0bd627d719fd406021b152a12f31d2176644b Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 18:04:14 +0900 Subject: [PATCH 29/59] o --- packages/keplr-hooks/src/tx/fee.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/keplr-hooks/src/tx/fee.ts b/packages/keplr-hooks/src/tx/fee.ts index 2d2c0f7d81..7be5bc0cfb 100644 --- a/packages/keplr-hooks/src/tx/fee.ts +++ b/packages/keplr-hooks/src/tx/fee.ts @@ -142,20 +142,32 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig { } getFeePrimitive(): CoinPrimitive | undefined { + console.log('[FeeConfig] getFeePrimitive debug:', { + feeCurrency: this.feeCurrency, + _manualFee: this._manualFee, + feeType: this.feeType, + 'chainInfo.feeCurrencies': this.chainInfo.feeCurrencies + }); + // If there is no fee currency, just return with empty fee amount. if (!this.feeCurrency) { + console.log('[FeeConfig] No fee currency, returning undefined'); return undefined; } if (this._manualFee) { + console.log('[FeeConfig] Using manual fee:', this._manualFee); return this._manualFee; } if (this.feeType) { - return this.getFeeTypePrimitive(this.feeType); + const fee = this.getFeeTypePrimitive(this.feeType); + console.log('[FeeConfig] Using fee type:', this.feeType, 'result:', fee); + return fee; } // If fee is not set, just return with empty fee amount. + console.log('[FeeConfig] No fee set, returning undefined'); return undefined; } From 1b8658c28ac726b2158de8217e3b8af936c39c14 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 18:18:50 +0900 Subject: [PATCH 30/59] o --- packages/web/integrations/ewallet/client.ts | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts index bf5c8cab3e..aa9d20efdf 100644 --- a/packages/web/integrations/ewallet/client.ts +++ b/packages/web/integrations/ewallet/client.ts @@ -132,19 +132,26 @@ export class EWalletClient implements WalletClient { signDoc: StdSignDoc, signOptions?: SignOptions ): Promise { + const finalSignOptions = { + ...this.defaultSignOptions, + ...signOptions, + preferNoSetFee: true, + }; + console.log("[EWallet] signAmino - Gas fee settings:", { chainId, fee: signDoc.fee, gasWanted: signDoc.fee?.gas, gasPrice: signDoc.fee?.amount, - signOptions: signOptions || this.defaultSignOptions, + originalSignOptions: signOptions, + finalSignOptions, }); return await this.client.signAmino( chainId, signer, signDoc, - signOptions || this.defaultSignOptions + finalSignOptions ); } @@ -162,6 +169,12 @@ export class EWalletClient implements WalletClient { signDoc: DirectSignDoc, signOptions?: SignOptions ): Promise { + const finalSignOptions = { + ...this.defaultSignOptions, + ...signOptions, + preferNoSetFee: true, + }; + console.log("[EWallet] signDirect - Gas fee settings:", { chainId, signDoc: { @@ -169,7 +182,8 @@ export class EWalletClient implements WalletClient { accountNumber: signDoc.accountNumber, authInfoBytes: signDoc.authInfoBytes?.length + " bytes", }, - signOptions: signOptions || this.defaultSignOptions, + originalSignOptions: signOptions, + finalSignOptions, }); const resp = await this.client.signDirect( @@ -182,7 +196,7 @@ export class EWalletClient implements WalletClient { chainId: signDoc.chainId ?? "", accountNumber: BigInt(signDoc.accountNumber ?? "0"), }, - signOptions || this.defaultSignOptions + finalSignOptions ); return { ...resp, From 90201f1e04e801d449d193fba9a1df2e928960e5 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Tue, 19 Aug 2025 19:07:39 +0900 Subject: [PATCH 31/59] =?UTF-8?q?feature=20flag=EA=B0=80=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EB=8D=95=EC=85=98=EC=97=90=EC=84=9C=EB=8F=84=20?= =?UTF-8?q?=EA=B0=9C=EB=B0=9C=20=EB=AA=A8=EB=93=9C=EC=99=80=20=EB=98=91?= =?UTF-8?q?=EA=B0=99=EC=9D=80=20=EA=B0=92=EC=9C=BC=EB=A1=9C=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/hooks/use-feature-flags.ts | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/web/hooks/use-feature-flags.ts b/packages/web/hooks/use-feature-flags.ts index 5f9c3f62d9..bdf0364be3 100644 --- a/packages/web/hooks/use-feature-flags.ts +++ b/packages/web/hooks/use-feature-flags.ts @@ -2,8 +2,6 @@ import { AvailableFlags } from "@osmosis-labs/types"; import { useFlags, useLDClient } from "launchdarkly-react-client-sdk"; import { useEffect, useState } from "react"; -import { useWindowSize } from "~/hooks"; - const defaultFlags: Record = { staking: true, swapsAdBanner: true, @@ -41,7 +39,7 @@ const defaultFlags: Record = { export function useFeatureFlags() { const launchdarklyFlags: Record = useFlags(); - const { isMobile } = useWindowSize(); + // const { isMobile } = useWindowSize(); const [isInitialized, setIsInitialized] = useState(false); const client = useLDClient(); @@ -50,19 +48,15 @@ export function useFeatureFlags() { client.waitForInitialization().then(() => setIsInitialized(true)); }, [isInitialized, client]); - const isDevModeWithoutClientID = - process.env.NODE_ENV === "development" && - !process.env.NEXT_PUBLIC_LAUNCH_DARKLY_CLIENT_SIDE_ID; + // const isDevModeWithoutClientID = + // process.env.NODE_ENV === "development" && + // !process.env.NEXT_PUBLIC_LAUNCH_DARKLY_CLIENT_SIDE_ID; return { ...launchdarklyFlags, - ...(isDevModeWithoutClientID ? defaultFlags : {}), - oneClickTrading: isDevModeWithoutClientID - ? defaultFlags.oneClickTrading - : !isMobile && - launchdarklyFlags.swapToolSimulateFee && // 1-Click trading is dependent on the swap tool simulate fee flag - launchdarklyFlags.oneClickTrading, - _isInitialized: isDevModeWithoutClientID ? true : isInitialized, + ...defaultFlags, + oneClickTrading: defaultFlags.oneClickTrading, + _isInitialized: true, _isClientIDPresent: !!process.env.NEXT_PUBLIC_LAUNCH_DARKLY_CLIENT_SIDE_ID, } as Record< AvailableFlags | "_isInitialized" | "_isClientIDPresent", From f6572d6111eef49db0f596ec60a90cf3cbb8b98c Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 19 Aug 2025 22:02:11 +0900 Subject: [PATCH 32/59] o --- packages/keplr-hooks/src/tx/fee.ts | 14 +------------- packages/stores/src/account/base.ts | 1 - 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/packages/keplr-hooks/src/tx/fee.ts b/packages/keplr-hooks/src/tx/fee.ts index 7be5bc0cfb..2d2c0f7d81 100644 --- a/packages/keplr-hooks/src/tx/fee.ts +++ b/packages/keplr-hooks/src/tx/fee.ts @@ -142,32 +142,20 @@ export class FeeConfig extends TxChainSetter implements IFeeConfig { } getFeePrimitive(): CoinPrimitive | undefined { - console.log('[FeeConfig] getFeePrimitive debug:', { - feeCurrency: this.feeCurrency, - _manualFee: this._manualFee, - feeType: this.feeType, - 'chainInfo.feeCurrencies': this.chainInfo.feeCurrencies - }); - // If there is no fee currency, just return with empty fee amount. if (!this.feeCurrency) { - console.log('[FeeConfig] No fee currency, returning undefined'); return undefined; } if (this._manualFee) { - console.log('[FeeConfig] Using manual fee:', this._manualFee); return this._manualFee; } if (this.feeType) { - const fee = this.getFeeTypePrimitive(this.feeType); - console.log('[FeeConfig] Using fee type:', this.feeType, 'result:', fee); - return fee; + return this.getFeeTypePrimitive(this.feeType); } // If fee is not set, just return with empty fee amount. - console.log('[FeeConfig] No fee set, returning undefined'); return undefined; } diff --git a/packages/stores/src/account/base.ts b/packages/stores/src/account/base.ts index c17e33d5fd..e3b63df344 100644 --- a/packages/stores/src/account/base.ts +++ b/packages/stores/src/account/base.ts @@ -1372,7 +1372,6 @@ export class AccountStore[] = []> { initialFee?: Optional; signOptions?: SignOptions; }): Promise { - console.log("signOptions", signOptions); if (!wallet.address) throw new Error("No wallet address available."); try { From d4fef93d86500bc45839acbddcd8e3f7cc6d2374 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 16:32:07 +0900 Subject: [PATCH 33/59] =?UTF-8?q?wagmi=EC=97=90=20keplr-ewallet=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20(=EC=96=B4?= =?UTF-8?q?=EB=96=A4=20=EC=9D=B4=EC=9C=A0=EB=A1=9C=20yarn.lock=EC=9D=80=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EC=95=88=ED=95=A8.=20?= =?UTF-8?q?=EB=88=84=EA=B0=80=20=ED=95=B4=EC=A3=BC=EA=B8=B0=20=EB=B0=94?= =?UTF-8?q?=EB=9E=8C...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/config/wagmi-keplr-ewallet.ts | 192 +++++++++++++++++++++ packages/web/config/wagmi.ts | 2 + packages/web/package.json | 1 + 3 files changed, 195 insertions(+) create mode 100644 packages/web/config/wagmi-keplr-ewallet.ts diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts new file mode 100644 index 0000000000..94f2f35581 --- /dev/null +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -0,0 +1,192 @@ +import { + type EIP1193Provider, + type EthEWallet, + initEthEWallet, +} from "@keplr-ewallet/ewallet-sdk-eth"; +import { getAddress, toHex } from "viem"; +import { createConnector, CreateConnectorFn } from "wagmi"; + +const keplrIcon = + "data:image/png;base64,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"; + +export function keplrEWalletConnector(): CreateConnectorFn { + let initPromise: Promise | null = null; + + let ethEWallet: EthEWallet | null = null; + let cachedProvider: EIP1193Provider | null = null; + + const ensureInit = () => { + if (typeof window === "undefined") { + throw new Error("You are not in browser context"); + } + + if (!initPromise) { + initPromise = (async () => { + console.log("keplr-ewallet: setup"); + + // TODO: enable to override chain info when init ethereum wallet + const initRes = await initEthEWallet({ + api_key: + "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", + sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_SDK_ENDPOINT, + use_testnet: true, + }); + if (!initRes.success) { + throw new Error(`init fail: ${initRes.err}`); + } + console.log("keplr-ewallet: eth sdk init success"); + ethEWallet = initRes.data; + return initRes.data; + })(); + } + return initPromise; + }; + + return createConnector((config) => { + const wallet = { + id: "keplr-ewallet", + name: "Keplr E-Wallet", + type: "keplr-ewallet" as const, + icon: keplrIcon, + setup: async () => { + if (typeof window === "undefined") { + // You are in nextjs server. + return; + } + await ensureInit(); + }, + connect: async (parameters?: { + chainId?: number | undefined; + isReconnecting?: boolean | undefined; + }) => { + console.log("[keplr-ewallet] try to connect keplr e-wallet!"); + + const ethEWallet = await ensureInit(); + + let accounts = await wallet.getAccounts(); + + // if accounts is empty, try sign in + if (accounts.length === 0) { + // if is reconnecting, skip sign in with google + // only trigger by user manually interact with the connector + if (parameters?.isReconnecting) { + console.log( + "[keplr-ewallet] reconnecting ewallet, skip sign in with google" + ); + return { + accounts, + chainId: await wallet.getChainId(), + }; + } + + console.log( + "[keplr-ewallet] no authenticated account, sign in with google" + ); + await ethEWallet.eWallet.signIn("google"); + } + + const chainId = await wallet.getChainId(); + + if (parameters?.chainId && chainId !== parameters.chainId) { + await wallet.switchChain({ chainId: parameters.chainId }); + } + + // re-request accounts, there should be at least one account after sign in + accounts = await wallet.getAccounts(); + + console.log( + "[keplr-ewallet] connected with accounts ", + accounts.length > 0 + ); + + return { + accounts, + chainId, + }; + }, + disconnect: async () => { + console.log("[keplr-ewallet] disconnect keplr e-wallet"); + const provider = await wallet.getProvider(); + provider.removeListener("accountsChanged", wallet.onAccountsChanged); + provider.removeListener("chainChanged", wallet.onChainChanged); + + await ethEWallet?.eWallet.signOut(); + }, + getAccounts: async () => { + console.log("[keplr-ewallet] handle `getAccounts`"); + const provider = await wallet.getProvider(); + const accounts = await provider.request({ + method: "eth_accounts", + }); + return accounts.map((x: string) => getAddress(x)); + }, + getChainId: async () => { + console.log("[keplr-ewallet] handle `getChainId`"); + + const provider = await wallet.getProvider(); + const chainId = await provider.request({ + method: "eth_chainId", + }); + return Number(chainId); + }, + getProvider: async () => { + console.log("[keplr-ewallet] handle `getProvider`"); + if (cachedProvider) { + return cachedProvider; + } + + const ethEWallet = await ensureInit(); + + cachedProvider = await ethEWallet.getEthereumProvider(); + + cachedProvider.on("chainChanged", (chainId) => { + wallet.onChainChanged(chainId); + }); + + cachedProvider.on("accountsChanged", (accounts) => { + wallet.onAccountsChanged(accounts); + }); + + return cachedProvider; + }, + isAuthorized: async () => { + console.log("[keplr-ewallet] handle `isAuthorized`"); + const accounts = await wallet.getAccounts(); + return accounts.length > 0; + }, + switchChain: async ({ chainId }: { chainId: number }) => { + console.log("[keplr-ewallet] handle `switchChain`", chainId); + const chain = config.chains.find((network) => network.id === chainId); + if (!chain) { + throw new Error(`Chain ${chainId} not found`); + } + + const provider = await wallet.getProvider(); + await provider.request({ + method: "wallet_switchEthereumChain", + params: [{ chainId: toHex(chainId) }], + }); + + return chain; + }, + onAccountsChanged: (accounts: string[]) => { + if (accounts.length === 0) { + wallet.onDisconnect(); + } else { + config.emitter.emit("change", { + accounts: accounts.map((x: string) => getAddress(x)), + }); + } + }, + onChainChanged: (chainId: string | number) => { + const chainIdNumber = Number(chainId); + config.emitter.emit("change", { chainId: chainIdNumber }); + }, + onDisconnect: () => { + config.emitter.emit("disconnect"); + }, + }; + + return wallet; + }); +} diff --git a/packages/web/config/wagmi.ts b/packages/web/config/wagmi.ts index d7f012f971..85f35242c6 100644 --- a/packages/web/config/wagmi.ts +++ b/packages/web/config/wagmi.ts @@ -3,6 +3,7 @@ import { createConfig, http } from "wagmi"; import { coinbaseWallet, metaMask, walletConnect } from "wagmi/connectors"; import { WALLETCONNECT_PROJECT_KEY } from "~/config/env"; +import {keplrEWalletConnector} from "~/config/wagmi-keplr-ewallet"; import { theme } from "~/tailwind.config"; declare module "wagmi" { @@ -25,6 +26,7 @@ export const wagmiConfig = createConfig({ }, injectProvider: false, }), + keplrEWalletConnector(), walletConnect({ projectId: WALLETCONNECT_PROJECT_KEY ?? "", qrModalOptions: { diff --git a/packages/web/package.json b/packages/web/package.json index 6ee2ab1eb5..d3c9de967f 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -41,6 +41,7 @@ "@headlessui/react": "^2.1.1", "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.44", "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.58", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.52", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", From defb606145dace3df5160bf1fe5e21a9729fb0d6 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 18:18:04 +0900 Subject: [PATCH 34/59] =?UTF-8?q?disconnectAll=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/integrations/ewallet/main-wallet.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 351a81af17..294f193fc3 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -1,4 +1,5 @@ import { type EndpointOptions, MainWalletBase } from "@cosmos-kit/core"; +import { ChainName, DisconnectOptions } from "@cosmos-kit/core/cjs/types"; import { initKeplrEwalletCore, KeplrEWallet, @@ -141,4 +142,17 @@ export class EWalletMainWallet extends MainWalletBase { await this.eWallet.signIn("google"); } }; + + async disconnectAll( + activeOnly?: boolean, + exclude?: ChainName, + options?: DisconnectOptions + ): Promise { + await super.disconnectAll(activeOnly, exclude, options); + if (this.eWallet) { + await this.eWallet.signOut(); + } + this.eWallet = null; + this.cosmosEWallet = null; + } } From 1cb2885a7506fd006af4674b6973119bdca5f172 Mon Sep 17 00:00:00 2001 From: devmosis Date: Wed, 20 Aug 2025 18:33:06 +0900 Subject: [PATCH 35/59] Update yarn.lock --- yarn.lock | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 104 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index caf3e3d8f9..04976c4da6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,7 +51,7 @@ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== -"@adraffy/ens-normalize@1.11.0", "@adraffy/ens-normalize@^1.10.1": +"@adraffy/ens-normalize@1.11.0", "@adraffy/ens-normalize@^1.10.1", "@adraffy/ens-normalize@^1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33" integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg== @@ -4521,6 +4521,14 @@ "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" "@keplr-wallet/types" "^0.12.257" +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.45": + version "0.0.6-rc.46" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.46.tgz#62c5b19f17ccfc815ba6573218b92f24fed6389f" + integrity sha512-l8oQbkyGbc9c4mF2R64SvfzIVm4yD5WvkwC5YNW9ZfoeyLvwzx8q35MlGwtPF5khsw6Hh0If2Kk1dnwdOniz9g== + dependencies: + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + "@keplr-wallet/types" "^0.12.257" + "@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.58": version "0.0.6-rc.58" resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.58.tgz#9806e0bcb01f83eb5297ab6b1cf7946da976caa6" @@ -4537,6 +4545,17 @@ bech32 "^2.0.0" buffer "^6.0.3" +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.52": + version "0.0.6-rc.52" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.52.tgz#e6db817af841670ed0c4eb0bef0a099108a4ab73" + integrity sha512-DxsPEyvLqj4EfL1M81J4spP7i6R+LuWMNvTlEQfWsjto5t5r61d13YaPzdRc6ZLJYApaZehLLohjJvLaF+mqjA== + dependencies: + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.45" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + eventemitter3 "^5.0.1" + uuid "*" + viem "*" + "@keplr-ewallet/stdlib-js@^0.0.2-rc.9": version "0.0.2-rc.9" resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.9.tgz#d34598a4223135d724cc3e83cc0aa57e9df06cf5" @@ -5342,6 +5361,11 @@ resolved "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f" integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g== +"@noble/ciphers@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.3.0.tgz#f64b8ff886c240e644e5573c097f86e5b43676dc" + integrity sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw== + "@noble/curves@1.3.0", "@noble/curves@~1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" @@ -5363,13 +5387,20 @@ dependencies: "@noble/hashes" "1.7.1" -"@noble/curves@^1.9.2": +"@noble/curves@1.9.6", "@noble/curves@^1.9.2": version "1.9.6" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.6.tgz#b45ebedca85bb75782f6be7e7f120f0c423c99e0" integrity sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA== dependencies: "@noble/hashes" "1.8.0" +"@noble/curves@^1.9.1", "@noble/curves@~1.9.0": + version "1.9.7" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" + integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== + dependencies: + "@noble/hashes" "1.8.0" + "@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": version "1.3.3" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" @@ -5385,7 +5416,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== -"@noble/hashes@1.8.0", "@noble/hashes@^1.8.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -6907,6 +6938,11 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.4.tgz#002eb571a35d69bdb4c214d0995dff76a8dcd2a9" integrity sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ== +"@scure/base@~1.2.5": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" + integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== + "@scure/bip32@1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" @@ -6934,6 +6970,15 @@ "@noble/hashes" "~1.7.1" "@scure/base" "~1.2.2" +"@scure/bip32@1.7.0", "@scure/bip32@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.7.0.tgz#b8683bab172369f988f1589640e53c4606984219" + integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw== + dependencies: + "@noble/curves" "~1.9.0" + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" + "@scure/bip39@1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" @@ -6958,6 +7003,14 @@ "@noble/hashes" "~1.7.1" "@scure/base" "~1.2.4" +"@scure/bip39@1.6.0", "@scure/bip39@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.6.0.tgz#475970ace440d7be87a6086cbee77cb8f1a684f9" + integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A== + dependencies: + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" + "@sentry/core@9.5.0", "@sentry/core@^9.5.0": version "9.5.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-9.5.0.tgz#09fc38e3bf0b107c721d21351b8702ca2f012922" @@ -9032,6 +9085,11 @@ abitype@1.0.8, abitype@^1.0.6: resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.8.tgz#3554f28b2e9d6e9f35eb59878193eabd1b9f46ba" integrity sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg== +abitype@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.9.tgz#f66940f69caf2b6c190088a017e289dbe41090a6" + integrity sha512-oN0S++TQmlwWuB+rkA6aiEefLv3SP+2l/tC5mux/TLj6qdA6rF15Vbpex4fHovLsMkwLwTIRj8/Q8vXCS3GfOg== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -14935,6 +14993,11 @@ isows@1.0.6: resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7" integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw== +isows@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.7.tgz#1c06400b7eed216fbba3bcbd68f12490fc342915" + integrity sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" @@ -18156,6 +18219,20 @@ ox@0.6.7: abitype "^1.0.6" eventemitter3 "5.0.1" +ox@0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/ox/-/ox-0.8.7.tgz#234812627f931aaf5bd45728a50c9a42a26e76db" + integrity sha512-W1f0FiMf9NZqtHPEDEAEkyzZDwbIKfmH2qmQx8NNiQ/9JhxrSblmtLJsSfTtQG5YKowLOnBlLVguCyxm/7ztxw== + dependencies: + "@adraffy/ens-normalize" "^1.11.0" + "@noble/ciphers" "^1.3.0" + "@noble/curves" "^1.9.1" + "@noble/hashes" "^1.8.0" + "@scure/bip32" "^1.7.0" + "@scure/bip39" "^1.6.0" + abitype "^1.0.8" + eventemitter3 "5.0.1" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" @@ -22138,6 +22215,11 @@ utility-types@^3.10.0: resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== +uuid@*: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" @@ -22253,6 +22335,20 @@ vfile@^5.0.0: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" +viem@*: + version "2.34.0" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.34.0.tgz#566b15838d3121d03eaa9bdb2b8bf9b86c37d152" + integrity sha512-HJZG9Wt0DLX042MG0PK17tpataxtdAEhpta9/Q44FqKwy3xZMI5Lx4jF+zZPuXFuYjZ68R0PXqRwlswHs6r4gA== + dependencies: + "@noble/curves" "1.9.6" + "@noble/hashes" "1.8.0" + "@scure/bip32" "1.7.0" + "@scure/bip39" "1.6.0" + abitype "1.0.8" + isows "1.0.7" + ox "0.8.7" + ws "8.18.3" + viem@^2.1.1: version "2.21.19" resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.19.tgz#5e1a7efc45903d83306416ffa2e3a11ed23cd924" @@ -22674,6 +22770,11 @@ ws@8.18.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +ws@8.18.3: + version "8.18.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + ws@^6.2.0: version "6.2.2" resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" From 854cc0128b6bac5c594a12f44148bc59d0d5fb4e Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 18:47:31 +0900 Subject: [PATCH 36/59] =?UTF-8?q?=ED=83=80=EC=9E=85=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/config/wagmi-keplr-ewallet.ts | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index 94f2f35581..f97d5c55e3 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -13,7 +13,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { let initPromise: Promise | null = null; let ethEWallet: EthEWallet | null = null; - let cachedProvider: EIP1193Provider | null = null; + let cachedProviderPromise: Promise | null = null; const ensureInit = () => { if (typeof window === "undefined") { @@ -129,25 +129,32 @@ export function keplrEWalletConnector(): CreateConnectorFn { }); return Number(chainId); }, - getProvider: async () => { + getProvider: () => { console.log("[keplr-ewallet] handle `getProvider`"); - if (cachedProvider) { - return cachedProvider; + if (cachedProviderPromise) { + return cachedProviderPromise; } - const ethEWallet = await ensureInit(); + cachedProviderPromise = (async () => { + const ethEWallet = await ensureInit(); - cachedProvider = await ethEWallet.getEthereumProvider(); + const provider = await ethEWallet.getEthereumProvider(); - cachedProvider.on("chainChanged", (chainId) => { - wallet.onChainChanged(chainId); - }); + provider.on("chainChanged", (chainId: string) => { + wallet.onChainChanged(chainId); + }); + + provider.on("accountsChanged", (accounts: string[]) => { + wallet.onAccountsChanged(accounts); + }); - cachedProvider.on("accountsChanged", (accounts) => { - wallet.onAccountsChanged(accounts); + return provider; + })().catch((e) => { + console.error(e); + cachedProviderPromise = null; }); - return cachedProvider; + return cachedProviderPromise; }, isAuthorized: async () => { console.log("[keplr-ewallet] handle `isAuthorized`"); From 5112ea33a32274a2b3febc72f7998796523978b0 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Tue, 19 Aug 2025 16:19:52 +0900 Subject: [PATCH 37/59] =?UTF-8?q?EWalletMainWallet=EC=9D=B4=20singleton?= =?UTF-8?q?=EC=9D=B8=20=EA=B2=83=EC=B2=98=EB=9F=BC=20&=20init()=EC=9D=B4?= =?UTF-8?q?=20=ED=95=9C=EB=B2=88=EB=A7=8C=20=EC=8B=A4=ED=96=89=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=9E=84=EC=8B=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/integrations/ewallet/main-wallet.ts | 67 ++++++++++++------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 294f193fc3..5736ef53bd 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -15,9 +15,11 @@ import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { + private static initPromise: Promise | undefined; + private static ewallet: KeplrEWallet | null = null; + private static cosmosEWallet: CosmosEWallet | null = null; + private apiKey: string; - private eWallet: KeplrEWallet | null = null; - private cosmosEWallet: CosmosEWallet | null = null; constructor( walletInfo: EWalletInfo, @@ -33,25 +35,25 @@ export class EWalletMainWallet extends MainWalletBase { try { await this.init(); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { throw new Error("eWallet not initialized after init()"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - const publicKey = await this.eWallet.getPublicKey(); + const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { isSignedIn = false; } if (!isSignedIn) { - await this.eWallet.signIn("google"); + await EWalletMainWallet.eWallet.signIn("google"); } - if (this.cosmosEWallet) { - this.initClientDone(new EWalletClient(this.cosmosEWallet)); + if (EWalletMainWallet.cosmosEWallet) { + this.initClientDone(new EWalletClient(EWalletMainWallet.cosmosEWallet)); } else { this.initClientError(new Error("CosmosEWallet not initialized")); } @@ -62,52 +64,62 @@ export class EWalletMainWallet extends MainWalletBase { } } - async init() { + init() { + if (EWalletMainWallet.initPromise) { + return EWalletMainWallet.initPromise + } + + EWalletMainWallet.initPromise = this.initInternal(); + + return EWalletMainWallet.initPromise + } + + protected async initInternal() { console.log( - `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( - 0, - 10 - )}...` + `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( + 0, + 10 + )}...` ); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { console.log(`[EWalletMainWallet] Initializing KeplrEwalletCore...`); const result = await initKeplrEwalletCore({ api_key: this.apiKey, }); if (result && result.success) { - this.eWallet = result.data; + EWalletMainWallet.eWallet = result.data; console.log( - `[EWalletMainWallet] KeplrEwalletCore initialized successfully` + `[EWalletMainWallet] KeplrEwalletCore initialized successfully` ); } else { console.error( - `[EWalletMainWallet] KeplrEwalletCore init failed:`, - result?.err + `[EWalletMainWallet] KeplrEwalletCore init failed:`, + result?.err ); throw new Error(result?.err || "Unknown initialization error"); } } - if (!this.cosmosEWallet && this.eWallet) { + if (!EWalletMainWallet.cosmosEWallet && EWalletMainWallet.eWallet) { console.log(`[EWalletMainWallet] Initializing CosmosEWallet...`); const result = await initCosmosEWallet({ api_key: this.apiKey, }); if (result && result.success) { - this.cosmosEWallet = result.data; + EWalletMainWallet.cosmosEWallet = result.data; console.log( - `[EWalletMainWallet] CosmosEWallet initialized successfully` + `[EWalletMainWallet] CosmosEWallet initialized successfully` ); } else { console.error( - `[EWalletMainWallet] CosmosEWallet init failed:`, - result?.err + `[EWalletMainWallet] CosmosEWallet init failed:`, + result?.err ); throw new Error( - result?.err || "Unknown cosmos ewallet initialization error" + result?.err || "Unknown cosmos ewallet initialization error" ); } } @@ -124,22 +136,25 @@ export class EWalletMainWallet extends MainWalletBase { await this.init(); - if (!this.eWallet) { + if (!EWalletMainWallet.eWallet) { throw new Error("Ewallet not initialized"); } // Check if already signed in before calling signIn let isSignedIn = false; try { - const publicKey = await this.eWallet.getPublicKey(); + console.log("XXX try get pubkey"); + const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); isSignedIn = !!publicKey; } catch (error) { + console.log("!!!!", error); isSignedIn = false; } + console.log("???? pubkey get", isSignedIn); if (!isSignedIn) { console.log("Calling signIn from connect method"); - await this.eWallet.signIn("google"); + await EWalletMainWallet.eWallet.signIn("google"); } }; From 0bb1c25c0f8fde6a0389cfa086d0f659440a3ffb Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 19:13:48 +0900 Subject: [PATCH 38/59] =?UTF-8?q?cosmos=20ewallet=EC=9D=B4=20=ED=95=9C?= =?UTF-8?q?=EB=B2=88=EB=A7=8C=20init=20=EB=90=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/integrations/ewallet/main-wallet.ts | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 5736ef53bd..a7a8753a5b 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -16,7 +16,7 @@ import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { private static initPromise: Promise | undefined; - private static ewallet: KeplrEWallet | null = null; + private static eWallet: KeplrEWallet | null = null; private static cosmosEWallet: CosmosEWallet | null = null; private apiKey: string; @@ -66,20 +66,20 @@ export class EWalletMainWallet extends MainWalletBase { init() { if (EWalletMainWallet.initPromise) { - return EWalletMainWallet.initPromise + return EWalletMainWallet.initPromise; } EWalletMainWallet.initPromise = this.initInternal(); - return EWalletMainWallet.initPromise + return EWalletMainWallet.initPromise; } protected async initInternal() { console.log( - `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( - 0, - 10 - )}...` + `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( + 0, + 10 + )}...` ); if (!EWalletMainWallet.eWallet) { @@ -91,12 +91,12 @@ export class EWalletMainWallet extends MainWalletBase { if (result && result.success) { EWalletMainWallet.eWallet = result.data; console.log( - `[EWalletMainWallet] KeplrEwalletCore initialized successfully` + `[EWalletMainWallet] KeplrEwalletCore initialized successfully` ); } else { console.error( - `[EWalletMainWallet] KeplrEwalletCore init failed:`, - result?.err + `[EWalletMainWallet] KeplrEwalletCore init failed:`, + result?.err ); throw new Error(result?.err || "Unknown initialization error"); } @@ -111,15 +111,15 @@ export class EWalletMainWallet extends MainWalletBase { if (result && result.success) { EWalletMainWallet.cosmosEWallet = result.data; console.log( - `[EWalletMainWallet] CosmosEWallet initialized successfully` + `[EWalletMainWallet] CosmosEWallet initialized successfully` ); } else { console.error( - `[EWalletMainWallet] CosmosEWallet init failed:`, - result?.err + `[EWalletMainWallet] CosmosEWallet init failed:`, + result?.err ); throw new Error( - result?.err || "Unknown cosmos ewallet initialization error" + result?.err || "Unknown cosmos ewallet initialization error" ); } } @@ -164,10 +164,10 @@ export class EWalletMainWallet extends MainWalletBase { options?: DisconnectOptions ): Promise { await super.disconnectAll(activeOnly, exclude, options); - if (this.eWallet) { - await this.eWallet.signOut(); + if (EWalletMainWallet.eWallet) { + await EWalletMainWallet.eWallet.signOut(); } - this.eWallet = null; - this.cosmosEWallet = null; + EWalletMainWallet.eWallet = null; + EWalletMainWallet.cosmosEWallet = null; } } From 9a00cf51beb63108e00b1f2ee662fa98ca5648e5 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 19:15:47 +0900 Subject: [PATCH 39/59] =?UTF-8?q?eth=20ewallet=EC=9D=B4=201=EC=B4=88=20?= =?UTF-8?q?=ED=9B=84=EC=97=90=20init=20=EB=90=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=9D=BC=EB=8B=A8=20=EC=88=98=EC=A0=95=20(QA=EB=A1=9C=20?= =?UTF-8?q?=EB=84=98=EA=B8=B0=EA=B8=B0=20=EC=9C=84=ED=95=B4=EC=84=9C...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/config/wagmi-keplr-ewallet.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index f97d5c55e3..47a95755da 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -22,7 +22,14 @@ export function keplrEWalletConnector(): CreateConnectorFn { if (!initPromise) { initPromise = (async () => { - console.log("keplr-ewallet: setup"); + // XXX: 일단 QA를 할 수 있도록 대충 처리함. + // ewallet이 init이 동시에 여러개 발생하면 진행이 안되는 문제가 있는데 + // sign-in 후에 refresh를 하면 cosmos 쪽의 init이 수행 중에 얘도 발생하게 됨. + // 둘이 꽤 떨어져 있는 코드라서 한번만 발생하도록 여기서 수정하기 힘들기 때문에 + // 일단 1초를 기다리는 것으로 수정 + await new Promise((resolve) => setTimeout(resolve, 1000)); + + console.log("keplr-ewallet: init"); // TODO: enable to override chain info when init ethereum wallet const initRes = await initEthEWallet({ @@ -53,7 +60,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { // You are in nextjs server. return; } - await ensureInit(); + // await ensureInit(); }, connect: async (parameters?: { chainId?: number | undefined; From c5d4c0e03d9d39338c0c546ca6946b4ea2985807 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 20 Aug 2025 19:16:57 +0900 Subject: [PATCH 40/59] Minor fix --- packages/web/config/wagmi-keplr-ewallet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index 47a95755da..55272e0b57 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -60,7 +60,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { // You are in nextjs server. return; } - // await ensureInit(); + await ensureInit(); }, connect: async (parameters?: { chainId?: number | undefined; From fde2d671d694652b6ae3a7e32ac7ba4d58f249b3 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Thu, 21 Aug 2025 14:23:20 +0900 Subject: [PATCH 41/59] =?UTF-8?q?mobile=20view=EC=97=90=EC=84=9C=20ewallet?= =?UTF-8?q?=EC=9D=84=20=EC=84=A0=ED=83=9D=ED=95=A0=20=EC=88=98=20=EC=9E=88?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/modals/wallet-select/use-selectable-wallets.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web/modals/wallet-select/use-selectable-wallets.ts b/packages/web/modals/wallet-select/use-selectable-wallets.ts index b4c54c315e..7f7f893dbb 100644 --- a/packages/web/modals/wallet-select/use-selectable-wallets.ts +++ b/packages/web/modals/wallet-select/use-selectable-wallets.ts @@ -146,7 +146,9 @@ export const useSelectableWallets = ({ /** * If user is in a normal mobile browser, show only wallet connect */ - return wallet.name.endsWith("mobile") ? [...acc, wallet] : acc; + return wallet.name.endsWith("mobile") || wallet.name === "ewallet" + ? [...acc, wallet] + : acc; } return [...acc, wallet]; From fef957d90e0128249415d807a964c0b3f9b2575d Mon Sep 17 00:00:00 2001 From: blacktoast Date: Mon, 25 Aug 2025 14:47:53 +0900 Subject: [PATCH 42/59] [build] bump up --- packages/web/package.json | 6 ++--- yarn.lock | 47 ++++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index d3c9de967f..5b1b0b86d9 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.44", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.58", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.52", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.52", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.68", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.56", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 04976c4da6..6466ec8665 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,31 +4513,31 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.44", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.44": - version "0.0.6-rc.44" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.44.tgz#44eaf521c09bec617839053fabe394ced50af5a7" - integrity sha512-hp30g/tI8k6Yc4r5//7zycpeKxkgOLWZzuanexYLskKI2KbwzPPH3+jk6RvwtI1z5B8co5MWUerMXGN6gmAlDw== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.52", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.52": + version "0.0.6-rc.52" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.52.tgz#072b5131d356733545490ba352c7e4f5ba1227aa" + integrity sha512-vj8n2cim/bW57EwxY4roauwO3asjOo/XBTz0MXYYsvLH8KJVISvfcMEayAOvpKg90lkM3DboC8U3Ock1ZDWenA== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.45": - version "0.0.6-rc.46" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.46.tgz#62c5b19f17ccfc815ba6573218b92f24fed6389f" - integrity sha512-l8oQbkyGbc9c4mF2R64SvfzIVm4yD5WvkwC5YNW9ZfoeyLvwzx8q35MlGwtPF5khsw6Hh0If2Kk1dnwdOniz9g== +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.49": + version "0.0.6-rc.51" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.51.tgz#12131f6da5c2efab48b7f9a1aa734e75573f59e4" + integrity sha512-pQHmnt2gvad2SDQ5wlryIMFpVbu3GD5ZLNkyZhuHVs0SJjlRX1Hk97IjkRPEC8tq+lGiaC0gCodzUNpyBogCsA== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.58": - version "0.0.6-rc.58" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.58.tgz#9806e0bcb01f83eb5297ab6b1cf7946da976caa6" - integrity sha512-HttsR9WqrRi1XA9jaXBgc5QGKiFxo6Gt8le80o35J7mL4C6LIAI9ZUtQOtU2pF0/DC/h5B8F39tYMAt+5GO1mw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.68": + version "0.0.6-rc.68" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.68.tgz#676928d2c8dca786c84189fd0d35177eeebf03d7" + integrity sha512-mtgzvhNGoTr793ccMCTwvZVElStAJhxIWJAs5A9PH0dqnmsvgwNFj+QrIdmy6gHf2OOZXo36b7qnArfju1Y6pA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.44" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.52" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4545,17 +4545,22 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.52": - version "0.0.6-rc.52" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.52.tgz#e6db817af841670ed0c4eb0bef0a099108a4ab73" - integrity sha512-DxsPEyvLqj4EfL1M81J4spP7i6R+LuWMNvTlEQfWsjto5t5r61d13YaPzdRc6ZLJYApaZehLLohjJvLaF+mqjA== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.56": + version "0.0.6-rc.56" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.56.tgz#974fc84257698f801409ab9fd5bde737e08bd4d3" + integrity sha512-xfhMemGzJssCKHwLAEaIWPmav064JaKO+ztijZPtgM/j1qH+2gWX80L7HdwNDWJVRGvr6JK4dNWikFPoGBxJmA== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.45" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.49" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" eventemitter3 "^5.0.1" uuid "*" viem "*" +"@keplr-ewallet/stdlib-js@^0.0.2-rc.10": + version "0.0.2-rc.10" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.10.tgz#899ef268c3667a42804ed60511d91bb6ee9cc5bf" + integrity sha512-9dkRQvYgcpMwzd3B655RpmbL4CZxB+u7bstuv8rfLO77GJ8asF9zp6V88qN8xp/sto0r4Q4tkDIcBCIG7CdWaQ== + "@keplr-ewallet/stdlib-js@^0.0.2-rc.9": version "0.0.2-rc.9" resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.9.tgz#d34598a4223135d724cc3e83cc0aa57e9df06cf5" From f347e43b14ff6c1b670113b8028d8fdbba2634e1 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Mon, 25 Aug 2025 17:43:36 +0900 Subject: [PATCH 43/59] =?UTF-8?q?initClient=20=EA=B0=84=EB=8B=A8=ED=99=94?= =?UTF-8?q?=20&=20initCosmosEWallet=EB=A5=BC=20=EB=8F=99=EA=B8=B0=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/integrations/ewallet/main-wallet.ts | 151 ++++-------------- 1 file changed, 32 insertions(+), 119 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index a7a8753a5b..a481512a18 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -1,9 +1,5 @@ import { type EndpointOptions, MainWalletBase } from "@cosmos-kit/core"; import { ChainName, DisconnectOptions } from "@cosmos-kit/core/cjs/types"; -import { - initKeplrEwalletCore, - KeplrEWallet, -} from "@keplr-ewallet/ewallet-sdk-core"; import { CosmosEWallet, initCosmosEWallet, @@ -15,11 +11,10 @@ import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { - private static initPromise: Promise | undefined; - private static eWallet: KeplrEWallet | null = null; - private static cosmosEWallet: CosmosEWallet | null = null; + protected static cosmosEWallet: CosmosEWallet | null = null; + protected static initPromise: Promise | null = null; - private apiKey: string; + private readonly apiKey: string; constructor( walletInfo: EWalletInfo, @@ -31,132 +26,50 @@ export class EWalletMainWallet extends MainWalletBase { } async initClient() { + console.log("[EWalletMainWallet] initClient"); this.initingClient(); try { - await this.init(); - - if (!EWalletMainWallet.eWallet) { - throw new Error("eWallet not initialized after init()"); - } - - // Check if already signed in before calling signIn - let isSignedIn = false; - try { - const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); - isSignedIn = !!publicKey; - } catch (error) { - isSignedIn = false; - } - - if (!isSignedIn) { - await EWalletMainWallet.eWallet.signIn("google"); - } - - if (EWalletMainWallet.cosmosEWallet) { - this.initClientDone(new EWalletClient(EWalletMainWallet.cosmosEWallet)); - } else { - this.initClientError(new Error("CosmosEWallet not initialized")); - } + console.log(this); + const cosmosEwallet = await this.initOnce(this.apiKey); + + this.initClientDone(new EWalletClient(cosmosEWallet)); } catch (error) { - this.initClientError( - error instanceof Error ? error : new Error(String(error)) - ); + this.initClientError(error as Error); } } - init() { + protected initOnce = async (apiKey: string): Promise => { + if (EWalletMainWallet.cosmosEWallet) { + return EWalletMainWallet.cosmosEWallet; + } + if (EWalletMainWallet.initPromise) { - return EWalletMainWallet.initPromise; + return await EWalletMainWallet.initPromise; } - EWalletMainWallet.initPromise = this.initInternal(); + EWalletMainWallet.initPromise = EWalletMainWallet.initInternal(apiKey); return EWalletMainWallet.initPromise; - } + }; - protected async initInternal() { - console.log( - `[EWalletMainWallet] Starting init with API key: ${this.apiKey?.substring( - 0, - 10 - )}...` - ); - - if (!EWalletMainWallet.eWallet) { - console.log(`[EWalletMainWallet] Initializing KeplrEwalletCore...`); - const result = await initKeplrEwalletCore({ - api_key: this.apiKey, - }); - - if (result && result.success) { - EWalletMainWallet.eWallet = result.data; - console.log( - `[EWalletMainWallet] KeplrEwalletCore initialized successfully` - ); - } else { - console.error( - `[EWalletMainWallet] KeplrEwalletCore init failed:`, - result?.err - ); - throw new Error(result?.err || "Unknown initialization error"); - } - } + protected static async initInternal(apiKey: string): Promise { + const res = initCosmosEWallet({ + api_key: apiKey, + }); - if (!EWalletMainWallet.cosmosEWallet && EWalletMainWallet.eWallet) { - console.log(`[EWalletMainWallet] Initializing CosmosEWallet...`); - const result = await initCosmosEWallet({ - api_key: this.apiKey, - }); - - if (result && result.success) { - EWalletMainWallet.cosmosEWallet = result.data; - console.log( - `[EWalletMainWallet] CosmosEWallet initialized successfully` - ); - } else { - console.error( - `[EWalletMainWallet] CosmosEWallet init failed:`, - result?.err - ); - throw new Error( - result?.err || "Unknown cosmos ewallet initialization error" - ); - } + if (!res.success) { + throw new Error("Failed to initialize CosmosEWallet", res.err); } - } - connect = async ( - _syncOrChainIds?: boolean | string | string[], - _options?: any - ) => { - // Ensure client is initialized first - if (this.state === "Init") { - await this.initClient(); - } + EWalletMainWallet.cosmosEWallet = res.data; - await this.init(); - - if (!EWalletMainWallet.eWallet) { - throw new Error("Ewallet not initialized"); - } - - // Check if already signed in before calling signIn - let isSignedIn = false; - try { - console.log("XXX try get pubkey"); - const publicKey = await EWalletMainWallet.eWallet.getPublicKey(); - isSignedIn = !!publicKey; - } catch (error) { - console.log("!!!!", error); - isSignedIn = false; + if (localStorage.getItem("ewallet-auto-sign-in") !== "true") { + await EWalletMainWallet.cosmosEWallet.eWallet.signIn("google"); + localStorage.setItem("ewallet-auto-sign-in", "true"); } - console.log("???? pubkey get", isSignedIn); - if (!isSignedIn) { - console.log("Calling signIn from connect method"); - await EWalletMainWallet.eWallet.signIn("google"); - } - }; + return EWalletMainWallet.cosmosEWallet; + } async disconnectAll( activeOnly?: boolean, @@ -164,10 +77,10 @@ export class EWalletMainWallet extends MainWalletBase { options?: DisconnectOptions ): Promise { await super.disconnectAll(activeOnly, exclude, options); - if (EWalletMainWallet.eWallet) { - await EWalletMainWallet.eWallet.signOut(); + if (EWalletMainWallet.cosmosEWallet) { + await EWalletMainWallet.cosmosEWallet.eWallet.signOut(); + localStorage.removeItem("ewallet-auto-sign-in"); } - EWalletMainWallet.eWallet = null; EWalletMainWallet.cosmosEWallet = null; } } From 98e7fa6f4b87839f95d819c61717cdbb4fc25868 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Mon, 25 Aug 2025 17:58:09 +0900 Subject: [PATCH 44/59] =?UTF-8?q?initOnce()=EB=A5=BC=20static=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/integrations/ewallet/main-wallet.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index a481512a18..009f2d9768 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -30,15 +30,17 @@ export class EWalletMainWallet extends MainWalletBase { this.initingClient(); try { console.log(this); - const cosmosEwallet = await this.initOnce(this.apiKey); + const ewallet = await EWalletMainWallet.initOnce(this.apiKey); - this.initClientDone(new EWalletClient(cosmosEWallet)); + this.initClientDone(new EWalletClient(ewallet)); } catch (error) { this.initClientError(error as Error); } } - protected initOnce = async (apiKey: string): Promise => { + protected static initOnce = async ( + apiKey: string + ): Promise => { if (EWalletMainWallet.cosmosEWallet) { return EWalletMainWallet.cosmosEWallet; } From e35fb2b12dbb4961cc659577458087e39a525cde Mon Sep 17 00:00:00 2001 From: Thunnini Date: Mon, 25 Aug 2025 18:01:33 +0900 Subject: [PATCH 45/59] =?UTF-8?q?=ED=83=80=EC=9E=85=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/integrations/ewallet/main-wallet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 009f2d9768..5bce7f38c8 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -60,7 +60,7 @@ export class EWalletMainWallet extends MainWalletBase { }); if (!res.success) { - throw new Error("Failed to initialize CosmosEWallet", res.err); + throw new Error(`Failed to initialize CosmosEWallet: ${res.err}`); } EWalletMainWallet.cosmosEWallet = res.data; From 78614ee86b10a91a542cebc0e86bca20b6155d06 Mon Sep 17 00:00:00 2001 From: blacktoast Date: Tue, 26 Aug 2025 14:00:14 +0900 Subject: [PATCH 46/59] [env] when it runs in local, sdk_url will be localhost --- packages/web/.env | 1 + packages/web/config/wagmi-keplr-ewallet.ts | 2 +- packages/web/integrations/ewallet/main-wallet.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web/.env b/packages/web/.env index fddfcb7ae9..b14b977f3f 100644 --- a/packages/web/.env +++ b/packages/web/.env @@ -15,6 +15,7 @@ NEXT_PUBLIC_SQUID_INTEGRATOR_ID=osmosis-api # Data services URLs NEXT_PUBLIC_SIDECAR_BASE_URL=https://sqs.osmosis.zone NEXT_PUBLIC_HISTORICAL_DATA_URL=https://data.app.osmosis.zone +NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT=http://localhost:3201 # Feature Flags diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index 55272e0b57..1b956951cc 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -35,7 +35,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { const initRes = await initEthEWallet({ api_key: "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", - sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_SDK_ENDPOINT, + sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT, use_testnet: true, }); if (!initRes.success) { diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 5bce7f38c8..49ce83aacc 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -57,6 +57,7 @@ export class EWalletMainWallet extends MainWalletBase { protected static async initInternal(apiKey: string): Promise { const res = initCosmosEWallet({ api_key: apiKey, + sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT, }); if (!res.success) { From 8fcf9556996d5195fdec57b062cfdb8d19529735 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 27 Aug 2025 14:57:03 +0900 Subject: [PATCH 47/59] Revert "[env] when it runs in local, sdk_url will be localhost" This reverts commit 78614ee86b10a91a542cebc0e86bca20b6155d06. --- packages/web/.env | 1 - packages/web/config/wagmi-keplr-ewallet.ts | 2 +- packages/web/integrations/ewallet/main-wallet.ts | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/web/.env b/packages/web/.env index b14b977f3f..fddfcb7ae9 100644 --- a/packages/web/.env +++ b/packages/web/.env @@ -15,7 +15,6 @@ NEXT_PUBLIC_SQUID_INTEGRATOR_ID=osmosis-api # Data services URLs NEXT_PUBLIC_SIDECAR_BASE_URL=https://sqs.osmosis.zone NEXT_PUBLIC_HISTORICAL_DATA_URL=https://data.app.osmosis.zone -NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT=http://localhost:3201 # Feature Flags diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index 1b956951cc..55272e0b57 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -35,7 +35,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { const initRes = await initEthEWallet({ api_key: "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", - sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT, + sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_SDK_ENDPOINT, use_testnet: true, }); if (!initRes.success) { diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 49ce83aacc..5bce7f38c8 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -57,7 +57,6 @@ export class EWalletMainWallet extends MainWalletBase { protected static async initInternal(apiKey: string): Promise { const res = initCosmosEWallet({ api_key: apiKey, - sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_DEV_SDK_ENDPOINT, }); if (!res.success) { From aa9dee06f4060e455c15014a0c36ab7c2a87555b Mon Sep 17 00:00:00 2001 From: blacktoast Date: Wed, 27 Aug 2025 19:54:37 +0900 Subject: [PATCH 48/59] [feat] update sdks versions --- packages/web/config/wagmi-keplr-ewallet.ts | 32 +++++++++-- .../web/integrations/ewallet/main-wallet.ts | 16 +++--- packages/web/package.json | 6 +- yarn.lock | 55 +++++++------------ 4 files changed, 60 insertions(+), 49 deletions(-) diff --git a/packages/web/config/wagmi-keplr-ewallet.ts b/packages/web/config/wagmi-keplr-ewallet.ts index 55272e0b57..9a6616dcd7 100644 --- a/packages/web/config/wagmi-keplr-ewallet.ts +++ b/packages/web/config/wagmi-keplr-ewallet.ts @@ -1,7 +1,7 @@ import { type EIP1193Provider, - type EthEWallet, - initEthEWallet, + EthEWallet, + type EthEWalletInterface, } from "@keplr-ewallet/ewallet-sdk-eth"; import { getAddress, toHex } from "viem"; import { createConnector, CreateConnectorFn } from "wagmi"; @@ -10,9 +10,9 @@ const keplrIcon = "data:image/png;base64,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"; export function keplrEWalletConnector(): CreateConnectorFn { - let initPromise: Promise | null = null; + let initPromise: Promise | null = null; - let ethEWallet: EthEWallet | null = null; + let ethEWallet: EthEWalletInterface | null = null; let cachedProviderPromise: Promise | null = null; const ensureInit = () => { @@ -32,7 +32,7 @@ export function keplrEWalletConnector(): CreateConnectorFn { console.log("keplr-ewallet: init"); // TODO: enable to override chain info when init ethereum wallet - const initRes = await initEthEWallet({ + const initRes = EthEWallet.init({ api_key: "72bd2afd04374f86d563a40b814b7098e5ad6c7f52d3b8f84ab0c3d05f73ac6c", sdk_endpoint: process.env.NEXT_PUBLIC_KEPLR_EWALLET_SDK_ENDPOINT, @@ -114,6 +114,10 @@ export function keplrEWalletConnector(): CreateConnectorFn { disconnect: async () => { console.log("[keplr-ewallet] disconnect keplr e-wallet"); const provider = await wallet.getProvider(); + if (!provider) { + throw new Error("Provider not found"); + } + provider.removeListener("accountsChanged", wallet.onAccountsChanged); provider.removeListener("chainChanged", wallet.onChainChanged); @@ -122,6 +126,11 @@ export function keplrEWalletConnector(): CreateConnectorFn { getAccounts: async () => { console.log("[keplr-ewallet] handle `getAccounts`"); const provider = await wallet.getProvider(); + + if (!provider) { + throw new Error("Provider not found"); + } + const accounts = await provider.request({ method: "eth_accounts", }); @@ -131,6 +140,11 @@ export function keplrEWalletConnector(): CreateConnectorFn { console.log("[keplr-ewallet] handle `getChainId`"); const provider = await wallet.getProvider(); + + if (!provider) { + throw new Error("Provider not found"); + } + const chainId = await provider.request({ method: "eth_chainId", }); @@ -159,6 +173,9 @@ export function keplrEWalletConnector(): CreateConnectorFn { })().catch((e) => { console.error(e); cachedProviderPromise = null; + throw new Error( + "Failed to get provider, provider should not be found" + ); }); return cachedProviderPromise; @@ -176,6 +193,11 @@ export function keplrEWalletConnector(): CreateConnectorFn { } const provider = await wallet.getProvider(); + + if (!provider) { + throw new Error("Provider not found"); + } + await provider.request({ method: "wallet_switchEthereumChain", params: [{ chainId: toHex(chainId) }], diff --git a/packages/web/integrations/ewallet/main-wallet.ts b/packages/web/integrations/ewallet/main-wallet.ts index 5bce7f38c8..05a584d8f0 100644 --- a/packages/web/integrations/ewallet/main-wallet.ts +++ b/packages/web/integrations/ewallet/main-wallet.ts @@ -2,7 +2,7 @@ import { type EndpointOptions, MainWalletBase } from "@cosmos-kit/core"; import { ChainName, DisconnectOptions } from "@cosmos-kit/core/cjs/types"; import { CosmosEWallet, - initCosmosEWallet, + CosmosEWalletInterface, } from "@keplr-ewallet/ewallet-sdk-cosmos"; import { type EWalletInfo } from "~/integrations/ewallet/registry"; @@ -11,8 +11,8 @@ import { ChainEWallet } from "./chain-wallet"; import { EWalletClient } from "./client"; export class EWalletMainWallet extends MainWalletBase { - protected static cosmosEWallet: CosmosEWallet | null = null; - protected static initPromise: Promise | null = null; + protected static cosmosEWallet: CosmosEWalletInterface | null = null; + protected static initPromise: Promise | null = null; private readonly apiKey: string; @@ -40,7 +40,7 @@ export class EWalletMainWallet extends MainWalletBase { protected static initOnce = async ( apiKey: string - ): Promise => { + ): Promise => { if (EWalletMainWallet.cosmosEWallet) { return EWalletMainWallet.cosmosEWallet; } @@ -54,8 +54,10 @@ export class EWalletMainWallet extends MainWalletBase { return EWalletMainWallet.initPromise; }; - protected static async initInternal(apiKey: string): Promise { - const res = initCosmosEWallet({ + protected static async initInternal( + apiKey: string + ): Promise { + const res = CosmosEWallet.init({ api_key: apiKey, }); @@ -66,7 +68,7 @@ export class EWalletMainWallet extends MainWalletBase { EWalletMainWallet.cosmosEWallet = res.data; if (localStorage.getItem("ewallet-auto-sign-in") !== "true") { - await EWalletMainWallet.cosmosEWallet.eWallet.signIn("google"); + await EWalletMainWallet.cosmosEWallet?.eWallet.signIn("google"); localStorage.setItem("ewallet-auto-sign-in", "true"); } diff --git a/packages/web/package.json b/packages/web/package.json index 5b1b0b86d9..d8d9a87516 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.52", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.68", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.56", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.56", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.72", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.63", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 6466ec8665..16af10068d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,31 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.52", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.52": - version "0.0.6-rc.52" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.52.tgz#072b5131d356733545490ba352c7e4f5ba1227aa" - integrity sha512-vj8n2cim/bW57EwxY4roauwO3asjOo/XBTz0MXYYsvLH8KJVISvfcMEayAOvpKg90lkM3DboC8U3Ock1ZDWenA== - dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" - "@keplr-wallet/types" "^0.12.257" - -"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.49": - version "0.0.6-rc.51" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.51.tgz#12131f6da5c2efab48b7f9a1aa734e75573f59e4" - integrity sha512-pQHmnt2gvad2SDQ5wlryIMFpVbu3GD5ZLNkyZhuHVs0SJjlRX1Hk97IjkRPEC8tq+lGiaC0gCodzUNpyBogCsA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.56", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.56": + version "0.0.6-rc.56" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.56.tgz#528843f94b10bf086002313acf9a5388dd5965b7" + integrity sha512-odvem0z1G4vjm0Tb3+kldEp8zj/YJzEZvJ6zZmarjDi0qdq8VUfbmqrhimBaaeBBESLriVVnG+YdWEJMkalmBg== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.68": - version "0.0.6-rc.68" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.68.tgz#676928d2c8dca786c84189fd0d35177eeebf03d7" - integrity sha512-mtgzvhNGoTr793ccMCTwvZVElStAJhxIWJAs5A9PH0dqnmsvgwNFj+QrIdmy6gHf2OOZXo36b7qnArfju1Y6pA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.72": + version "0.0.6-rc.72" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.72.tgz#ccaddbd2caf28225064701f56e2a40176d74a75a" + integrity sha512-BuO9FhtbyB62jQXhAYr/qNoX+8YpYC++E4eyKmsgTbZVVBRz9g3z4r8bbTSOIsHIq4wcp13m9HN1hmFOwXArtA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.52" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.10" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.56" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4545,26 +4537,21 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.56": - version "0.0.6-rc.56" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.56.tgz#974fc84257698f801409ab9fd5bde737e08bd4d3" - integrity sha512-xfhMemGzJssCKHwLAEaIWPmav064JaKO+ztijZPtgM/j1qH+2gWX80L7HdwNDWJVRGvr6JK4dNWikFPoGBxJmA== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.63": + version "0.0.6-rc.63" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.63.tgz#57b20009d43e38305089e7b33be94007cdc61449" + integrity sha512-nZ5LFH4LSY/ohAmxWyoeFdjL+3O8ZmidE7+Jai8UmcibwtoxqHoryccyXnRfJ4yCKuCiA1TN4h+THQvWH4C//g== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.49" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.9" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.56" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.10": - version "0.0.2-rc.10" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.10.tgz#899ef268c3667a42804ed60511d91bb6ee9cc5bf" - integrity sha512-9dkRQvYgcpMwzd3B655RpmbL4CZxB+u7bstuv8rfLO77GJ8asF9zp6V88qN8xp/sto0r4Q4tkDIcBCIG7CdWaQ== - -"@keplr-ewallet/stdlib-js@^0.0.2-rc.9": - version "0.0.2-rc.9" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.9.tgz#d34598a4223135d724cc3e83cc0aa57e9df06cf5" - integrity sha512-m+R9bggNnIUdx3OLM6OZmsHIsB8v7boKZ7XeEStS3HQJEVokZOeYNvHtb6nHVOISBmLCHzph+C1nQUyrtIKAlg== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.12": + version "0.0.2-rc.12" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.12.tgz#fedd5780c0ddd9497640098121458ed4f9973d8c" + integrity sha512-nrx3rt3v/BzN6Z4aCTdAiUQyrLBITfKRE7l8eo3nK+p/EnZd5HEU3t6/jnASd9P/36J0GiZyCsZRLB6A0/OkHQ== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From 3c1c97a91e2230d6446d22a29d5af7be0ed3f71d Mon Sep 17 00:00:00 2001 From: blacktoast Date: Wed, 27 Aug 2025 20:32:26 +0900 Subject: [PATCH 49/59] [fix] fix type --- packages/web/integrations/ewallet/client.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts index aa9d20efdf..ba2dd656a8 100644 --- a/packages/web/integrations/ewallet/client.ts +++ b/packages/web/integrations/ewallet/client.ts @@ -18,10 +18,10 @@ import type { WalletAccount, WalletClient, } from "@cosmos-kit/core"; -import { CosmosEWallet } from "@keplr-ewallet/ewallet-sdk-cosmos"; +import { CosmosEWalletInterface } from "@keplr-ewallet/ewallet-sdk-cosmos"; export class EWalletClient implements WalletClient { - readonly client: CosmosEWallet; + readonly client: CosmosEWalletInterface; private _defaultSignOptions: SignOptions = { preferNoSetFee: true, preferNoSetMemo: true, @@ -36,7 +36,7 @@ export class EWalletClient implements WalletClient { this._defaultSignOptions = options; } - constructor(client: CosmosEWallet) { + constructor(client: CosmosEWalletInterface) { this.client = client; } @@ -218,6 +218,6 @@ export class EWalletClient implements WalletClient { mode, }); - return await this.client.sendTx(chainId, tx, mode); + return await this.client.sendTx(chainId, tx, mode, {}); } } From b6a87b03b6b14a736d4a6c2d2dd75f3132433984 Mon Sep 17 00:00:00 2001 From: blacktoast Date: Thu, 28 Aug 2025 20:17:16 +0900 Subject: [PATCH 50/59] [build] bump up --- packages/web/package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index d8d9a87516..c64938ffbb 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -40,8 +40,8 @@ "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.56", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.72", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.63", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.73", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.64", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 16af10068d..39421f89ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4521,10 +4521,10 @@ "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.72": - version "0.0.6-rc.72" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.72.tgz#ccaddbd2caf28225064701f56e2a40176d74a75a" - integrity sha512-BuO9FhtbyB62jQXhAYr/qNoX+8YpYC++E4eyKmsgTbZVVBRz9g3z4r8bbTSOIsHIq4wcp13m9HN1hmFOwXArtA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.73": + version "0.0.6-rc.73" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.73.tgz#9c74f7d49885539276e256f14b4647532c60170e" + integrity sha512-cAF6DnVUZKBGqdyukTAv4Y93Pd+N+YYbhtAwdQGgTKOEFR6+hSNcoQBLKEbfrL2I6MkywT9JfoKdYOqAj6dhLQ== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" @@ -4537,10 +4537,10 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.63": - version "0.0.6-rc.63" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.63.tgz#57b20009d43e38305089e7b33be94007cdc61449" - integrity sha512-nZ5LFH4LSY/ohAmxWyoeFdjL+3O8ZmidE7+Jai8UmcibwtoxqHoryccyXnRfJ4yCKuCiA1TN4h+THQvWH4C//g== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.64": + version "0.0.6-rc.64" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.64.tgz#81960a45c3f613655704735e29fd18d9bee1eb65" + integrity sha512-kBC5N2QLhBUaYbahAR+p68LQ5wythBV6nU4ssqGegA8KO7GHuiYfXPoKC9uW4Vrpv2L6Vqaxm4WAJctYPl5Waw== dependencies: "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.56" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" From 5863ed04701ba41be90845520b1b227655742f34 Mon Sep 17 00:00:00 2001 From: blacktoast Date: Fri, 29 Aug 2025 15:07:20 +0900 Subject: [PATCH 51/59] [build] bump up --- packages/web/package.json | 6 +++--- yarn.lock | 42 +++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index c64938ffbb..9cd8f2562e 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.56", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.73", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.64", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.57", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.74", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.65", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 39421f89ff..a32f1cf44f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.56", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.56": - version "0.0.6-rc.56" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.56.tgz#528843f94b10bf086002313acf9a5388dd5965b7" - integrity sha512-odvem0z1G4vjm0Tb3+kldEp8zj/YJzEZvJ6zZmarjDi0qdq8VUfbmqrhimBaaeBBESLriVVnG+YdWEJMkalmBg== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.57", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.57": + version "0.0.6-rc.57" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.57.tgz#90b32c5afbccd6b53ad98a241e8e541b6da8118b" + integrity sha512-SE7gulKlgqh38i+bpwcx/Wf9o8w3QuQ9ULpLqE8yKnq6sxUqvF4jaXCzOTxRHjzNz1+UZmjjkbEgIVwmzsXEqw== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.73": - version "0.0.6-rc.73" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.73.tgz#9c74f7d49885539276e256f14b4647532c60170e" - integrity sha512-cAF6DnVUZKBGqdyukTAv4Y93Pd+N+YYbhtAwdQGgTKOEFR6+hSNcoQBLKEbfrL2I6MkywT9JfoKdYOqAj6dhLQ== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.74": + version "0.0.6-rc.74" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.74.tgz#795e4cf24aec9b5a32466213c56d44c8677cf941" + integrity sha512-+cdYEimge0i6HUKsdU/4YROmUX2tndn+DIYr3L6F8PGUdWOm67vlwWVu5meT/2xarRtHQ6UUvqwWn0zErBiAKg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.56" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.57" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4537,21 +4537,21 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.64": - version "0.0.6-rc.64" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.64.tgz#81960a45c3f613655704735e29fd18d9bee1eb65" - integrity sha512-kBC5N2QLhBUaYbahAR+p68LQ5wythBV6nU4ssqGegA8KO7GHuiYfXPoKC9uW4Vrpv2L6Vqaxm4WAJctYPl5Waw== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.65": + version "0.0.6-rc.65" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.65.tgz#72ca604f69b0006909f178cdc6bf5fef15ae3e4d" + integrity sha512-Bt6oLuRrMV00j8xPontY00IDIgXcBpb+tk8EPU1sOICYNTx9pdjLBcLWskTMr/Fnq+N2qz23zvrOImlNetTwmQ== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.56" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.12" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.57" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.12": - version "0.0.2-rc.12" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.12.tgz#fedd5780c0ddd9497640098121458ed4f9973d8c" - integrity sha512-nrx3rt3v/BzN6Z4aCTdAiUQyrLBITfKRE7l8eo3nK+p/EnZd5HEU3t6/jnASd9P/36J0GiZyCsZRLB6A0/OkHQ== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.13": + version "0.0.2-rc.13" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.13.tgz#f50684e404f711fc535f13732d5fc73cdb38346f" + integrity sha512-Tpa5HtyGNfOQFKmhTf0SgOsfXs23kKVuVWVG0pSbaezzAUOJCtMi46SdCHFTwbXb7tRPzho7j8M9veK4Pq36jA== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From 533c6042632a4ae56e94d436e434b81b2a8f2fd3 Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 1 Sep 2025 17:53:41 +0900 Subject: [PATCH 52/59] bump --- packages/web/package.json | 6 ++--- yarn.lock | 55 ++++++++++++++++++++++++--------------- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 9cd8f2562e..662f17127b 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.57", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.74", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.65", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.58", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.75", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.67", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index a32f1cf44f..e0b0425330 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.57", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.57": - version "0.0.6-rc.57" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.57.tgz#90b32c5afbccd6b53ad98a241e8e541b6da8118b" - integrity sha512-SE7gulKlgqh38i+bpwcx/Wf9o8w3QuQ9ULpLqE8yKnq6sxUqvF4jaXCzOTxRHjzNz1+UZmjjkbEgIVwmzsXEqw== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.58", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.58": + version "0.0.6-rc.58" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.58.tgz#2a372cb8a76f486ddcb7964882a82399749b9b27" + integrity sha512-aZTrX9mWtDJBFWQ6SDKf8L+Jiz+UjEiXBdQJGItha6U501SLSRXNKnjjyVDJ9IIevpdx97cQEJ0qPRJ5Rf6nZw== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.74": - version "0.0.6-rc.74" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.74.tgz#795e4cf24aec9b5a32466213c56d44c8677cf941" - integrity sha512-+cdYEimge0i6HUKsdU/4YROmUX2tndn+DIYr3L6F8PGUdWOm67vlwWVu5meT/2xarRtHQ6UUvqwWn0zErBiAKg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.75": + version "0.0.6-rc.75" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.75.tgz#a2b4c40167d4bf33c3794af07bd37f11f2f82588" + integrity sha512-4iS+hzN/CGmvaDbuCxo+G36kb9jKW4zTN4sAdtCyf/pJWkYkVSQuB8/D6/Dd8iLeVxQDgFlL9aYIczDgFsuoJA== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.57" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.58" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^1.9.2" @@ -4537,21 +4537,22 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.65": - version "0.0.6-rc.65" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.65.tgz#72ca604f69b0006909f178cdc6bf5fef15ae3e4d" - integrity sha512-Bt6oLuRrMV00j8xPontY00IDIgXcBpb+tk8EPU1sOICYNTx9pdjLBcLWskTMr/Fnq+N2qz23zvrOImlNetTwmQ== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.67": + version "0.0.6-rc.67" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.67.tgz#fb5fe6a8fd75b2e4ff7d916493ec25915f350ce0" + integrity sha512-S2y2nLmBw3XNV3katPv4B3yCHW8X9nnn5zaQZ3k2fmceKHLLM745ou/w+1eMdg/Gp6v63pwomWIZ2on2Tcx8jg== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.57" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.13" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.58" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" + "@noble/curves" "*" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.13": - version "0.0.2-rc.13" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.13.tgz#f50684e404f711fc535f13732d5fc73cdb38346f" - integrity sha512-Tpa5HtyGNfOQFKmhTf0SgOsfXs23kKVuVWVG0pSbaezzAUOJCtMi46SdCHFTwbXb7tRPzho7j8M9veK4Pq36jA== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.14": + version "0.0.2-rc.14" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.14.tgz#ef9a3348266c76a406d9da9e0fee3b87bcf76a9b" + integrity sha512-TA6rK/o+ltqjKQF6UsYKmzXLcDNy0ZpY7olnkssOmPZgc8EDt2PbMslexEDWo6KN+UXIs8Qsy/JXLuE71XcXIQ== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" @@ -5358,6 +5359,13 @@ resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.3.0.tgz#f64b8ff886c240e644e5573c097f86e5b43676dc" integrity sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw== +"@noble/curves@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-2.0.0.tgz#1b1d75b447e5ccfaa6a4a3c34280f0c02a763f57" + integrity sha512-RiwZZeJnsTnhT+/gg2KvITJZhK5oagQrpZo+yQyd3mv3D5NAG2qEeEHpw7IkXRlpkoD45wl2o4ydHAvY9wyEfw== + dependencies: + "@noble/hashes" "2.0.0" + "@noble/curves@1.3.0", "@noble/curves@~1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" @@ -5413,6 +5421,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@noble/hashes@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.0.tgz#5c39388259a0868cadb17d688cd8cf07eae344a4" + integrity sha512-h8VUBlE8R42+XIDO229cgisD287im3kdY6nbNZJFjc6ZvKIXPYXe6Vc/t+kyjFdMFyt5JpapzTsEg8n63w5/lw== + "@noble/hashes@^1", "@noble/hashes@^1.0.0": version "1.1.2" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" From f03fa344d02151bf35727283bb9d6186ba11d5c4 Mon Sep 17 00:00:00 2001 From: devmosis Date: Mon, 1 Sep 2025 18:36:07 +0900 Subject: [PATCH 53/59] o --- packages/web/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 662f17127b..9bdc3fcc63 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -40,7 +40,7 @@ "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.58", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.75", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.76", "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.67", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", diff --git a/yarn.lock b/yarn.lock index e0b0425330..2539c3f5bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4521,10 +4521,10 @@ "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.75": - version "0.0.6-rc.75" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.75.tgz#a2b4c40167d4bf33c3794af07bd37f11f2f82588" - integrity sha512-4iS+hzN/CGmvaDbuCxo+G36kb9jKW4zTN4sAdtCyf/pJWkYkVSQuB8/D6/Dd8iLeVxQDgFlL9aYIczDgFsuoJA== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.76": + version "0.0.6-rc.76" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.76.tgz#837eac4e5e1b4a279e0bae084d1493a275936883" + integrity sha512-vLxa9YUlJR2yxfndXOSPwwwAkj7SEu/tqClIp8dHQvBcVZveF3ScCDuArNauZbJ9+37b62hLNjLLvWj2M+Pnqg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" From 0c7883e5dfcd51fcb3f37fb7889841900c9fc084 Mon Sep 17 00:00:00 2001 From: devmosis Date: Tue, 2 Sep 2025 18:23:58 +0900 Subject: [PATCH 54/59] o --- packages/web/package.json | 6 +++--- yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 9bdc3fcc63..ae94fecf79 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.58", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.76", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.67", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.60", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.78", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.69", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 2539c3f5bd..99787f1dc4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,22 +4513,22 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.58", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.58": - version "0.0.6-rc.58" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.58.tgz#2a372cb8a76f486ddcb7964882a82399749b9b27" - integrity sha512-aZTrX9mWtDJBFWQ6SDKf8L+Jiz+UjEiXBdQJGItha6U501SLSRXNKnjjyVDJ9IIevpdx97cQEJ0qPRJ5Rf6nZw== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.60", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.60": + version "0.0.6-rc.60" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.60.tgz#10a87b0d1e6b7070dedb8270d1ac30e518499471" + integrity sha512-RXnqiMbsLiIYsJOyJyaKTrz0fp5gN9M9kgYEQ9pwrLLJAU7r0AKroK6OypfpQjEzRB2zx0f/W2+MMbde15Zb6A== dependencies: "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.76": - version "0.0.6-rc.76" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.76.tgz#837eac4e5e1b4a279e0bae084d1493a275936883" - integrity sha512-vLxa9YUlJR2yxfndXOSPwwwAkj7SEu/tqClIp8dHQvBcVZveF3ScCDuArNauZbJ9+37b62hLNjLLvWj2M+Pnqg== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.78": + version "0.0.6-rc.78" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.78.tgz#ed5fa16b661ba4459c111958d973aa2662796af2" + integrity sha512-sjKsEt4EhVe31jT00vVs6JorGJRVUWO+Z6kbHCGay49RVl1PK4xfzDZLdbyEo9eLyG0C0ij+BSmFGk524acOHw== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.58" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.60" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" @@ -4537,12 +4537,12 @@ bech32 "^2.0.0" buffer "^6.0.3" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.67": - version "0.0.6-rc.67" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.67.tgz#fb5fe6a8fd75b2e4ff7d916493ec25915f350ce0" - integrity sha512-S2y2nLmBw3XNV3katPv4B3yCHW8X9nnn5zaQZ3k2fmceKHLLM745ou/w+1eMdg/Gp6v63pwomWIZ2on2Tcx8jg== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.69": + version "0.0.6-rc.69" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.69.tgz#dc82d0a28ed8d8438392e28a46b52d35485e6af8" + integrity sha512-kHBYZG25Be3Sq/tkTT9s6XI4Spy9BNbxC9SckHeNWZoLRBLsKHPjjbD7CCHTppUVSJjryb//tsFGHGqbtfDoOg== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.58" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.60" "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" "@noble/curves" "*" eventemitter3 "^5.0.1" From 7820149da7042e3859d6c66c2a11c8e192730f5b Mon Sep 17 00:00:00 2001 From: blacktoast Date: Mon, 8 Sep 2025 14:18:50 +0900 Subject: [PATCH 55/59] [build] bump up --- packages/web/package.json | 6 ++-- yarn.lock | 62 +++++++++++++++++++-------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index ae94fecf79..1da247dad5 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.60", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.78", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.69", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.73", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.95", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.85", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 99787f1dc4..5480e5392f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,46 +4513,46 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.60", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.60": - version "0.0.6-rc.60" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.60.tgz#10a87b0d1e6b7070dedb8270d1ac30e518499471" - integrity sha512-RXnqiMbsLiIYsJOyJyaKTrz0fp5gN9M9kgYEQ9pwrLLJAU7r0AKroK6OypfpQjEzRB2zx0f/W2+MMbde15Zb6A== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.73", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.73": + version "0.0.6-rc.73" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.73.tgz#fb52b6b1153917296bd86d4461c963c32d235048" + integrity sha512-z9k9w2Cynp1gzUKUwcsh83tbS4ocGelh7jMbChcBgeNGQRm3HJT1EzfCDe+TdRJnLjOqzVhUrU6DEpCAWVi9Jg== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.78": - version "0.0.6-rc.78" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.78.tgz#ed5fa16b661ba4459c111958d973aa2662796af2" - integrity sha512-sjKsEt4EhVe31jT00vVs6JorGJRVUWO+Z6kbHCGay49RVl1PK4xfzDZLdbyEo9eLyG0C0ij+BSmFGk524acOHw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.95": + version "0.0.6-rc.95" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.95.tgz#a8513319975b552bd30708b753bef4594e7d4c07" + integrity sha512-uDMEB3w7f4WO08je1vuPxA2cX68fDWDe0VNNUWrd4CDFjSTIt1oA0HJ3Uk0gMIqtBTnH0GNLjLy9+IYBN+xeLw== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.60" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.73" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" - "@noble/curves" "^1.9.2" + "@noble/curves" "^2.0.0" "@noble/hashes" "^1.8.0" bech32 "^2.0.0" buffer "^6.0.3" + uuid "*" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.69": - version "0.0.6-rc.69" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.69.tgz#dc82d0a28ed8d8438392e28a46b52d35485e6af8" - integrity sha512-kHBYZG25Be3Sq/tkTT9s6XI4Spy9BNbxC9SckHeNWZoLRBLsKHPjjbD7CCHTppUVSJjryb//tsFGHGqbtfDoOg== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.85": + version "0.0.6-rc.85" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.85.tgz#560095a18744ddfbc83b608043bd2f3192aaf64b" + integrity sha512-tHOjkv6+RKoF16JoiXUh+UZdhWk7UhS+6LYe+CdVM7sUtaV5/wv6p2C6YiGNnrrw7rhb1llyJn9WXL8R0S2y4g== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.60" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.14" - "@noble/curves" "*" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.73" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.14": - version "0.0.2-rc.14" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.14.tgz#ef9a3348266c76a406d9da9e0fee3b87bcf76a9b" - integrity sha512-TA6rK/o+ltqjKQF6UsYKmzXLcDNy0ZpY7olnkssOmPZgc8EDt2PbMslexEDWo6KN+UXIs8Qsy/JXLuE71XcXIQ== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.16": + version "0.0.2-rc.16" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.16.tgz#bc5cf8f29f18f10fb3f8498eb007ea14b21f7a97" + integrity sha512-DfZOq3l1fHFZdFQMV2vavgrgccwPKJRLMM7NLJhtIsw4WMlbB+9mfeip8083aF1o9tgg+b0AVklCpB1522fNXA== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" @@ -5359,13 +5359,6 @@ resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.3.0.tgz#f64b8ff886c240e644e5573c097f86e5b43676dc" integrity sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw== -"@noble/curves@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-2.0.0.tgz#1b1d75b447e5ccfaa6a4a3c34280f0c02a763f57" - integrity sha512-RiwZZeJnsTnhT+/gg2KvITJZhK5oagQrpZo+yQyd3mv3D5NAG2qEeEHpw7IkXRlpkoD45wl2o4ydHAvY9wyEfw== - dependencies: - "@noble/hashes" "2.0.0" - "@noble/curves@1.3.0", "@noble/curves@~1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" @@ -5387,7 +5380,7 @@ dependencies: "@noble/hashes" "1.7.1" -"@noble/curves@1.9.6", "@noble/curves@^1.9.2": +"@noble/curves@1.9.6": version "1.9.6" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.6.tgz#b45ebedca85bb75782f6be7e7f120f0c423c99e0" integrity sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA== @@ -5401,6 +5394,13 @@ dependencies: "@noble/hashes" "1.8.0" +"@noble/curves@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-2.0.0.tgz#1b1d75b447e5ccfaa6a4a3c34280f0c02a763f57" + integrity sha512-RiwZZeJnsTnhT+/gg2KvITJZhK5oagQrpZo+yQyd3mv3D5NAG2qEeEHpw7IkXRlpkoD45wl2o4ydHAvY9wyEfw== + dependencies: + "@noble/hashes" "2.0.0" + "@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": version "1.3.3" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" From 8c6b8b224b89b4debec4307281539784aaa76411 Mon Sep 17 00:00:00 2001 From: blacktoast Date: Mon, 8 Sep 2025 14:56:34 +0900 Subject: [PATCH 56/59] [fix] fix type error --- packages/web/config/utils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web/config/utils.ts b/packages/web/config/utils.ts index 8c4d542cd4..dba0dae29f 100644 --- a/packages/web/config/utils.ts +++ b/packages/web/config/utils.ts @@ -411,6 +411,7 @@ export function getChainList({ tx_page: explorer.tx_page.replace("${", "{"), })), keplrChain, + features: chain.features ?? [], }; } ) From 71bbae4401be2e260542d2bead3ad4c3eb060994 Mon Sep 17 00:00:00 2001 From: Thunnini Date: Wed, 10 Sep 2025 16:11:31 +0900 Subject: [PATCH 57/59] =?UTF-8?q?=ED=9D=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/web/integrations/ewallet/client.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/web/integrations/ewallet/client.ts b/packages/web/integrations/ewallet/client.ts index ba2dd656a8..69accd5218 100644 --- a/packages/web/integrations/ewallet/client.ts +++ b/packages/web/integrations/ewallet/client.ts @@ -23,9 +23,9 @@ import { CosmosEWalletInterface } from "@keplr-ewallet/ewallet-sdk-cosmos"; export class EWalletClient implements WalletClient { readonly client: CosmosEWalletInterface; private _defaultSignOptions: SignOptions = { - preferNoSetFee: true, - preferNoSetMemo: true, - disableBalanceCheck: true, + preferNoSetFee: false, + preferNoSetMemo: false, + disableBalanceCheck: false, }; get defaultSignOptions() { @@ -135,7 +135,6 @@ export class EWalletClient implements WalletClient { const finalSignOptions = { ...this.defaultSignOptions, ...signOptions, - preferNoSetFee: true, }; console.log("[EWallet] signAmino - Gas fee settings:", { @@ -172,7 +171,6 @@ export class EWalletClient implements WalletClient { const finalSignOptions = { ...this.defaultSignOptions, ...signOptions, - preferNoSetFee: true, }; console.log("[EWallet] signDirect - Gas fee settings:", { From 59cf2c6e9df325ea2a568dd6255a895da31df434 Mon Sep 17 00:00:00 2001 From: rowan Date: Tue, 23 Sep 2025 14:48:53 +0900 Subject: [PATCH 58/59] bump ewallet sdk version --- packages/web/package.json | 6 +++--- yarn.lock | 42 +++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index 1da247dad5..c07d26b737 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.73", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.95", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.85", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.90", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.112", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.102", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 5480e5392f..4d24ac2ace 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,23 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.73", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.73": - version "0.0.6-rc.73" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.73.tgz#fb52b6b1153917296bd86d4461c963c32d235048" - integrity sha512-z9k9w2Cynp1gzUKUwcsh83tbS4ocGelh7jMbChcBgeNGQRm3HJT1EzfCDe+TdRJnLjOqzVhUrU6DEpCAWVi9Jg== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.90", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.90": + version "0.0.6-rc.90" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.90.tgz#8db875f6058b4145e6f379cf2d43ae765f5457f2" + integrity sha512-aVku1kIlf+kcQAmllqJQ7/mkTqT0P7z7WSoNxXFSz83vTDBCo8pEnsQWfy7xOz9HLvnTIuBt7xp8OBysTaV6QA== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.95": - version "0.0.6-rc.95" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.95.tgz#a8513319975b552bd30708b753bef4594e7d4c07" - integrity sha512-uDMEB3w7f4WO08je1vuPxA2cX68fDWDe0VNNUWrd4CDFjSTIt1oA0HJ3Uk0gMIqtBTnH0GNLjLy9+IYBN+xeLw== +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.112": + version "0.0.6-rc.112" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.112.tgz#548ccda85faea52bc0ec10a2df826da6d43098e5" + integrity sha512-ra+NnUoik5ZUe9oAALQyG0etIEfEmJZWGf5oV797TRTkBkN5xhxGU01wqQ3/O3oaxZx6Ul5JJ3u5AZM0A++mjg== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.73" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.90" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^2.0.0" @@ -4538,21 +4538,21 @@ buffer "^6.0.3" uuid "*" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.85": - version "0.0.6-rc.85" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.85.tgz#560095a18744ddfbc83b608043bd2f3192aaf64b" - integrity sha512-tHOjkv6+RKoF16JoiXUh+UZdhWk7UhS+6LYe+CdVM7sUtaV5/wv6p2C6YiGNnrrw7rhb1llyJn9WXL8R0S2y4g== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.102": + version "0.0.6-rc.102" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.102.tgz#c037c36e0f5fc58747b096c808fc264bf00848cb" + integrity sha512-zmOXc+iBvOZeDy/g3YpgI3J07dKOeEpwcPEcblNTzTH29nv4s0ogANTSiJJTaMZulGXIsEQxE4OLyd/wHm30Sg== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.73" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.16" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.90" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.16": - version "0.0.2-rc.16" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.16.tgz#bc5cf8f29f18f10fb3f8498eb007ea14b21f7a97" - integrity sha512-DfZOq3l1fHFZdFQMV2vavgrgccwPKJRLMM7NLJhtIsw4WMlbB+9mfeip8083aF1o9tgg+b0AVklCpB1522fNXA== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.20": + version "0.0.2-rc.20" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.20.tgz#1e0a09ae186771d0f853f7e1681ac7f60d3e2a0c" + integrity sha512-WVbm1w1NdqFZVZzSOU57tsT5HAv0ajVm3+JbU0SASklAlIANCyIVr6WDzXEWlzly6oPsPVvtuswx/zGtcXgLSA== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix" From 67eb6b0142a848a18ac716ea9f009e380350c8e8 Mon Sep 17 00:00:00 2001 From: rowan Date: Mon, 29 Sep 2025 18:02:24 +0900 Subject: [PATCH 59/59] bump ewallet sdk version --- packages/web/package.json | 6 ++--- yarn.lock | 50 +++++++++++++++++++++++---------------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/packages/web/package.json b/packages/web/package.json index c07d26b737..93d5425311 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -39,9 +39,9 @@ "@cosmos-kit/trust": "^2.11.2", "@cosmos-kit/xdefi": "^2.10.2", "@headlessui/react": "^2.1.1", - "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.90", - "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.112", - "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.102", + "@keplr-ewallet/ewallet-sdk-core": "0.0.6-rc.96", + "@keplr-ewallet/ewallet-sdk-cosmos": "0.0.6-rc.118", + "@keplr-ewallet/ewallet-sdk-eth": "0.0.6-rc.108", "@keplr-wallet/common": "0.10.24-ibc.go.v7.hot.fix", "@keplr-wallet/crypto": "0.12.48", "@keplr-wallet/types": "0.10.24-ibc.go.v7.hot.fix", diff --git a/yarn.lock b/yarn.lock index 4d24ac2ace..5d16100bf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4513,23 +4513,31 @@ resolved "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.90", "@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.90": - version "0.0.6-rc.90" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.90.tgz#8db875f6058b4145e6f379cf2d43ae765f5457f2" - integrity sha512-aVku1kIlf+kcQAmllqJQ7/mkTqT0P7z7WSoNxXFSz83vTDBCo8pEnsQWfy7xOz9HLvnTIuBt7xp8OBysTaV6QA== +"@keplr-ewallet/ewallet-sdk-core@0.0.6-rc.96": + version "0.0.6-rc.96" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.96.tgz#6800923fac95be35c7fb5c6a414061f1324a4160" + integrity sha512-CjBvlc6RC/PbPtKCMO6HGuK7oXt2PEALXqPWo5FzEjmQCWtaZmgKxXCn7oI2sMV3FZqpQxo6phVDHyiRMZYTiw== dependencies: - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.21" "@keplr-wallet/types" "^0.12.257" -"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.112": - version "0.0.6-rc.112" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.112.tgz#548ccda85faea52bc0ec10a2df826da6d43098e5" - integrity sha512-ra+NnUoik5ZUe9oAALQyG0etIEfEmJZWGf5oV797TRTkBkN5xhxGU01wqQ3/O3oaxZx6Ul5JJ3u5AZM0A++mjg== +"@keplr-ewallet/ewallet-sdk-core@^0.0.6-rc.96": + version "0.0.6-rc.97" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-core/-/ewallet-sdk-core-0.0.6-rc.97.tgz#362c9b3bffcf10716c5d0605554091341dd551fa" + integrity sha512-BZRa6JxwoDBvEPJXrWVgMMu1MJP3hWgvBYkEG8PS6ZCkXdoQlEwMXlo2wyUK1QNZb0CMfteSaEOZ82+akgS9CQ== + dependencies: + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.21" + "@keplr-wallet/types" "^0.12.257" + +"@keplr-ewallet/ewallet-sdk-cosmos@0.0.6-rc.118": + version "0.0.6-rc.118" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-cosmos/-/ewallet-sdk-cosmos-0.0.6-rc.118.tgz#ec9caad180b1323840c0fb5c5a4b0ad82a519cba" + integrity sha512-Xjbt19Abtwv2HgVBvsyiROKOgxBxz3pAOfH0AVDYt2IE7UcgxmWbSlE9mj0yhc6KZLE/oCGkJiBerpuSPBhCeQ== dependencies: "@cosmjs/amino" "^0.33.1" "@cosmjs/proto-signing" "^0.33.1" - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.90" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.96" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.21" "@keplr-wallet/proto-types" "^0.12.253" "@keplr-wallet/types" "^0.12.253" "@noble/curves" "^2.0.0" @@ -4538,21 +4546,21 @@ buffer "^6.0.3" uuid "*" -"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.102": - version "0.0.6-rc.102" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.102.tgz#c037c36e0f5fc58747b096c808fc264bf00848cb" - integrity sha512-zmOXc+iBvOZeDy/g3YpgI3J07dKOeEpwcPEcblNTzTH29nv4s0ogANTSiJJTaMZulGXIsEQxE4OLyd/wHm30Sg== +"@keplr-ewallet/ewallet-sdk-eth@0.0.6-rc.108": + version "0.0.6-rc.108" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/ewallet-sdk-eth/-/ewallet-sdk-eth-0.0.6-rc.108.tgz#588fe95a6d77e2c179adb40647f8c861b9f02cc3" + integrity sha512-Zewd0dBHFUQkf46t8V8u86HKbUwyqxgcav51g1izMmKOT6IpYFZTXhzfLyHw7tViqhTWhN0uyXckB8MNarhURQ== dependencies: - "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.90" - "@keplr-ewallet/stdlib-js" "^0.0.2-rc.20" + "@keplr-ewallet/ewallet-sdk-core" "^0.0.6-rc.96" + "@keplr-ewallet/stdlib-js" "^0.0.2-rc.21" eventemitter3 "^5.0.1" uuid "*" viem "*" -"@keplr-ewallet/stdlib-js@^0.0.2-rc.20": - version "0.0.2-rc.20" - resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.20.tgz#1e0a09ae186771d0f853f7e1681ac7f60d3e2a0c" - integrity sha512-WVbm1w1NdqFZVZzSOU57tsT5HAv0ajVm3+JbU0SASklAlIANCyIVr6WDzXEWlzly6oPsPVvtuswx/zGtcXgLSA== +"@keplr-ewallet/stdlib-js@^0.0.2-rc.21": + version "0.0.2-rc.21" + resolved "https://registry.yarnpkg.com/@keplr-ewallet/stdlib-js/-/stdlib-js-0.0.2-rc.21.tgz#6e87166786d53b82822f0d150d353d40e7e58840" + integrity sha512-GbjOmpsa1ptbCRz2KCJLMLW2iXpIylx8XegFRUihJWiyTPfZ/vmLokAtRuXbPpid9r1rXlIDGr0NSI1hMtGwzg== "@keplr-wallet/background@0.10.24-ibc.go.v7.hot.fix": version "0.10.24-ibc.go.v7.hot.fix"