From 0bdcceb35b0534818142c6d8c0fc578e68c8771c Mon Sep 17 00:00:00 2001
From: candy
Date: Fri, 9 May 2025 10:08:51 +0800
Subject: [PATCH 01/34] feat: add_all_tlds_and paymentid
---
packages/extension/package.json | 2 +
.../extension/src/libs/name-resolver/index.ts | 2 +-
.../ethereum/ui/send-transaction/index.vue | 6 +-
.../kadena/ui/send-transaction/index.vue | 6 +-
.../polkadot/ui/send-transaction/index.vue | 6 +-
.../solana/ui/send-transaction/index.vue | 6 +-
.../src/ui/action/views/swap/index.vue | 6 +-
packages/name-resolution/package.json | 2 +
packages/name-resolution/src/index.ts | 5 +-
packages/name-resolution/src/sid/index.ts | 138 ++++--
packages/name-resolution/src/sid/types.ts | 32 ++
packages/name-resolution/src/sid/utils.ts | 3 +
packages/name-resolution/src/types.ts | 7 +-
packages/name-resolution/tsconfig.json | 9 +-
yarn.lock | 415 ++++++++++++++++--
15 files changed, 538 insertions(+), 107 deletions(-)
create mode 100644 packages/name-resolution/src/sid/utils.ts
diff --git a/packages/extension/package.json b/packages/extension/package.json
index a2a952328..1efb82787 100644
--- a/packages/extension/package.json
+++ b/packages/extension/package.json
@@ -24,6 +24,7 @@
},
"dependencies": {
"@amplitude/analytics-browser": "^2.14.0",
+ "@bonfida/spl-name-service": "^3.0.10",
"@enkryptcom/extension-bridge": "workspace:^",
"@enkryptcom/hw-wallets": "workspace:^",
"@enkryptcom/keyring": "workspace:^",
@@ -78,6 +79,7 @@
"switch-ts": "^1.1.1",
"url-parse": "^1.5.10",
"uuid": "^11.1.0",
+ "viem": "^2.23.12",
"vue": "^3.5.13",
"vue-echarts": "7.0.3",
"vue-router": "^4.5.0",
diff --git a/packages/extension/src/libs/name-resolver/index.ts b/packages/extension/src/libs/name-resolver/index.ts
index b19d9684a..b279c412d 100644
--- a/packages/extension/src/libs/name-resolver/index.ts
+++ b/packages/extension/src/libs/name-resolver/index.ts
@@ -14,7 +14,7 @@ class GenericNameResolver {
});
}
- async resolveName(name: string, coins: CoinType[]): Promise {
+ async resolveName(name: string, coins: CoinType[], providerChain?: string): Promise {
let response: string | null = null;
for (const coin of coins) {
response = await this.nameResolver
diff --git a/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue b/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
index 1509894d8..b89963f5d 100644
--- a/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
@@ -668,7 +668,11 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = async (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(text, [props.network.name as CoinType, 'ETH'])
+ .resolveName(
+ text,
+ [props.network.name as CoinType, 'ETH'],
+ props.network?.provider as string,
+ )
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/extension/src/providers/kadena/ui/send-transaction/index.vue b/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
index 90a5c1aee..f17bb2d1e 100644
--- a/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
@@ -399,7 +399,11 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(text, [props.network.name as CoinType])
+ .resolveName(
+ text,
+ [props.network.name as CoinType],
+ props.network?.provider as string,
+ )
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue b/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
index 2b1ec61fc..98370f254 100644
--- a/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
@@ -378,7 +378,11 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(text, [props.network.name as CoinType, 'DOT', 'KSM'])
+ .resolveName(
+ text,
+ [props.network.name as CoinType, 'DOT', 'KSM'],
+ props.network?.provider as string,
+ )
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/extension/src/providers/solana/ui/send-transaction/index.vue b/packages/extension/src/providers/solana/ui/send-transaction/index.vue
index a947cbc51..665ec427f 100644
--- a/packages/extension/src/providers/solana/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/solana/ui/send-transaction/index.vue
@@ -694,7 +694,11 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = async (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(text, [props.network.name as CoinType, 'ETH'])
+ .resolveName(
+ text,
+ [props.network.name as CoinType, 'ETH'],
+ props.network?.provider as string,
+ )
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/extension/src/ui/action/views/swap/index.vue b/packages/extension/src/ui/action/views/swap/index.vue
index ad00e35f3..eb1e37516 100644
--- a/packages/extension/src/ui/action/views/swap/index.vue
+++ b/packages/extension/src/ui/action/views/swap/index.vue
@@ -404,7 +404,11 @@ const setMax = () => {
const inputAddress = (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(text, [props.network.name as CoinType, 'ETH'])
+ .resolveName(
+ text,
+ [props.network.name as CoinType, 'ETH'],
+ props.network?.provider as string,
+ )
.then(resolved => {
if (resolved) {
inputAddress(resolved);
diff --git a/packages/name-resolution/package.json b/packages/name-resolution/package.json
index c60e7df5a..be0be4726 100644
--- a/packages/name-resolution/package.json
+++ b/packages/name-resolution/package.json
@@ -49,7 +49,9 @@
"dependencies": {
"@ensdomains/address-encoder": "^1.1.2",
"@siddomains/sidjs": "0.1.29",
+ "@solana/web3.js": "^1.98.0",
"@unstoppabledomains/resolution": "^9.3.3",
+ "@web3-name-sdk/core": "^0.4.1",
"ethers": "^5.8.0"
}
}
diff --git a/packages/name-resolution/src/index.ts b/packages/name-resolution/src/index.ts
index 7c641bec3..dfb1de661 100644
--- a/packages/name-resolution/src/index.ts
+++ b/packages/name-resolution/src/index.ts
@@ -47,10 +47,11 @@ class NameResolver {
public async resolveAddress(
name: string,
- coin: CoinType = "ETH"
+ coin: CoinType = "ETH",
+ paymentIdChain?: string
): Promise {
return this.initDone.then(() => {
- if (this.sid.isSupportedName(name)) return this.sid.resolveAddress(name);
+ if (this.sid.isSupportedName(name)) return this.sid.resolveAddress(name, coin, paymentIdChain);
if (this.rns.isSupportedName(name))
return this.rns.resolveAddress(name, coin);
if (this.ud.isSupportedName(name))
diff --git a/packages/name-resolution/src/sid/index.ts b/packages/name-resolution/src/sid/index.ts
index ca465372e..8c4fd5fba 100644
--- a/packages/name-resolution/src/sid/index.ts
+++ b/packages/name-resolution/src/sid/index.ts
@@ -1,72 +1,114 @@
-import { ethers } from "ethers";
-import SID, { getSidAddress } from "@siddomains/sidjs";
-import { BaseResolver } from "../types";
+import { createWeb3Name } from "@web3-name-sdk/core";
+import { BaseResolver, CoinType } from "../types";
+import { PAYMENT_ID_CHAINS_MAP, PaymentIdChain, SIDOptions, TIMEOUT_PRESETS } from "./types";
+import { createSolName } from "@web3-name-sdk/core/solName";
+import { createPaymentIdName } from "@web3-name-sdk/core/paymentIdName";
+import { isValidPaymentId } from "./utils";
import { getTLD } from "../utils";
-import { SIDOptions } from "./types";
+// demo: https://sdk-demo-git-main-space-id.vercel.app/
+const evm_tlds = [
+ "bnb",
+ "arb",
+ "wod",
+ "mph",
+ "g",
+ "eth",
+ "btc",
+ "burger",
+ "alien",
+ "zkf",
+ "merlin",
+ "taiko",
+ "tomo",
+ "gno",
+ "floki",
+ "ll",
+ "ip",
+ "mode",
+ "mint",
+ "manta",
+ "cake",
+ "zeta",
+ "ail",
+ "duck",
+];
class SIDResolver implements BaseResolver {
name: string;
-
- supportedTLDs = ["bnb", "arb"];
-
+ timeout: number;
+ // The supported tlds for sid in evm and solana
+ supportedTLDs = ["sol", ...evm_tlds];
rpc: SIDOptions;
+ solanaNameResolver: ReturnType;
+ paymentIdNameResolver: ReturnType;
+ web3NameResolver: ReturnType;
constructor(options: SIDOptions) {
this.rpc = options;
+ this.timeout = options.timeout || TIMEOUT_PRESETS.normal;
this.name = "spaceid";
+ this.solanaNameResolver = createSolName({ timeout: this.timeout });
+ this.paymentIdNameResolver = createPaymentIdName();
+ this.web3NameResolver = createWeb3Name();
}
- // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-empty-function
public async init(): Promise {}
- public async resolveReverseName(address: string): Promise {
- const bnbProvider = new ethers.providers.JsonRpcProvider({
- url: this.rpc.node.bnb,
- headers: {
- "user-agent": "enkrypt/name-resolver",
- },
- });
- const sidBNB = new SID({
- provider: bnbProvider,
- sidAddress: getSidAddress("56"),
+ // The PaymentId only supports getAddress resolution.
+ public async handlePaymentIdGetAddress(
+ name: string,
+ paymentIdChain?: string
+ ): Promise {
+ return await this.paymentIdNameResolver.getAddress({
+ name,
+ chainId: PAYMENT_ID_CHAINS_MAP[paymentIdChain?.toLowerCase()] || PaymentIdChain.Ethereum,
});
- const nameBnb = await sidBNB.getName(address);
- if (nameBnb) return nameBnb.name;
- const arbProvider = new ethers.providers.JsonRpcProvider({
- url: this.rpc.node.arb,
- headers: {
- "user-agent": "enkrypt/name-resolver",
- },
- });
- const sidArb = new SID({
- provider: arbProvider,
- sidAddress: getSidAddress("42161"),
- });
- const nameArb = await sidArb.getName(address);
- if (nameArb) return nameArb.name;
- return null;
}
- public async resolveAddress(name: string): Promise {
- const provider = new ethers.providers.JsonRpcProvider({
- url: this.rpc.node[getTLD(name)],
- headers: {
- "user-agent": "enkrypt/name-resolver",
- },
- });
- const sid = new SID({
- provider,
- sidAddress: getSidAddress(getTLD(name) === "bnb" ? "56" : "42161"),
- });
- const address = await sid.name(name).getAddress();
- if (parseInt(address, 16) === 0) {
+ public async resolveReverseName(address: string): Promise {
+ try {
+ let name = await this.web3NameResolver.getDomainName({
+ timeout: this.timeout,
+ address,
+ });
+ if (!name) {
+ name = await this.solanaNameResolver.getDomainName({
+ address,
+ });
+ }
+ return name;
+ } catch (error) {
return null;
}
- return address;
}
+ public async resolveAddress(
+ name: string,
+ coint: CoinType,
+ paymentIdChain?: string,
+ ): Promise {
+ if (isValidPaymentId(name)) {
+ console.log("PaymentId name", name, coint);
+ return this.handlePaymentIdGetAddress(name, paymentIdChain);
+ }
+
+ const tld = getTLD(name);
+ switch (tld) {
+ case "sol":
+ const solAddress = await this.solanaNameResolver.getAddress({
+ name,
+ });
+ return solAddress;
+ default:
+ const address = await this.web3NameResolver.getAddress(name, {
+ timeout: this.timeout,
+ });
+ return parseInt(address, 16) === 0 ? null : address;
+ }
+ }
public isSupportedName(name: string): boolean {
- return this.supportedTLDs.includes(getTLD(name));
+ // Compatible with TLD and paymentId
+ return this.supportedTLDs.includes(getTLD(name)) || isValidPaymentId(name);
}
}
diff --git a/packages/name-resolution/src/sid/types.ts b/packages/name-resolution/src/sid/types.ts
index f0c52fef0..e2771c058 100644
--- a/packages/name-resolution/src/sid/types.ts
+++ b/packages/name-resolution/src/sid/types.ts
@@ -3,4 +3,36 @@ export interface SIDOptions {
bnb: string;
arb: string;
};
+ timeout?: number
}
+
+export type Protocol = "EVM" | "Solana" | "PaymentID";
+export enum PaymentIdChain {
+ Bitcoin = 0,
+ Ethereum = 1,
+ Solana = 2,
+ Tron = 3,
+ Aptos = 4,
+ Sui = 5,
+}
+export const PAYMENT_ID_CHAINS_MAP = {
+ "bitcoin": 0,
+ "ethereum": 1,
+ "solana": 2,
+ "tron": 3,
+ "aptos": 4,
+ "sui": 5,
+};
+export type Method =
+ | "getAddress"
+ | "getDomainName"
+ | "batchGetDomainNameByChainId"
+ | "getMetadata"
+ | "getContentHash";
+
+
+export const TIMEOUT_PRESETS = {
+ veryShort: 100, // Intentionally short to test timeout
+ normal: 5000, // Normal timeout (5s)
+ long: 15000, // Long timeout (15s)
+};
\ No newline at end of file
diff --git a/packages/name-resolution/src/sid/utils.ts b/packages/name-resolution/src/sid/utils.ts
new file mode 100644
index 000000000..db6a9e3dd
--- /dev/null
+++ b/packages/name-resolution/src/sid/utils.ts
@@ -0,0 +1,3 @@
+const paymentIdRegex = /^[a-zA-Z0-9]+@[a-zA-Z0-9]+$/
+export const isValidPaymentId = (id: string) => paymentIdRegex.test(id)
+
diff --git a/packages/name-resolution/src/types.ts b/packages/name-resolution/src/types.ts
index 242f5320d..b2aa884ba 100644
--- a/packages/name-resolution/src/types.ts
+++ b/packages/name-resolution/src/types.ts
@@ -1,5 +1,5 @@
import { ENSOptions } from "./ens/types";
-import { SIDOptions } from "./sid/types";
+import { PaymentIdChain, SIDOptions } from "./sid/types";
export type CoinType =
| "BTC"
@@ -146,12 +146,13 @@ export abstract class BaseResolver {
public abstract resolveAddress(
name: string,
- coint: CoinType
+ coint: CoinType,
+ paymentIdChain?: string
): Promise;
public abstract resolveReverseName(address: string): Promise;
- public abstract isSupportedName(name: string): boolean;
+ public abstract isSupportedName(name: string, paymentIdChain?:PaymentIdChain): boolean;
}
export interface NameResolverOptions {
diff --git a/packages/name-resolution/tsconfig.json b/packages/name-resolution/tsconfig.json
index 6da8e1f23..d77afeb0b 100644
--- a/packages/name-resolution/tsconfig.json
+++ b/packages/name-resolution/tsconfig.json
@@ -2,17 +2,20 @@
"extends": "./tsconfig.paths.json",
"compilerOptions": {
"lib": ["ESNext", "dom"],
- "moduleResolution": "node",
+ "moduleResolution": "bundler",
"noUnusedLocals": true,
"noUnusedParameters": true,
"removeComments": true,
"sourceMap": true,
"target": "es5",
- "module": "commonjs",
+ "module": "es2020",
"outDir": "dist",
"resolveJsonModule": true,
"esModuleInterop": true,
- "declaration": true
+ "declaration": true,
+ "paths": {
+ "@web3-name-sdk/core/*": ["node_modules/@web3-name-sdk/core/dist/*"]
+ },
},
"include": ["src/**/*.ts", "tests/**/*.ts"],
"exclude": [
diff --git a/yarn.lock b/yarn.lock
index aec5ea9de..0393ce210 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23,6 +23,13 @@ __metadata:
languageName: node
linkType: hard
+"@adraffy/ens-normalize@npm:^1.10.0, @adraffy/ens-normalize@npm:^1.10.1":
+ version: 1.11.0
+ resolution: "@adraffy/ens-normalize@npm:1.11.0"
+ checksum: 10/abef75f21470ea43dd6071168e092d2d13e38067e349e76186c78838ae174a46c3e18ca50921d05bea6ec3203074147c9e271f8cb6531d1c2c0e146f3199ddcb
+ languageName: node
+ linkType: hard
+
"@amplitude/analytics-browser@npm:^2.14.0":
version: 2.14.0
resolution: "@amplitude/analytics-browser@npm:2.14.0"
@@ -495,6 +502,38 @@ __metadata:
languageName: node
linkType: hard
+"@bonfida/sns-records@npm:0.0.1":
+ version: 0.0.1
+ resolution: "@bonfida/sns-records@npm:0.0.1"
+ dependencies:
+ borsh: "npm:1.0.0"
+ bs58: "npm:5.0.0"
+ buffer: "npm:^6.0.3"
+ peerDependencies:
+ "@solana/web3.js": ^1.87.3
+ checksum: 10/e47294cdd73961288eb9ad41f5f80eb67953fcac5e0e9f29c39990795411f30606e3eba359fbd8e3e8b23ff64f797ce2ad33c8298fe6a2c9634902397b3a3098
+ languageName: node
+ linkType: hard
+
+"@bonfida/spl-name-service@npm:^3.0.10":
+ version: 3.0.10
+ resolution: "@bonfida/spl-name-service@npm:3.0.10"
+ dependencies:
+ "@bonfida/sns-records": "npm:0.0.1"
+ "@noble/curves": "npm:^1.4.0"
+ "@scure/base": "npm:^1.1.6"
+ "@solana/spl-token": "npm:0.4.6"
+ borsh: "npm:2.0.0"
+ buffer: "npm:^6.0.3"
+ graphemesplit: "npm:^2.4.4"
+ ipaddr.js: "npm:^2.2.0"
+ punycode: "npm:^2.3.1"
+ peerDependencies:
+ "@solana/web3.js": ^1.87.3
+ checksum: 10/46b246cb5ac3154ddee69ed739bfb8893045d56759319c75beca61022575ffc048720334cb49abc2903eeee3ccdf815292186f8c0599e65ff2d11cb8db66739f
+ languageName: node
+ linkType: hard
+
"@bundled-es-modules/cookie@npm:^2.0.0":
version: 2.0.0
resolution: "@bundled-es-modules/cookie@npm:2.0.0"
@@ -1530,6 +1569,7 @@ __metadata:
resolution: "@enkryptcom/extension@workspace:packages/extension"
dependencies:
"@amplitude/analytics-browser": "npm:^2.14.0"
+ "@bonfida/spl-name-service": "npm:^3.0.10"
"@crxjs/vite-plugin": "npm:^2.0.0-beta.32"
"@enkryptcom/extension-bridge": "workspace:^"
"@enkryptcom/hw-wallets": "workspace:^"
@@ -1628,6 +1668,7 @@ __metadata:
url: "npm:^0.11.4"
url-parse: "npm:^1.5.10"
uuid: "npm:^11.1.0"
+ viem: "npm:^2.23.12"
vite: "npm:^6.3.1"
vite-plugin-node-polyfills: "npm:0.23.0"
vite-tsconfig-paths: "npm:^5.1.4"
@@ -1729,10 +1770,12 @@ __metadata:
dependencies:
"@ensdomains/address-encoder": "npm:^1.1.2"
"@siddomains/sidjs": "npm:0.1.29"
+ "@solana/web3.js": "npm:^1.98.0"
"@types/node": "npm:^22.14.1"
"@typescript-eslint/eslint-plugin": "npm:^8.30.1"
"@typescript-eslint/parser": "npm:^8.30.1"
"@unstoppabledomains/resolution": "npm:^9.3.3"
+ "@web3-name-sdk/core": "npm:^0.4.1"
eslint: "npm:^9.24.0"
eslint-config-airbnb-base: "npm:^15.0.0"
eslint-config-prettier: "npm:^10.1.2"
@@ -1746,6 +1789,7 @@ __metadata:
tsup: "npm:^8.4.0"
typescript: "npm:^5.8.3"
typescript-eslint: "npm:8.30.1"
+ viem: "npm:^2.23.12"
vitest: "npm:^3.1.1"
languageName: unknown
linkType: soft
@@ -6418,6 +6462,15 @@ __metadata:
languageName: node
linkType: hard
+"@noble/curves@npm:1.8.2, @noble/curves@npm:~1.8.1":
+ version: 1.8.2
+ resolution: "@noble/curves@npm:1.8.2"
+ dependencies:
+ "@noble/hashes": "npm:1.7.2"
+ checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
+ languageName: node
+ linkType: hard
+
"@noble/curves@npm:^1.0.0, @noble/curves@npm:^1.1.0, @noble/curves@npm:^1.2.0, @noble/curves@npm:^1.3.0, @noble/curves@npm:^1.4.0, @noble/curves@npm:^1.4.2, @noble/curves@npm:~1.6.0":
version: 1.6.0
resolution: "@noble/curves@npm:1.6.0"
@@ -6427,12 +6480,12 @@ __metadata:
languageName: node
linkType: hard
-"@noble/curves@npm:~1.8.1":
- version: 1.8.2
- resolution: "@noble/curves@npm:1.8.2"
+"@noble/curves@npm:^1.6.0, @noble/curves@npm:~1.9.0":
+ version: 1.9.0
+ resolution: "@noble/curves@npm:1.9.0"
dependencies:
- "@noble/hashes": "npm:1.7.2"
- checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
+ "@noble/hashes": "npm:1.8.0"
+ checksum: 10/f2c5946310722fee23e04ed747f21ce72e0436e38e1fa620d226a8c613262e7d0dbab5341f14caf92936089d01d9e9231964c409cd1ac2a73a075f3cdb1acc41
languageName: node
linkType: hard
@@ -6513,6 +6566,13 @@ __metadata:
languageName: node
linkType: hard
+"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.5.0, @noble/hashes@npm:~1.8.0":
+ version: 1.8.0
+ resolution: "@noble/hashes@npm:1.8.0"
+ checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e
+ languageName: node
+ linkType: hard
+
"@noble/hashes@npm:^1.6.1, @noble/hashes@npm:~1.7.1":
version: 1.7.1
resolution: "@noble/hashes@npm:1.7.1"
@@ -8374,6 +8434,13 @@ __metadata:
languageName: node
linkType: hard
+"@scure/base@npm:^1.1.6, @scure/base@npm:~1.2.5":
+ version: 1.2.5
+ resolution: "@scure/base@npm:1.2.5"
+ checksum: 10/9a963a27424a373b62760c9ae7099ae496be67eb5b31205639f529f0dbcb2228a827222a36d22842cc2acda78e300a3430d46d84de5d8d4b791208955360853e
+ languageName: node
+ linkType: hard
+
"@scure/base@npm:~1.2.2, @scure/base@npm:~1.2.4":
version: 1.2.4
resolution: "@scure/base@npm:1.2.4"
@@ -8403,6 +8470,17 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip32@npm:1.6.2, @scure/bip32@npm:^1.3.1":
+ version: 1.6.2
+ resolution: "@scure/bip32@npm:1.6.2"
+ dependencies:
+ "@noble/curves": "npm:~1.8.1"
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.2"
+ checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
+ languageName: node
+ linkType: hard
+
"@scure/bip32@npm:^1.1.5, @scure/bip32@npm:^1.4.0":
version: 1.5.0
resolution: "@scure/bip32@npm:1.5.0"
@@ -8414,14 +8492,14 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip32@npm:^1.3.1":
- version: 1.6.2
- resolution: "@scure/bip32@npm:1.6.2"
+"@scure/bip32@npm:^1.5.0":
+ version: 1.7.0
+ resolution: "@scure/bip32@npm:1.7.0"
dependencies:
- "@noble/curves": "npm:~1.8.1"
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.2"
- checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
+ "@noble/curves": "npm:~1.9.0"
+ "@noble/hashes": "npm:~1.8.0"
+ "@scure/base": "npm:~1.2.5"
+ checksum: 10/f90e0c23ab6a31a164856ae9cb9a8cae2886df608c74a6c0c4875095b017e30ffd92f28f73b8c52890d9a89fca86d19f6d60bb1ea7cad64c7987f92ae83509ad
languageName: node
linkType: hard
@@ -8445,6 +8523,16 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip39@npm:1.5.4, @scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
+ version: 1.5.4
+ resolution: "@scure/bip39@npm:1.5.4"
+ dependencies:
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.4"
+ checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
+ languageName: node
+ linkType: hard
+
"@scure/bip39@npm:^1.2.0, @scure/bip39@npm:^1.3.0":
version: 1.4.0
resolution: "@scure/bip39@npm:1.4.0"
@@ -8455,13 +8543,13 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
- version: 1.5.4
- resolution: "@scure/bip39@npm:1.5.4"
+"@scure/bip39@npm:^1.4.0":
+ version: 1.6.0
+ resolution: "@scure/bip39@npm:1.6.0"
dependencies:
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.4"
- checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
+ "@noble/hashes": "npm:~1.8.0"
+ "@scure/base": "npm:~1.2.5"
+ checksum: 10/63e60c40fa1bda2c1b50351546fee6d7b0947cc814aa7a4209dcedd3693b5053302c8fca28292f5f50735e11c613265359acdc019127393dbab17e53489fc449
languageName: node
linkType: hard
@@ -8699,6 +8787,15 @@ __metadata:
languageName: node
linkType: hard
+"@solana/codecs-core@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/codecs-core@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/errors": "npm:2.0.0-preview.2"
+ checksum: 10/28baf598f689deb8b3d2840035789960b73715425dc5684964e8cffec99baedc456aa468887b1ca681cb57d54312b70b3d65f6a5ea1475ddfcd76bb1ffe6710e
+ languageName: node
+ linkType: hard
+
"@solana/codecs-core@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/codecs-core@npm:2.0.0-rc.1"
@@ -8721,6 +8818,17 @@ __metadata:
languageName: node
linkType: hard
+"@solana/codecs-data-structures@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/codecs-data-structures@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/codecs-core": "npm:2.0.0-preview.2"
+ "@solana/codecs-numbers": "npm:2.0.0-preview.2"
+ "@solana/errors": "npm:2.0.0-preview.2"
+ checksum: 10/2d5fb280b7df155e11cab25639884cf9336641291854dbe2768420a27cca87f86e1ee0289b4339debe92183c27c0c70f95a1f2043601a9cea88f33995b7b3664
+ languageName: node
+ linkType: hard
+
"@solana/codecs-data-structures@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/codecs-data-structures@npm:2.0.0-rc.1"
@@ -8747,6 +8855,16 @@ __metadata:
languageName: node
linkType: hard
+"@solana/codecs-numbers@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/codecs-numbers@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/codecs-core": "npm:2.0.0-preview.2"
+ "@solana/errors": "npm:2.0.0-preview.2"
+ checksum: 10/e6caed4c2d43bc52191f5af15284787bbea2e3b3153f84be0443196f7e7d4c5c02b2a56d60c8f64335c9033d890877a122bdc8de40c0a856ed52c84f39263722
+ languageName: node
+ linkType: hard
+
"@solana/codecs-numbers@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/codecs-numbers@npm:2.0.0-rc.1"
@@ -8771,6 +8889,19 @@ __metadata:
languageName: node
linkType: hard
+"@solana/codecs-strings@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/codecs-strings@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/codecs-core": "npm:2.0.0-preview.2"
+ "@solana/codecs-numbers": "npm:2.0.0-preview.2"
+ "@solana/errors": "npm:2.0.0-preview.2"
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ checksum: 10/c9e1c54b2d987fe504c879bfa083effe9539a83cd5927bcbc7446cd34065c6c707d4a6ae67b99ed0d475c6dd87b5879d3df205565febb17c94d3862c586b1783
+ languageName: node
+ linkType: hard
+
"@solana/codecs-strings@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/codecs-strings@npm:2.0.0-rc.1"
@@ -8799,6 +8930,19 @@ __metadata:
languageName: node
linkType: hard
+"@solana/codecs@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/codecs@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/codecs-core": "npm:2.0.0-preview.2"
+ "@solana/codecs-data-structures": "npm:2.0.0-preview.2"
+ "@solana/codecs-numbers": "npm:2.0.0-preview.2"
+ "@solana/codecs-strings": "npm:2.0.0-preview.2"
+ "@solana/options": "npm:2.0.0-preview.2"
+ checksum: 10/8ee2a6349c602b62f3505d8ecde3dac00a472792fa13485f9aafffc44522d5e212038e90b561ac543a83f0cd78e76c7fe958cc6e2abc1c6e1b56d4e2ce1311f4
+ languageName: node
+ linkType: hard
+
"@solana/codecs@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/codecs@npm:2.0.0-rc.1"
@@ -8829,6 +8973,18 @@ __metadata:
languageName: node
linkType: hard
+"@solana/errors@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/errors@npm:2.0.0-preview.2"
+ dependencies:
+ chalk: "npm:^5.3.0"
+ commander: "npm:^12.0.0"
+ bin:
+ errors: bin/cli.js
+ checksum: 10/37d11270311397d7f652ee320d52e6987265e94c7fe3daa7f47e569e5411ad36cba60acd63e11b672416d3f119f1d7eeb6ffeb9f8a43caa889aaf0199113da55
+ languageName: node
+ linkType: hard
+
"@solana/errors@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/errors@npm:2.0.0-rc.1"
@@ -8929,6 +9085,16 @@ __metadata:
languageName: node
linkType: hard
+"@solana/options@npm:2.0.0-preview.2":
+ version: 2.0.0-preview.2
+ resolution: "@solana/options@npm:2.0.0-preview.2"
+ dependencies:
+ "@solana/codecs-core": "npm:2.0.0-preview.2"
+ "@solana/codecs-numbers": "npm:2.0.0-preview.2"
+ checksum: 10/63572dc6a29a1a2fcb68d19a6afe3b49baa1c60af250088c4413f890d91024dbf7bd752b4bf2c75456d89deb70823c25cd41013470a9cb5da1999b1459644b53
+ languageName: node
+ linkType: hard
+
"@solana/options@npm:2.0.0-rc.1":
version: 2.0.0-rc.1
resolution: "@solana/options@npm:2.0.0-rc.1"
@@ -9177,6 +9343,18 @@ __metadata:
languageName: node
linkType: hard
+"@solana/spl-token-group@npm:^0.0.4":
+ version: 0.0.4
+ resolution: "@solana/spl-token-group@npm:0.0.4"
+ dependencies:
+ "@solana/codecs": "npm:2.0.0-preview.2"
+ "@solana/spl-type-length-value": "npm:0.1.0"
+ peerDependencies:
+ "@solana/web3.js": ^1.91.6
+ checksum: 10/72621ce6dc9c6eedae636058623e7cc77ef1c228ca4c128c382d3f0f9e09e56f4d4f7b873b1d43d659a3b70745aec93ce7d9e2f09c12154f0d7bc55c0e7b279f
+ languageName: node
+ linkType: hard
+
"@solana/spl-token-group@npm:^0.0.7":
version: 0.0.7
resolution: "@solana/spl-token-group@npm:0.0.7"
@@ -9199,6 +9377,21 @@ __metadata:
languageName: node
linkType: hard
+"@solana/spl-token@npm:0.4.6":
+ version: 0.4.6
+ resolution: "@solana/spl-token@npm:0.4.6"
+ dependencies:
+ "@solana/buffer-layout": "npm:^4.0.0"
+ "@solana/buffer-layout-utils": "npm:^0.2.0"
+ "@solana/spl-token-group": "npm:^0.0.4"
+ "@solana/spl-token-metadata": "npm:^0.1.4"
+ buffer: "npm:^6.0.3"
+ peerDependencies:
+ "@solana/web3.js": ^1.91.6
+ checksum: 10/944f5a5b4401fd21e17358f33278bd03e978f229682810f40fcd783a3f71cb05841c051b91352ffec1da3e7d3070c0307639c6b2b42312f50fc8ecbe78a3460d
+ languageName: node
+ linkType: hard
+
"@solana/spl-token@npm:0.4.9, @solana/spl-token@npm:^0.4.8":
version: 0.4.9
resolution: "@solana/spl-token@npm:0.4.9"
@@ -9229,6 +9422,15 @@ __metadata:
languageName: node
linkType: hard
+"@solana/spl-type-length-value@npm:0.1.0":
+ version: 0.1.0
+ resolution: "@solana/spl-type-length-value@npm:0.1.0"
+ dependencies:
+ buffer: "npm:^6.0.3"
+ checksum: 10/00ca61fb03a7eafb90ba43803b8a1e3c3a8ff8558c452ce2e0d571468f0d205ceeb64640160f5474e15c63e31aa75d664f49324f777ad18b019292d50c8b083b
+ languageName: node
+ linkType: hard
+
"@solana/subscribable@npm:2.1.0":
version: 2.1.0
resolution: "@solana/subscribable@npm:2.1.0"
@@ -12613,6 +12815,23 @@ __metadata:
languageName: node
linkType: hard
+"@web3-name-sdk/core@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "@web3-name-sdk/core@npm:0.4.1"
+ dependencies:
+ "@adraffy/ens-normalize": "npm:^1.10.0"
+ "@ensdomains/ens-validation": "npm:^0.1.0"
+ peerDependencies:
+ "@bonfida/spl-name-service": ^3.0.10
+ "@sei-js/core": ^3.1.0
+ "@siddomains/injective-sidjs": 0.0.2-beta
+ "@siddomains/sei-sidjs": ^0.0.4
+ "@solana/web3.js": ^1.75.0
+ viem: ^2.23.12
+ checksum: 10/8f047f00fd007f9c4e980da6979c26f75c8927fc865d8381ba37435388289ebdf9612b71e8f1d562ae3e466305433b2fa01277cde9bf4f6894cce79141091f2f
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1":
version: 1.12.1
resolution: "@webassemblyjs/ast@npm:1.12.1"
@@ -13012,6 +13231,21 @@ __metadata:
languageName: node
linkType: hard
+"abitype@npm:1.0.8, abitype@npm:^1.0.6":
+ version: 1.0.8
+ resolution: "abitype@npm:1.0.8"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ zod: ^3 >=3.22.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ checksum: 10/878e74fbac6a971953649b6216950437aa5834a604e9fa833a5b275a6967cff59857c7e43594ae906387d2fb7cad9370138dec4298eb8814815a3ffb6365902c
+ languageName: node
+ linkType: hard
+
"abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "abort-controller@npm:3.0.0"
@@ -14291,6 +14525,13 @@ __metadata:
languageName: node
linkType: hard
+"borsh@npm:2.0.0":
+ version: 2.0.0
+ resolution: "borsh@npm:2.0.0"
+ checksum: 10/b8e80de36b33899d05c5155715ccf9beabb82087a8dfc18ccd7250971a63dfa03e51635ad255e65cf60baff9e6ed88dee2141ef69982bcf442d9e850b2da16a2
+ languageName: node
+ linkType: hard
+
"borsh@npm:^0.7.0":
version: 0.7.0
resolution: "borsh@npm:0.7.0"
@@ -14527,6 +14768,15 @@ __metadata:
languageName: node
linkType: hard
+"bs58@npm:5.0.0, bs58@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "bs58@npm:5.0.0"
+ dependencies:
+ base-x: "npm:^4.0.0"
+ checksum: 10/2475cb0684e07077521aac718e604a13e0f891d58cff923d437a2f7e9e28703ab39fce9f84c7c703ab369815a675f11e3bd394d38643bfe8969fbe42e6833d45
+ languageName: node
+ linkType: hard
+
"bs58@npm:^4.0.0, bs58@npm:^4.0.1":
version: 4.0.1
resolution: "bs58@npm:4.0.1"
@@ -14536,15 +14786,6 @@ __metadata:
languageName: node
linkType: hard
-"bs58@npm:^5.0.0":
- version: 5.0.0
- resolution: "bs58@npm:5.0.0"
- dependencies:
- base-x: "npm:^4.0.0"
- checksum: 10/2475cb0684e07077521aac718e604a13e0f891d58cff923d437a2f7e9e28703ab39fce9f84c7c703ab369815a675f11e3bd394d38643bfe8969fbe42e6833d45
- languageName: node
- linkType: hard
-
"bs58check@npm:2.1.2, bs58check@npm:<3.0.0, bs58check@npm:^2.0.0, bs58check@npm:^2.1.1, bs58check@npm:^2.1.2":
version: 2.1.2
resolution: "bs58check@npm:2.1.2"
@@ -15519,7 +15760,7 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^12.1.0":
+"commander@npm:^12.0.0, commander@npm:^12.1.0":
version: 12.1.0
resolution: "commander@npm:12.1.0"
checksum: 10/cdaeb672d979816853a4eed7f1310a9319e8b976172485c2a6b437ed0db0a389a44cfb222bfbde772781efa9f215bdd1b936f80d6b249485b465c6cb906e1f93
@@ -19770,6 +20011,16 @@ __metadata:
languageName: node
linkType: hard
+"graphemesplit@npm:^2.4.4":
+ version: 2.6.0
+ resolution: "graphemesplit@npm:2.6.0"
+ dependencies:
+ js-base64: "npm:^3.6.0"
+ unicode-trie: "npm:^2.0.0"
+ checksum: 10/0ccc12a921a99afb673112d7e21486015296e058b9cf92261a0b72e8bfaf6fcb0220760e62acb9f3f44ba1e0ff6181c0c3ef0c6749035b20334e941aa2d9c578
+ languageName: node
+ linkType: hard
+
"graphql-tag@npm:^2.12.6":
version: 2.12.6
resolution: "graphql-tag@npm:2.12.6"
@@ -20657,7 +20908,7 @@ __metadata:
languageName: node
linkType: hard
-"ipaddr.js@npm:^2.0.1":
+"ipaddr.js@npm:^2.0.1, ipaddr.js@npm:^2.2.0":
version: 2.2.0
resolution: "ipaddr.js@npm:2.2.0"
checksum: 10/9e1cdd9110b3bca5d910ab70d7fb1933e9c485d9b92cb14ef39f30c412ba3fe02a553921bf696efc7149cc653453c48ccf173adb996ec27d925f1f340f872986
@@ -21279,6 +21530,15 @@ __metadata:
languageName: node
linkType: hard
+"isows@npm:1.0.6":
+ version: 1.0.6
+ resolution: "isows@npm:1.0.6"
+ peerDependencies:
+ ws: "*"
+ checksum: 10/ab9e85b50bcc3d70aa5ec875aa2746c5daf9321cb376ed4e5434d3c2643c5d62b1f466d93a05cd2ad0ead5297224922748c31707cb4fbd68f5d05d0479dce99c
+ languageName: node
+ linkType: hard
+
"isstream@npm:~0.1.2":
version: 0.1.2
resolution: "isstream@npm:0.1.2"
@@ -21470,7 +21730,7 @@ __metadata:
languageName: node
linkType: hard
-"js-base64@npm:^3.7.2, js-base64@npm:^3.7.4, js-base64@npm:^3.7.7":
+"js-base64@npm:^3.6.0, js-base64@npm:^3.7.2, js-base64@npm:^3.7.4, js-base64@npm:^3.7.7":
version: 3.7.7
resolution: "js-base64@npm:3.7.7"
checksum: 10/185e34c536a6b1c4e1ad8bd96d25b49a9ea4e6803e259eaaaca95f1b392a0d590b2933c5ca8580c776f7279507944b81ff1faf889d84baa5e31f026e96d676a5
@@ -24422,6 +24682,26 @@ __metadata:
languageName: node
linkType: hard
+"ox@npm:0.6.9":
+ version: 0.6.9
+ resolution: "ox@npm:0.6.9"
+ dependencies:
+ "@adraffy/ens-normalize": "npm:^1.10.1"
+ "@noble/curves": "npm:^1.6.0"
+ "@noble/hashes": "npm:^1.5.0"
+ "@scure/bip32": "npm:^1.5.0"
+ "@scure/bip39": "npm:^1.4.0"
+ abitype: "npm:^1.0.6"
+ eventemitter3: "npm:5.0.1"
+ peerDependencies:
+ typescript: ">=5.4.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/11ad9076b594dd424cd89d9763d4701e59e7ffc0733973947c82a14255a00a53483712e62fa9bbacd39efd35c6739bddb7728ef2211b47530f22036ab77cde69
+ languageName: node
+ linkType: hard
+
"p-cancelable@npm:^2.0.0":
version: 2.1.1
resolution: "p-cancelable@npm:2.1.1"
@@ -24568,6 +24848,13 @@ __metadata:
languageName: node
linkType: hard
+"pako@npm:^0.2.5":
+ version: 0.2.9
+ resolution: "pako@npm:0.2.9"
+ checksum: 10/627c6842e90af0b3a9ee47345bd66485a589aff9514266f4fa9318557ad819c46fedf97510f2cef9b6224c57913777966a05cb46caf6a9b31177a5401a06fe15
+ languageName: node
+ linkType: hard
+
"pako@npm:^2.0.3, pako@npm:^2.0.4":
version: 2.1.0
resolution: "pako@npm:2.1.0"
@@ -28822,6 +29109,13 @@ __metadata:
languageName: node
linkType: hard
+"tiny-inflate@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "tiny-inflate@npm:1.0.3"
+ checksum: 10/f620114fb51ea4a16ea7b4c62d6dd753f8faf41808a133c53d431ed4bf2ca377b21443653a0096894f2be22ca11bb327f148e7e5431f9246068917724ec01ffc
+ languageName: node
+ linkType: hard
+
"tiny-secp256k1@npm:1.1.6":
version: 1.1.6
resolution: "tiny-secp256k1@npm:1.1.6"
@@ -29848,6 +30142,16 @@ __metadata:
languageName: node
linkType: hard
+"unicode-trie@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "unicode-trie@npm:2.0.0"
+ dependencies:
+ pako: "npm:^0.2.5"
+ tiny-inflate: "npm:^1.0.0"
+ checksum: 10/60404411dbd363bdcca9e81c9327fa80469f2e685737bac88ec693225ff20b9b545ac37ca2da13ec02f1552167dd010dfefd7c58b72a73d44a89fab1ca9c2479
+ languageName: node
+ linkType: hard
+
"unicorn-magic@npm:^0.1.0":
version: 0.1.0
resolution: "unicorn-magic@npm:0.1.0"
@@ -30309,6 +30613,27 @@ __metadata:
languageName: node
linkType: hard
+"viem@npm:^2.23.12":
+ version: 2.29.1
+ resolution: "viem@npm:2.29.1"
+ dependencies:
+ "@noble/curves": "npm:1.8.2"
+ "@noble/hashes": "npm:1.7.2"
+ "@scure/bip32": "npm:1.6.2"
+ "@scure/bip39": "npm:1.5.4"
+ abitype: "npm:1.0.8"
+ isows: "npm:1.0.6"
+ ox: "npm:0.6.9"
+ ws: "npm:8.18.1"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/2ca6f9148bb309c3f3aae4856a2020103237c2e979010d4f040730e1e6724355395eb22542e8c6608107fe3d4b819f9fc1eb604ea1647ecde2b34ceac6fc5fd1
+ languageName: node
+ linkType: hard
+
"vite-node@npm:3.1.1":
version: 3.1.1
resolution: "vite-node@npm:3.1.1"
@@ -31850,6 +32175,21 @@ __metadata:
languageName: node
linkType: hard
+"ws@npm:8.18.1, ws@npm:^8.18.1":
+ version: 8.18.1
+ resolution: "ws@npm:8.18.1"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
+ languageName: node
+ linkType: hard
+
"ws@npm:^3.0.0":
version: 3.3.3
resolution: "ws@npm:3.3.3"
@@ -31876,21 +32216,6 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^8.18.1":
- version: 8.18.1
- resolution: "ws@npm:8.18.1"
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ">=5.0.2"
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
- languageName: node
- linkType: hard
-
"xhr-request-promise@npm:^0.1.2":
version: 0.1.3
resolution: "xhr-request-promise@npm:0.1.3"
From 3ce9397495f9f497723239e28d44d207c4920d94 Mon Sep 17 00:00:00 2001
From: candy
Date: Tue, 13 May 2025 10:28:20 +0800
Subject: [PATCH 02/34] feat: code review
---
packages/extension/package.json | 1 -
packages/extension/src/libs/name-resolver/index.ts | 2 +-
.../src/providers/kadena/ui/send-transaction/index.vue | 6 +-----
.../src/providers/polkadot/ui/send-transaction/index.vue | 6 +-----
packages/name-resolution/package.json | 3 ++-
packages/name-resolution/tsconfig.json | 4 ++--
6 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/packages/extension/package.json b/packages/extension/package.json
index 1efb82787..b883b71b7 100644
--- a/packages/extension/package.json
+++ b/packages/extension/package.json
@@ -79,7 +79,6 @@
"switch-ts": "^1.1.1",
"url-parse": "^1.5.10",
"uuid": "^11.1.0",
- "viem": "^2.23.12",
"vue": "^3.5.13",
"vue-echarts": "7.0.3",
"vue-router": "^4.5.0",
diff --git a/packages/extension/src/libs/name-resolver/index.ts b/packages/extension/src/libs/name-resolver/index.ts
index b279c412d..fd3656efd 100644
--- a/packages/extension/src/libs/name-resolver/index.ts
+++ b/packages/extension/src/libs/name-resolver/index.ts
@@ -18,7 +18,7 @@ class GenericNameResolver {
let response: string | null = null;
for (const coin of coins) {
response = await this.nameResolver
- .resolveAddress(name, coin)
+ .resolveAddress(name, coin, providerChain)
.catch(() => null);
if (response) return response;
}
diff --git a/packages/extension/src/providers/kadena/ui/send-transaction/index.vue b/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
index f17bb2d1e..90a5c1aee 100644
--- a/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/kadena/ui/send-transaction/index.vue
@@ -399,11 +399,7 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(
- text,
- [props.network.name as CoinType],
- props.network?.provider as string,
- )
+ .resolveName(text, [props.network.name as CoinType])
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue b/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
index 98370f254..2b1ec61fc 100644
--- a/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/polkadot/ui/send-transaction/index.vue
@@ -378,11 +378,7 @@ const inputAddressFrom = (text: string) => {
const inputAddressTo = (text: string) => {
const debounceResolve = debounce(() => {
nameResolver
- .resolveName(
- text,
- [props.network.name as CoinType, 'DOT', 'KSM'],
- props.network?.provider as string,
- )
+ .resolveName(text, [props.network.name as CoinType, 'DOT', 'KSM'])
.then(resolved => {
if (resolved) {
addressTo.value = resolved;
diff --git a/packages/name-resolution/package.json b/packages/name-resolution/package.json
index be0be4726..b207a8047 100644
--- a/packages/name-resolution/package.json
+++ b/packages/name-resolution/package.json
@@ -52,6 +52,7 @@
"@solana/web3.js": "^1.98.0",
"@unstoppabledomains/resolution": "^9.3.3",
"@web3-name-sdk/core": "^0.4.1",
- "ethers": "^5.8.0"
+ "ethers": "^5.8.0",
+ "viem": "^2.23.12"
}
}
diff --git a/packages/name-resolution/tsconfig.json b/packages/name-resolution/tsconfig.json
index d77afeb0b..f32c11b10 100644
--- a/packages/name-resolution/tsconfig.json
+++ b/packages/name-resolution/tsconfig.json
@@ -2,13 +2,13 @@
"extends": "./tsconfig.paths.json",
"compilerOptions": {
"lib": ["ESNext", "dom"],
- "moduleResolution": "bundler",
+ "moduleResolution": "node",
"noUnusedLocals": true,
"noUnusedParameters": true,
"removeComments": true,
"sourceMap": true,
"target": "es5",
- "module": "es2020",
+ "module": "commonjs",
"outDir": "dist",
"resolveJsonModule": true,
"esModuleInterop": true,
From 34c9791417afc9f96976d3a061ca2e792767037e Mon Sep 17 00:00:00 2001
From: candy
Date: Tue, 13 May 2025 10:38:53 +0800
Subject: [PATCH 03/34] feat: code review
---
packages/name-resolution/src/types.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/name-resolution/src/types.ts b/packages/name-resolution/src/types.ts
index b2aa884ba..c60dfa811 100644
--- a/packages/name-resolution/src/types.ts
+++ b/packages/name-resolution/src/types.ts
@@ -152,7 +152,7 @@ export abstract class BaseResolver {
public abstract resolveReverseName(address: string): Promise;
- public abstract isSupportedName(name: string, paymentIdChain?:PaymentIdChain): boolean;
+ public abstract isSupportedName(name: string): boolean;
}
export interface NameResolverOptions {
From 660649626b7500eccb27f145245368f26c97a0d8 Mon Sep 17 00:00:00 2001
From: candy
Date: Tue, 13 May 2025 12:58:44 +0800
Subject: [PATCH 04/34] feat: fix yarn build
---
packages/name-resolution/package.json | 3 +-
packages/name-resolution/src/types.ts | 2 +-
yarn.lock | 174 ++++++--------------------
3 files changed, 37 insertions(+), 142 deletions(-)
diff --git a/packages/name-resolution/package.json b/packages/name-resolution/package.json
index b207a8047..be0be4726 100644
--- a/packages/name-resolution/package.json
+++ b/packages/name-resolution/package.json
@@ -52,7 +52,6 @@
"@solana/web3.js": "^1.98.0",
"@unstoppabledomains/resolution": "^9.3.3",
"@web3-name-sdk/core": "^0.4.1",
- "ethers": "^5.8.0",
- "viem": "^2.23.12"
+ "ethers": "^5.8.0"
}
}
diff --git a/packages/name-resolution/src/types.ts b/packages/name-resolution/src/types.ts
index c60dfa811..3ecb1c2ed 100644
--- a/packages/name-resolution/src/types.ts
+++ b/packages/name-resolution/src/types.ts
@@ -1,5 +1,5 @@
import { ENSOptions } from "./ens/types";
-import { PaymentIdChain, SIDOptions } from "./sid/types";
+import { SIDOptions } from "./sid/types";
export type CoinType =
| "BTC"
diff --git a/yarn.lock b/yarn.lock
index 0393ce210..9d88158d1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23,7 +23,7 @@ __metadata:
languageName: node
linkType: hard
-"@adraffy/ens-normalize@npm:^1.10.0, @adraffy/ens-normalize@npm:^1.10.1":
+"@adraffy/ens-normalize@npm:^1.10.0":
version: 1.11.0
resolution: "@adraffy/ens-normalize@npm:1.11.0"
checksum: 10/abef75f21470ea43dd6071168e092d2d13e38067e349e76186c78838ae174a46c3e18ca50921d05bea6ec3203074147c9e271f8cb6531d1c2c0e146f3199ddcb
@@ -1668,7 +1668,6 @@ __metadata:
url: "npm:^0.11.4"
url-parse: "npm:^1.5.10"
uuid: "npm:^11.1.0"
- viem: "npm:^2.23.12"
vite: "npm:^6.3.1"
vite-plugin-node-polyfills: "npm:0.23.0"
vite-tsconfig-paths: "npm:^5.1.4"
@@ -1789,7 +1788,6 @@ __metadata:
tsup: "npm:^8.4.0"
typescript: "npm:^5.8.3"
typescript-eslint: "npm:8.30.1"
- viem: "npm:^2.23.12"
vitest: "npm:^3.1.1"
languageName: unknown
linkType: soft
@@ -6462,15 +6460,6 @@ __metadata:
languageName: node
linkType: hard
-"@noble/curves@npm:1.8.2, @noble/curves@npm:~1.8.1":
- version: 1.8.2
- resolution: "@noble/curves@npm:1.8.2"
- dependencies:
- "@noble/hashes": "npm:1.7.2"
- checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
- languageName: node
- linkType: hard
-
"@noble/curves@npm:^1.0.0, @noble/curves@npm:^1.1.0, @noble/curves@npm:^1.2.0, @noble/curves@npm:^1.3.0, @noble/curves@npm:^1.4.0, @noble/curves@npm:^1.4.2, @noble/curves@npm:~1.6.0":
version: 1.6.0
resolution: "@noble/curves@npm:1.6.0"
@@ -6480,12 +6469,12 @@ __metadata:
languageName: node
linkType: hard
-"@noble/curves@npm:^1.6.0, @noble/curves@npm:~1.9.0":
- version: 1.9.0
- resolution: "@noble/curves@npm:1.9.0"
+"@noble/curves@npm:~1.8.1":
+ version: 1.8.2
+ resolution: "@noble/curves@npm:1.8.2"
dependencies:
- "@noble/hashes": "npm:1.8.0"
- checksum: 10/f2c5946310722fee23e04ed747f21ce72e0436e38e1fa620d226a8c613262e7d0dbab5341f14caf92936089d01d9e9231964c409cd1ac2a73a075f3cdb1acc41
+ "@noble/hashes": "npm:1.7.2"
+ checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
languageName: node
linkType: hard
@@ -6566,13 +6555,6 @@ __metadata:
languageName: node
linkType: hard
-"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.5.0, @noble/hashes@npm:~1.8.0":
- version: 1.8.0
- resolution: "@noble/hashes@npm:1.8.0"
- checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e
- languageName: node
- linkType: hard
-
"@noble/hashes@npm:^1.6.1, @noble/hashes@npm:~1.7.1":
version: 1.7.1
resolution: "@noble/hashes@npm:1.7.1"
@@ -8434,7 +8416,7 @@ __metadata:
languageName: node
linkType: hard
-"@scure/base@npm:^1.1.6, @scure/base@npm:~1.2.5":
+"@scure/base@npm:^1.1.6":
version: 1.2.5
resolution: "@scure/base@npm:1.2.5"
checksum: 10/9a963a27424a373b62760c9ae7099ae496be67eb5b31205639f529f0dbcb2228a827222a36d22842cc2acda78e300a3430d46d84de5d8d4b791208955360853e
@@ -8470,17 +8452,6 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip32@npm:1.6.2, @scure/bip32@npm:^1.3.1":
- version: 1.6.2
- resolution: "@scure/bip32@npm:1.6.2"
- dependencies:
- "@noble/curves": "npm:~1.8.1"
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.2"
- checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
- languageName: node
- linkType: hard
-
"@scure/bip32@npm:^1.1.5, @scure/bip32@npm:^1.4.0":
version: 1.5.0
resolution: "@scure/bip32@npm:1.5.0"
@@ -8492,14 +8463,14 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip32@npm:^1.5.0":
- version: 1.7.0
- resolution: "@scure/bip32@npm:1.7.0"
+"@scure/bip32@npm:^1.3.1":
+ version: 1.6.2
+ resolution: "@scure/bip32@npm:1.6.2"
dependencies:
- "@noble/curves": "npm:~1.9.0"
- "@noble/hashes": "npm:~1.8.0"
- "@scure/base": "npm:~1.2.5"
- checksum: 10/f90e0c23ab6a31a164856ae9cb9a8cae2886df608c74a6c0c4875095b017e30ffd92f28f73b8c52890d9a89fca86d19f6d60bb1ea7cad64c7987f92ae83509ad
+ "@noble/curves": "npm:~1.8.1"
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.2"
+ checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
languageName: node
linkType: hard
@@ -8523,16 +8494,6 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip39@npm:1.5.4, @scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
- version: 1.5.4
- resolution: "@scure/bip39@npm:1.5.4"
- dependencies:
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.4"
- checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
- languageName: node
- linkType: hard
-
"@scure/bip39@npm:^1.2.0, @scure/bip39@npm:^1.3.0":
version: 1.4.0
resolution: "@scure/bip39@npm:1.4.0"
@@ -8543,13 +8504,13 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip39@npm:^1.4.0":
- version: 1.6.0
- resolution: "@scure/bip39@npm:1.6.0"
+"@scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
+ version: 1.5.4
+ resolution: "@scure/bip39@npm:1.5.4"
dependencies:
- "@noble/hashes": "npm:~1.8.0"
- "@scure/base": "npm:~1.2.5"
- checksum: 10/63e60c40fa1bda2c1b50351546fee6d7b0947cc814aa7a4209dcedd3693b5053302c8fca28292f5f50735e11c613265359acdc019127393dbab17e53489fc449
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.4"
+ checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
languageName: node
linkType: hard
@@ -13231,21 +13192,6 @@ __metadata:
languageName: node
linkType: hard
-"abitype@npm:1.0.8, abitype@npm:^1.0.6":
- version: 1.0.8
- resolution: "abitype@npm:1.0.8"
- peerDependencies:
- typescript: ">=5.0.4"
- zod: ^3 >=3.22.0
- peerDependenciesMeta:
- typescript:
- optional: true
- zod:
- optional: true
- checksum: 10/878e74fbac6a971953649b6216950437aa5834a604e9fa833a5b275a6967cff59857c7e43594ae906387d2fb7cad9370138dec4298eb8814815a3ffb6365902c
- languageName: node
- linkType: hard
-
"abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "abort-controller@npm:3.0.0"
@@ -21530,15 +21476,6 @@ __metadata:
languageName: node
linkType: hard
-"isows@npm:1.0.6":
- version: 1.0.6
- resolution: "isows@npm:1.0.6"
- peerDependencies:
- ws: "*"
- checksum: 10/ab9e85b50bcc3d70aa5ec875aa2746c5daf9321cb376ed4e5434d3c2643c5d62b1f466d93a05cd2ad0ead5297224922748c31707cb4fbd68f5d05d0479dce99c
- languageName: node
- linkType: hard
-
"isstream@npm:~0.1.2":
version: 0.1.2
resolution: "isstream@npm:0.1.2"
@@ -24682,26 +24619,6 @@ __metadata:
languageName: node
linkType: hard
-"ox@npm:0.6.9":
- version: 0.6.9
- resolution: "ox@npm:0.6.9"
- dependencies:
- "@adraffy/ens-normalize": "npm:^1.10.1"
- "@noble/curves": "npm:^1.6.0"
- "@noble/hashes": "npm:^1.5.0"
- "@scure/bip32": "npm:^1.5.0"
- "@scure/bip39": "npm:^1.4.0"
- abitype: "npm:^1.0.6"
- eventemitter3: "npm:5.0.1"
- peerDependencies:
- typescript: ">=5.4.0"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/11ad9076b594dd424cd89d9763d4701e59e7ffc0733973947c82a14255a00a53483712e62fa9bbacd39efd35c6739bddb7728ef2211b47530f22036ab77cde69
- languageName: node
- linkType: hard
-
"p-cancelable@npm:^2.0.0":
version: 2.1.1
resolution: "p-cancelable@npm:2.1.1"
@@ -30613,27 +30530,6 @@ __metadata:
languageName: node
linkType: hard
-"viem@npm:^2.23.12":
- version: 2.29.1
- resolution: "viem@npm:2.29.1"
- dependencies:
- "@noble/curves": "npm:1.8.2"
- "@noble/hashes": "npm:1.7.2"
- "@scure/bip32": "npm:1.6.2"
- "@scure/bip39": "npm:1.5.4"
- abitype: "npm:1.0.8"
- isows: "npm:1.0.6"
- ox: "npm:0.6.9"
- ws: "npm:8.18.1"
- peerDependencies:
- typescript: ">=5.0.4"
- peerDependenciesMeta:
- typescript:
- optional: true
- checksum: 10/2ca6f9148bb309c3f3aae4856a2020103237c2e979010d4f040730e1e6724355395eb22542e8c6608107fe3d4b819f9fc1eb604ea1647ecde2b34ceac6fc5fd1
- languageName: node
- linkType: hard
-
"vite-node@npm:3.1.1":
version: 3.1.1
resolution: "vite-node@npm:3.1.1"
@@ -32175,21 +32071,6 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:8.18.1, ws@npm:^8.18.1":
- version: 8.18.1
- resolution: "ws@npm:8.18.1"
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ">=5.0.2"
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
- languageName: node
- linkType: hard
-
"ws@npm:^3.0.0":
version: 3.3.3
resolution: "ws@npm:3.3.3"
@@ -32216,6 +32097,21 @@ __metadata:
languageName: node
linkType: hard
+"ws@npm:^8.18.1":
+ version: 8.18.1
+ resolution: "ws@npm:8.18.1"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
+ languageName: node
+ linkType: hard
+
"xhr-request-promise@npm:^0.1.2":
version: 0.1.3
resolution: "xhr-request-promise@npm:0.1.3"
From eb9b0059320e38313c14b595992a55d431fb5683 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Wed, 14 May 2025 11:39:32 -0700
Subject: [PATCH 05/34] devop: make necessary changes
---
packages/extension/package.json | 1 -
.../send-transaction/send-contacts-list.vue | 4 +-
.../ethereum/ui/send-transaction/index.vue | 2 +-
.../solana/ui/send-transaction/index.vue | 3 +-
.../src/ui/action/views/swap/index.vue | 4 +-
packages/name-resolution/package.json | 3 +-
packages/name-resolution/src/index.ts | 7 +-
packages/name-resolution/src/sid/index.ts | 15 +-
packages/name-resolution/tests/sid.test.ts | 18 +-
packages/name-resolution/tsconfig.json | 9 +-
yarn.lock | 176 ++++++++++++++----
11 files changed, 179 insertions(+), 63 deletions(-)
diff --git a/packages/extension/package.json b/packages/extension/package.json
index b883b71b7..a2a952328 100644
--- a/packages/extension/package.json
+++ b/packages/extension/package.json
@@ -24,7 +24,6 @@
},
"dependencies": {
"@amplitude/analytics-browser": "^2.14.0",
- "@bonfida/spl-name-service": "^3.0.10",
"@enkryptcom/extension-bridge": "workspace:^",
"@enkryptcom/hw-wallets": "workspace:^",
"@enkryptcom/keyring": "workspace:^",
diff --git a/packages/extension/src/providers/common/ui/send-transaction/send-contacts-list.vue b/packages/extension/src/providers/common/ui/send-transaction/send-contacts-list.vue
index 7800a0c69..fd2fae412 100644
--- a/packages/extension/src/providers/common/ui/send-transaction/send-contacts-list.vue
+++ b/packages/extension/src/providers/common/ui/send-transaction/send-contacts-list.vue
@@ -125,7 +125,9 @@ const isChecked = (address: string) => {
props.network.displayAddress(address)
);
} catch (err) {
- console.error('Error checking if address is checked', err);
+ console.error(
+ 'Error checking if address is checked, probably name resolver',
+ );
return false;
}
};
diff --git a/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue b/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
index b89963f5d..e8ca5a9d7 100644
--- a/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/ethereum/ui/send-transaction/index.vue
@@ -671,7 +671,7 @@ const inputAddressTo = async (text: string) => {
.resolveName(
text,
[props.network.name as CoinType, 'ETH'],
- props.network?.provider as string,
+ props.network.provider as string,
)
.then(resolved => {
if (resolved) {
diff --git a/packages/extension/src/providers/solana/ui/send-transaction/index.vue b/packages/extension/src/providers/solana/ui/send-transaction/index.vue
index 665ec427f..4fc6ab6d0 100644
--- a/packages/extension/src/providers/solana/ui/send-transaction/index.vue
+++ b/packages/extension/src/providers/solana/ui/send-transaction/index.vue
@@ -138,7 +138,6 @@ import { fromBase, toBase, isValidDecimals } from '@enkryptcom/utils';
import { VerifyTransactionParams, SendTransactionDataType } from '../types';
import {
formatFloatingPointValue,
- formatFiatValue,
isNumericPositive,
} from '@/libs/utils/number-formatter';
import { routes as RouterNames } from '@/ui/action/router';
@@ -697,7 +696,7 @@ const inputAddressTo = async (text: string) => {
.resolveName(
text,
[props.network.name as CoinType, 'ETH'],
- props.network?.provider as string,
+ props.network.provider as string,
)
.then(resolved => {
if (resolved) {
diff --git a/packages/extension/src/ui/action/views/swap/index.vue b/packages/extension/src/ui/action/views/swap/index.vue
index eb1e37516..a0ea1c8f3 100644
--- a/packages/extension/src/ui/action/views/swap/index.vue
+++ b/packages/extension/src/ui/action/views/swap/index.vue
@@ -407,7 +407,7 @@ const inputAddress = (text: string) => {
.resolveName(
text,
[props.network.name as CoinType, 'ETH'],
- props.network?.provider as string,
+ props.network.provider as string,
)
.then(resolved => {
if (resolved) {
@@ -777,7 +777,7 @@ const isDisabled = computed(() => {
return true;
if (
BigNumber(fromAmount.value).gt(
- fromBase(fromToken.value!.balance.toString(), fromToken.value.decimals),
+ fromBase(fromToken.value!.balance!.toString(), fromToken.value!.decimals),
)
)
return true;
diff --git a/packages/name-resolution/package.json b/packages/name-resolution/package.json
index be0be4726..74649284e 100644
--- a/packages/name-resolution/package.json
+++ b/packages/name-resolution/package.json
@@ -22,6 +22,7 @@
"node": ">=14.15.0"
},
"devDependencies": {
+ "@bonfida/spl-name-service": "^3.0.10",
"@types/node": "^22.14.1",
"@typescript-eslint/eslint-plugin": "^8.30.1",
"@typescript-eslint/parser": "^8.30.1",
@@ -37,6 +38,7 @@
"tsup": "^8.4.0",
"typescript": "^5.8.3",
"typescript-eslint": "8.30.1",
+ "viem": "^2.29.2",
"vitest": "^3.1.1"
},
"repository": {
@@ -49,7 +51,6 @@
"dependencies": {
"@ensdomains/address-encoder": "^1.1.2",
"@siddomains/sidjs": "0.1.29",
- "@solana/web3.js": "^1.98.0",
"@unstoppabledomains/resolution": "^9.3.3",
"@web3-name-sdk/core": "^0.4.1",
"ethers": "^5.8.0"
diff --git a/packages/name-resolution/src/index.ts b/packages/name-resolution/src/index.ts
index dfb1de661..5f518eada 100644
--- a/packages/name-resolution/src/index.ts
+++ b/packages/name-resolution/src/index.ts
@@ -41,21 +41,22 @@ class NameResolver {
if (name !== null) return name;
}
return null;
- })
+ }),
);
}
public async resolveAddress(
name: string,
coin: CoinType = "ETH",
- paymentIdChain?: string
+ paymentIdChain?: string,
): Promise {
return this.initDone.then(() => {
- if (this.sid.isSupportedName(name)) return this.sid.resolveAddress(name, coin, paymentIdChain);
if (this.rns.isSupportedName(name))
return this.rns.resolveAddress(name, coin);
if (this.ud.isSupportedName(name))
return this.ud.resolveAddress(name, coin);
+ if (this.sid.isSupportedName(name))
+ return this.sid.resolveAddress(name, coin, paymentIdChain);
if (this.ens.isSupportedName(name))
return this.ens.resolveAddress(name, coin);
diff --git a/packages/name-resolution/src/sid/index.ts b/packages/name-resolution/src/sid/index.ts
index 8c4fd5fba..356334566 100644
--- a/packages/name-resolution/src/sid/index.ts
+++ b/packages/name-resolution/src/sid/index.ts
@@ -1,18 +1,23 @@
import { createWeb3Name } from "@web3-name-sdk/core";
import { BaseResolver, CoinType } from "../types";
-import { PAYMENT_ID_CHAINS_MAP, PaymentIdChain, SIDOptions, TIMEOUT_PRESETS } from "./types";
+import {
+ PAYMENT_ID_CHAINS_MAP,
+ PaymentIdChain,
+ SIDOptions,
+ TIMEOUT_PRESETS,
+} from "./types";
import { createSolName } from "@web3-name-sdk/core/solName";
import { createPaymentIdName } from "@web3-name-sdk/core/paymentIdName";
import { isValidPaymentId } from "./utils";
import { getTLD } from "../utils";
// demo: https://sdk-demo-git-main-space-id.vercel.app/
+
const evm_tlds = [
"bnb",
"arb",
"wod",
"mph",
"g",
- "eth",
"btc",
"burger",
"alien",
@@ -57,11 +62,13 @@ class SIDResolver implements BaseResolver {
// The PaymentId only supports getAddress resolution.
public async handlePaymentIdGetAddress(
name: string,
- paymentIdChain?: string
+ paymentIdChain?: string,
): Promise {
return await this.paymentIdNameResolver.getAddress({
name,
- chainId: PAYMENT_ID_CHAINS_MAP[paymentIdChain?.toLowerCase()] || PaymentIdChain.Ethereum,
+ chainId:
+ PAYMENT_ID_CHAINS_MAP[paymentIdChain?.toLowerCase()] ||
+ PaymentIdChain.Ethereum,
});
}
diff --git a/packages/name-resolution/tests/sid.test.ts b/packages/name-resolution/tests/sid.test.ts
index f87825e7e..f7fbed242 100644
--- a/packages/name-resolution/tests/sid.test.ts
+++ b/packages/name-resolution/tests/sid.test.ts
@@ -1,4 +1,4 @@
-import { describe, it, expect } from "vitest"
+import { describe, it, expect } from "vitest";
import SIDResolver from "../src/sid";
describe("SID Name resolving", () => {
@@ -11,7 +11,11 @@ describe("SID Name resolving", () => {
},
});
await resolver.init();
- const address = await resolver.resolveAddress("spaceid.arb");
+ const address = await resolver.resolveAddress(
+ "spaceid.arb",
+ "ETH",
+ "ethereum",
+ );
expect(address).to.be.eq("0xb5932a6B7d50A966AEC6C74C97385412Fb497540");
});
@@ -24,7 +28,7 @@ describe("SID Name resolving", () => {
});
await resolver.init();
const name = await resolver.resolveReverseName(
- "0x1e3157ead0f498d814495d228f6ea4f041a3dc40"
+ "0x1e3157ead0f498d814495d228f6ea4f041a3dc40",
);
expect(name).to.be.eq("melissaa.bnb");
});
@@ -38,10 +42,14 @@ describe("SID Name resolving", () => {
});
await resolver.init();
const name = await resolver.resolveReverseName(
- "0xe5dc07bdcdb8c98850050c7f67de7e164b1ea392"
+ "0xe5dc07bdcdb8c98850050c7f67de7e164b1ea392",
);
expect(name).to.be.eq(null);
- const address = await resolver.resolveAddress("sdfsfsdfsdfsdf.bnb");
+ const address = await resolver.resolveAddress(
+ "sdfsfsdfsdfsdf.bnb",
+ "ETH",
+ "ethereum",
+ );
expect(address).to.be.eq(null);
});
});
diff --git a/packages/name-resolution/tsconfig.json b/packages/name-resolution/tsconfig.json
index f32c11b10..e4512a10f 100644
--- a/packages/name-resolution/tsconfig.json
+++ b/packages/name-resolution/tsconfig.json
@@ -2,20 +2,17 @@
"extends": "./tsconfig.paths.json",
"compilerOptions": {
"lib": ["ESNext", "dom"],
- "moduleResolution": "node",
+ "moduleResolution": "bundler",
"noUnusedLocals": true,
"noUnusedParameters": true,
"removeComments": true,
"sourceMap": true,
"target": "es5",
- "module": "commonjs",
+ "module": "ES2015",
"outDir": "dist",
"resolveJsonModule": true,
"esModuleInterop": true,
- "declaration": true,
- "paths": {
- "@web3-name-sdk/core/*": ["node_modules/@web3-name-sdk/core/dist/*"]
- },
+ "declaration": true
},
"include": ["src/**/*.ts", "tests/**/*.ts"],
"exclude": [
diff --git a/yarn.lock b/yarn.lock
index 9d88158d1..f9a0c3584 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23,7 +23,7 @@ __metadata:
languageName: node
linkType: hard
-"@adraffy/ens-normalize@npm:^1.10.0":
+"@adraffy/ens-normalize@npm:^1.10.0, @adraffy/ens-normalize@npm:^1.10.1":
version: 1.11.0
resolution: "@adraffy/ens-normalize@npm:1.11.0"
checksum: 10/abef75f21470ea43dd6071168e092d2d13e38067e349e76186c78838ae174a46c3e18ca50921d05bea6ec3203074147c9e271f8cb6531d1c2c0e146f3199ddcb
@@ -1569,7 +1569,6 @@ __metadata:
resolution: "@enkryptcom/extension@workspace:packages/extension"
dependencies:
"@amplitude/analytics-browser": "npm:^2.14.0"
- "@bonfida/spl-name-service": "npm:^3.0.10"
"@crxjs/vite-plugin": "npm:^2.0.0-beta.32"
"@enkryptcom/extension-bridge": "workspace:^"
"@enkryptcom/hw-wallets": "workspace:^"
@@ -1767,9 +1766,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "@enkryptcom/name-resolution@workspace:packages/name-resolution"
dependencies:
+ "@bonfida/spl-name-service": "npm:^3.0.10"
"@ensdomains/address-encoder": "npm:^1.1.2"
"@siddomains/sidjs": "npm:0.1.29"
- "@solana/web3.js": "npm:^1.98.0"
"@types/node": "npm:^22.14.1"
"@typescript-eslint/eslint-plugin": "npm:^8.30.1"
"@typescript-eslint/parser": "npm:^8.30.1"
@@ -1788,6 +1787,7 @@ __metadata:
tsup: "npm:^8.4.0"
typescript: "npm:^5.8.3"
typescript-eslint: "npm:8.30.1"
+ viem: "npm:^2.29.2"
vitest: "npm:^3.1.1"
languageName: unknown
linkType: soft
@@ -6460,6 +6460,15 @@ __metadata:
languageName: node
linkType: hard
+"@noble/curves@npm:1.8.2, @noble/curves@npm:~1.8.1":
+ version: 1.8.2
+ resolution: "@noble/curves@npm:1.8.2"
+ dependencies:
+ "@noble/hashes": "npm:1.7.2"
+ checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
+ languageName: node
+ linkType: hard
+
"@noble/curves@npm:^1.0.0, @noble/curves@npm:^1.1.0, @noble/curves@npm:^1.2.0, @noble/curves@npm:^1.3.0, @noble/curves@npm:^1.4.0, @noble/curves@npm:^1.4.2, @noble/curves@npm:~1.6.0":
version: 1.6.0
resolution: "@noble/curves@npm:1.6.0"
@@ -6469,12 +6478,12 @@ __metadata:
languageName: node
linkType: hard
-"@noble/curves@npm:~1.8.1":
- version: 1.8.2
- resolution: "@noble/curves@npm:1.8.2"
+"@noble/curves@npm:^1.6.0, @noble/curves@npm:~1.9.0":
+ version: 1.9.1
+ resolution: "@noble/curves@npm:1.9.1"
dependencies:
- "@noble/hashes": "npm:1.7.2"
- checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46
+ "@noble/hashes": "npm:1.8.0"
+ checksum: 10/5c82ec828ca4a4218b1666ba0ddffde17afd224d0bd5e07b64c2a0c83a3362483387f55c11cfd8db0fc046605394fe4e2c67fe024628a713e864acb541a7d2bb
languageName: node
linkType: hard
@@ -6555,6 +6564,13 @@ __metadata:
languageName: node
linkType: hard
+"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.5.0, @noble/hashes@npm:~1.8.0":
+ version: 1.8.0
+ resolution: "@noble/hashes@npm:1.8.0"
+ checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e
+ languageName: node
+ linkType: hard
+
"@noble/hashes@npm:^1.6.1, @noble/hashes@npm:~1.7.1":
version: 1.7.1
resolution: "@noble/hashes@npm:1.7.1"
@@ -8416,7 +8432,7 @@ __metadata:
languageName: node
linkType: hard
-"@scure/base@npm:^1.1.6":
+"@scure/base@npm:^1.1.6, @scure/base@npm:~1.2.5":
version: 1.2.5
resolution: "@scure/base@npm:1.2.5"
checksum: 10/9a963a27424a373b62760c9ae7099ae496be67eb5b31205639f529f0dbcb2228a827222a36d22842cc2acda78e300a3430d46d84de5d8d4b791208955360853e
@@ -8452,6 +8468,17 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip32@npm:1.6.2, @scure/bip32@npm:^1.3.1":
+ version: 1.6.2
+ resolution: "@scure/bip32@npm:1.6.2"
+ dependencies:
+ "@noble/curves": "npm:~1.8.1"
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.2"
+ checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
+ languageName: node
+ linkType: hard
+
"@scure/bip32@npm:^1.1.5, @scure/bip32@npm:^1.4.0":
version: 1.5.0
resolution: "@scure/bip32@npm:1.5.0"
@@ -8463,14 +8490,14 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip32@npm:^1.3.1":
- version: 1.6.2
- resolution: "@scure/bip32@npm:1.6.2"
+"@scure/bip32@npm:^1.5.0":
+ version: 1.7.0
+ resolution: "@scure/bip32@npm:1.7.0"
dependencies:
- "@noble/curves": "npm:~1.8.1"
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.2"
- checksum: 10/474ee315a8631aa1a7d378b0521b4494e09a231519ec53d879088cb88c8ff644a89b27a02a8bf0b5a9b1c4c0417acc70636ccdb121b800c34594ae53c723f8d7
+ "@noble/curves": "npm:~1.9.0"
+ "@noble/hashes": "npm:~1.8.0"
+ "@scure/base": "npm:~1.2.5"
+ checksum: 10/f90e0c23ab6a31a164856ae9cb9a8cae2886df608c74a6c0c4875095b017e30ffd92f28f73b8c52890d9a89fca86d19f6d60bb1ea7cad64c7987f92ae83509ad
languageName: node
linkType: hard
@@ -8494,6 +8521,16 @@ __metadata:
languageName: node
linkType: hard
+"@scure/bip39@npm:1.5.4, @scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
+ version: 1.5.4
+ resolution: "@scure/bip39@npm:1.5.4"
+ dependencies:
+ "@noble/hashes": "npm:~1.7.1"
+ "@scure/base": "npm:~1.2.4"
+ checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
+ languageName: node
+ linkType: hard
+
"@scure/bip39@npm:^1.2.0, @scure/bip39@npm:^1.3.0":
version: 1.4.0
resolution: "@scure/bip39@npm:1.4.0"
@@ -8504,13 +8541,13 @@ __metadata:
languageName: node
linkType: hard
-"@scure/bip39@npm:^1.2.1, @scure/bip39@npm:^1.5.1":
- version: 1.5.4
- resolution: "@scure/bip39@npm:1.5.4"
+"@scure/bip39@npm:^1.4.0":
+ version: 1.6.0
+ resolution: "@scure/bip39@npm:1.6.0"
dependencies:
- "@noble/hashes": "npm:~1.7.1"
- "@scure/base": "npm:~1.2.4"
- checksum: 10/9f08b433511d7637bc48c51aa411457d5f33da5a85bd03370bf394822b0ea8c007ceb17247a3790c28237303d8fc20c4e7725765940cd47e1365a88319ad0d5c
+ "@noble/hashes": "npm:~1.8.0"
+ "@scure/base": "npm:~1.2.5"
+ checksum: 10/63e60c40fa1bda2c1b50351546fee6d7b0947cc814aa7a4209dcedd3693b5053302c8fca28292f5f50735e11c613265359acdc019127393dbab17e53489fc449
languageName: node
linkType: hard
@@ -13192,6 +13229,21 @@ __metadata:
languageName: node
linkType: hard
+"abitype@npm:1.0.8, abitype@npm:^1.0.6":
+ version: 1.0.8
+ resolution: "abitype@npm:1.0.8"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ zod: ^3 >=3.22.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ checksum: 10/878e74fbac6a971953649b6216950437aa5834a604e9fa833a5b275a6967cff59857c7e43594ae906387d2fb7cad9370138dec4298eb8814815a3ffb6365902c
+ languageName: node
+ linkType: hard
+
"abort-controller@npm:^3.0.0":
version: 3.0.0
resolution: "abort-controller@npm:3.0.0"
@@ -21476,6 +21528,15 @@ __metadata:
languageName: node
linkType: hard
+"isows@npm:1.0.6":
+ version: 1.0.6
+ resolution: "isows@npm:1.0.6"
+ peerDependencies:
+ ws: "*"
+ checksum: 10/ab9e85b50bcc3d70aa5ec875aa2746c5daf9321cb376ed4e5434d3c2643c5d62b1f466d93a05cd2ad0ead5297224922748c31707cb4fbd68f5d05d0479dce99c
+ languageName: node
+ linkType: hard
+
"isstream@npm:~0.1.2":
version: 0.1.2
resolution: "isstream@npm:0.1.2"
@@ -24619,6 +24680,26 @@ __metadata:
languageName: node
linkType: hard
+"ox@npm:0.6.9":
+ version: 0.6.9
+ resolution: "ox@npm:0.6.9"
+ dependencies:
+ "@adraffy/ens-normalize": "npm:^1.10.1"
+ "@noble/curves": "npm:^1.6.0"
+ "@noble/hashes": "npm:^1.5.0"
+ "@scure/bip32": "npm:^1.5.0"
+ "@scure/bip39": "npm:^1.4.0"
+ abitype: "npm:^1.0.6"
+ eventemitter3: "npm:5.0.1"
+ peerDependencies:
+ typescript: ">=5.4.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/11ad9076b594dd424cd89d9763d4701e59e7ffc0733973947c82a14255a00a53483712e62fa9bbacd39efd35c6739bddb7728ef2211b47530f22036ab77cde69
+ languageName: node
+ linkType: hard
+
"p-cancelable@npm:^2.0.0":
version: 2.1.1
resolution: "p-cancelable@npm:2.1.1"
@@ -30530,6 +30611,27 @@ __metadata:
languageName: node
linkType: hard
+"viem@npm:^2.29.2":
+ version: 2.29.2
+ resolution: "viem@npm:2.29.2"
+ dependencies:
+ "@noble/curves": "npm:1.8.2"
+ "@noble/hashes": "npm:1.7.2"
+ "@scure/bip32": "npm:1.6.2"
+ "@scure/bip39": "npm:1.5.4"
+ abitype: "npm:1.0.8"
+ isows: "npm:1.0.6"
+ ox: "npm:0.6.9"
+ ws: "npm:8.18.1"
+ peerDependencies:
+ typescript: ">=5.0.4"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10/deaddf43517beb44d1f17b6229a8c2a323f99533f27319e8176de071549aa9e6247c68ed915fb0f69bb84e2e85e880f17efc4564f7f23adb34c78f90b56c2c9c
+ languageName: node
+ linkType: hard
+
"vite-node@npm:3.1.1":
version: 3.1.1
resolution: "vite-node@npm:3.1.1"
@@ -32071,6 +32173,21 @@ __metadata:
languageName: node
linkType: hard
+"ws@npm:8.18.1, ws@npm:^8.18.1":
+ version: 8.18.1
+ resolution: "ws@npm:8.18.1"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
+ languageName: node
+ linkType: hard
+
"ws@npm:^3.0.0":
version: 3.3.3
resolution: "ws@npm:3.3.3"
@@ -32097,21 +32214,6 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^8.18.1":
- version: 8.18.1
- resolution: "ws@npm:8.18.1"
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ">=5.0.2"
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b
- languageName: node
- linkType: hard
-
"xhr-request-promise@npm:^0.1.2":
version: 0.1.3
resolution: "xhr-request-promise@npm:0.1.3"
From cd4677a1a12c3db64f8ac49e20ea655c78020706 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Wed, 21 May 2025 15:39:10 -0700
Subject: [PATCH 06/34] devop: to address field
---
.../ethereum/ui/eth-verify-transaction.vue | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
index 6ae31cb65..de1c97ada 100644
--- a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
+++ b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
@@ -77,6 +77,18 @@
+
+
+
![]()
+
+
+
+ {{ decodedTx?.toAddress ?? '~' }}
+
+
+
+
+
({
address: '',
} as EnkryptAccount);
const identicon = ref('');
+const identiconTo = ref(network.value.identicon(''));
const windowPromise = WindowPromiseHandler(3);
const Options = ref({
domain: '',
@@ -216,6 +229,9 @@ onBeforeMount(async () => {
Request.value.params![0] as EthereumTransaction,
network.value as EvmNetwork,
).then(decoded => {
+ identiconTo.value = network.value.identicon(
+ decoded.toAddress!.toLowerCase(),
+ );
if (decoded.decoded && decoded.dataHex.startsWith(TokenSigs.approve)) {
isApproval.value = true;
if (
From fe4ed5b881c5562d60547a58e50bba70e3f04150 Mon Sep 17 00:00:00 2001
From: olgakup <16910687+olgakup@users.noreply.github.com>
Date: Wed, 21 May 2025 16:12:16 -0700
Subject: [PATCH 07/34] feat: add label to tx confirmation
---
.../common/ui/styles/verify-transaction.less | 17 ++++++++++++-----
.../ethereum/ui/eth-verify-transaction.vue | 9 +++++++--
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/packages/extension/src/providers/common/ui/styles/verify-transaction.less b/packages/extension/src/providers/common/ui/styles/verify-transaction.less
index 28904b599..d2970606d 100644
--- a/packages/extension/src/providers/common/ui/styles/verify-transaction.less
+++ b/packages/extension/src/providers/common/ui/styles/verify-transaction.less
@@ -7,6 +7,13 @@
&__logo {
margin-bottom: 8px;
}
+ &__label {
+ font-size: 12px;
+ line-height: 16px;
+ letter-spacing: 0.5px;
+ color: @grayPrimary;
+ margin: 0 0 4px 44px;
+ }
&__network {
display: flex;
justify-content: flex-start;
@@ -167,11 +174,11 @@
&-to {
font-style: normal;
- font-weight: 400;
- font-size: 14px;
- line-height: 20px;
- letter-spacing: 0.25px;
- color: @primaryLabel;
+ font-weight: 400 !important;
+ font-size: 16px !important;
+ line-height: 20px !important;
+ letter-spacing: 0.5px;
+ color: @black !important;
word-break: break-all;
}
}
diff --git a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
index de1c97ada..75438afc2 100644
--- a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
+++ b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
@@ -11,7 +11,9 @@
Verify transaction
+
+
From
@@ -32,9 +34,10 @@
+
-
![]()
+
{{ Options.domain }}
@@ -77,12 +80,14 @@
+
+
To
-
+
{{ decodedTx?.toAddress ?? '~' }}
From 6cab721c5d9481f78ef0a02f50bee402eb6f2db5 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Thu, 22 May 2025 11:58:27 -0700
Subject: [PATCH 08/34] fix: ledger package issue
---
packages/hw-wallets/package.json | 4 ++--
yarn.lock | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index ba52c0f08..f9caa19c5 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.4",
+ "version": "0.0.5",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
@@ -57,7 +57,7 @@
"@ledgerhq/hw-app-solana": "^7.4.0",
"@ledgerhq/hw-transport": "^6.31.4",
"@ledgerhq/hw-transport-webusb": "^6.29.4",
- "@ledgerhq/live-common": "^34.20.0",
+ "@ledgerhq/live-common": "34.20.0",
"@polkadot/types": "^15.9.3",
"@polkadot/util": "^13.4.4",
"@trezor/connect": "^9.5.4",
diff --git a/yarn.lock b/yarn.lock
index abab32142..5b74e3338 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1681,7 +1681,7 @@ __metadata:
"@ledgerhq/hw-app-solana": "npm:^7.4.0"
"@ledgerhq/hw-transport": "npm:^6.31.4"
"@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
- "@ledgerhq/live-common": "npm:^34.20.0"
+ "@ledgerhq/live-common": "npm:34.20.0"
"@polkadot/types": "npm:^15.9.3"
"@polkadot/util": "npm:^13.4.4"
"@trezor/connect": "npm:^9.5.4"
@@ -5450,7 +5450,7 @@ __metadata:
languageName: node
linkType: hard
-"@ledgerhq/live-common@npm:^34.20.0":
+"@ledgerhq/live-common@npm:34.20.0":
version: 34.20.0
resolution: "@ledgerhq/live-common@npm:34.20.0"
dependencies:
From a375ae9a8a2602c66cfb8dba09e15e24b189e96a Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Thu, 22 May 2025 14:30:52 -0700
Subject: [PATCH 09/34] devop: switch trezor based on platform
---
packages/hw-wallets/package.json | 3 +-
.../hw-wallets/src/trezor/bitcoin/index.ts | 21 +++++--------
.../hw-wallets/src/trezor/ethereum/index.ts | 31 +++++++------------
.../hw-wallets/src/trezor/solana/index.ts | 25 ++++++---------
.../hw-wallets/src/trezor/trezorConnect.ts | 30 ++++++++++++++++++
5 files changed, 60 insertions(+), 50 deletions(-)
create mode 100644 packages/hw-wallets/src/trezor/trezorConnect.ts
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index f9caa19c5..930c6df54 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.5",
+ "version": "0.0.6",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
@@ -22,6 +22,7 @@
"node": ">=14.15.0"
},
"devDependencies": {
+ "@trezor/connect-web": "^9.5.5",
"@types/node": "^22.15.17",
"@typescript-eslint/eslint-plugin": "^8.32.1",
"@typescript-eslint/parser": "^8.32.1",
diff --git a/packages/hw-wallets/src/trezor/bitcoin/index.ts b/packages/hw-wallets/src/trezor/bitcoin/index.ts
index a8f1d69e3..dd6fd92eb 100644
--- a/packages/hw-wallets/src/trezor/bitcoin/index.ts
+++ b/packages/hw-wallets/src/trezor/bitcoin/index.ts
@@ -1,8 +1,8 @@
-import TrezorConnect from "@trezor/connect-webextension";
import { getHDPath } from "@trezor/connect/lib/utils/pathUtils";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import { bufferToHex } from "@enkryptcom/utils";
+import type { TrezorConnect } from "@trezor/connect-web";
import {
AddressResponse,
BitcoinSignMessage,
@@ -13,10 +13,11 @@ import {
SignTransactionRequest,
} from "../../types";
import { supportedPaths, TrezorNetworkConfigs } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorEthereum implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record
;
constructor(network: NetworkNames) {
@@ -25,15 +26,7 @@ class TrezorEthereum implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
@@ -42,7 +35,7 @@ class TrezorEthereum implements HWWalletProvider {
return Promise.reject(new Error("trezor-bitcoin: Invalid network name"));
if (!this.HDNodes[options.pathType.basePath]) {
- const rootPub = await TrezorConnect.getPublicKey({
+ const rootPub = await this.TrezorConnect.getPublicKey({
path: options.pathType.basePath,
showOnTrezor: options.confirmAddress,
} as any);
@@ -82,7 +75,7 @@ class TrezorEthereum implements HWWalletProvider {
if (options.type === "bip322-simple") {
throw new Error("trezor-bitcoin: bip322 signing not supported");
}
- const result = await TrezorConnect.signMessage({
+ const result = await this.TrezorConnect.signMessage({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
message: options.message.toString("hex"),
hex: true,
@@ -97,7 +90,7 @@ class TrezorEthereum implements HWWalletProvider {
const addressN = getHDPath(
options.pathType.path.replace(`{index}`, options.pathIndex),
);
- return TrezorConnect.signTransaction({
+ return this.TrezorConnect.signTransaction({
coin: TrezorNetworkConfigs[this.network].symbol,
inputs: transactionOptions.psbtTx.txInputs.map((tx) => ({
address_n: addressN,
diff --git a/packages/hw-wallets/src/trezor/ethereum/index.ts b/packages/hw-wallets/src/trezor/ethereum/index.ts
index 4b2152f36..dc4ee79fe 100644
--- a/packages/hw-wallets/src/trezor/ethereum/index.ts
+++ b/packages/hw-wallets/src/trezor/ethereum/index.ts
@@ -1,9 +1,9 @@
-import TrezorConnect from "@trezor/connect-webextension";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import { bigIntToHex, bufferToHex, hexToBuffer } from "@enkryptcom/utils";
import { publicToAddress, toRpcSig } from "@ethereumjs/util";
import { FeeMarketEIP1559Transaction, LegacyTransaction } from "@ethereumjs/tx";
+import type { TrezorConnect } from "@trezor/connect-web";
import {
AddressResponse,
getAddressRequest,
@@ -13,10 +13,11 @@ import {
SignTransactionRequest,
} from "../../types";
import { supportedPaths } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorEthereum implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record;
constructor(network: NetworkNames) {
@@ -25,15 +26,7 @@ class TrezorEthereum implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
@@ -42,14 +35,14 @@ class TrezorEthereum implements HWWalletProvider {
return Promise.reject(new Error("trezor-ethereum: Invalid network name"));
if (!this.HDNodes[options.pathType.basePath]) {
- const rootPub = await TrezorConnect.ethereumGetPublicKey({
+ const rootPub = await this.TrezorConnect.ethereumGetPublicKey({
path: options.pathType.basePath,
showOnTrezor: options.confirmAddress,
});
if (!rootPub.payload) {
throw new Error("popup failed to open");
}
- if (!rootPub.success) throw new Error(rootPub.payload.error as string);
+ if (!rootPub.success) throw new Error((rootPub.payload as any).error);
const hdKey = new HDKey();
hdKey.publicKey = Buffer.from(rootPub.payload.publicKey, "hex");
@@ -78,12 +71,12 @@ class TrezorEthereum implements HWWalletProvider {
}
async signPersonalMessage(options: SignMessageRequest): Promise {
- const result = await TrezorConnect.ethereumSignMessage({
+ const result = await this.TrezorConnect.ethereumSignMessage({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
message: options.message.toString("hex"),
hex: true,
});
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
return bufferToHex(hexToBuffer(result.payload.signature));
}
@@ -100,14 +93,14 @@ class TrezorEthereum implements HWWalletProvider {
data: bufferToHex(tx.data),
};
if ((options.transaction as LegacyTransaction).gasPrice) {
- return TrezorConnect.ethereumSignTransaction({
+ return this.TrezorConnect.ethereumSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
transaction: {
...txObject,
gasPrice: bigIntToHex(tx.gasPrice),
},
}).then((result) => {
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
const rv = BigInt(parseInt(result.payload.v, 16));
const cv = tx.common.chainId() * 2n + 35n;
return toRpcSig(
@@ -119,7 +112,7 @@ class TrezorEthereum implements HWWalletProvider {
}
tx = options.transaction as FeeMarketEIP1559Transaction;
- return TrezorConnect.ethereumSignTransaction({
+ return this.TrezorConnect.ethereumSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
transaction: {
...txObject,
@@ -127,7 +120,7 @@ class TrezorEthereum implements HWWalletProvider {
maxPriorityFeePerGas: bigIntToHex(tx.maxPriorityFeePerGas),
},
}).then((result) => {
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
return toRpcSig(
BigInt(result.payload.v),
hexToBuffer(result.payload.r),
diff --git a/packages/hw-wallets/src/trezor/solana/index.ts b/packages/hw-wallets/src/trezor/solana/index.ts
index bfa048568..9a13e7c0c 100644
--- a/packages/hw-wallets/src/trezor/solana/index.ts
+++ b/packages/hw-wallets/src/trezor/solana/index.ts
@@ -1,4 +1,4 @@
-import TrezorConnect from "@trezor/connect-webextension";
+import type { TrezorConnect } from "@trezor/connect-web";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import base58 from "bs58";
@@ -12,10 +12,11 @@ import {
SolSignTransaction,
} from "../../types";
import { supportedPaths } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorSolana implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record;
constructor(network: NetworkNames) {
@@ -24,28 +25,20 @@ class TrezorSolana implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
async getAddress(options: getAddressRequest): Promise {
if (!supportedPaths[this.network])
return Promise.reject(new Error("trezor-bitcoin: Invalid network name"));
- const res = await TrezorConnect.solanaGetAddress({
+ const res = await this.TrezorConnect.solanaGetAddress({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
showOnTrezor: options.confirmAddress,
});
return {
- address: bufferToHex(base58.decode(res.payload.address)),
- publicKey: bufferToHex(base58.decode(res.payload.address)),
+ address: bufferToHex(base58.decode((res.payload as any).address)),
+ publicKey: bufferToHex(base58.decode((res.payload as any).address)),
};
}
@@ -66,12 +59,12 @@ class TrezorSolana implements HWWalletProvider {
}
async signTransaction(options: SignTransactionRequest): Promise {
- return TrezorConnect.solanaSignTransaction({
+ return this.TrezorConnect.solanaSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
serializedTx: (options.transaction as SolSignTransaction).solTx.toString(
"hex",
),
- }).then((result) => result.payload.signature);
+ }).then((result) => (result.payload as any).signature);
}
static getSupportedNetworks(): NetworkNames[] {
diff --git a/packages/hw-wallets/src/trezor/trezorConnect.ts b/packages/hw-wallets/src/trezor/trezorConnect.ts
new file mode 100644
index 000000000..8c78e0d44
--- /dev/null
+++ b/packages/hw-wallets/src/trezor/trezorConnect.ts
@@ -0,0 +1,30 @@
+import type { TrezorConnect as TrezorConnectType } from "@trezor/connect-web";
+
+const getTrezorConnect = async () => {
+ if (chrome.runtime) {
+ const TrezorConnect = (await import("@trezor/connect-webextension"))
+ .default;
+ await TrezorConnect.init({
+ manifest: {
+ email: "info@enkrypt.com",
+ appUrl: "https://www.enkrypt.com",
+ },
+ transports: ["BridgeTransport", "WebUsbTransport"],
+ connectSrc: "https://connect.trezor.io/9/",
+ _extendWebextensionLifetime: true,
+ });
+ return TrezorConnect as TrezorConnectType;
+ } else {
+ const TrezorConnect = (await import("@trezor/connect-web")).default;
+ await TrezorConnect.init({
+ lazyLoad: true,
+ manifest: {
+ email: "info@enkrypt.com",
+ appUrl: "http://www.myetherwallet.com",
+ },
+ });
+ return TrezorConnect as TrezorConnectType;
+ }
+};
+
+export default getTrezorConnect;
From 274f1572016771440743d7c56a118babc93386aa Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Fri, 23 May 2025 11:16:57 -0700
Subject: [PATCH 10/34] devop: update yarn
---
yarn.lock | 297 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 297 insertions(+)
diff --git a/yarn.lock b/yarn.lock
index 5b74e3338..d3ffab46b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1685,6 +1685,7 @@ __metadata:
"@polkadot/types": "npm:^15.9.3"
"@polkadot/util": "npm:^13.4.4"
"@trezor/connect": "npm:^9.5.4"
+ "@trezor/connect-web": "npm:^9.5.5"
"@trezor/connect-webextension": "npm:^9.5.4"
"@types/node": "npm:^22.15.17"
"@typescript-eslint/eslint-plugin": "npm:^8.32.1"
@@ -10571,6 +10572,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/analytics@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/analytics@npm:1.3.5"
+ dependencies:
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/ba6afa5f94c337b49ea0a3bc71d1546885b8241cab254dce2e38fd0f2bf9c733de45c3445112abbbe5cc5055f438edb1bda96720c83df234bac273c1c21427ce
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link-types@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/blockchain-link-types@npm:1.3.4"
@@ -10583,6 +10596,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link-types@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/blockchain-link-types@npm:1.3.5"
+ dependencies:
+ "@trezor/utxo-lib": "npm:2.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/7500ae9ef574a16b1444054ce8db1c4e1fd9e5fd96c3408ed1ad5c06fa369114ef53444d2d1a5f3000660dce9eefb995dbc5e99ccf7a743023d90d960ef88d97
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link-utils@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/blockchain-link-utils@npm:1.3.4"
@@ -10597,6 +10621,20 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link-utils@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/blockchain-link-utils@npm:1.3.5"
+ dependencies:
+ "@mobily/ts-belt": "npm:^3.13.1"
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ xrpl: "npm:^4.2.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/9c2cf46408c00f2baceb026d08d5a2a1ead8377fe2168528eb828ddd82f1831f61a79b1150f7029bcdd166c7dd1d745d946136a03c1b7c09d4720003b55a89cd
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link@npm:2.4.4":
version: 2.4.4
resolution: "@trezor/blockchain-link@npm:2.4.4"
@@ -10621,6 +10659,30 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link@npm:2.4.5":
+ version: 2.4.5
+ resolution: "@trezor/blockchain-link@npm:2.4.5"
+ dependencies:
+ "@solana-program/stake": "npm:^0.2.0"
+ "@solana-program/token": "npm:^0.5.1"
+ "@solana-program/token-2022": "npm:^0.4.0"
+ "@solana/kit": "npm:^2.0.0"
+ "@trezor/blockchain-link-types": "npm:1.3.5"
+ "@trezor/blockchain-link-utils": "npm:1.3.5"
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ "@trezor/utxo-lib": "npm:2.3.5"
+ "@trezor/websocket-client": "npm:1.1.5"
+ "@types/web": "npm:^0.0.197"
+ events: "npm:^3.3.0"
+ socks-proxy-agent: "npm:8.0.5"
+ xrpl: "npm:^4.2.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/25b67d451eeea07b09b48b6a3d3534eb00dad3bc0856d8d4884650d26bb967707226fc2fb22658e73835c5b99831e67c2c0f13062e628e1005a757596c6ba362
+ languageName: node
+ linkType: hard
+
"@trezor/connect-analytics@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/connect-analytics@npm:1.3.2"
@@ -10632,6 +10694,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-analytics@npm:1.3.3":
+ version: 1.3.3
+ resolution: "@trezor/connect-analytics@npm:1.3.3"
+ dependencies:
+ "@trezor/analytics": "npm:1.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/502fcca423c25972118ca14753c37403c4e269cf0f8495715754a216f001f2761c30e3a2fb808de2201e3163fa487f2848078ce4cae77b2674da2506a4a3354a
+ languageName: node
+ linkType: hard
+
"@trezor/connect-common@npm:0.3.4":
version: 0.3.4
resolution: "@trezor/connect-common@npm:0.3.4"
@@ -10644,6 +10717,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-common@npm:0.3.5":
+ version: 0.3.5
+ resolution: "@trezor/connect-common@npm:0.3.5"
+ dependencies:
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/4f4de25f54d18fb0dc924f171ac67495a3cde5c32eeb2026882f0c3d147bb6710b4d79598cb00559179993cb016b3016a4dd2ea93ed51b275559a8c09dc2fd53
+ languageName: node
+ linkType: hard
+
"@trezor/connect-web@npm:9.5.4":
version: 9.5.4
resolution: "@trezor/connect-web@npm:9.5.4"
@@ -10657,6 +10742,19 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-web@npm:^9.5.5":
+ version: 9.5.5
+ resolution: "@trezor/connect-web@npm:9.5.5"
+ dependencies:
+ "@trezor/connect": "npm:9.5.5"
+ "@trezor/connect-common": "npm:0.3.5"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/4bf59d3e9b50879f090d74554d6dbdc380c3e8a2b13869aded694fc79068d98490dda95dbf4064cd93b31c6b818affd529c0b55d69c44693a626de1479a1cb60
+ languageName: node
+ linkType: hard
+
"@trezor/connect-webextension@npm:^9.5.4":
version: 9.5.4
resolution: "@trezor/connect-webextension@npm:9.5.4"
@@ -10710,6 +10808,45 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect@npm:9.5.5":
+ version: 9.5.5
+ resolution: "@trezor/connect@npm:9.5.5"
+ dependencies:
+ "@ethereumjs/common": "npm:^4.4.0"
+ "@ethereumjs/tx": "npm:^5.4.0"
+ "@fivebinaries/coin-selection": "npm:3.0.0"
+ "@mobily/ts-belt": "npm:^3.13.1"
+ "@noble/hashes": "npm:^1.6.1"
+ "@scure/bip39": "npm:^1.5.1"
+ "@solana-program/compute-budget": "npm:^0.7.0"
+ "@solana-program/system": "npm:^0.7.0"
+ "@solana-program/token": "npm:^0.5.1"
+ "@solana-program/token-2022": "npm:^0.4.0"
+ "@solana/kit": "npm:^2.0.0"
+ "@trezor/blockchain-link": "npm:2.4.5"
+ "@trezor/blockchain-link-types": "npm:1.3.5"
+ "@trezor/blockchain-link-utils": "npm:1.3.5"
+ "@trezor/connect-analytics": "npm:1.3.3"
+ "@trezor/connect-common": "npm:0.3.5"
+ "@trezor/crypto-utils": "npm:1.1.3"
+ "@trezor/device-utils": "npm:1.0.3"
+ "@trezor/protobuf": "npm:1.3.5"
+ "@trezor/protocol": "npm:1.2.6"
+ "@trezor/schema-utils": "npm:1.3.3"
+ "@trezor/transport": "npm:1.4.5"
+ "@trezor/type-utils": "npm:1.1.6"
+ "@trezor/utils": "npm:9.3.5"
+ "@trezor/utxo-lib": "npm:2.3.5"
+ blakejs: "npm:^1.2.1"
+ bs58: "npm:^6.0.0"
+ bs58check: "npm:^4.0.0"
+ cross-fetch: "npm:^4.0.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/6039c794b45155fc09d36aa2d97bdb58924d8d909cf1c5f16361ca9c24692aeac1eabd8161af1fa5ec735e711db03128d551bac5be863651c00c5a8c23229741
+ languageName: node
+ linkType: hard
+
"@trezor/crypto-utils@npm:1.1.2":
version: 1.1.2
resolution: "@trezor/crypto-utils@npm:1.1.2"
@@ -10719,6 +10856,15 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/crypto-utils@npm:1.1.3":
+ version: 1.1.3
+ resolution: "@trezor/crypto-utils@npm:1.1.3"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/fae3feb8c78983a36e92ac7855effebc9928e8a6b49ece921a8d387e89a37aad3c0c0016c8732a66d376f3f1b97126de23e84e61fbe190e662afa0c77bb1a2e7
+ languageName: node
+ linkType: hard
+
"@trezor/device-utils@npm:1.0.2":
version: 1.0.2
resolution: "@trezor/device-utils@npm:1.0.2"
@@ -10726,6 +10872,13 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/device-utils@npm:1.0.3":
+ version: 1.0.3
+ resolution: "@trezor/device-utils@npm:1.0.3"
+ checksum: 10/c84cfe07ec3fb48f4f243ba251a869f16ece9d43171cca5887969f782b3504cfdadb77eac03cb42c3755b63003986c38b4dd54ef8b3b35cb53365a1ff5f05d28
+ languageName: node
+ linkType: hard
+
"@trezor/env-utils@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/env-utils@npm:1.3.2"
@@ -10768,6 +10921,27 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/env-utils@npm:1.3.4":
+ version: 1.3.4
+ resolution: "@trezor/env-utils@npm:1.3.4"
+ dependencies:
+ ua-parser-js: "npm:^2.0.3"
+ peerDependencies:
+ expo-constants: "*"
+ expo-localization: "*"
+ react-native: "*"
+ tslib: ^2.6.2
+ peerDependenciesMeta:
+ expo-constants:
+ optional: true
+ expo-localization:
+ optional: true
+ react-native:
+ optional: true
+ checksum: 10/7da0e8f00681f91bf5ff694ab43e143486a62a935b7a7b968221099cc0ed6e827e8c02516838e753cd08bcc95823f9af808c772147075e185e07543d69938d1f
+ languageName: node
+ linkType: hard
+
"@trezor/protobuf@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/protobuf@npm:1.3.4"
@@ -10781,6 +10955,19 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/protobuf@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/protobuf@npm:1.3.5"
+ dependencies:
+ "@trezor/schema-utils": "npm:1.3.3"
+ long: "npm:5.2.5"
+ protobufjs: "npm:7.4.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/ece8986ece8330588ad2a2277d01e851b19daa378c3529e37af334d790299ba0043ce708143797dd71f2ebb2ac9de6d96422b333e25d65dd3aca1e881959cb44
+ languageName: node
+ linkType: hard
+
"@trezor/protocol@npm:1.2.5":
version: 1.2.5
resolution: "@trezor/protocol@npm:1.2.5"
@@ -10790,6 +10977,15 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/protocol@npm:1.2.6":
+ version: 1.2.6
+ resolution: "@trezor/protocol@npm:1.2.6"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/7f11f0d37e5944c3b61a26ac2cb3baf047f6a769a46c649dbc2dd7312351e0dfbaddbf78618522166a667501b0fc400da76fdc1f54579b2e2076415ab11cbe68
+ languageName: node
+ linkType: hard
+
"@trezor/schema-utils@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/schema-utils@npm:1.3.2"
@@ -10802,6 +10998,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/schema-utils@npm:1.3.3":
+ version: 1.3.3
+ resolution: "@trezor/schema-utils@npm:1.3.3"
+ dependencies:
+ "@sinclair/typebox": "npm:^0.33.7"
+ ts-mixer: "npm:^6.0.3"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/e0b266f888eef84961bbdbd52f4a02f4e0541e98b823e8fa7af63425106ac5eb16bc5cba6c8ec8ef9caf212b2564856a8824df9c1d8beda1548378f4c2f4a4e4
+ languageName: node
+ linkType: hard
+
"@trezor/transport@npm:1.4.4":
version: 1.4.4
resolution: "@trezor/transport@npm:1.4.4"
@@ -10817,6 +11025,21 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/transport@npm:1.4.5":
+ version: 1.4.5
+ resolution: "@trezor/transport@npm:1.4.5"
+ dependencies:
+ "@trezor/protobuf": "npm:1.3.5"
+ "@trezor/protocol": "npm:1.2.6"
+ "@trezor/utils": "npm:9.3.5"
+ cross-fetch: "npm:^4.0.0"
+ usb: "npm:^2.15.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/6ae39f0d250a603c97a6bab8db66cc7fd4417917296c2097ea13308436ed3b2949d2a21f050e7f7941b48d2006b7f87af29fb5e75d736a8b635175b32c9f77c5
+ languageName: node
+ linkType: hard
+
"@trezor/type-utils@npm:1.1.5":
version: 1.1.5
resolution: "@trezor/type-utils@npm:1.1.5"
@@ -10824,6 +11047,13 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/type-utils@npm:1.1.6":
+ version: 1.1.6
+ resolution: "@trezor/type-utils@npm:1.1.6"
+ checksum: 10/07523a85c6b7aebc507e5d4b719aa585d925467238f661bb516a0e3dc6cc34064679069a2ca0b36d32a1c52b4ef370d475a771b812970d0f2c6972806aca302b
+ languageName: node
+ linkType: hard
+
"@trezor/utils@npm:9.3.3":
version: 9.3.3
resolution: "@trezor/utils@npm:9.3.3"
@@ -10846,6 +11076,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/utils@npm:9.3.5":
+ version: 9.3.5
+ resolution: "@trezor/utils@npm:9.3.5"
+ dependencies:
+ bignumber.js: "npm:^9.1.2"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/bf4b7b04409c1cd2f9ff02c691db959a78a17b1e2a974112400dec96151290f8b149c77eb9b581544d511478808695dd51d621d0a37cbc708601733eef29c4fc
+ languageName: node
+ linkType: hard
+
"@trezor/utxo-lib@npm:2.3.4":
version: 2.3.4
resolution: "@trezor/utxo-lib@npm:2.3.4"
@@ -10873,6 +11114,33 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/utxo-lib@npm:2.3.5":
+ version: 2.3.5
+ resolution: "@trezor/utxo-lib@npm:2.3.5"
+ dependencies:
+ "@trezor/utils": "npm:9.3.5"
+ bchaddrjs: "npm:^0.5.2"
+ bech32: "npm:^2.0.0"
+ bip66: "npm:^2.0.0"
+ bitcoin-ops: "npm:^1.4.1"
+ blake-hash: "npm:^2.0.0"
+ blakejs: "npm:^1.2.1"
+ bn.js: "npm:^5.2.1"
+ bs58: "npm:^6.0.0"
+ bs58check: "npm:^4.0.0"
+ create-hmac: "npm:^1.1.7"
+ int64-buffer: "npm:^1.1.0"
+ pushdata-bitcoin: "npm:^1.0.1"
+ tiny-secp256k1: "npm:^1.1.6"
+ typeforce: "npm:^1.18.0"
+ varuint-bitcoin: "npm:2.0.0"
+ wif: "npm:^5.0.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/356dbabc224c777b06e8cdfbfb9aa417ae3ce70b94f92e9e209b273377b74b2b61fddbc6a545fe49c614ad89fd4b647dd42ffa96daaa64c7df05e5df00a114d4
+ languageName: node
+ linkType: hard
+
"@trezor/websocket-client@npm:1.1.4":
version: 1.1.4
resolution: "@trezor/websocket-client@npm:1.1.4"
@@ -10885,6 +11153,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/websocket-client@npm:1.1.5":
+ version: 1.1.5
+ resolution: "@trezor/websocket-client@npm:1.1.5"
+ dependencies:
+ "@trezor/utils": "npm:9.3.5"
+ ws: "npm:^8.18.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/e446e96e0b93b907b8713dd095819c4457c093388ab824735cd8689f657a5f19ff081d6a2761b6f8e374deac5e15bb6074059b023b816e08226be81ee35ae0cf
+ languageName: node
+ linkType: hard
+
"@tronweb3/google-protobuf@npm:^3.21.2":
version: 3.21.2
resolution: "@tronweb3/google-protobuf@npm:3.21.2"
@@ -32972,6 +33252,23 @@ __metadata:
languageName: node
linkType: hard
+"xrpl@npm:^4.2.5":
+ version: 4.2.5
+ resolution: "xrpl@npm:4.2.5"
+ dependencies:
+ "@scure/bip32": "npm:^1.3.1"
+ "@scure/bip39": "npm:^1.2.1"
+ "@xrplf/isomorphic": "npm:^1.0.1"
+ "@xrplf/secret-numbers": "npm:^1.0.0"
+ bignumber.js: "npm:^9.0.0"
+ eventemitter3: "npm:^5.0.1"
+ ripple-address-codec: "npm:^5.0.0"
+ ripple-binary-codec: "npm:^2.3.0"
+ ripple-keypairs: "npm:^2.0.0"
+ checksum: 10/34c4c39ebf96ec1237c2e756b4d8c39f4a8972c1dd3cbac2acb302c24b905ff4089c0a7342107e298a3dbbd2c3e71162fc1ee8064d27ea0fb1b3ca5ce90ad21d
+ languageName: node
+ linkType: hard
+
"xstate@npm:4.38.3":
version: 4.38.3
resolution: "xstate@npm:4.38.3"
From 39638a51863ad2c93655ecb15ff3fd21d0206466 Mon Sep 17 00:00:00 2001
From: Gamaliel Padillo
Date: Fri, 23 May 2025 11:50:28 -0700
Subject: [PATCH 11/34] fix: currency filter when over thousands or below a
certain value
---
.../extension/src/ui/action/utils/filters.ts | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/packages/extension/src/ui/action/utils/filters.ts b/packages/extension/src/ui/action/utils/filters.ts
index f4551b72a..17f3c514b 100644
--- a/packages/extension/src/ui/action/utils/filters.ts
+++ b/packages/extension/src/ui/action/utils/filters.ts
@@ -21,21 +21,19 @@ export const replaceWithEllipsis = (
};
export const parseCurrency = (value: string | number): string => {
- const bnValue = BigNumber(value);
- const parsedValue = bnValue.isNaN() || bnValue.isZero() || value === undefined ? "0" : bnValue.toString().replace(/,/g, '');
+ const raw = value.toString().replace(/[,<]/g, '');
const store = useCurrencyStore();
const currency = store.currentSelectedCurrency;
- const currencyCode =
- LANG_INFO[currency as keyof typeof LANG_INFO].locale || 'en-US';
- const findRate = store.currencyList.find(c => c.fiat_currency === currency);
- const rate = findRate || { exchange_rate: 1 };
+ const locale = LANG_INFO[currency as keyof typeof LANG_INFO]?.locale || 'en-US';
+ const exchangeRate = store.currencyList.find(c => c.fiat_currency === currency)?.exchange_rate || 1;
- return new Intl.NumberFormat(currencyCode, {
+ const amount = new BigNumber(raw);
+ const finalValue = amount.isNaN() || amount.isZero() ? 0 : amount.times(exchangeRate).toNumber();
+
+ return new Intl.NumberFormat(locale, {
style: 'currency',
currency: currency,
- }).format(
- parseFloat(BigNumber(parsedValue).times(rate.exchange_rate).toString()),
- );
+ }).format(finalValue);
};
export const truncate = (value: string, length: number): string => {
From 37ee211f5392e9a86cb05f422fd98ccb3d01653d Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Fri, 23 May 2025 13:14:53 -0700
Subject: [PATCH 12/34] devop: fix ellipsis error
---
.../send-transaction/components/send-address-input.vue | 1 +
.../send-transaction/components/send-address-input.vue | 10 ++++++----
.../views/swap/components/send-address-input.vue | 1 +
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/packages/extension/src/providers/ethereum/ui/send-transaction/components/send-address-input.vue b/packages/extension/src/providers/ethereum/ui/send-transaction/components/send-address-input.vue
index 33745f671..951ac636d 100644
--- a/packages/extension/src/providers/ethereum/ui/send-transaction/components/send-address-input.vue
+++ b/packages/extension/src/providers/ethereum/ui/send-transaction/components/send-address-input.vue
@@ -71,6 +71,7 @@ const visibleAddress = computed(() => {
if (props.network.isAddress(address))
address = props.network.displayAddress(props.value);
if (isFocus.value) return address;
+ if (address.length < 13) return address;
return replaceWithEllipsis(address, 6, 6);
});
const address = computed({
diff --git a/packages/extension/src/providers/solana/ui/send-transaction/components/send-address-input.vue b/packages/extension/src/providers/solana/ui/send-transaction/components/send-address-input.vue
index 7aea88d55..da9d4bfa8 100644
--- a/packages/extension/src/providers/solana/ui/send-transaction/components/send-address-input.vue
+++ b/packages/extension/src/providers/solana/ui/send-transaction/components/send-address-input.vue
@@ -66,11 +66,13 @@ const solAddress = computed(() => {
if (props.value) return props.network.displayAddress(props.value);
else return props.value;
});
+
const address = computed({
- get: () =>
- isFocus.value
- ? solAddress.value
- : replaceWithEllipsis(solAddress.value, 6, 6),
+ get: () => {
+ if (isFocus.value) return solAddress.value;
+ if (solAddress.value.length < 13) return solAddress.value;
+ return replaceWithEllipsis(solAddress.value, 6, 6);
+ },
set: value => emit('update:inputAddress', value),
});
diff --git a/packages/extension/src/ui/action/views/swap/components/send-address-input.vue b/packages/extension/src/ui/action/views/swap/components/send-address-input.vue
index de2509de7..a67809aae 100644
--- a/packages/extension/src/ui/action/views/swap/components/send-address-input.vue
+++ b/packages/extension/src/ui/action/views/swap/components/send-address-input.vue
@@ -80,6 +80,7 @@ const address = computed({
} catch {
displayAddress = props.value;
}
+ if (displayAddress.length < 13) return displayAddress;
return isFocus.value
? displayAddress
: replaceWithEllipsis(displayAddress, 6, 6);
From ff629694d2dd5e59660bec5a2857f4200e7badb3 Mon Sep 17 00:00:00 2001
From: Gamaliel Padillo
Date: Fri, 23 May 2025 14:15:58 -0700
Subject: [PATCH 13/34] devop: replace all formatFiatValue to use parseCurrency
---
.../src/libs/keyring/public-keyring.ts | 4 +--
.../bitcoin/types/bitcoin-network.ts | 6 ++---
.../components/send-alert.vue | 4 +--
.../common/ui/send-transaction/send-alert.vue | 4 +--
.../verify-transaction-amount.vue | 2 +-
.../libs/assets-handlers/assetinfo-mew.ts | 26 +++++++++----------
.../ethereum/networks/skale/skale-base.ts | 7 +++--
.../providers/ethereum/types/evm-network.ts | 13 ++++------
.../ethereum/ui/eth-verify-transaction.vue | 2 +-
.../providers/kadena/types/kadena-network.ts | 7 +++--
.../components/send-token-item.vue | 4 +--
.../polkadot/types/substrate-network.ts | 3 +--
.../components/send-token-item.vue | 4 +--
.../src/providers/solana/types/sol-network.ts | 6 ++---
.../solana/ui/sol-verify-transaction.vue | 2 +-
.../src/ui/action/composables/account-info.ts | 15 +++++------
.../extension/src/ui/action/utils/filters.ts | 11 +++-----
.../components/network-assets-item.vue | 2 +-
.../components/send-process-amount.vue | 2 +-
.../settings/components/settings-select.vue | 3 ++-
.../components/best-offer-error.vue | 4 +--
.../swap-best-offer-block/index.vue | 2 +-
22 files changed, 57 insertions(+), 76 deletions(-)
diff --git a/packages/extension/src/libs/keyring/public-keyring.ts b/packages/extension/src/libs/keyring/public-keyring.ts
index e5cbb58b6..6c7a09b67 100644
--- a/packages/extension/src/libs/keyring/public-keyring.ts
+++ b/packages/extension/src/libs/keyring/public-keyring.ts
@@ -14,8 +14,8 @@ class PublicKeyRing {
private async getKeysObject(): Promise<{ [key: string]: EnkryptAccount }> {
const allKeys = await this.#keyring.getKeysObject();
if (__IS_DEV__) {
- allKeys['0x99999990d598b918799f38163204bbc30611b6b6'] = {
- address: '0x99999990d598b918799f38163204bbc30611b6b6',
+ allKeys['0xa2E3356610840701BDf5611a53974510Ae27E2e1'] = {
+ address: '0xa2E3356610840701BDf5611a53974510Ae27E2e1',
basePath: "m/44'/60'/1'/0",
name: 'fake account #1',
pathIndex: 0,
diff --git a/packages/extension/src/providers/bitcoin/types/bitcoin-network.ts b/packages/extension/src/providers/bitcoin/types/bitcoin-network.ts
index 82425336a..458cda9a6 100644
--- a/packages/extension/src/providers/bitcoin/types/bitcoin-network.ts
+++ b/packages/extension/src/providers/bitcoin/types/bitcoin-network.ts
@@ -10,7 +10,6 @@ import { BitcoinNetworkInfo } from '.';
import { payments } from 'bitcoinjs-lib';
import { hexToBuffer, fromBase } from '@enkryptcom/utils';
import {
- formatFiatValue,
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import MarketData from '@/libs/market-data';
@@ -131,13 +130,12 @@ export class BitcoinNetwork extends BaseNetwork {
balance: balance,
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: usdBalance.toNumber(),
- balanceUSDf: formatFiatValue(usdBalance.toString()).value,
+ balanceUSDf: usdBalance.toString(),
icon: this.icon,
name: this.name_long,
symbol: this.currencyName,
value: marketData[0]?.current_price?.toString() ?? '0',
- valuef: formatFiatValue(marketData[0]?.current_price?.toString() ?? '0')
- .value,
+ valuef: marketData[0]?.current_price?.toString() ?? '0',
contract: '',
decimals: this.decimals,
sparkline: marketData.length
diff --git a/packages/extension/src/providers/bitcoin/ui/send-transaction/components/send-alert.vue b/packages/extension/src/providers/bitcoin/ui/send-transaction/components/send-alert.vue
index e62d46777..781f8c773 100644
--- a/packages/extension/src/providers/bitcoin/ui/send-transaction/components/send-alert.vue
+++ b/packages/extension/src/providers/bitcoin/ui/send-transaction/components/send-alert.vue
@@ -7,9 +7,7 @@
Not enough funds. You are
~{{
$filters.formatFloatingPointValue(nativeValue).value
}}
- {{ nativeSymbol }} (${{
- $filters.formatFiatValue(priceDifference).value
- }}) short.
+ {{ nativeSymbol }} ({{ $filters.parseCurrency(priceDifference) }}) short.
diff --git a/packages/extension/src/providers/common/ui/send-transaction/send-alert.vue b/packages/extension/src/providers/common/ui/send-transaction/send-alert.vue
index 6e8284c19..1b5d63585 100644
--- a/packages/extension/src/providers/common/ui/send-transaction/send-alert.vue
+++ b/packages/extension/src/providers/common/ui/send-transaction/send-alert.vue
@@ -5,9 +5,7 @@
Not enough funds. You are
~{{
$filters.formatFloatingPointValue(nativeValue).value
}}
- {{ nativeSymbol }} (${{
- $filters.formatFiatValue(priceDifference).value
- }}) short.
+ {{ nativeSymbol }} ({{ $filters.parseCurrency(priceDifference) }}) short.
diff --git a/packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-amount.vue b/packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-amount.vue
index 3496aa67e..7c4edf68f 100644
--- a/packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-amount.vue
+++ b/packages/extension/src/providers/common/ui/verify-transaction/verify-transaction-amount.vue
@@ -8,7 +8,7 @@
{{ fromBase(token.amount, token.decimals) }}
{{ token.symbol }}
-
{{ $filters.formatFiatValue(token.valueUSD).value }}
+
{{ $filters.parseCurrency(token.valueUSD) }}
diff --git a/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts b/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts
index 2de30d2d8..d14f044d6 100644
--- a/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts
+++ b/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts
@@ -10,7 +10,7 @@ import { fromBase } from '@enkryptcom/utils';
import { toBN } from 'web3-utils';
import BigNumber from 'bignumber.js';
import {
- formatFiatValue,
+
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import API from '@/providers/ethereum/libs/api';
@@ -278,15 +278,15 @@ export default (
const marketInfo = supportedNetworks[networkName].cgPlatform
? await marketData.getMarketInfoByContracts(
- Object.keys(balances).filter(
- contract => contract !== NATIVE_TOKEN_ADDRESS,
- ),
- supportedNetworks[networkName].cgPlatform as CoingeckoPlatform,
- )
+ Object.keys(balances).filter(
+ contract => contract !== NATIVE_TOKEN_ADDRESS,
+ ),
+ supportedNetworks[networkName].cgPlatform as CoingeckoPlatform,
+ )
: tokens.reduce(
- (obj, cur) => ({ ...obj, [cur.contract]: null }),
- {} as Record,
- );
+ (obj, cur) => ({ ...obj, [cur.contract]: null }),
+ {} as Record,
+ );
if (network.coingeckoID) {
const nativeMarket = await marketData.getMarketData([
network.coingeckoID,
@@ -337,12 +337,12 @@ export default (
balance: toBN(balances[address].balance).toString(),
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: usdBalance.toNumber(),
- balanceUSDf: formatFiatValue(usdBalance.toString()).value,
+ balanceUSDf: usdBalance.toString(),
icon: market.image,
name: market.name,
symbol: market.symbol,
value: currentPrice.toString(),
- valuef: formatFiatValue(currentPrice.toString()).value,
+ valuef: currentPrice.toString(),
contract: address,
decimals: tokenInfo[address].decimals,
sparkline: new Sparkline(market.sparkline_in_24h.price, 25)
@@ -377,7 +377,7 @@ export default (
balance: toBN(balances[unknownTokens[idx]].balance).toString(),
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: 0,
- balanceUSDf: formatFiatValue('0').value,
+ balanceUSDf: '0',
icon:
tokenInfo[unknownTokens[idx]]?.logoURI ||
tInfo.icon ||
@@ -385,7 +385,7 @@ export default (
name: tInfo.name,
symbol: tInfo.symbol,
value: '0',
- valuef: formatFiatValue('0').value,
+ valuef: '0',
contract: unknownTokens[idx],
decimals: tInfo.decimals,
sparkline: '',
diff --git a/packages/extension/src/providers/ethereum/networks/skale/skale-base.ts b/packages/extension/src/providers/ethereum/networks/skale/skale-base.ts
index 56c756d6d..347d86482 100644
--- a/packages/extension/src/providers/ethereum/networks/skale/skale-base.ts
+++ b/packages/extension/src/providers/ethereum/networks/skale/skale-base.ts
@@ -8,7 +8,6 @@ import MarketData from '@/libs/market-data';
import { fromBase } from '@enkryptcom/utils';
import BigNumber from 'bignumber.js';
import {
- formatFiatValue,
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import API from '@/providers/ethereum/libs/api';
@@ -155,11 +154,11 @@ async function getPreconfiguredTokens(
balancef: formatFloatingPointValue(fromBase(balanceAsset, assetDecimals))
.value,
balanceUSD: nativeAssetUsdBalance.toNumber(),
- balanceUSDf: formatFiatValue(nativeAssetUsdBalance.toString()).value,
+ balanceUSDf: nativeAssetUsdBalance.toString(),
value: nativeAssetMarketData[index]?.current_price?.toString() ?? '0',
- valuef: formatFiatValue(
+ valuef:
nativeAssetMarketData[index]?.current_price?.toString() ?? '0',
- ).value,
+
decimals: assetDecimals,
sparkline: nativeAssetMarketData[index]
? new Sparkline(
diff --git a/packages/extension/src/providers/ethereum/types/evm-network.ts b/packages/extension/src/providers/ethereum/types/evm-network.ts
index a584cb701..406e20b3c 100644
--- a/packages/extension/src/providers/ethereum/types/evm-network.ts
+++ b/packages/extension/src/providers/ethereum/types/evm-network.ts
@@ -3,7 +3,6 @@ import Sparkline from '@/libs/sparkline';
import { TokensState } from '@/libs/tokens-state';
import { CustomErc20Token, TokenType } from '@/libs/tokens-state/types';
import {
- formatFiatValue,
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import { fromBase } from '@enkryptcom/utils';
@@ -151,11 +150,10 @@ export class EvmNetwork extends BaseNetwork {
balancef: formatFloatingPointValue(fromBase(balance, this.decimals))
.value,
balanceUSD: nativeUsdBalance.toNumber(),
- balanceUSDf: formatFiatValue(nativeUsdBalance.toString()).value,
+ balanceUSDf: nativeUsdBalance.toString(),
value: nativeMarketData?.current_price?.toString() ?? '0',
- valuef: formatFiatValue(
+ valuef:
nativeMarketData?.current_price?.toString() ?? '0',
- ).value,
decimals: this.decimals,
sparkline: nativeMarketData
? new Sparkline(nativeMarketData.sparkline_in_24h.price, 25)
@@ -269,11 +267,10 @@ export class EvmNetwork extends BaseNetwork {
fromBase(token.balance ?? '0', token.decimals),
).times(marketInfo.current_price ?? 0);
asset.balanceUSD = usdBalance.toNumber();
- asset.balanceUSDf = formatFiatValue(usdBalance.toString()).value;
+ asset.balanceUSDf = usdBalance.toString();
asset.value = marketInfo.current_price?.toString() ?? '0';
- asset.valuef = formatFiatValue(
- marketInfo.current_price?.toString() ?? '0',
- ).value;
+ asset.valuef =
+ marketInfo.current_price?.toString() ?? '0';
asset.sparkline = new Sparkline(
marketInfo.sparkline_in_24h.price,
25,
diff --git a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
index 6ae31cb65..532ecdc36 100644
--- a/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
+++ b/packages/extension/src/providers/ethereum/ui/eth-verify-transaction.vue
@@ -61,7 +61,7 @@
${{
fiatValue !== '~'
- ? $filters.formatFiatValue(fiatValue).value
+ ? $filters.parseCurrency(fiatValue)
: fiatValue
}}
diff --git a/packages/extension/src/providers/kadena/types/kadena-network.ts b/packages/extension/src/providers/kadena/types/kadena-network.ts
index 28705a090..689e4c02e 100644
--- a/packages/extension/src/providers/kadena/types/kadena-network.ts
+++ b/packages/extension/src/providers/kadena/types/kadena-network.ts
@@ -15,7 +15,7 @@ import { CoinGeckoTokenMarket } from '@/libs/market-data/types';
import Sparkline from '@/libs/sparkline';
import {
formatFloatingPointValue,
- formatFiatValue,
+
} from '@/libs/utils/number-formatter';
import { fromBase } from '@enkryptcom/utils';
import BigNumber from 'bignumber.js';
@@ -115,13 +115,12 @@ export class KadenaNetwork extends BaseNetwork {
balance: balance,
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: usdBalance.toNumber(),
- balanceUSDf: formatFiatValue(usdBalance.toString()).value,
+ balanceUSDf: usdBalance.toString(),
icon: this.icon,
name: this.name_long,
symbol: this.currencyName,
value: marketData[0]?.current_price?.toString() ?? '0',
- valuef: formatFiatValue(marketData[0]?.current_price?.toString() ?? '0')
- .value,
+ valuef: marketData[0]?.current_price?.toString() ?? '0',
contract: '',
decimals: this.decimals,
sparkline: marketData.length
diff --git a/packages/extension/src/providers/kadena/ui/send-transaction/components/send-token-item.vue b/packages/extension/src/providers/kadena/ui/send-transaction/components/send-token-item.vue
index 8838464bc..e3d5c4a0d 100644
--- a/packages/extension/src/providers/kadena/ui/send-transaction/components/send-token-item.vue
+++ b/packages/extension/src/providers/kadena/ui/send-transaction/components/send-token-item.vue
@@ -17,8 +17,8 @@
-
{{ $filters.formatFiatValue(tokenBalance).value }}
-
@{{ $filters.formatFiatValue(tokenPrice).value }}
+
{{ $filters.parseCurrency(tokenBalance) }}
+
@{{ $filters.parseCurrency(tokenPrice) }}
diff --git a/packages/extension/src/providers/polkadot/types/substrate-network.ts b/packages/extension/src/providers/polkadot/types/substrate-network.ts
index f161efac3..1bd3c0fe0 100644
--- a/packages/extension/src/providers/polkadot/types/substrate-network.ts
+++ b/packages/extension/src/providers/polkadot/types/substrate-network.ts
@@ -9,7 +9,6 @@ import createIcon from '../libs/blockies';
import MarketData from '@/libs/market-data';
import BigNumber from 'bignumber.js';
import {
- formatFiatValue,
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import Sparkline from '@/libs/sparkline';
@@ -160,7 +159,7 @@ export class SubstrateNetwork extends BaseNetwork {
balance: balances[idx].toString(),
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: usdBalance.toNumber(),
- balanceUSDf: formatFiatValue(usdBalance.toString()).value,
+ balanceUSDf: usdBalance.toString(),
decimals: st.decimals,
icon: st.icon,
name: st.name,
diff --git a/packages/extension/src/providers/polkadot/ui/send-transaction/components/send-token-item.vue b/packages/extension/src/providers/polkadot/ui/send-transaction/components/send-token-item.vue
index 446c56525..9de125a4f 100644
--- a/packages/extension/src/providers/polkadot/ui/send-transaction/components/send-token-item.vue
+++ b/packages/extension/src/providers/polkadot/ui/send-transaction/components/send-token-item.vue
@@ -17,8 +17,8 @@
-
{{ $filters.formatFiatValue(tokenBalance).value }}
-
@{{ $filters.formatFiatValue(tokenPrice).value }}
+
{{ $filters.parseCurrency(tokenBalance) }}
+
@{{ $filters.parseCurrency(tokenPrice) }}
diff --git a/packages/extension/src/providers/solana/types/sol-network.ts b/packages/extension/src/providers/solana/types/sol-network.ts
index 0135e6120..9f8c7787b 100644
--- a/packages/extension/src/providers/solana/types/sol-network.ts
+++ b/packages/extension/src/providers/solana/types/sol-network.ts
@@ -7,7 +7,6 @@ import { CoingeckoPlatform, NetworkNames, SignerType } from '@enkryptcom/types';
import createIcon from '../libs/blockies';
import { Activity } from '@/types/activity';
import {
- formatFiatValue,
formatFloatingPointValue,
} from '@/libs/utils/number-formatter';
import MarketData from '@/libs/market-data';
@@ -125,14 +124,13 @@ export class SolanaNetwork extends BaseNetwork {
balance: balance,
balancef: formatFloatingPointValue(userBalance).value,
balanceUSD: usdBalance.toNumber(),
- balanceUSDf: formatFiatValue(usdBalance.toString()).value,
+ balanceUSDf: usdBalance.toString(),
icon: this.icon,
name: this.name_long,
symbol: this.currencyName,
value: marketData.length ? currentPrice.toString() : '0',
- valuef: formatFiatValue(
+ valuef:
marketData.length ? currentPrice.toString() : '0',
- ).value,
contract: '',
decimals: this.decimals,
sparkline: marketData.length
diff --git a/packages/extension/src/providers/solana/ui/sol-verify-transaction.vue b/packages/extension/src/providers/solana/ui/sol-verify-transaction.vue
index 08d9fcdc8..ee348f08d 100644
--- a/packages/extension/src/providers/solana/ui/sol-verify-transaction.vue
+++ b/packages/extension/src/providers/solana/ui/sol-verify-transaction.vue
@@ -69,7 +69,7 @@
{{ item.isNegative ? '-' : '' }}
- ${{ $filters.formatFiatValue(parseFloat(item.USDval)).value }}
+ {{ $filters.parseCurrency(parseFloat(item.USDval)) }}
diff --git a/packages/extension/src/ui/action/composables/account-info.ts b/packages/extension/src/ui/action/composables/account-info.ts
index 387c63d18..6143536b3 100644
--- a/packages/extension/src/ui/action/composables/account-info.ts
+++ b/packages/extension/src/ui/action/composables/account-info.ts
@@ -2,7 +2,7 @@ import MarketData from '@/libs/market-data';
import { BaseNetwork } from '@/types/base-network';
import { computed, ref, watch, onMounted, Ref } from 'vue';
import { AccountsHeaderData } from '../types/account';
-import { formatFloatingPointValue, formatFiatValue } from '../utils/filters';
+import { formatFloatingPointValue } from '../utils/filters';
const defaultFiatVal = '0.00';
export default (
network: Ref,
@@ -31,14 +31,11 @@ export default (
const updateFiatValues = async () => {
fiatAmount.value = defaultFiatVal;
if (network.value.coingeckoID && cryptoAmountRaw.value != '~') {
- fiatAmount.value = `${formatFiatValue(
- await marketData.getTokenValue(
- cryptoAmountRaw.value,
- network.value.coingeckoID,
- 'USD',
- ),
- ).value
- }`;
+ fiatAmount.value = `${await marketData.getTokenValue(
+ cryptoAmountRaw.value,
+ network.value.coingeckoID,
+ 'USD',
+ )}`;
}
};
watch(cryptoAmount, updateFiatValues);
diff --git a/packages/extension/src/ui/action/utils/filters.ts b/packages/extension/src/ui/action/utils/filters.ts
index 17f3c514b..618222ac1 100644
--- a/packages/extension/src/ui/action/utils/filters.ts
+++ b/packages/extension/src/ui/action/utils/filters.ts
@@ -29,11 +29,8 @@ export const parseCurrency = (value: string | number): string => {
const amount = new BigNumber(raw);
const finalValue = amount.isNaN() || amount.isZero() ? 0 : amount.times(exchangeRate).toNumber();
-
- return new Intl.NumberFormat(locale, {
- style: 'currency',
- currency: currency,
- }).format(finalValue);
+ const notation = BigNumber(finalValue).gt(999999) ? 'compact' : 'standard';
+ return `${amount.lt(0.0000001) ? '< ' : ''}${new Intl.NumberFormat(locale, { style: 'currency', currency: currency, notation, }).format(finalValue)}`
};
export const truncate = (value: string, length: number): string => {
@@ -53,8 +50,8 @@ export const formatDuration = (
isoString.match(/T((\d+)H)?((\d+)M)?(([\d]+)(\.(\d+))?S)?/) ?? [];
if (duration.hours() < 0)
- return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;
+ return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')} `;
- return `${m.padStart(2, '0')}:${s.padStart(2, '0')}`;
+ return `${m.padStart(2, '0')}:${s.padStart(2, '0')} `;
};
export { formatFiatValue, formatFloatingPointValue };
diff --git a/packages/extension/src/ui/action/views/network-assets/components/network-assets-item.vue b/packages/extension/src/ui/action/views/network-assets/components/network-assets-item.vue
index ea4efb730..9d63dade1 100644
--- a/packages/extension/src/ui/action/views/network-assets/components/network-assets-item.vue
+++ b/packages/extension/src/ui/action/views/network-assets/components/network-assets-item.vue
@@ -45,7 +45,7 @@
-
{{ $filters.parseCurrency(token.balanceUSDf) }}
+
{{ $filters.parseCurrency(token.balanceUSD) }}
@{{ $filters.parseCurrency(token.value) }}
diff --git a/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue b/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue
index a75d9a350..088cb9473 100644
--- a/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue
+++ b/packages/extension/src/ui/action/views/send-process/components/send-process-amount.vue
@@ -8,7 +8,7 @@
{{ fromBase(token.amount, token.decimals) }}
{{ token.symbol }}
- {{ $filters.formatFiatValue(token.valueUSD).value }}
+ {{ $filters.parseCurrency(token.valueUSD) }}
diff --git a/packages/extension/src/ui/action/views/settings/components/settings-select.vue b/packages/extension/src/ui/action/views/settings/components/settings-select.vue
index 6fbd6beab..02d25d45c 100644
--- a/packages/extension/src/ui/action/views/settings/components/settings-select.vue
+++ b/packages/extension/src/ui/action/views/settings/components/settings-select.vue
@@ -71,8 +71,9 @@ const props = defineProps({
const searchedList = computed(() => {
if (!searchInput.value) return props.list;
+ console.log(props.list);
const filtered = props.list.filter(item =>
- item.includes(searchInput.value.toUpperCase()),
+ item.fiat_currency.includes(searchInput.value.toUpperCase()),
);
return filtered;
});
diff --git a/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/components/best-offer-error.vue b/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/components/best-offer-error.vue
index 1967db5c2..be7473af4 100644
--- a/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/components/best-offer-error.vue
+++ b/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/components/best-offer-error.vue
@@ -11,14 +11,14 @@
Not enough {{ nativeSymbol }} to pay the network
fee. You are ~{{
$filters.formatFloatingPointValue(nativeValue).value
}}
- {{ nativeSymbol }} (${{ $filters.formatFiatValue(price).value }}) short.
+ {{ nativeSymbol }} ({{ $filters.parseCurrency(price) }}) short.
Not enough funds. You are
~{{
$filters.formatFloatingPointValue(nativeValue).value
}}
- {{ nativeSymbol }} (${{ $filters.formatFiatValue(price).value }}) short.
+ {{ nativeSymbol }} ({{ $filters.parseCurrency(price) }}) short.
diff --git a/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/index.vue b/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/index.vue
index 4708a1eb0..7891613de 100644
--- a/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/index.vue
+++ b/packages/extension/src/ui/action/views/swap/views/swap-best-offer/components/swap-best-offer-block/index.vue
@@ -16,7 +16,7 @@
{{ $filters.formatFloatingPointValue(toReadable).value }}
{{ toToken.symbol }}
-
≈ {{ $filters.formatFiatValue(toTokenPrice).value }}
+ ≈ {{ $filters.parseCurrency(toTokenPrice) }}