Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
1caabbe
build: upgrade TypeScript 5.0.4 โ†’ 5.9.3 and fix type errors
Thunnini Mar 20, 2026
89fb6ed
refactor: replace ethers.js low-level utilities with ox
Thunnini Mar 20, 2026
ae5c8bd
refactor: remove unused @ethersproject dependencies
Thunnini Mar 20, 2026
e2f26ee
refactor: replace @ethersproject/abi with ox AbiFunction
Thunnini Mar 20, 2026
ce138b1
refactor: complete ethers.js โ†’ ox migration, remove all @ethersprojecโ€ฆ
Thunnini Mar 20, 2026
8f6606d
fix: validate ERC20 transfer selector before decoding tx data
Thunnini Mar 23, 2026
9db2998
fix: use ENSIP-9 addr(bytes32,uint256) for ENS resolution
Thunnini Mar 23, 2026
5cf33b7
refactor: align EIP-712 validator types with ox TypedData
Thunnini Mar 23, 2026
415dce6
fix: use chainId 0 as fallback to match ethers serialize behavior
Thunnini Mar 23, 2026
9bf88b4
build: upgrade ts-loader and fork-ts-checker-webpack-plugin
Thunnini Mar 23, 2026
35ab002
fix: use Address.checksum instead of Address.from for EIP-55
Thunnini Mar 23, 2026
9fdc93e
fix: clean up stale comments, typo, and add decode warning
Thunnini Mar 23, 2026
507771a
build: disable no-loss-of-precision in unit test files
Thunnini Mar 23, 2026
e519873
build: upgrade eslint-plugin-mdx 2.0.5 โ†’ 3.7.0, remove @1stg/remark-pโ€ฆ
Thunnini Mar 23, 2026
7a5e4b5
chore: init EVM Smart Account integration branch
jungcome7 Mar 24, 2026
b359dc9
refactor: extract magic numbers and strings into named constants
jungcome7 Mar 24, 2026
f178dbe
refactor: extract pure helper functions and add unit tests
jungcome7 Mar 24, 2026
792ca8a
refactor: split keyring-ethereum service into focused modules
jungcome7 Mar 24, 2026
5bc7d73
refactor: rename single-letter variables in toHexQty for clarity
jungcome7 Mar 24, 2026
e592176
feat: add EIP-7702 delegation status check (KEPLR-2026)
jungcome7 Mar 24, 2026
34318e8
feat: add ERC-5792 wallet_getCapabilities handler with address validaโ€ฆ
jungcome7 Mar 25, 2026
ac62285
test: add unit tests for EIP-712 message validation and EVM transactiโ€ฆ
piatoss3612 Mar 30, 2026
2c53a99
test(hooks): cover ENS multicoin resolution policy
piatoss3612 Mar 30, 2026
39f56a0
fix(stores-eth): preserve fee precision when building tx hex values
piatoss3612 Mar 30, 2026
9d86c0f
chore(tooling): harden post-install patching and align unit lint rules
piatoss3612 Mar 30, 2026
1367850
fix(extension): harden ETH token send preview parsing
piatoss3612 Mar 30, 2026
dfa4a31
Merge branch 'develop' into Thunnini/KEPLR-2021-2
piatoss3612 Mar 30, 2026
10905dc
fix(unit): update ESLint rule for precision loss handling
piatoss3612 Mar 30, 2026
9edf23d
fix(extension): normalize ETH token display amounts
piatoss3612 Mar 30, 2026
d29d386
Merge pull request #1889 from chainapsis/Thunnini/KEPLR-2021-2
piatoss3612 Mar 30, 2026
203652b
Merge pull request #1893 from chainapsis/roy/keplr-2026
jungcome7 Mar 30, 2026
dd3f30a
fix: use consistent key format for WebSocket subscription map lookup
jungcome7 Mar 30, 2026
cdc14c9
feat: add EIP-7702 Type 4 serialization and authorization signing (KEโ€ฆ
jungcome7 Mar 30, 2026
24a2f1e
Merge pull request #1891 from chainapsis/roy/keyring-ethereum-refactor
jungcome7 Mar 30, 2026
d26c2f2
Merge branch 'origin/roy/evm-smart-account' into roy/keplr-2043
jungcome7 Mar 31, 2026
ee1bfde
fix: include authorizationList in typed transaction chainId guard
jungcome7 Mar 31, 2026
acb5d5f
refactor: pass authorizationList to eth_estimateGas and use applyTxTyโ€ฆ
jungcome7 Mar 31, 2026
0406f1c
feat: add smart account message classes and handler routing
jungcome7 Mar 31, 2026
6c74327
feat: add EIP-7702 validation helpers and constants
jungcome7 Mar 31, 2026
e2e4d3e
feat: implement EIP-7702 smart account upgrade/downgrade service
jungcome7 Mar 31, 2026
fcd94ff
test: add validateAuthorizationList tests
jungcome7 Mar 31, 2026
5a7b116
fix: use `as number` instead of `?? 0` for EIP-7702 chainId
jungcome7 Mar 31, 2026
3a75859
Merge pull request #1905 from chainapsis/roy/keplr-2043
jungcome7 Mar 31, 2026
29a514e
Merge remote-tracking branch 'origin/develop' into rebase-evm-sa
jungcome7 Mar 31, 2026
7f17586
feat: define EIP-5792 types and error codes
piatoss3612 Apr 1, 2026
903384d
feat: add EIP-5792 request validation helpers with tests
piatoss3612 Apr 1, 2026
5b0533b
feat: implement wallet_sendCalls and wallet_getCallsStatus RPC handlers
piatoss3612 Apr 1, 2026
6c3de00
feat: handle EthSignType.EIP5792 in sign page routing
piatoss3612 Apr 1, 2026
3a40528
Merge branch 'roy/evm-smart-account' into rowan/KEPLR-1933
piatoss3612 Apr 1, 2026
28a899e
feat: integrate EIP-7702 authorization signing in batch flow
piatoss3612 Apr 1, 2026
09fd38a
Merge remote-tracking branch 'origin/develop' into roy/evm-smart-account
jungcome7 Apr 1, 2026
d3209e5
Merge remote-tracking branch 'origin/roy/evm-smart-account' into roy/โ€ฆ
jungcome7 Apr 1, 2026
5340ab9
feat(stores-eth): add ObservableQuery for smart account delegation stโ€ฆ
jungcome7 Apr 1, 2026
7e43d45
refactor(background): remove legacy delegation status message
jungcome7 Apr 1, 2026
dd082f0
feat(extension): add smart account shared hooks and utils
jungcome7 Apr 1, 2026
86557ec
feat(extension): add smart account network list page
jungcome7 Apr 1, 2026
cee3d5d
feat(extension): add smart account confirm page with fee estimation
jungcome7 Apr 1, 2026
5deb3d8
feat(extension): wire smart account routes and entry point
jungcome7 Apr 1, 2026
8f719fe
chore(extension): add i18n keys and minor fixes
jungcome7 Apr 1, 2026
9378234
refactor(extension): extract constants from utils into constants.ts
jungcome7 Apr 2, 2026
1401d79
Merge remote-tracking branch 'origin/develop' into roy/evm-smart-account
jungcome7 Apr 2, 2026
08400f3
fix: improve array validation for send calls request
piatoss3612 Apr 2, 2026
30b7518
fix(cosmos): add missing ox dependency to fix lint error
jungcome7 Apr 2, 2026
9ad4d59
fix: add missing ox dependency to stores-etc, hooks-evm, hooks
jungcome7 Apr 2, 2026
a5d3abc
Merge pull request #1906 from chainapsis/roy/keplr-2044
jungcome7 Apr 2, 2026
d87d8ff
fix(smart-account): resolve vault-scoped address for non-selected accโ€ฆ
jungcome7 Apr 3, 2026
b7efe48
fix(smart-account): disable toggle while delegation query is loading โ€ฆ
jungcome7 Apr 3, 2026
a66b7b1
Merge pull request #1910 from chainapsis/roy/keplr-2045
piatoss3612 Apr 3, 2026
28d559a
Merge pull request #1911 from chainapsis/roy/keplr-2044
piatoss3612 Apr 3, 2026
430f1ae
Merge branch 'roy/evm-smart-account' into rowan/KEPLR-1933
piatoss3612 Apr 3, 2026
356a40c
fix: truncate gas fee values in transaction submission
piatoss3612 Apr 3, 2026
5ed8dee
Merge pull request #1909 from chainapsis/rowan/KEPLR-1933
piatoss3612 Apr 3, 2026
f83ff44
feat(stores-eth): add authorizationList support to simulateGas
jungcome7 Apr 6, 2026
12de689
feat(smart-account): atomic batch TX assembly + batchCallsMap improveโ€ฆ
jungcome7 Apr 6, 2026
3672133
refactor(smart-account): migrate fee estimation from background msg tโ€ฆ
jungcome7 Apr 6, 2026
416f3b1
fix(smart-account): reject contract deploy calls in batch execution
jungcome7 Apr 6, 2026
c8c4c0b
refactor(stores-eth): move batch TX utilities from background to storโ€ฆ
jungcome7 Apr 6, 2026
cb42016
fix(smart-account): disable approve when fee data is unavailable
jungcome7 Apr 6, 2026
1f26614
fix: remove unnecessary try-catch for evmChainId lookup
jungcome7 Apr 7, 2026
395bbcb
fix: add OP Stack L1 data fee calculation for smart account
jungcome7 Apr 7, 2026
a8e9df0
Merge pull request #1913 from chainapsis/roy/keplr-2028
jungcome7 Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ module.exports = {
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-empty-function": "warn",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-loss-of-precision": "off",
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/no-unused-vars": [
"warn",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
"no-loss-of-precision": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"unicorn/filename-case": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export declare const onGoogleSignInClick: ((sceneTransition: {
push(name: string, props?: Record<string, any>): void;
replace(name: string, props?: Record<string, any>): void;
}) => void) | undefined;
export declare const exportGenerateQRCodeDataByInterval: (_data: string, _setQRCodeData: (data: string) => void) => NodeJS.Timer;
export declare const exportGenerateQRCodeDataByInterval: (_data: string, _setQRCodeData: (data: string) => void) => ReturnType<typeof setInterval>;
export declare const exportUpload: (_encryptedData: string) => Promise<{
otp: string;
} | null>;
2 changes: 1 addition & 1 deletion apps/extension/noop-keplr-wallet-private/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const onGoogleSignInClick:
export const exportGenerateQRCodeDataByInterval = (
_data: string,
_setQRCodeData: (data: string) => void
): NodeJS.Timer => {
): ReturnType<typeof setInterval> => {
throw new Error("Method not implemented.");
};

Expand Down
7 changes: 3 additions & 4 deletions apps/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
},
"dependencies": {
"@amplitude/analytics-browser": "^1.10.3",
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/transactions": "^5.7.0",
"@floating-ui/react": "^0.23.0",
"@floating-ui/react-dom": "^1.3.0",
"@keplr-wallet/analytics": "0.13.19",
Expand Down Expand Up @@ -83,6 +81,7 @@
"long": "^4.0.0",
"lottie-web": "^5.10.2",
"os-browserify": "^0.3.0",
"ox": "^0.14.6",
"p-queue": "^6.6.2",
"process": "^0.11.10",
"qrcode.react": "^3.1.0",
Expand Down Expand Up @@ -143,13 +142,13 @@
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.7.4",
"deepmerge": "^4.2.2",
"fork-ts-checker-webpack-plugin": "^7.2.13",
"fork-ts-checker-webpack-plugin": "^9.1.0",
"html-webpack-plugin": "^5.5.0",
"identity-obj-proxy": "^3.0.0",
"serialize-javascript": ">=3.1.0",
"storybook": "^7.6.18",
"style-loader": "^3.3.3",
"ts-loader": "^9.4.2",
"ts-loader": "^9.5.4",
"webpack": "^5.74.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^5.0.1"
Expand Down
22 changes: 11 additions & 11 deletions apps/extension/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1833,7 +1833,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/chain.png",
},
],
features: [],
features: ["eip-7702"],
},
{
rpc: "https://evm-8453.keplr.app",
Expand Down Expand Up @@ -1870,7 +1870,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/chain.png",
},
],
features: ["op-stack-l1-data-fee"],
features: ["op-stack-l1-data-fee", "eip-7702"],
},
{
rpc: "https://evm-10.keplr.app",
Expand Down Expand Up @@ -1907,7 +1907,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/chain.png",
},
],
features: ["op-stack-l1-data-fee"],
features: ["op-stack-l1-data-fee", "eip-7702"],
},
{
rpc: "https://evm-42161.keplr.app",
Expand Down Expand Up @@ -1944,7 +1944,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:1/chain.png",
},
],
features: ["eth-address-gen", "eth-key-sign"],
features: ["eth-address-gen", "eth-key-sign", "eip-7702"],
},
{
rpc: "https://evm-137.keplr.app",
Expand Down Expand Up @@ -1981,7 +1981,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:137/chain.png",
},
],
features: [],
features: ["eip-7702"],
},
{
rpc: "https://evm-56.keplr.app",
Expand Down Expand Up @@ -2018,7 +2018,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:56/chain.png",
},
],
features: [],
features: ["eip-7702"],
},
{
rpc: "https://evm-43114.keplr.app",
Expand Down Expand Up @@ -2741,7 +2741,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:80094/berachain-native.png",
},
],
features: [],
features: ["eip-7702"],
},
{
rpc: "https://evm-1514.keplr.app",
Expand Down Expand Up @@ -2813,7 +2813,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
coinGeckoId: "ethereum",
},
],
features: ["op-stack-l1-data-fee"],
features: ["op-stack-l1-data-fee", "eip-7702"],
},
{
isV2: true,
Expand Down Expand Up @@ -3383,7 +3383,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:57073/ink-native.png",
},
],
features: ["op-stack-l1-data-fee"],
features: ["op-stack-l1-data-fee", "eip-7702"],
},
{
rpc: "https://evm-59144.keplr.app",
Expand Down Expand Up @@ -3428,7 +3428,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:59144/linea-native.png",
},
],
features: [],
features: ["eip-7702"],
},
{
chainId: "union-1",
Expand Down Expand Up @@ -3577,7 +3577,7 @@ export const EmbedChainInfos: (ChainInfo | ModularChainInfo)[] = [
"https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:143/monad-native.png",
},
],
features: [],
features: ["eip-7702"],
},
{
chainId: "zigchain-1",
Expand Down
10 changes: 10 additions & 0 deletions apps/extension/src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ import {
WalletDeletePage,
WalletSelectPage,
WalletShowSensitivePage,
SmartAccountPage,
SmartAccountConfirmPage,
} from "./pages/wallet";
import { SuggestChainPage } from "./pages/suggest-chain";
import { ModalRootProvider } from "./components/modal";
Expand Down Expand Up @@ -549,6 +551,14 @@ const RoutesAfterReady: FunctionComponent = observer(() => {
path="/wallet/show-sensitive"
element={<WalletShowSensitivePage />}
/>
<Route
path="/wallet/smart-account"
element={<SmartAccountPage />}
/>
<Route
path="/wallet/smart-account/confirm"
element={<SmartAccountConfirmPage />}
/>
<Route path="/suggest-chain" element={<SuggestChainPage />} />
<Route path="/ibc-transfer" element={<IBCTransferPage />} />
<Route
Expand Down
2 changes: 1 addition & 1 deletion apps/extension/src/keplr-wallet-private
22 changes: 22 additions & 0 deletions apps/extension/src/languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,28 @@
"page.wallet.keyring-item.dropdown.delete-wallet-title": "Delete Wallet",
"page.wallet.keyring-item.dropdown.view-recovery-path-title": "View Recovery Phrase",
"page.wallet.keyring-item.dropdown.view-private-key-title": "View Private key",
"page.wallet.keyring-item.dropdown.smart-account-title": "EVM Smart Account",

"page.wallet.smart-account.title": "Smart Account",
"page.wallet.smart-account.description": "Enable or disable Smart Account for each network.",
"page.wallet.smart-account.status.unsupported": "Unsupported",
"page.wallet.smart-account.confirm.title": "Transaction Confirmation",
"page.wallet.smart-account.confirm.section-title": "Transaction Summary",
"page.wallet.smart-account.confirm.switch-to": "Switch To",
"page.wallet.smart-account.confirm.summary.upgrade": "Upgrade to Smart Account",
"page.wallet.smart-account.confirm.summary.upgrade.desc": "Switching from a regular account to a Smart Account. Your address stays the same.",
"page.wallet.smart-account.confirm.summary.downgrade": "Revert to Standard Account",
"page.wallet.smart-account.confirm.summary.downgrade.desc": "Switching from a Smart Account to a regular account. You can switch back anytime.",
"page.wallet.smart-account.confirm.current": "Current",
"page.wallet.smart-account.confirm.current.eoa": "Regular Account (EOA)",
"page.wallet.smart-account.confirm.current.smart": "Smart Account",
"page.wallet.smart-account.confirm.delegator": "Delegation Contract",
"page.wallet.smart-account.confirm.network": "Network",
"page.wallet.smart-account.confirm.account": "Account",
"page.wallet.smart-account.confirm.fee": "Network Fee",
"page.wallet.smart-account.confirm.fee.insufficient": "Insufficient balance for network fee.",
"page.wallet.smart-account.confirm.fee.failed": "Unable to estimate",
"page.wallet.smart-account.confirm.fee.retry": "Tap to retry",

"page.wallet.change-name.previous-name-input-label": "Previous Wallet Name",
"page.wallet.change-name.new-name-input-label": "New Wallet Name",
Expand Down
22 changes: 22 additions & 0 deletions apps/extension/src/languages/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,28 @@
"page.wallet.keyring-item.dropdown.delete-wallet-title": "์ง€๊ฐ‘ ์‚ญ์ œ",
"page.wallet.keyring-item.dropdown.view-recovery-path-title": "๋ณต๊ตฌ ๋ฌธ๊ตฌ ๋ณด๊ธฐ",
"page.wallet.keyring-item.dropdown.view-private-key-title": "ํ”„๋ผ์ด๋น—ํ‚ค ๋ณด๊ธฐ",
"page.wallet.keyring-item.dropdown.smart-account-title": "EVM ์Šค๋งˆํŠธ ๊ณ„์ •",

"page.wallet.smart-account.title": "์Šค๋งˆํŠธ ๊ณ„์ •",
"page.wallet.smart-account.description": "๋„คํŠธ์›Œํฌ๋ณ„๋กœ Smart Account๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
"page.wallet.smart-account.status.unsupported": "๋ฏธ์ง€์›",
"page.wallet.smart-account.confirm.title": "ํŠธ๋žœ์žญ์…˜ ํ™•์ธ",
"page.wallet.smart-account.confirm.section-title": "ํŠธ๋žœ์žญ์…˜ ์š”์•ฝ",
"page.wallet.smart-account.confirm.switch-to": "์ „ํ™˜ ๋Œ€์ƒ",
"page.wallet.smart-account.confirm.summary.upgrade": "๊ณ„์ • ์—…๊ทธ๋ ˆ์ด๋“œ",
"page.wallet.smart-account.confirm.summary.upgrade.desc": "์ผ๋ฐ˜ ๊ณ„์ •์—์„œ ์Šค๋งˆํŠธ ๊ณ„์ •์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.",
"page.wallet.smart-account.confirm.summary.downgrade": "๊ณ„์ • ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ",
"page.wallet.smart-account.confirm.summary.downgrade.desc": "์Šค๋งˆํŠธ ๊ณ„์ •์—์„œ ์ผ๋ฐ˜ ๊ณ„์ •์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ๋“  ๋‹ค์‹œ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
"page.wallet.smart-account.confirm.current": "ํ˜„์žฌ",
"page.wallet.smart-account.confirm.current.eoa": "์ผ๋ฐ˜ ๊ณ„์ • (EOA)",
"page.wallet.smart-account.confirm.current.smart": "์Šค๋งˆํŠธ ๊ณ„์ •",
"page.wallet.smart-account.confirm.delegator": "์œ„์ž„ ์ปจํŠธ๋ž™ํŠธ",
"page.wallet.smart-account.confirm.network": "๋„คํŠธ์›Œํฌ",
"page.wallet.smart-account.confirm.account": "๊ณ„์ •",
"page.wallet.smart-account.confirm.fee": "๋„คํŠธ์›Œํฌ ์ˆ˜์ˆ˜๋ฃŒ",
"page.wallet.smart-account.confirm.fee.insufficient": "๋„คํŠธ์›Œํฌ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์œ„ํ•œ ์ž”์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.",
"page.wallet.smart-account.confirm.fee.failed": "์ถ”์ • ๋ถˆ๊ฐ€",
"page.wallet.smart-account.confirm.fee.retry": "ํƒญํ•˜์—ฌ ์žฌ์‹œ๋„",

"page.wallet.change-name.previous-name-input-label": "ํ˜„์žฌ ์ง€๊ฐ‘ ์ด๋ฆ„",
"page.wallet.change-name.new-name-input-label": "์ƒˆ๋กœ์šด ์ง€๊ฐ‘ ์ด๋ฆ„",
Expand Down
22 changes: 22 additions & 0 deletions apps/extension/src/languages/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,28 @@
"page.wallet.keyring-item.dropdown.delete-wallet-title": "ๅˆ ้™ค้’ฑๅŒ…",
"page.wallet.keyring-item.dropdown.view-recovery-path-title": "ๆŸฅ็œ‹ๅŠฉ่ฎฐ่ฏ",
"page.wallet.keyring-item.dropdown.view-private-key-title": "ๆŸฅ็œ‹็ง้’ฅ",
"page.wallet.keyring-item.dropdown.smart-account-title": "EVM ๆ™บ่ƒฝ่ดฆๆˆท",

"page.wallet.smart-account.title": "ๆ™บ่ƒฝ่ดฆๆˆท",
"page.wallet.smart-account.description": "ๆŒ‰็ฝ‘็ปœๅฏ็”จๆˆ–็ฆ็”จๆ™บ่ƒฝ่ดฆๆˆทใ€‚",
"page.wallet.smart-account.status.unsupported": "ไธๆ”ฏๆŒ",
"page.wallet.smart-account.confirm.title": "ไบคๆ˜“็กฎ่ฎค",
"page.wallet.smart-account.confirm.section-title": "ไบคๆ˜“ๆ‘˜่ฆ",
"page.wallet.smart-account.confirm.switch-to": "ๅˆ‡ๆขๅˆฐ",
"page.wallet.smart-account.confirm.summary.upgrade": "ๅ‡็บงไธบๆ™บ่ƒฝ่ดฆๆˆท",
"page.wallet.smart-account.confirm.summary.upgrade.desc": "ๆ™ฎ้€š่ดฆๆˆทๅˆ‡ๆขไธบๆ™บ่ƒฝ่ดฆๆˆทใ€‚ๅœฐๅ€ไฟๆŒไธๅ˜ใ€‚",
"page.wallet.smart-account.confirm.summary.downgrade": "ๆขๅคไธบๆ ‡ๅ‡†่ดฆๆˆท",
"page.wallet.smart-account.confirm.summary.downgrade.desc": "ๆ™บ่ƒฝ่ดฆๆˆทๅˆ‡ๆขไธบๆ™ฎ้€š่ดฆๆˆทใ€‚ๅฏ้šๆ—ถๅˆ‡ๆขๅ›žๆฅใ€‚",
"page.wallet.smart-account.confirm.current": "ๅฝ“ๅ‰",
"page.wallet.smart-account.confirm.current.eoa": "ๆ™ฎ้€š่ดฆๆˆท (EOA)",
"page.wallet.smart-account.confirm.current.smart": "ๆ™บ่ƒฝ่ดฆๆˆท",
"page.wallet.smart-account.confirm.delegator": "ๅง”ๆ‰˜ๅˆ็บฆ",
"page.wallet.smart-account.confirm.network": "็ฝ‘็ปœ",
"page.wallet.smart-account.confirm.account": "่ดฆๆˆท",
"page.wallet.smart-account.confirm.fee": "็ฝ‘็ปœ่ดน็”จ",
"page.wallet.smart-account.confirm.fee.insufficient": "ไฝ™้ขไธ่ถณไปฅๆ”ฏไป˜็ฝ‘็ปœ่ดน็”จใ€‚",
"page.wallet.smart-account.confirm.fee.failed": "ๆ— ๆณ•ไผฐ็ฎ—",
"page.wallet.smart-account.confirm.fee.retry": "็‚นๅ‡ป้‡่ฏ•",

"page.wallet.change-name.previous-name-input-label": "ๅŽŸ้’ฑๅŒ…ๅ็งฐ",
"page.wallet.change-name.new-name-input-label": "ๆ–ฐ้’ฑๅŒ…ๅ็งฐ",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { useGetIcnsName } from "../../../../hooks/use-get-icns-name";
import { ContextMenuStyles } from "../../../../components/context-menu";
import { AccountNameIcon } from "../account-icon";
import { PortalTooltip } from "../../../../components/tooltip/portal";
import { useEip7702Chains } from "../../../wallet/smart-account/hooks/use-eip7702-chains";

const Styles = {
AccountItem: styled.div<{ isSelected: boolean }>`
Expand Down Expand Up @@ -145,6 +146,7 @@ export const AccountItemSwitchModal = observer(

const icnsPrimaryName = useGetIcnsName(bech32Address);
const paragraph = useGetKeyInfoParagraph(keyInfo, true);
const eip7702Chains = useEip7702Chains();
const dropdownItems = (() => {
const defaults = [
{
Expand Down Expand Up @@ -186,6 +188,20 @@ export const AccountItemSwitchModal = observer(
}
}

// Smart Account menu โ€” only for software wallets with at least one EIP-7702 chain
if (
(keyInfo.type === "mnemonic" || keyInfo.type === "private-key") &&
eip7702Chains.length > 0
) {
defaults.splice(defaults.length - 1, 0, {
key: "smart-account",
label: intl.formatMessage({
id: "page.wallet.keyring-item.dropdown.smart-account-title",
}),
onSelect: () => navigate(`/wallet/smart-account?id=${keyInfo.id}`),
});
}

return defaults;
})();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ export function useEvmTransferTxSubmit({
amount: sendConfigs.amountConfig.amount[0].toDec().toString(),
to: sendConfigs.recipientConfig.recipient,
gasLimit: sendConfigs.gasConfig.gas,
maxFeePerGas: maxFeePerGas?.toString(),
maxPriorityFeePerGas: maxPriorityFeePerGas?.toString(),
gasPrice: gasPrice?.toString(),
maxFeePerGas: maxFeePerGas?.truncate().toString(),
maxPriorityFeePerGas: maxPriorityFeePerGas?.truncate().toString(),
gasPrice: gasPrice?.truncate().toString(),
});
await ethereumAccount.sendEthereumTx(
sender,
Expand Down Expand Up @@ -133,7 +133,7 @@ export function useEvmTransferTxSubmit({
historyType,
chainId,
sendConfigs.recipientConfig.chainId,
signedTx,
new Uint8Array(signedTx),
sendConfigs.senderConfig.sender,
sendConfigs.recipientConfig.recipient,
sendConfigs.amountConfig.amount.map((amount) => {
Expand Down
6 changes: 3 additions & 3 deletions apps/extension/src/pages/send/amount/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -669,9 +669,9 @@ export const SendAmountPage: FunctionComponent = observer(() => {
amount: sendConfigs.amountConfig.amount[0].toDec().toString(),
to: sendConfigs.recipientConfig.recipient,
gasLimit: sendConfigs.gasConfig.gas,
maxFeePerGas: maxFeePerGas?.toString(),
maxPriorityFeePerGas: maxPriorityFeePerGas?.toString(),
gasPrice: gasPrice?.toString(),
maxFeePerGas: maxFeePerGas?.truncate().toString(),
maxPriorityFeePerGas: maxPriorityFeePerGas?.truncate().toString(),
gasPrice: gasPrice?.truncate().toString(),
});

const l1DataFee = await ethereumAccount.simulateOpStackL1Fee({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,9 @@ const QRCodeView: FunctionComponent<{
}, [confirm, intl]);

useEffect(() => {
let intervalId: NodeJS.Timer | undefined;
let intervalId:
| ReturnType<typeof exportGenerateQRCodeDataByInterval>
| undefined;

try {
(async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import React, { FunctionComponent, PropsWithChildren } from "react";
import { useTheme } from "styled-components";
import { ColorPalette } from "../../../../styles";
import { UnsignedEVMTransaction } from "@keplr-wallet/stores-eth";
import { IEthTxRenderRegistry, IEthTxRenderer } from "./types";
import { UnsignedTransaction } from "@ethersproject/transactions";
import { EthSendTokenTx } from "./render";
import { EthExecuteContractTx } from "./render/execute-contract";

Expand All @@ -15,7 +15,7 @@ export class EthTxRenderRegistry implements IEthTxRenderRegistry {

render(
chainId: string,
unsignedTx: UnsignedTransaction
unsignedTx: UnsignedEVMTransaction
): {
icon?: React.ReactElement;
title?: string | React.ReactElement;
Expand Down
Loading
Loading