From 14d3e927e4cdea421303453cccd734b9536e765d Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 5 Feb 2026 16:09:44 +0800 Subject: [PATCH 1/7] feat: initialize expo-example automation test --- .../electron-example/package.json | 2 +- .../connect-examples/expo-example/App.tsx | 3 + .../docs/automation-test-design.md | 656 +++++++++++ .../expo-example/locale/en-US.json | 1 + .../expo-example/locale/zh-CN.json | 1 + .../expo-example/src/atoms/automationAtoms.ts | 165 +++ .../expo-example/src/components/ui/Header.tsx | 1 + .../expo-example/src/route.ts | 1 + .../src/services/phonePilotMcp/index.ts | 436 +++++++ .../src/services/phonePilotMcp/types.ts | 222 ++++ .../src/testTools/automationTest/index.ts | 9 + .../automationTest/mnemonicGroups.ts | 433 +++++++ .../automationTest/useAutomationTest.ts | 683 +++++++++++ .../src/views/AutomationTestScreen.tsx | 1000 +++++++++++++++++ yarn.lock | 48 +- 15 files changed, 3642 insertions(+), 19 deletions(-) create mode 100644 packages/connect-examples/expo-example/docs/automation-test-design.md create mode 100644 packages/connect-examples/expo-example/src/atoms/automationAtoms.ts create mode 100644 packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts create mode 100644 packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/index.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index b48aad01b..f8271b4f8 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -36,7 +36,7 @@ "@types/webpack-node-externals": "^3.0.4", "clean-webpack-plugin": "^4.0.0", "cross-env": "^7.0.3", - "electron": "^28.0.0", + "electron": "^40.1.0", "electron-builder": "^24.9.1", "webpack": "^5.90.2", "webpack-node-externals": "^3.0.0" diff --git a/packages/connect-examples/expo-example/App.tsx b/packages/connect-examples/expo-example/App.tsx index be56ff696..af1aeb4c1 100644 --- a/packages/connect-examples/expo-example/App.tsx +++ b/packages/connect-examples/expo-example/App.tsx @@ -25,6 +25,7 @@ const FunctionalTestingScreen = lazy(() => import('./src/views/FunctionalTesting const AttachToPinTestingScreen = lazy(() => import('./src/views/AttachToPinTestingScreen')); const SLIP39TestScreen = lazy(() => import('./src/views/SLIP39TestScreen')); const ChainMethodTestScreen = lazy(() => import('./src/views/ChainMethodTestScreen')); +const AutomationTestScreen = lazy(() => import('./src/views/AutomationTestScreen')); // React Navigation v6 linking 配置 const linking: LinkingOptions = { @@ -46,6 +47,7 @@ const linking: LinkingOptions = { [Routes.FunctionalTesting]: 'expo-example/functional-testing', [Routes.SLIP39Test]: 'expo-example/slip39-test', [Routes.ChainMethodTest]: 'expo-example/chain-method-test', + [Routes.AutomationTest]: 'expo-example/automation-test', }, }, }; @@ -96,6 +98,7 @@ function NavigationContent() { /> + ); diff --git a/packages/connect-examples/expo-example/docs/automation-test-design.md b/packages/connect-examples/expo-example/docs/automation-test-design.md new file mode 100644 index 000000000..36674ac60 --- /dev/null +++ b/packages/connect-examples/expo-example/docs/automation-test-design.md @@ -0,0 +1,656 @@ +# 硬件钱包自动化测试系统设计文档 + +## 概述 + +本文档描述了基于 PhonePilot MCP 的硬件钱包自动化测试系统设计方案。该系统通过机械臂物理控制硬件钱包,实现完全自动化的端到端测试。 + +## 核心原则:职责分离 + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ 职责划分 │ +├──────────────────────────────┬──────────────────────────────────────┤ +│ PhonePilot 负责 │ expo-example 负责 │ +├──────────────────────────────┼──────────────────────────────────────┤ +│ ✓ 设备重置 (wipe) │ ✓ 执行测试用例 │ +│ ✓ 恢复助记词 │ ✓ 调用 SDK 方法 │ +│ ✓ 恢复 SLIP39 分片 │ ✓ 验证返回结果 │ +│ ✓ 输入 PIN │ ✓ 记录测试状态 │ +│ ✓ 输入 Passphrase │ ✓ 生成测试报告 │ +│ ✓ 点击确认/取消按钮 │ ✓ 测试流程编排 │ +│ ✓ 所有物理操作 │ ✓ 通知 PhonePilot 执行物理操作 │ +└──────────────────────────────┴──────────────────────────────────────┘ +``` + +**expo-example 不直接调用 SDK.resetDevice() 等设备准备方法,而是通知 PhonePilot 来完成。** + +## 目录 + +- [1. 系统架构](#1-系统架构) +- [2. 流程图](#2-流程图) +- [3. 模块设计](#3-模块设计) +- [4. 接口定义](#4-接口定义) +- [5. 状态管理](#5-状态管理) +- [6. 实现计划](#6-实现计划) + +--- + +## 1. 系统架构 + +### 1.1 整体架构图 + +``` +┌─────────────────────────────────────────────────────────────────────────────────┐ +│ 自动化测试系统架构 │ +├─────────────────────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ +│ │ expo-example │ │ PhonePilot │ │ 硬件钱包设备 │ │ +│ │ (测试控制器) │ │ (物理操作) │ │ (OneKey) │ │ +│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ +│ │ │ │ │ +│ │ MCP Protocol │ 机械臂 │ │ +│ │◄──────────────────────►│◄──────────────────────►│ │ +│ │ │ │ │ +│ │ USB/BLE SDK │ │ │ +│ │◄───────────────────────┼───────────────────────►│ │ +│ │ │ │ │ +└─────────────────────────────────────────────────────────────────────────────────┘ +``` + +### 1.2 组件职责 + +| 组件 | 职责 | +|------|------| +| **expo-example** | 测试编排、SDK 调用、结果验证、报告生成 | +| **PhonePilot** | MCP Server、机械臂控制、摄像头捕获 | +| **硬件钱包** | 被测设备、执行签名/地址生成等操作 | + +### 1.3 通信协议 + +- **expo-example ↔ PhonePilot**: MCP Protocol (HTTP/SSE) +- **expo-example ↔ 硬件钱包**: USB/Bluetooth (via hardware-js-sdk) +- **PhonePilot ↔ 机械臂**: HTTP (ESP32 Controller) + +--- + +## 2. 流程图 + +### 2.1 测试执行时序图 + +``` +┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ +│ expo-example │ │ PhonePilot │ │ 机械臂 │ │ 硬件钱包 │ +│ (测试执行) │ │ (设备准备) │ │ Controller │ │ (OneKey) │ +└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ + │ │ │ │ + │ 1. 请求准备设备 │ │ │ + │ ─────────────────► │ │ │ + │ prepare-device │ │ │ + │ {mnemonic, type} │ │ │ + │ │ │ │ + │ │ 2. PhonePilot 完成设备准备 (内部流程) │ + │ │ ════════════════════════════════════════│ + │ │ │ │ + │ │ 重置设备 │ │ + │ │───────────────────►│───────────────────►│ + │ │ 输入助记词 │ │ + │ │───────────────────►│───────────────────►│ + │ │ 确认操作 │ │ + │ │───────────────────►│───────────────────►│ + │ │ │ │ + │ device-ready │◄═══════════════════════════════════════│ + │ ◄───────────────── │ │ │ + │ │ │ │ + │ 3. 执行测试用例序列 (expo-example 核心职责) │ + │ ════════════════════════════════════════════════════════════│ + │ │ │ │ + │ SDK.btcGetAddress()│ │ │ + │ ───────────────────┼────────────────────┼───────────────────►│ + │ │ │ 显示确认 │ + │ │ │ │ + │ 请求物理确认 │ │ │ + │ ──────────────────►│ move + click │ 物理点击 │ + │ confirm-action │───────────────────►│───────────────────►│ + │ done │◄───────────────────│ │ + │ ◄─────────────────│ │ │ + │ │ │ │ + │ address: 1A1z... │ │ │ + │ ◄──────────────────┼────────────────────┼────────────────────│ + │ │ │ │ + │ 验证地址 ✓ │ │ │ + │ 记录结果 │ │ │ + │ │ │ │ + │ ... 重复更多测试 ... │ │ │ + │ │ │ │ + │ 4. 测试完成,生成报告 │ │ │ + │ ════════════════════════════════════════════════════════════│ + │ │ │ │ + │ 通知测试完成 │ │ │ + │ ──────────────────►│ │ │ + │ test-complete │ │ │ + │ │ │ │ + ▼ ▼ ▼ ▼ +``` + +### 2.2 测试套件执行流程 + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ 自动化测试套件执行流程 │ +├─────────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────────┐ │ +│ │ 开始测试 │ │ +│ └──────┬──────┘ │ +│ ▼ │ +│ ┌─────────────────────────────────────┐ │ +│ │ 1. 初始化阶段 (expo-example) │ │ +│ │ ├─ 连接 PhonePilot MCP │ │ +│ │ └─ 连接硬件钱包 (USB/BLE) │ │ +│ └──────┬──────────────────────────────┘ │ +│ ▼ │ +│ ┌─────────────────────────────────────────────────────────────┐ │ +│ │ 2. 按助记词分组执行 (每个助记词只需准备一次) │ │ +│ │ │ │ +│ │ ┌───────────────────────────────────────────────────────┐ │ │ +│ │ │ 助记词组 1: count24_one (24位助记词 - 组1) │ │ │ +│ │ │ ├─ prepare-device {mnemonic} ← PhonePilot 重置恢复 │ │ │ +│ │ │ │ │ │ │ +│ │ │ │ 同一助记词下,不需要重置: │ │ │ +│ │ │ ├─ normal: 执行测试 (无 passphrase) │ │ │ +│ │ │ ├─ passphrase_empty: 执行测试 (passphrase="") │ │ │ +│ │ │ ├─ passphrase_1: 执行测试 (passphrase="asdfg7890") │ │ │ +│ │ │ └─ passphrase_2: 执行测试 (passphrase="xxx") │ │ │ +│ │ └───────────────────────────────────────────────────────┘ │ │ +│ │ ▼ 切换助记词,需要重置 │ │ +│ │ ┌───────────────────────────────────────────────────────┐ │ │ +│ │ │ 助记词组 2: count24_two (24位助记词 - 组2) │ │ │ +│ │ │ ├─ prepare-device {mnemonic} ← PhonePilot 重置恢复 │ │ │ +│ │ │ ├─ normal, passphrase_empty, passphrase_1, ... │ │ │ +│ │ └───────────────────────────────────────────────────────┘ │ │ +│ │ ▼ 切换到 SLIP39 │ │ +│ │ ┌───────────────────────────────────────────────────────┐ │ │ +│ │ │ SLIP39 测试组 │ │ │ +│ │ │ ├─ prepare-device {slip39Shares} ← 分片恢复 │ │ │ +│ │ │ └─ 执行 SLIP39 测试用例 │ │ │ +│ │ └───────────────────────────────────────────────────────┘ │ │ +│ │ ▼ │ │ +│ │ ... 更多助记词组 ... │ │ +│ │ │ │ +│ └──────┬──────────────────────────────────────────────────────┘ │ +│ ▼ │ +│ ┌─────────────────────────────────────┐ │ +│ │ 3. 报告生成 (expo-example) │ │ +│ │ ├─ 汇总测试结果 │ │ +│ │ ├─ 生成 Markdown 报告 │ │ +│ │ └─ 导出/保存报告 │ │ +│ └──────┬──────────────────────────────┘ │ +│ ▼ │ +│ ┌─────────────┐ │ +│ │ 测试完成 │ │ +│ └─────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### 2.3 设备重置时机 + +| 场景 | 是否需要重置 | 说明 | +|------|-------------|------| +| 同一助记词下执行多个测试用例 | ❌ 不需要 | 钱包状态不变 | +| 同一助记词,切换 Passphrase | ❌ 不需要 | Passphrase 运行时通过 SDK 输入 | +| 切换到不同助记词 | ✅ 需要 | 调用 `prepare-device` | +| 切换到 SLIP39 恢复 | ✅ 需要 | 调用 `prepare-device` | +| 设置/修改 PIN | ✅ 需要 | 调用 `prepare-device` | + +**说明**: Passphrase 是通过 SDK 的 `UI_REQUEST.REQUEST_PASSPHRASE` 事件在运行时输入的,不需要重置设备。 + +--- + +## 3. 模块设计 + +### 3.1 目录结构 + +``` +expo-example/src/ +├── services/ +│ └── phonePilotMcp/ # 新增: PhonePilot MCP 客户端 +│ ├── index.ts # MCP 客户端主模块 +│ ├── types.ts # 类型定义 +│ ├── walletActions.ts # 钱包物理操作封装 +│ └── screenMapping.ts # 屏幕坐标映射配置 +│ +├── testTools/ +│ └── automationTest/ # 新增: 自动化测试编排 +│ ├── index.ts # 测试套件入口 +│ ├── testSuiteRunner.ts # 测试套件执行器 +│ ├── devicePreparation.ts # 设备准备逻辑 +│ └── reportGenerator.ts # 增强版报告生成 +│ +├── views/ +│ └── AutomationTestScreen.tsx # 新增: 自动化测试界面 +│ +└── atoms/ + └── automationAtoms.ts # 新增: 自动化测试状态 +``` + +### 3.2 模块说明 + +#### 3.2.1 PhonePilot MCP 客户端 (`services/phonePilotMcp/`) + +负责与 PhonePilot MCP Server 通信,封装机械臂控制操作。 + +**核心类:** + +- `PhonePilotClient` - MCP 协议客户端 +- `WalletPhysicalActions` - 钱包物理操作高级封装 +- `ScreenConfig` - 屏幕坐标配置 + +#### 3.2.2 自动化测试编排 (`testTools/automationTest/`) + +负责测试流程编排、设备准备、结果收集。 + +**核心类:** + +- `AutomationTestRunner` - 测试执行引擎 +- `DevicePreparation` - 设备状态准备 +- `ReportGenerator` - 报告生成器 + +#### 3.2.3 自动化测试界面 (`views/AutomationTestScreen.tsx`) + +提供可视化的测试配置和执行界面。 + +--- + +## 4. 接口定义 + +### 4.1 PhonePilot MCP 客户端 + +```typescript +// services/phonePilotMcp/index.ts + +export class PhonePilotClient { + private serverUrl: string; + private sessionId: string | null = null; + + constructor(serverUrl: string = 'http://localhost:3847'); + + // 连接管理 + async connect(): Promise; + async disconnect(): Promise; + async healthCheck(): Promise; + + // 机械臂控制 + async armConnect(): Promise; + async armDisconnect(): Promise; + async armMove(x: number, y: number, captureFrame?: boolean): Promise; + async armClick(depth?: number, captureFrame?: boolean): Promise; + async captureFrame(): Promise; // base64 JPEG + + // 高级操作 + async tapAt(x: number, y: number): Promise; + async inputText(text: string, keyboard: KeyboardLayout): Promise; +} +``` + +### 4.2 PhonePilot MCP 扩展工具 (需在 PhonePilot 侧实现) + +expo-example 通过 MCP 调用以下工具,由 PhonePilot 负责执行: + +```typescript +// PhonePilot 需要新增的 MCP Tools + +// 设备准备 (PhonePilot 内部处理所有物理操作) +interface PrepareDeviceParams { + testType: 'standard' | 'passphrase' | 'slip39' | 'pin'; + mnemonic?: string[]; // 标准助记词 + slip39Shares?: string[][]; // SLIP39 分片 + passphrase?: string; // Passphrase + pin?: string; // PIN +} +// Tool: prepare-device + +// 物理确认操作 +interface ConfirmActionParams { + action: 'confirm' | 'cancel'; +} +// Tool: confirm-action + +// 输入 Passphrase (测试过程中) +interface InputPassphraseParams { + passphrase: string; +} +// Tool: input-passphrase + +// 输入 PIN (测试过程中) +interface InputPinParams { + pin: string; +} +// Tool: input-pin +``` + +### 4.3 expo-example 调用封装 + +```typescript +// services/phonePilotMcp/index.ts + +export class PhonePilotClient { + private serverUrl: string; + + constructor(serverUrl: string = 'http://localhost:3847'); + + // 连接管理 + async connect(): Promise; + async disconnect(): Promise; + async healthCheck(): Promise; + + // 设备准备 (通知 PhonePilot 执行) + async prepareDevice(params: PrepareDeviceParams): Promise<{ success: boolean }>; + + // 物理操作 (通知 PhonePilot 执行) + async confirmAction(): Promise; + async cancelAction(): Promise; + async inputPassphrase(passphrase: string): Promise; + async inputPin(pin: string): Promise; + + // 调试用 + async captureFrame(): Promise; // base64 JPEG +} +``` + +### 4.3 屏幕坐标配置 + +```typescript +// services/phonePilotMcp/screenMapping.ts + +export interface ScreenConfig { + deviceType: 'classic' | 'classic1s' | 'pro' | 'touch' | 'mini'; + + // 键盘布局坐标 + keyboard: { + [key: string]: { x: number; y: number }; + }; + + // 按钮位置 + buttons: { + confirm: { x: number; y: number }; + cancel: { x: number; y: number }; + back: { x: number; y: number }; + }; + + // 功能区域 + areas: { + scrollUp: { x: number; y: number }; + scrollDown: { x: number; y: number }; + }; +} + +// 预设配置 +export const SCREEN_CONFIGS: Record = { + classic1s: { /* ... */ }, + pro: { /* ... */ }, + // ... +}; +``` + +### 4.4 自动化测试配置 + +```typescript +// testTools/automationTest/types.ts + +export interface AutomationTestConfig { + // 测试配置 + testSuites: TestSuiteType[]; + mnemonic: string[]; // 测试用助记词 + passphrase?: string; // 可选 passphrase + slip39Shares?: string[][]; // SLIP39 分片 + pin?: string; // 测试 PIN + + // PhonePilot 配置 + phonePilotUrl: string; + screenConfig: ScreenConfig; + + // 执行选项 + stopOnFirstError: boolean; + retryCount: number; + delayBetweenTests: number; +} + +export type TestSuiteType = + | 'address' + | 'pubkey' + | 'passphrase' + | 'slip39' + | 'security' + | 'functional' + | 'attachToPin' + | 'chainMethod'; +``` + +### 4.5 测试套件执行器 + +```typescript +// testTools/automationTest/testSuiteRunner.ts + +export class AutomationTestRunner { + private config: AutomationTestConfig; + private phonePilot: PhonePilotClient; + private sdk: HardwareSDK; + + constructor(config: AutomationTestConfig); + + // 生命周期 + async initialize(): Promise; + async runAllTests(): Promise; + async stop(): Promise; + async cleanup(): Promise; + + // 请求 PhonePilot 准备设备 (不直接操作设备) + private async requestDevicePreparation(suiteType: TestSuiteType): Promise; + + // 测试执行 (expo-example 核心职责) + private async runTestSuite(suite: TestSuiteType): Promise; + private async executeTestCase(testCase: TestCase): Promise; + + // UI 请求处理 (通知 PhonePilot 执行物理操作) + private async handleUIRequest(request: UIRequest): Promise; + + // 事件回调 + onProgress: (progress: TestProgress) => void; + onTestComplete: (result: TestCaseResult) => void; + onSuiteComplete: (result: SuiteResult) => void; +} +``` + +**核心逻辑示意:** + +```typescript +async function runAutomationTest(config: AutomationTestConfig) { + const phonePilot = new PhonePilotClient(config.phonePilotUrl); + await phonePilot.connect(); + + // 1. 请求 PhonePilot 准备设备 (PhonePilot 内部完成重置、恢复助记词等) + await phonePilot.prepareDevice({ + testType: 'standard', + mnemonic: config.mnemonic, + }); + + // 2. 设置 SDK 监听器 (当需要物理操作时通知 PhonePilot) + sdk.on(UI_EVENT, async (message) => { + if (message.type === UI_REQUEST.REQUEST_BUTTON) { + await phonePilot.confirmAction(); // 通知 PhonePilot 点击确认 + } + if (message.type === UI_REQUEST.REQUEST_PIN) { + await phonePilot.inputPin(config.pin); + sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PIN, payload: '@@ONEKEY_INPUT_PIN_IN_DEVICE' }); + } + if (message.type === UI_REQUEST.REQUEST_PASSPHRASE) { + await phonePilot.inputPassphrase(config.passphrase); + sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PASSPHRASE, payload: { passphraseOnDevice: true } }); + } + }); + + // 3. 执行测试 (expo-example 核心职责) + for (const testCase of testCases) { + const result = await sdk.btcGetAddress(...); // 调用 SDK + validateResult(result); // 验证结果 + recordResult(testCase, result); // 记录结果 + } + + // 4. 生成报告 + return generateReport(results); +} +``` + +--- + +## 5. 状态管理 + +### 5.1 Jotai Atoms + +```typescript +// atoms/automationAtoms.ts + +import { atom } from 'jotai'; + +// PhonePilot 连接状态 +export const phonePilotConnectedAtom = atom(false); +export const phonePilotUrlAtom = atom('http://localhost:3847'); + +// 自动化测试配置 +export const automationConfigAtom = atom({ + testSuites: ['address', 'pubkey'], + mnemonic: [], + phonePilotUrl: 'http://localhost:3847', + screenConfig: defaultScreenConfig, + stopOnFirstError: false, + retryCount: 1, + delayBetweenTests: 500, +}); + +// 测试执行状态 +export const automationRunnerStateAtom = atom< + 'idle' | 'preparing' | 'running' | 'paused' | 'done' +>('idle'); + +// 当前进度 +export const automationProgressAtom = atom<{ + currentSuite: TestSuiteType | null; + currentTest: string | null; + completedSuites: number; + totalSuites: number; + completedTests: number; + totalTests: number; +}>({ + currentSuite: null, + currentTest: null, + completedSuites: 0, + totalSuites: 0, + completedTests: 0, + totalTests: 0, +}); + +// 测试结果 +export const automationResultsAtom = atom(null); + +// PhonePilot 摄像头画面 +export const cameraFrameAtom = atom(null); +``` + +--- + +## 6. 实现计划 + +### 6.1 PhonePilot 侧工作 (前置依赖) + +| 任务 | 描述 | 优先级 | +|------|------|--------| +| 屏幕坐标映射 | 标定 Classic1s 设备坐标 | P0 | +| 助记词输入 | 实现键盘输入逻辑 | P0 | +| 设备重置恢复 | wipe + restore 流程 | P0 | +| `prepare-device` Tool | MCP 工具: 设备准备 | P0 | +| `confirm-action` Tool | MCP 工具: 物理确认 | P0 | +| `input-passphrase` Tool | MCP 工具: 输入 Passphrase | P1 | +| `input-pin` Tool | MCP 工具: 输入 PIN | P1 | +| SLIP39 恢复 | 分片恢复流程 | P1 | +| 多设备支持 | Pro/Touch 坐标配置 | P2 | + +### 6.2 expo-example 侧工作 + +#### Phase 1: 基础设施 (P0) + +| 任务 | 描述 | +|------|------| +| PhonePilot MCP 客户端 | 实现 MCP 协议通信封装 | +| 测试配置管理 | 助记词、测试套件选择等 | + +#### Phase 2: 核心功能 (P0) + +| 任务 | 描述 | +|------|------| +| UI 请求处理 | 监听 SDK UI_EVENT,通知 PhonePilot | +| 地址测试自动化 | 集成现有 addressTest | +| 测试结果验证 | 验证 SDK 返回结果 | + +#### Phase 3: 完整集成 (P1) + +| 任务 | 描述 | +|------|------| +| 测试套件集成 | 集成全部 8 类测试 | +| 自动化测试 UI | 实现 AutomationTestScreen | +| 进度显示 | 实时显示测试进度 | + +#### Phase 4: 增强功能 (P2) + +| 任务 | 描述 | +|------|------| +| 报告生成增强 | 详细测试报告 | +| 错误恢复重试 | 失败自动重试 | +| 测试历史记录 | 保存历史测试结果 | + +--- + +## 7. 测试套件清单 + +| 测试类型 | 描述 | 物理操作需求 | +|----------|------|-------------| +| **Address Test** | 地址生成验证 | 确认按钮 | +| **PubKey Test** | 公钥生成验证 | 确认按钮 | +| **Passphrase Test** | 密语保护测试 | 确认 + 密语输入 | +| **SLIP39 Test** | Shamir 恢复测试 | 分片输入 | +| **Security Check** | 安全检查测试 | 确认按钮 | +| **Functional Test** | 功能测试 | 多种操作 | +| **Attach-to-PIN** | PIN 绑定测试 | PIN 输入 | +| **Chain Method** | 链式调用测试 | 多次确认 | + +--- + +## 8. 风险与挑战 + +| 风险 | 影响 | 缓解措施 | +|------|------|----------| +| 屏幕坐标漂移 | 点击位置不准 | 定期校准 + 视觉识别 | +| 设备响应超时 | 测试中断 | 超时重试机制 | +| 助记词输入错误 | 恢复失败 | 逐字验证 + 截图对比 | +| 网络连接不稳定 | MCP 通信失败 | 重连机制 + 本地运行 | + +--- + +## 附录 + +### A. PhonePilot MCP Tools + +| Tool | 描述 | 参数 | +|------|------|------| +| `arm-connect` | 连接机械臂 | - | +| `arm-disconnect` | 断开连接 | - | +| `arm-move` | 移动到坐标 | x, y, captureFrame | +| `arm-click` | 执行点击 | depth, captureFrame | +| `capture-frame` | 截取画面 | - | + +### B. 相关资源 + +- [PhonePilot 项目](../../../../../PhonePilot) +- [hardware-js-sdk 文档](https://developer.onekey.so/) +- [MCP Protocol 规范](https://modelcontextprotocol.io/) diff --git a/packages/connect-examples/expo-example/locale/en-US.json b/packages/connect-examples/expo-example/locale/en-US.json index 67ca03dd7..92cfdb457 100644 --- a/packages/connect-examples/expo-example/locale/en-US.json +++ b/packages/connect-examples/expo-example/locale/en-US.json @@ -8,6 +8,7 @@ "tab__functional_testing": "Functional testing", "tab__attach_to_pin_testing": "Attach to Pin Testing", "tab__chain_method_test": "Chain Method Test", + "tab__automation_test": "Automation Test", "action__search_device": "Search Device", "action__search_device_webusb": "Search Device WebUSB", diff --git a/packages/connect-examples/expo-example/locale/zh-CN.json b/packages/connect-examples/expo-example/locale/zh-CN.json index b57e7a9b2..b60c25c45 100644 --- a/packages/connect-examples/expo-example/locale/zh-CN.json +++ b/packages/connect-examples/expo-example/locale/zh-CN.json @@ -8,6 +8,7 @@ "tab__functional_testing": "功能测试", "tab__attach_to_pin_testing": "Attach to Pin 测试", "tab__chain_method_test": "链方法批量测试", + "tab__automation_test": "自动化测试", "action__search_device": "搜索设备", "action__search_device_webusb": "搜索 WebUSB 设备", diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts new file mode 100644 index 000000000..bcb0d5bf4 --- /dev/null +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -0,0 +1,165 @@ +/** + * Automation Test State Management + * + * Jotai atoms for managing automation test state. + */ + +import { atom } from 'jotai'; +import type { + AutomationTestConfig, + TestProgress, + TestReport, + ConnectionState, + MnemonicGroupId, + TestSuiteType, + PassphraseVariantId, +} from '../services/phonePilotMcp/types'; + +// ============================================================================ +// PhonePilot Connection State +// ============================================================================ + +/** PhonePilot MCP connection state */ +export const phonePilotConnectionStateAtom = atom('disconnected'); + +/** PhonePilot server URL */ +export const phonePilotUrlAtom = atom('http://localhost:3847'); + +/** Latest camera frame from PhonePilot (base64 JPEG) */ +export const cameraFrameAtom = atom(null); + +// ============================================================================ +// Automation Test Configuration +// ============================================================================ + +/** Default test configuration */ +const defaultConfig: AutomationTestConfig = { + testSuites: ['address'], + mnemonicGroups: ['count24_one'], + passphraseVariants: ['normal'], + phonePilotUrl: 'http://localhost:3847', + stopOnFirstError: false, + retryCount: 1, + delayBetweenTests: 500, +}; + +/** Automation test configuration */ +export const automationConfigAtom = atom(defaultConfig); + +/** Selected test suites */ +export const selectedTestSuitesAtom = atom( + (get) => get(automationConfigAtom).testSuites, + (get, set, newSuites: TestSuiteType[]) => { + const config = get(automationConfigAtom); + set(automationConfigAtom, { ...config, testSuites: newSuites }); + } +); + +/** Selected mnemonic groups */ +export const selectedMnemonicGroupsAtom = atom( + (get) => get(automationConfigAtom).mnemonicGroups, + (get, set, newGroups: MnemonicGroupId[]) => { + const config = get(automationConfigAtom); + set(automationConfigAtom, { ...config, mnemonicGroups: newGroups }); + } +); + +/** Selected passphrase variants */ +export const selectedPassphraseVariantsAtom = atom( + (get) => get(automationConfigAtom).passphraseVariants, + (get, set, newVariants: PassphraseVariantId[]) => { + const config = get(automationConfigAtom); + set(automationConfigAtom, { ...config, passphraseVariants: newVariants }); + } +); + +// ============================================================================ +// Test Execution State +// ============================================================================ + +/** Default progress state */ +const defaultProgress: TestProgress = { + currentMnemonicGroup: null, + currentPassphrase: null, + currentTestSuite: null, + currentTestIndex: 0, + totalTests: 0, + completedMnemonicGroups: 0, + totalMnemonicGroups: 0, + status: 'idle', +}; + +/** Test execution progress */ +export const automationProgressAtom = atom(defaultProgress); + +/** Reset progress to initial state */ +export const resetProgressAtom = atom(null, (_get, set) => { + set(automationProgressAtom, defaultProgress); +}); + +/** Update progress status */ +export const updateProgressStatusAtom = atom( + null, + (get, set, status: TestProgress['status'], errorMessage?: string) => { + const progress = get(automationProgressAtom); + set(automationProgressAtom, { ...progress, status, errorMessage }); + } +); + +// ============================================================================ +// Test Results +// ============================================================================ + +/** Current test report */ +export const automationReportAtom = atom(null); + +/** Test logs */ +export const automationLogsAtom = atom([]); + +/** Add a log entry */ +export const addLogAtom = atom(null, (get, set, log: string) => { + const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); + const logs = get(automationLogsAtom); + set(automationLogsAtom, [...logs, `[${timestamp}] ${log}`]); +}); + +/** Clear logs */ +export const clearLogsAtom = atom(null, (_get, set) => { + set(automationLogsAtom, []); +}); + +// ============================================================================ +// Derived Atoms +// ============================================================================ + +/** Is automation test running */ +export const isAutomationRunningAtom = atom((get) => { + const progress = get(automationProgressAtom); + return progress.status === 'running' || progress.status === 'preparing-device'; +}); + +/** Is PhonePilot connected */ +export const isPhonePilotConnectedAtom = atom((get) => { + return get(phonePilotConnectionStateAtom) === 'connected'; +}); + +/** Can start automation test */ +export const canStartAutomationAtom = atom((get) => { + const isConnected = get(isPhonePilotConnectedAtom); + const isRunning = get(isAutomationRunningAtom); + const config = get(automationConfigAtom); + return ( + isConnected && + !isRunning && + config.mnemonicGroups.length > 0 && + config.testSuites.length > 0 && + config.passphraseVariants.length > 0 + ); +}); + +/** Progress percentage */ +export const progressPercentageAtom = atom((get) => { + const progress = get(automationProgressAtom); + if (progress.totalTests === 0) return 0; + return Math.round((progress.currentTestIndex / progress.totalTests) * 100); +}); diff --git a/packages/connect-examples/expo-example/src/components/ui/Header.tsx b/packages/connect-examples/expo-example/src/components/ui/Header.tsx index df4606f36..e0c7b1747 100644 --- a/packages/connect-examples/expo-example/src/components/ui/Header.tsx +++ b/packages/connect-examples/expo-example/src/components/ui/Header.tsx @@ -23,6 +23,7 @@ const menuItems: MenuItem[] = [ { route: Routes.FunctionalTesting, labelId: 'tab__functional_testing' }, { route: Routes.AttachToPinTestingScreen, labelId: 'tab__attach_to_pin_testing' }, { route: Routes.ChainMethodTest, labelId: 'tab__chain_method_test' }, + { route: Routes.AutomationTest, labelId: 'tab__automation_test' }, ]; // 菜单按钮组件 diff --git a/packages/connect-examples/expo-example/src/route.ts b/packages/connect-examples/expo-example/src/route.ts index 2cf8f39a5..e38961a2d 100644 --- a/packages/connect-examples/expo-example/src/route.ts +++ b/packages/connect-examples/expo-example/src/route.ts @@ -8,4 +8,5 @@ export const enum Routes { AttachToPinTestingScreen = 'attach-to-pin-testing', SLIP39Test = 'slip39-test', ChainMethodTest = 'chain-method-test', + AutomationTest = 'automation-test', } diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts new file mode 100644 index 000000000..7c48508b6 --- /dev/null +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts @@ -0,0 +1,436 @@ +/** + * PhonePilot MCP Client + * + * Provides communication with PhonePilot MCP Server for mechanical arm control + * and device preparation operations. + */ + +import type { + ConnectionState, + HealthCheckResponse, + ArmConnectResult, + ArmDisconnectResult, + ArmMoveResult, + ArmClickResult, + CaptureFrameResult, + PrepareDeviceParams, + PrepareDeviceResult, + ActionResult, +} from './types'; + +/** Default PhonePilot server URL */ +const DEFAULT_SERVER_URL = 'http://localhost:3847'; + +/** MCP JSON-RPC request ID counter */ +let requestId = 0; + +/** + * PhonePilot MCP Client + * + * Communicates with PhonePilot via MCP Streamable HTTP transport. + */ +export class PhonePilotClient { + private serverUrl: string; + private sessionId: string | null = null; + private connectionState: ConnectionState = 'disconnected'; + private onStateChange?: (state: ConnectionState) => void; + + constructor(serverUrl: string = DEFAULT_SERVER_URL) { + this.serverUrl = serverUrl; + } + + /** + * Sets a callback for connection state changes + */ + setOnStateChange(callback: (state: ConnectionState) => void): void { + this.onStateChange = callback; + } + + /** + * Gets the current connection state + */ + getConnectionState(): ConnectionState { + return this.connectionState; + } + + /** + * Updates connection state and notifies listeners + */ + private updateState(state: ConnectionState): void { + this.connectionState = state; + this.onStateChange?.(state); + } + + /** + * Parses SSE (Server-Sent Events) response format + */ + private parseSSEResponse(sseText: string): { result?: unknown; error?: { message: string } } { + // SSE format: + // event: message + // data: {"jsonrpc":"2.0","id":1,"result":{...}} + // + // event: endpoint + // ... + + const lines = sseText.trim().split('\n'); + let jsonData = ''; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim(); + + if (line.startsWith('data: ')) { + jsonData = line.substring(6); // Remove "data: " prefix + break; + } + } + + if (!jsonData) { + return { error: { message: 'No data field in SSE response' } }; + } + + try { + return JSON.parse(jsonData); + } catch (error) { + return { error: { message: `Failed to parse SSE data: ${error}` } }; + } + } + + /** + * Performs a health check on the PhonePilot server + */ + async healthCheck(): Promise { + try { + const response = await fetch(`${this.serverUrl}/health`); + if (response.ok) { + return await response.json(); + } + return null; + } catch (error) { + console.error('PhonePilot health check failed:', error); + return null; + } + } + + /** + * Connects to the PhonePilot MCP server + */ + async connect(): Promise { + this.updateState('connecting'); + + try { + // Initialize MCP session + const initRequest = { + jsonrpc: '2.0', + id: ++requestId, + method: 'initialize', + params: { + protocolVersion: '2025-03-26', + capabilities: {}, + clientInfo: { + name: 'expo-example-automation', + version: '1.0.0', + }, + }, + }; + + const response = await fetch(`${this.serverUrl}/mcp`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json, text/event-stream', + }, + body: JSON.stringify(initRequest), + }); + + if (!response.ok) { + throw new Error(`MCP connection failed: ${response.status}`); + } + + // Get session ID from response header + this.sessionId = response.headers.get('mcp-session-id'); + + // Send initialized notification + await this.sendNotification('notifications/initialized', {}); + + this.updateState('connected'); + console.log('PhonePilot MCP connected, session:', this.sessionId?.slice(0, 8)); + return true; + } catch (error) { + console.error('PhonePilot MCP connection failed:', error); + this.updateState('error'); + return false; + } + } + + /** + * Disconnects from the PhonePilot MCP server + */ + async disconnect(): Promise { + if (this.sessionId) { + try { + await fetch(`${this.serverUrl}/mcp`, { + method: 'DELETE', + headers: { + 'mcp-session-id': this.sessionId, + }, + }); + } catch (error) { + console.error('PhonePilot MCP disconnect error:', error); + } + this.sessionId = null; + } + this.updateState('disconnected'); + } + + /** + * Sends an MCP request and returns the result + */ + private async sendRequest(method: string, params: Record = {}): Promise { + if (!this.sessionId) { + throw new Error('Not connected to PhonePilot MCP'); + } + + const request = { + jsonrpc: '2.0', + id: ++requestId, + method, + params, + }; + + const response = await fetch(`${this.serverUrl}/mcp`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json, text/event-stream', + 'mcp-session-id': this.sessionId, + }, + body: JSON.stringify(request), + }); + + if (!response.ok) { + throw new Error(`MCP request failed: ${response.status}`); + } + + // Check Content-Type to determine response format + const contentType = response.headers.get('content-type') || ''; + + if (contentType.includes('text/event-stream')) { + // SSE stream response - parse SSE format + const text = await response.text(); + const result = this.parseSSEResponse(text); + + if (result.error) { + throw new Error(result.error.message || 'MCP request error'); + } + + return result.result as T; + } else { + // Direct JSON response + const result = await response.json(); + + if (result.error) { + throw new Error(result.error.message || 'MCP request error'); + } + + return result.result as T; + } + } + + /** + * Sends an MCP notification (no response expected) + */ + private async sendNotification(method: string, params: Record = {}): Promise { + if (!this.sessionId) { + return; + } + + const notification = { + jsonrpc: '2.0', + method, + params, + }; + + await fetch(`${this.serverUrl}/mcp`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json, text/event-stream', + 'mcp-session-id': this.sessionId, + }, + body: JSON.stringify(notification), + }); + } + + /** + * Calls an MCP tool and parses the response + */ + private async callTool(toolName: string, args: Record = {}): Promise { + const result = await this.sendRequest<{ + content: Array<{ + type: string; + text?: string; + data?: string; + mimeType?: string; + }>; + }>('tools/call', { + name: toolName, + arguments: args, + }); + + // Parse the text content as JSON + const textContent = result.content.find((c) => c.type === 'text'); + if (textContent?.text) { + return JSON.parse(textContent.text) as T; + } + + throw new Error(`Tool ${toolName} returned no text content`); + } + + /** + * Calls an MCP tool and returns both parsed result and optional image + */ + private async callToolWithImage( + toolName: string, + args: Record = {} + ): Promise<{ result: T; frame?: string }> { + const response = await this.sendRequest<{ + content: Array<{ + type: string; + text?: string; + data?: string; + mimeType?: string; + }>; + }>('tools/call', { + name: toolName, + arguments: args, + }); + + const textContent = response.content.find((c) => c.type === 'text'); + const imageContent = response.content.find((c) => c.type === 'image'); + + if (!textContent?.text) { + throw new Error(`Tool ${toolName} returned no text content`); + } + + return { + result: JSON.parse(textContent.text) as T, + frame: imageContent?.data, + }; + } + + // ============================================================================ + // Arm Control Methods + // ============================================================================ + + /** + * Connects to the mechanical arm controller + */ + async armConnect(): Promise { + return this.callTool('arm-connect', {}); + } + + /** + * Disconnects from the mechanical arm controller + */ + async armDisconnect(): Promise { + return this.callTool('arm-disconnect', {}); + } + + /** + * Moves the arm to the specified position + */ + async armMove(x: number, y: number, captureFrame = false): Promise { + const { result, frame } = await this.callToolWithImage('arm-move', { + x, + y, + captureFrame, + }); + return { ...result, frame }; + } + + /** + * Performs a click at the current position + */ + async armClick(depth = 12, captureFrame = false): Promise { + const { result, frame } = await this.callToolWithImage('arm-click', { + depth, + captureFrame, + }); + return { ...result, frame }; + } + + /** + * Captures the current camera frame + */ + async captureFrame(): Promise { + const { result, frame } = await this.callToolWithImage('capture-frame', {}); + return { ...result, frame }; + } + + // ============================================================================ + // High-Level Device Operations + // ============================================================================ + + /** + * Taps at a specific screen coordinate + */ + async tapAt(x: number, y: number): Promise { + await this.armMove(x, y); + await this.armClick(); + } + + /** + * Prepares the device with specified mnemonic/configuration + * + * This calls the PhonePilot prepare-device tool which handles: + * - Device reset/wipe + * - Mnemonic recovery + * - PIN setup + * - All physical operations + */ + async prepareDevice(params: PrepareDeviceParams): Promise { + return this.callTool('prepare-device', params as unknown as Record); + } + + /** + * Performs a confirm action on the device + */ + async confirmAction(): Promise { + return this.callTool('confirm-action', { action: 'confirm' }); + } + + /** + * Performs a cancel action on the device + */ + async cancelAction(): Promise { + return this.callTool('confirm-action', { action: 'cancel' }); + } + + /** + * Inputs a PIN on the device + */ + async inputPin(pin: string): Promise { + return this.callTool('input-pin', { pin }); + } + + /** + * Executes a predefined auto operation sequence + * @param sequenceId The sequence ID from PhonePilot (e.g., 'one-normal-24', 'reset-wallet') + */ + async executeSequence(sequenceId: string): Promise { + return this.callTool('execute-sequence', { sequenceId }); + } + + /** + * Stops the currently running sequence + */ + async stopSequence(): Promise { + return this.callTool('stop-sequence', {}); + } +} + +// Export singleton instance +export const phonePilotClient = new PhonePilotClient(); + +// Re-export types +export * from './types'; diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts new file mode 100644 index 000000000..c3f29cea4 --- /dev/null +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -0,0 +1,222 @@ +/** + * PhonePilot MCP Client Type Definitions + */ + +/** MCP Tool call result */ +export interface McpToolResult { + content: Array<{ + type: 'text' | 'image'; + text?: string; + data?: string; + mimeType?: string; + }>; + result?: T; +} + +/** Arm connect result */ +export interface ArmConnectResult { + success: boolean; + handle: number; + message: string; +} + +/** Arm disconnect result */ +export interface ArmDisconnectResult { + success: boolean; + message: string; +} + +/** Arm move result */ +export interface ArmMoveResult { + success: boolean; + position: { x: number; y: number }; + message: string; + frame?: string; // base64 JPEG if captureFrame was true +} + +/** Arm click result */ +export interface ArmClickResult { + success: boolean; + message: string; + frame?: string; // base64 JPEG if captureFrame was true +} + +/** Capture frame result */ +export interface CaptureFrameResult { + success: boolean; + message: string; + frame?: string; // base64 JPEG +} + +/** Device preparation parameters */ +export interface PrepareDeviceParams { + /** Type of test setup */ + testType: 'standard' | 'passphrase' | 'slip39' | 'pin'; + /** Standard mnemonic words */ + mnemonic?: string[]; + /** SLIP39 shares (array of word arrays) */ + slip39Shares?: string[][]; + /** Optional passphrase */ + passphrase?: string; + /** Optional PIN */ + pin?: string; +} + +/** Device preparation result */ +export interface PrepareDeviceResult { + success: boolean; + message: string; +} + +/** Confirm/Cancel action params */ +export interface ConfirmActionParams { + action: 'confirm' | 'cancel'; +} + +/** Action result */ +export interface ActionResult { + success: boolean; + message: string; +} + +/** PhonePilot connection state */ +export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'error'; + +/** PhonePilot health check response */ +export interface HealthCheckResponse { + status: 'ok' | 'error'; + server: string; + version: string; + activeSessions: { + streamable: number; + sse: number; + }; +} + +/** Mnemonic group identifier */ +export type MnemonicGroupId = + | 'count12_one' + | 'count12_two' + | 'count12_three' + | 'count18_one' + | 'count18_two' + | 'count18_three' + | 'count24_one' + | 'count24_two' + | 'count24_three' + | 'slip39_20_one' + | 'slip39_20_two' + | 'slip39_20_three' + | 'slip39_33_one' + | 'slip39_33_two'; + +/** Mnemonic group configuration */ +export interface MnemonicGroup { + id: MnemonicGroupId; + name: string; + type: 'standard' | 'slip39'; + wordCount: number; + /** For standard mnemonic */ + mnemonic?: string[]; + /** For SLIP39 */ + slip39Shares?: string[][]; + /** PhonePilot sequence ID for this mnemonic */ + phonePilotSequenceId: string; +} + +/** Passphrase variant */ +export interface PassphraseVariant { + name: string; + passphrase: string; + passphraseState: string; +} + +/** Passphrase variant identifier */ +export type PassphraseVariantId = 'normal' | 'passphrase_empty' | 'passphrase_1' | 'passphrase_2'; + +/** Passphrase variant display info */ +export const PASSPHRASE_VARIANT_INFO: Record = { + normal: { label: 'Normal', description: '无 Passphrase' }, + passphrase_empty: { label: 'Empty', description: '空字符串 Passphrase' }, + passphrase_1: { label: 'Passphrase 1', description: 'asdfg7890' }, + passphrase_2: { label: 'Passphrase 2', description: '1234567890qwerty...' }, +}; + +/** Test suite type */ +export type TestSuiteType = + | 'address' + | 'pubkey' + | 'passphrase' + | 'slip39' + | 'security' + | 'functional' + | 'attachToPin' + | 'chainMethod'; + +/** Automation test configuration */ +export interface AutomationTestConfig { + /** Test suites to run */ + testSuites: TestSuiteType[]; + /** Mnemonic groups to test */ + mnemonicGroups: MnemonicGroupId[]; + /** Passphrase variants to test */ + passphraseVariants: PassphraseVariantId[]; + /** PhonePilot server URL */ + phonePilotUrl: string; + /** Stop on first error */ + stopOnFirstError: boolean; + /** Retry count for failed tests */ + retryCount: number; + /** Delay between tests in ms */ + delayBetweenTests: number; +} + +/** Test progress state */ +export interface TestProgress { + currentMnemonicGroup: MnemonicGroupId | null; + currentPassphrase: string | null; + currentTestSuite: TestSuiteType | null; + currentTestIndex: number; + totalTests: number; + completedMnemonicGroups: number; + totalMnemonicGroups: number; + status: 'idle' | 'preparing-device' | 'running' | 'paused' | 'done' | 'error'; + errorMessage?: string; +} + +/** Test case result */ +export interface TestCaseResult { + testName: string; + method: string; + expected: string; + actual: string; + passed: boolean; + error?: string; + duration: number; +} + +/** Test suite result */ +export interface TestSuiteResult { + suiteName: string; + mnemonicGroup: MnemonicGroupId; + passphrase: string; + totalTests: number; + passedTests: number; + failedTests: number; + skippedTests: number; + duration: number; + results: TestCaseResult[]; +} + +/** Complete test report */ +export interface TestReport { + startTime: number; + endTime: number; + duration: number; + totalSuites: number; + totalTests: number; + passedTests: number; + failedTests: number; + skippedTests: number; + suiteResults: TestSuiteResult[]; +} diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts new file mode 100644 index 000000000..05129fd21 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts @@ -0,0 +1,9 @@ +/** + * Automation Test Module + * + * Provides automated testing capabilities by integrating PhonePilot MCP + * with the existing test framework. + */ + +export * from './mnemonicGroups'; +export * from './useAutomationTest'; diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts new file mode 100644 index 000000000..88ca0ca76 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts @@ -0,0 +1,433 @@ +/** + * Mnemonic Groups Configuration + * + * Maps test mnemonics to PhonePilot sequences. + * Each group corresponds to a specific mnemonic that PhonePilot can restore on the device. + */ + +import type { + MnemonicGroup, + MnemonicGroupId, + PassphraseVariant, + PassphraseVariantId, +} from '../../services/phonePilotMcp/types'; + +// ============================================================================ +// Standard Mnemonics (12/18/24 words) +// These match the mnemonics defined in PhonePilot ControlPanel.tsx +// ============================================================================ + +/** 12-word mnemonics */ +const MNEMONIC_12_1 = 'air census life sheriff attack include paper provide fantasy left opera sauce'.split(' '); +const MNEMONIC_12_2 = 'relief exchange burst bullet topple manage impose dumb raise panther sibling shove'.split(' '); +const MNEMONIC_12_3 = 'pyramid enforce season tide flag brisk law anchor refuse require reward negative'.split(' '); + +/** 18-word mnemonics */ +const MNEMONIC_18_1 = 'slab canyon coffee wine gold bronze rigid peace output security boy quick vital cat become stove tape super'.split(' '); +const MNEMONIC_18_2 = 'arrange private session nose dial echo skull robust erode rain odor mango solve angle festival amazing decorate menu'.split(' '); +const MNEMONIC_18_3 = 'riot fee raise forget always city spring million spike purse tackle impose faith remove hover snap leopard kitchen'.split(' '); + +/** 24-word mnemonics */ +const MNEMONIC_24_1 = 'gorilla absent bone address stay minimum artist train piano coil gadget truck almost voice runway drip pony pizza uncover expose country enlist avocado hotel'.split(' '); +const MNEMONIC_24_2 = 'jazz cactus tower knee gift crazy tourist exile valid short exhibit cute asthma segment dragon write jacket ribbon cheese ignore use dwarf small dove'.split(' '); +const MNEMONIC_24_3 = 'post flock violin raven size harvest media cash divide blade scale eternal action comic ball increase track unhappy ask speed timber exist trim expose'.split(' '); + +// ============================================================================ +// SLIP39 Mnemonics +// ============================================================================ + +/** slip39 20-word (1 share) */ +const SLIP39_20_1 = [ + 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis'.split(' '), +]; + +/** slip39 20-word (2-3: 3 shares, need 2) */ +const SLIP39_20_2 = [ + 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash'.split(' '), + 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw'.split(' '), + // Third share available but only 2 needed: 'network vexed academic always debut unhappy veteran trust goat cluster easel penalty entrance drift mild uncover short sack excuse kitchen'.split(' '), +]; + +/** slip39 20-word (16-16: 16 shares, need 16) */ +const SLIP39_20_16 = [ + 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught'.split(' '), + 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal'.split(' '), + 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto'.split(' '), + 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic'.split(' '), + 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield'.split(' '), + 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate'.split(' '), + 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august'.split(' '), + 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic'.split(' '), + 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak'.split(' '), + 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer'.split(' '), + 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold'.split(' '), + 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk'.split(' '), + 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle'.split(' '), + 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact'.split(' '), + 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor'.split(' '), + 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash'.split(' '), +]; + +/** slip39 33-word (1 share) */ +const SLIP39_33_1 = [ + 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue'.split(' '), +]; + +/** slip39 33-word (3-2: 3 shares, need 2) */ +const SLIP39_33_2 = [ + 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various'.split(' '), + 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven'.split(' '), + // Third share available but only 2 needed +]; + +// ============================================================================ +// Mnemonic Groups Configuration +// ============================================================================ + +/** + * All available mnemonic groups + * Each group maps to: + * - A specific mnemonic or SLIP39 shares + * - A PhonePilot sequence ID for device restoration + * - Test data folders in addressTest/data/ + */ +export const MNEMONIC_GROUPS: Record = { + // 12-word groups + count12_one: { + id: 'count12_one', + name: '12词-1 (air census...)', + type: 'standard', + wordCount: 12, + mnemonic: MNEMONIC_12_1, + phonePilotSequenceId: 'one-normal-12', + }, + count12_two: { + id: 'count12_two', + name: '12词-2 (relief exchange...)', + type: 'standard', + wordCount: 12, + mnemonic: MNEMONIC_12_2, + phonePilotSequenceId: 'two-normal-12', + }, + count12_three: { + id: 'count12_three', + name: '12词-3 (pyramid enforce...)', + type: 'standard', + wordCount: 12, + mnemonic: MNEMONIC_12_3, + phonePilotSequenceId: 'three-normal-12', + }, + + // 18-word groups + count18_one: { + id: 'count18_one', + name: '18词-1 (slab canyon...)', + type: 'standard', + wordCount: 18, + mnemonic: MNEMONIC_18_1, + phonePilotSequenceId: 'one-normal-18', + }, + count18_two: { + id: 'count18_two', + name: '18词-2 (arrange private...)', + type: 'standard', + wordCount: 18, + mnemonic: MNEMONIC_18_2, + phonePilotSequenceId: 'two-normal-18', + }, + count18_three: { + id: 'count18_three', + name: '18词-3 (riot fee...)', + type: 'standard', + wordCount: 18, + mnemonic: MNEMONIC_18_3, + phonePilotSequenceId: 'three-normal-18', + }, + + // 24-word groups + count24_one: { + id: 'count24_one', + name: '24词-1 (gorilla absent...)', + type: 'standard', + wordCount: 24, + mnemonic: MNEMONIC_24_1, + phonePilotSequenceId: 'one-normal-24', + }, + count24_two: { + id: 'count24_two', + name: '24词-2 (jazz cactus...)', + type: 'standard', + wordCount: 24, + mnemonic: MNEMONIC_24_2, + phonePilotSequenceId: 'two-normal-24', + }, + count24_three: { + id: 'count24_three', + name: '24词-3 (post flock...)', + type: 'standard', + wordCount: 24, + mnemonic: MNEMONIC_24_3, + phonePilotSequenceId: 'three-normal-24', + }, + + // SLIP39 20-word groups + slip39_20_one: { + id: 'slip39_20_one', + name: 'SLIP39-20词-1份', + type: 'slip39', + wordCount: 20, + slip39Shares: SLIP39_20_1, + phonePilotSequenceId: 'count20_one_normal', + }, + slip39_20_two: { + id: 'slip39_20_two', + name: 'SLIP39-20词-2/3', + type: 'slip39', + wordCount: 20, + slip39Shares: SLIP39_20_2, + phonePilotSequenceId: 'count20_two_normal', + }, + slip39_20_three: { + id: 'slip39_20_three', + name: 'SLIP39-20词-16/16', + type: 'slip39', + wordCount: 20, + slip39Shares: SLIP39_20_16, + phonePilotSequenceId: 'count20_three_normal', + }, + + // SLIP39 33-word groups + slip39_33_one: { + id: 'slip39_33_one', + name: 'SLIP39-33词-1份', + type: 'slip39', + wordCount: 33, + slip39Shares: SLIP39_33_1, + phonePilotSequenceId: 'count33_one_normal', + }, + slip39_33_two: { + id: 'slip39_33_two', + name: 'SLIP39-33词-3/2', + type: 'slip39', + wordCount: 33, + slip39Shares: SLIP39_33_2, + phonePilotSequenceId: 'count33_two_normal', + }, +}; + +/** + * Passphrase variants for each mnemonic group + * These match the test data files: normal.ts, passphrase_empty.ts, passphrase_1.ts, passphrase_2.ts + */ +export const PASSPHRASE_VARIANTS: Record = { + count12_one: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n4KZ2aKvYzJzWM6eG1YhNiP1iuGJiYbEh3' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxM4v8Eyo9S5BPCB1xbvmDBLXfACf4rPDK' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'myRpmVHzDdYd1yDm51hghVKKrZrHo9B5HG' }, + ], + count12_two: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3gj4cYqaL2oV2Kqp5kpDtMkfHFNpVLHq2' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mwZpVpJjjYu1NNxfwNRcpM9vVwKJVYpSn4' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mnyqRXNUGn52LJKgxz6LWv9nRoYLc5D41B' }, + ], + count12_three: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3H8jZ9iSfPCpWGVMWJT4Y5LoMRSPKoEiy' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxC7kcQhHvWHTBKLovKdhKnzDHMrFJCGFR' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3wC2CfMy4sD5xnRBVwVq4QeFzaBQPEoEp' }, + ], + count18_one: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3SnW2LPPXgRwT9LxLvxjWVJpNvRFj1bMw' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'msSBAbDfbRHgBF6xBgaEd6YupR3qdVBu9H' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'muuXRoW6N8LZ4SDNMW1g1nvvGNV5e7T42x' }, + ], + count18_two: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'mzUAusDxuKwPhyLxMJwmPGpThiX1qWYJfK' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2MpHzYuEaWL81tT2p5LhkjDQgNGYEywcS' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mzHxQYjvjJLKQoaDZv2VXYwHy5RAXNvMwH' }, + ], + count18_three: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'mz2jx4mxw6qfYNJh5oAxLSz7bYsFFqYD9S' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2NopY1LPRWVGsLTRyMgL8SWXNzxVVNz2A' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3Dj7NJPENKNkXCW78EUK4vX7JXCdvLVTK' }, + ], + count24_one: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'mpZyZrARXurTXC6fhzHdQzs4xVNXCkCbxW' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2LkLQUmqRAFpjBwVAbwLmpnC3C43u1uv6' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3dRrM9B4ZtEVNUiHF18LXNh5UUpZ1h8Zd' }, + ], + count24_two: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n2ygQ1UrZsUdQQb9VKsKcvCYm9yzRXmWPm' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxeLmYLWevRtZ2nKkQ1qFjWQ8Q2dX3dU97' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mzCw8LvNMSYZzQmgKz4BLQFZfCL9MUH3Ln' }, + ], + count24_three: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + { name: 'passphrase_empty', passphrase: '', passphraseState: 'n2bVqSJcvGDrPcT11tCPE6x1nLUVVyAfKF' }, + { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mvCcxPqVVJvbFLKJfvYHvCwD7FdqxGBjUx' }, + { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n19rHMPLTuHxFBQnq5NMSkKMvPvWhjBpCY' }, + ], + // SLIP39 groups - typically only test with normal/empty passphrase + slip39_20_one: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + ], + slip39_20_two: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + ], + slip39_20_three: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + ], + slip39_33_one: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + ], + slip39_33_two: [ + { name: 'normal', passphrase: '', passphraseState: '' }, + ], +}; + +/** + * Get mnemonic group by ID + */ +export function getMnemonicGroup(id: MnemonicGroupId): MnemonicGroup { + return MNEMONIC_GROUPS[id]; +} + +/** + * Get passphrase variants for a mnemonic group + */ +export function getPassphraseVariants(id: MnemonicGroupId): PassphraseVariant[] { + return PASSPHRASE_VARIANTS[id] || []; +} + +/** + * Get all standard (non-SLIP39) mnemonic group IDs + */ +export function getStandardMnemonicGroupIds(): MnemonicGroupId[] { + return Object.keys(MNEMONIC_GROUPS).filter( + (id) => MNEMONIC_GROUPS[id as MnemonicGroupId].type === 'standard' + ) as MnemonicGroupId[]; +} + +/** + * Get all SLIP39 mnemonic group IDs + */ +export function getSlip39MnemonicGroupIds(): MnemonicGroupId[] { + return Object.keys(MNEMONIC_GROUPS).filter( + (id) => MNEMONIC_GROUPS[id as MnemonicGroupId].type === 'slip39' + ) as MnemonicGroupId[]; +} + +/** + * Get all mnemonic group IDs + */ +export function getAllMnemonicGroupIds(): MnemonicGroupId[] { + return Object.keys(MNEMONIC_GROUPS) as MnemonicGroupId[]; +} + +/** + * Mnemonic organization by word count + */ +export interface MnemonicsByWordCount { + wordCount: number; + label: string; + type: 'standard' | 'slip39'; + groups: Array<{ + shareLabel: string; + id: MnemonicGroupId; + }>; +} + +/** + * Get mnemonics organized by word count for UI display + */ +export function getMnemonicsOrganizedByWordCount(): MnemonicsByWordCount[] { + return [ + { + wordCount: 12, + label: '12-word', + type: 'standard', + groups: [ + { shareLabel: 'one', id: 'count12_one' }, + { shareLabel: 'two', id: 'count12_two' }, + { shareLabel: 'three', id: 'count12_three' }, + ], + }, + { + wordCount: 18, + label: '18-word', + type: 'standard', + groups: [ + { shareLabel: 'one', id: 'count18_one' }, + { shareLabel: 'two', id: 'count18_two' }, + { shareLabel: 'three', id: 'count18_three' }, + ], + }, + { + wordCount: 24, + label: '24-word', + type: 'standard', + groups: [ + { shareLabel: 'one', id: 'count24_one' }, + { shareLabel: 'two', id: 'count24_two' }, + { shareLabel: 'three', id: 'count24_three' }, + ], + }, + { + wordCount: 20, + label: 'SLIP39-20', + type: 'slip39', + groups: [ + { shareLabel: 'one', id: 'slip39_20_one' }, + { shareLabel: 'two', id: 'slip39_20_two' }, + { shareLabel: 'three', id: 'slip39_20_three' }, + ], + }, + { + wordCount: 33, + label: 'SLIP39-33', + type: 'slip39', + groups: [ + { shareLabel: 'one', id: 'slip39_33_one' }, + { shareLabel: 'two', id: 'slip39_33_two' }, + ], + }, + ]; +} + +/** + * Get passphrase variants filtered by selected variant IDs + */ +export function getFilteredPassphraseVariants( + mnemonicGroupId: MnemonicGroupId, + selectedVariantIds: PassphraseVariantId[] +): PassphraseVariant[] { + const allVariants = PASSPHRASE_VARIANTS[mnemonicGroupId] || []; + return allVariants.filter((variant) => + selectedVariantIds.includes(variant.name as PassphraseVariantId) + ); +} + +/** + * Get available passphrase variant IDs for a mnemonic group + */ +export function getAvailablePassphraseVariantIds(mnemonicGroupId: MnemonicGroupId): PassphraseVariantId[] { + const variants = PASSPHRASE_VARIANTS[mnemonicGroupId] || []; + return variants.map((v) => v.name as PassphraseVariantId); +} + +/** + * All passphrase variant IDs + */ +export const ALL_PASSPHRASE_VARIANT_IDS: PassphraseVariantId[] = [ + 'normal', + 'passphrase_empty', + 'passphrase_1', + 'passphrase_2', +]; diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts new file mode 100644 index 000000000..f935202f6 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -0,0 +1,683 @@ +/** + * useAutomationTest Hook + * + * Integrates PhonePilot MCP with the existing test framework for automated testing. + * Handles device preparation, UI request interception, and test execution flow. + */ + +import { useCallback, useContext, useRef, useEffect } from 'react'; +import { useAtom, useSetAtom, useAtomValue } from 'jotai'; +import { UI_EVENT, UI_REQUEST, UI_RESPONSE } from '@onekeyfe/hd-core'; + +import { PhonePilotClient } from '../../services/phonePilotMcp'; +import { + phonePilotConnectionStateAtom, + phonePilotUrlAtom, + automationConfigAtom, + automationProgressAtom, + automationReportAtom, + automationLogsAtom, + addLogAtom, + clearLogsAtom, + resetProgressAtom, + cameraFrameAtom, +} from '../../atoms/automationAtoms'; +import { getMnemonicGroup, getFilteredPassphraseVariants } from './mnemonicGroups'; +import HardwareSDKContext from '../../provider/HardwareSDKContext'; +import { useDevice } from '../../provider/DeviceProvider'; + +import type { + TestProgress, + TestReport, + TestSuiteResult, + TestCaseResult, + MnemonicGroupId, + PassphraseVariant, +} from '../../services/phonePilotMcp/types'; +import type { CoreApi } from '@onekeyfe/hd-core'; + +/** + * Automation Test Hook + * + * Provides methods to control automated test execution with PhonePilot integration. + */ +export function useAutomationTest() { + // Atoms + const [connectionState, setConnectionState] = useAtom(phonePilotConnectionStateAtom); + const phonePilotUrl = useAtomValue(phonePilotUrlAtom); + const config = useAtomValue(automationConfigAtom); + const [progress, setProgress] = useAtom(automationProgressAtom); + const setReport = useSetAtom(automationReportAtom); + const logs = useAtomValue(automationLogsAtom); + const addLog = useSetAtom(addLogAtom); + const clearLogs = useSetAtom(clearLogsAtom); + const resetProgress = useSetAtom(resetProgressAtom); + const setCameraFrame = useSetAtom(cameraFrameAtom); + + // Context + const { sdk: SDK } = useContext(HardwareSDKContext); + const { selectedDevice } = useDevice(); + + // Refs + const clientRef = useRef(null); + const runningRef = useRef(false); + const currentPassphraseRef = useRef(''); + + // Track URL for client recreation + const lastUrlRef = useRef(phonePilotUrl); + + // Initialize PhonePilot client (recreate if URL changes) + useEffect(() => { + // Recreate client if URL changed or not initialized + if (!clientRef.current || lastUrlRef.current !== phonePilotUrl) { + // Disconnect old client if exists + if (clientRef.current && lastUrlRef.current !== phonePilotUrl) { + clientRef.current.disconnect(); + } + clientRef.current = new PhonePilotClient(phonePilotUrl); + clientRef.current.setOnStateChange(setConnectionState); + lastUrlRef.current = phonePilotUrl; + } + return () => { + clientRef.current?.disconnect(); + }; + }, [phonePilotUrl, setConnectionState]); + + /** + * Connect to PhonePilot MCP server + */ + const connectPhonePilot = useCallback(async (): Promise => { + // Always disconnect old connection first to ensure fresh connection + if (clientRef.current) { + await clientRef.current.disconnect(); + } + + // Create new client + clientRef.current = new PhonePilotClient(phonePilotUrl); + clientRef.current.setOnStateChange(setConnectionState); + lastUrlRef.current = phonePilotUrl; + + addLog(`Connecting to PhonePilot at ${phonePilotUrl}...`); + const success = await clientRef.current.connect(); + + if (success) { + addLog('PhonePilot connected successfully'); + // Also connect to mechanical arm + try { + const armResult = await clientRef.current.armConnect(); + if (armResult.success) { + addLog(`Arm connected: handle=${armResult.handle}`); + } else { + addLog(`Arm connection failed: ${armResult.message}`); + } + } catch (error) { + addLog(`Arm connection error: ${error}`); + } + } else { + addLog('PhonePilot connection failed'); + } + + return success; + }, [phonePilotUrl, setConnectionState, addLog]); + + /** + * Disconnect from PhonePilot + */ + const disconnectPhonePilot = useCallback(async (): Promise => { + if (clientRef.current) { + try { + await clientRef.current.armDisconnect(); + } catch (error) { + // Ignore disconnect errors + } + await clientRef.current.disconnect(); + addLog('PhonePilot disconnected'); + } + }, [addLog]); + + /** + * Setup SDK UI event listener for physical operations + */ + const setupUIListener = useCallback( + (sdk: CoreApi) => { + sdk.removeAllListeners(UI_EVENT); + + sdk.on(UI_EVENT, async (message: { type: string; payload?: unknown }) => { + addLog(`UI Event: ${message.type}`); + + switch (message.type) { + case UI_REQUEST.REQUEST_BUTTON: + // Device needs physical confirmation + addLog('Device requesting button confirmation...'); + if (clientRef.current) { + try { + await clientRef.current.confirmAction(); + addLog('Button confirmed via PhonePilot'); + } catch (error) { + addLog(`Button confirm failed: ${error}`); + } + } + break; + + case UI_REQUEST.REQUEST_PIN: + // Device needs PIN input + addLog('Device requesting PIN...'); + if (clientRef.current) { + try { + await clientRef.current.inputPin('1111'); // Default test PIN + sdk.uiResponse({ + type: UI_RESPONSE.RECEIVE_PIN, + payload: '@@ONEKEY_INPUT_PIN_IN_DEVICE', + }); + addLog('PIN input via PhonePilot'); + } catch (error) { + addLog(`PIN input failed: ${error}`); + } + } + break; + + case UI_REQUEST.REQUEST_PASSPHRASE: + // Passphrase is sent directly via SDK, no physical input needed + const passphrase = currentPassphraseRef.current; + addLog(`Device requesting passphrase, sending via SDK: "${passphrase || '(empty)'}"...`); + sdk.uiResponse({ + type: UI_RESPONSE.RECEIVE_PASSPHRASE, + payload: { value: passphrase || '' }, + }); + addLog('Passphrase sent via SDK'); + break; + + default: + addLog(`Unhandled UI event: ${message.type}`); + } + }); + }, + [addLog] + ); + + /** + * Prepare device with mnemonic using PhonePilot + */ + const prepareDevice = useCallback( + async (mnemonicGroupId: MnemonicGroupId): Promise => { + if (!clientRef.current) { + addLog('PhonePilot client not initialized'); + return false; + } + + // Check if actually connected (not just state) + if (clientRef.current.getConnectionState() !== 'connected') { + addLog('PhonePilot not connected, attempting to connect...'); + const connected = await connectPhonePilot(); + if (!connected) { + addLog('Failed to connect to PhonePilot'); + return false; + } + } + + const group = getMnemonicGroup(mnemonicGroupId); + addLog(`Preparing device with ${group.name}...`); + + setProgress((prev) => ({ + ...prev, + status: 'preparing-device', + currentMnemonicGroup: mnemonicGroupId, + })); + + try { + // First reset the device + addLog('Resetting device...'); + const resetResult = await clientRef.current.executeSequence('reset-wallet'); + if (!resetResult.success) { + throw new Error(`Reset failed: ${resetResult.message}`); + } + addLog('Device reset complete'); + + // Check if stopped + if (!runningRef.current) { + addLog('Test stopped by user during device preparation'); + return false; + } + + // Wait a bit for device to restart + await delay(5000); + + // Check again before restore + if (!runningRef.current) { + addLog('Test stopped by user during device preparation'); + return false; + } + + // Then restore with the mnemonic + addLog(`Restoring with sequence: ${group.phonePilotSequenceId}...`); + const restoreResult = await clientRef.current.executeSequence(group.phonePilotSequenceId); + if (!restoreResult.success) { + throw new Error(`Mnemonic restoration failed: ${restoreResult.message}`); + } + addLog('Mnemonic restoration complete'); + + // Capture a frame to verify + const frameResult = await clientRef.current.captureFrame(); + if (frameResult.frame) { + setCameraFrame(frameResult.frame); + } + + return true; + } catch (error) { + addLog(`Device preparation failed: ${error}`); + return false; + } + }, + [addLog, setProgress, setCameraFrame, connectPhonePilot] + ); + + /** + * Load test cases based on mnemonic group and passphrase variant + */ + const loadTestCases = useCallback( + async (mnemonicGroupId: MnemonicGroupId, variant: PassphraseVariant) => { + // Dynamic import test data based on mnemonic group + try { + // Import the index file which contains all converted test cases for this mnemonic group + const testDataModule = await import(`../addressTest/dataVariant/${mnemonicGroupId}/index.ts`); + + // Get the singleAddressTest array from the module + // The naming convention is: singleAddressTestCount24One, singleAddressTestCount12Two, etc. + const camelCaseName = mnemonicGroupId + .split('_') + .map((word, index) => + index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1) + ) + .join(''); + const arrayKey = `singleAddressTest${camelCaseName.charAt(0).toUpperCase()}${camelCaseName.slice(1)}`; + const testCasesArray = testDataModule[arrayKey]; + + if (!testCasesArray) { + addLog(`No test data array found for ${mnemonicGroupId} (key: ${arrayKey})`); + return null; + } + + // Find the test case that matches the variant's passphrase and passphraseState + // Each converted test case has an 'extra' field with passphrase and passphraseState + const matchingTestCase = testCasesArray.find((testCase: any) => { + if (!testCase.extra) return false; + + // Match based on passphrase and passphraseState + const passphraseMatches = (testCase.extra.passphrase || '') === variant.passphrase; + const stateMatches = (testCase.extra.passphraseState || '') === variant.passphraseState; + + return passphraseMatches && stateMatches; + }); + + if (!matchingTestCase) { + addLog(`No matching test case found for ${mnemonicGroupId}/${variant.name} (passphrase: "${variant.passphrase}", state: "${variant.passphraseState}")`); + return null; + } + + return matchingTestCase; + } catch (error) { + addLog(`Failed to load test data for ${mnemonicGroupId}/${variant.name}: ${error}`); + return null; + } + }, + [addLog] + ); + + /** + * Run a single test case + */ + const runTestCase = useCallback( + async ( + testCase: any, + sdk: CoreApi, + connectId: string, + deviceId: string + ): Promise => { + const testStartTime = Date.now(); + const method = testCase.method; + const params = testCase.params || {}; + + try { + addLog(`Running ${testCase.id || method}...`); + + // Call SDK method + const result = await (sdk as any)[method](connectId, deviceId, { + ...params, + showOnOneKey: false, // Don't show on device for batch testing + }); + + if (result.success) { + const actualAddress = result.payload?.address || result.payload; + const expectedAddress = testCase.address || testCase.expected; + + const passed = !expectedAddress || actualAddress === expectedAddress; + + if (passed) { + addLog(`✅ ${testCase.id || method}: ${actualAddress}`); + } else { + addLog(`❌ ${testCase.id || method}: Expected ${expectedAddress}, got ${actualAddress}`); + } + + return { + testName: testCase.id || method, + method, + expected: expectedAddress || 'any valid address', + actual: String(actualAddress), + passed, + duration: Date.now() - testStartTime, + }; + } else { + addLog(`❌ ${testCase.id || method} failed: ${result.payload?.error || 'Unknown error'}`); + return { + testName: testCase.id || method, + method, + expected: testCase.address || testCase.expected || 'success', + actual: '', + passed: false, + error: result.payload?.error || 'Unknown error', + duration: Date.now() - testStartTime, + }; + } + } catch (error) { + addLog(`❌ ${testCase.id || method} error: ${error}`); + return { + testName: testCase.id || method, + method, + expected: testCase.address || testCase.expected || 'success', + actual: '', + passed: false, + error: String(error), + duration: Date.now() - testStartTime, + }; + } + }, + [addLog] + ); + + /** + * Run tests for a specific mnemonic group and passphrase variant + */ + const runTestsForVariant = useCallback( + async ( + mnemonicGroupId: MnemonicGroupId, + variant: PassphraseVariant, + sdk: CoreApi, + connectId: string, + _deviceId: string + ): Promise => { + const results: TestCaseResult[] = []; + const startTime = Date.now(); + + currentPassphraseRef.current = variant.passphrase; + addLog(`Testing with passphrase variant: ${variant.name}`); + + setProgress((prev) => ({ + ...prev, + currentPassphrase: variant.name, + })); + + // Load test data for this combination + const testData = await loadTestCases(mnemonicGroupId, variant); + + if (!testData) { + addLog(`No test data available for ${mnemonicGroupId}/${variant.name}`); + return { + suiteName: `${mnemonicGroupId}/${variant.name}`, + mnemonicGroup: mnemonicGroupId, + passphrase: variant.passphrase, + totalTests: 0, + passedTests: 0, + failedTests: 0, + skippedTests: 0, + duration: Date.now() - startTime, + results: [], + }; + } + + // Run all test cases from loaded data + const testCases = Array.isArray(testData) ? testData : [testData]; + + for (const testCase of testCases) { + if (!runningRef.current) break; + + // Handle nested test case data + const cases = testCase.data || [testCase]; + + for (const singleCase of cases) { + if (!runningRef.current) break; + + const result = await runTestCase(singleCase, sdk, connectId, _deviceId); + results.push(result); + + // Small delay between tests + await delay(100); + } + } + + return { + suiteName: `${mnemonicGroupId}/${variant.name}`, + mnemonicGroup: mnemonicGroupId, + passphrase: variant.passphrase, + totalTests: results.length, + passedTests: results.filter((r) => r.passed).length, + failedTests: results.filter((r) => !r.passed).length, + skippedTests: 0, + duration: Date.now() - startTime, + results, + }; + }, + [addLog, setProgress, loadTestCases, runTestCase] + ); + + /** + * Start automation test + */ + const startAutomation = useCallback(async (): Promise => { + if (!SDK || !selectedDevice?.connectId) { + addLog('SDK or device not available'); + return; + } + + if (connectionState !== 'connected') { + addLog('PhonePilot not connected, connecting...'); + const connected = await connectPhonePilot(); + if (!connected) { + addLog('Failed to connect to PhonePilot, aborting test'); + return; + } + } + + runningRef.current = true; + clearLogs(); + resetProgress(); + + const connectId = selectedDevice.connectId; + const featuresRes = await SDK.getFeatures(connectId); + if (!featuresRes.success) { + addLog('Failed to get device features'); + return; + } + const deviceId = featuresRes.payload?.device_id ?? ''; + + // Setup UI listener + setupUIListener(SDK); + + const startTime = Date.now(); + const suiteResults: TestSuiteResult[] = []; + + setProgress({ + currentMnemonicGroup: null, + currentPassphrase: null, + currentTestSuite: null, + currentTestIndex: 0, + totalTests: config.mnemonicGroups.length * 4, // Rough estimate + completedMnemonicGroups: 0, + totalMnemonicGroups: config.mnemonicGroups.length, + status: 'running', + }); + + addLog('=== Automation Test Started ==='); + addLog(`Testing ${config.mnemonicGroups.length} mnemonic groups`); + addLog(`Passphrase variants: ${config.passphraseVariants.join(', ')}`); + addLog(`Test suites: ${config.testSuites.join(', ')}`); + + // Process each mnemonic group + for (let groupIndex = 0; groupIndex < config.mnemonicGroups.length; groupIndex++) { + if (!runningRef.current) { + addLog('Test stopped by user'); + break; + } + + const mnemonicGroupId = config.mnemonicGroups[groupIndex]; + const variants = getFilteredPassphraseVariants(mnemonicGroupId, config.passphraseVariants); + + addLog(`\n--- Mnemonic Group ${groupIndex + 1}/${config.mnemonicGroups.length}: ${mnemonicGroupId} ---`); + + // Skip if no matching passphrase variants for this mnemonic + if (variants.length === 0) { + addLog(`No matching passphrase variants for ${mnemonicGroupId}, skipping...`); + setProgress((prev) => ({ + ...prev, + completedMnemonicGroups: groupIndex + 1, + })); + continue; + } + + addLog(`Testing ${variants.length} passphrase variant(s): ${variants.map((v) => v.name).join(', ')}`); + + // Prepare device for this mnemonic (only once per mnemonic) + const prepared = await prepareDevice(mnemonicGroupId); + if (!prepared) { + addLog(`Failed to prepare device for ${mnemonicGroupId}, skipping...`); + continue; + } + + // After device reset/restore, device_id changes - need to re-fetch features + addLog('Re-fetching device features after reset/restore...'); + const newFeaturesRes = await SDK.getFeatures(connectId); + if (!newFeaturesRes.success) { + addLog('Failed to get device features after reset/restore, skipping...'); + continue; + } + const newDeviceId = newFeaturesRes.payload?.device_id ?? ''; + addLog(`Device ID updated: ${newDeviceId}`); + + // Run tests for each passphrase variant (no device reset needed) + for (const variant of variants) { + if (!runningRef.current) break; + + const result = await runTestsForVariant(mnemonicGroupId, variant, SDK, connectId, newDeviceId); + suiteResults.push(result); + + // Delay between variants + await delay(config.delayBetweenTests); + } + + setProgress((prev) => ({ + ...prev, + completedMnemonicGroups: groupIndex + 1, + })); + } + + // Generate report + const endTime = Date.now(); + const report: TestReport = { + startTime, + endTime, + duration: endTime - startTime, + totalSuites: suiteResults.length, + totalTests: suiteResults.reduce((sum, s) => sum + s.totalTests, 0), + passedTests: suiteResults.reduce((sum, s) => sum + s.passedTests, 0), + failedTests: suiteResults.reduce((sum, s) => sum + s.failedTests, 0), + skippedTests: suiteResults.reduce((sum, s) => sum + s.skippedTests, 0), + suiteResults, + }; + + setReport(report); + setProgress((prev) => ({ ...prev, status: 'done' })); + + addLog('\n=== Automation Test Completed ==='); + addLog(`Duration: ${Math.round(report.duration / 1000)}s`); + addLog(`Passed: ${report.passedTests}/${report.totalTests}`); + addLog(`Failed: ${report.failedTests}`); + + // Cleanup + SDK.removeAllListeners(UI_EVENT); + runningRef.current = false; + }, [ + SDK, + selectedDevice, + connectionState, + config, + addLog, + clearLogs, + resetProgress, + connectPhonePilot, + setupUIListener, + prepareDevice, + runTestsForVariant, + setProgress, + setReport, + ]); + + /** + * Stop automation test + */ + const stopAutomation = useCallback(async () => { + runningRef.current = false; + setProgress((prev) => ({ ...prev, status: 'idle' })); + addLog('Stopping automation test...'); + + // Stop PhonePilot sequence execution + if (clientRef.current) { + try { + await clientRef.current.stopSequence(); + addLog('Stop signal sent to PhonePilot'); + } catch (error) { + console.error('Failed to stop PhonePilot sequence:', error); + } + } + + SDK?.cancel(); + }, [SDK, setProgress, addLog]); + + /** + * Capture current camera frame + */ + const captureFrame = useCallback(async (): Promise => { + if (!clientRef.current || connectionState !== 'connected') { + return null; + } + + try { + const result = await clientRef.current.captureFrame(); + if (result.frame) { + setCameraFrame(result.frame); + return result.frame; + } + } catch (error) { + addLog(`Capture frame failed: ${error}`); + } + return null; + }, [connectionState, setCameraFrame, addLog]); + + return { + // State + connectionState, + progress, + logs, + + // Actions + connectPhonePilot, + disconnectPhonePilot, + startAutomation, + stopAutomation, + captureFrame, + prepareDevice, + }; +} + +// Helper +function delay(ms: number): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx b/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx new file mode 100644 index 000000000..2a85ab908 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx @@ -0,0 +1,1000 @@ +/** + * Automation Test Screen + * + * Provides UI for configuring and running automated hardware wallet tests + * with PhonePilot MCP integration. + */ + +import React, { useCallback, useMemo } from 'react'; +import { + Button, + Card, + Input, + Image, + ScrollView, + Separator, + Stack, + Text, + XStack, + YStack, + styled, +} from 'tamagui'; +import { useAtom, useAtomValue, useSetAtom } from 'jotai'; + +import { DeviceProvider } from '../provider/DeviceProvider'; +import { HardwareInputPinDialogProvider } from '../provider/HardwareInputPinProvider'; +import PageView from '../components/ui/Page'; +import PanelView from '../components/ui/Panel'; + +import { useAutomationTest } from '../testTools/automationTest/useAutomationTest'; +import { + getMnemonicsOrganizedByWordCount, + ALL_PASSPHRASE_VARIANT_IDS, +} from '../testTools/automationTest/mnemonicGroups'; +import { PASSPHRASE_VARIANT_INFO } from '../services/phonePilotMcp/types'; +import { + automationConfigAtom, + automationReportAtom, + cameraFrameAtom, + isAutomationRunningAtom, + isPhonePilotConnectedAtom, + progressPercentageAtom, + phonePilotUrlAtom, +} from '../atoms/automationAtoms'; + +import type { MnemonicGroupId, TestSuiteType, PassphraseVariantId } from '../services/phonePilotMcp/types'; + +/** Available test suite types */ +const TEST_SUITE_OPTIONS: { id: TestSuiteType; label: string }[] = [ + { id: 'address', label: 'Address Test' }, + { id: 'pubkey', label: 'Public Key Test' }, + { id: 'passphrase', label: 'Passphrase Test' }, + { id: 'slip39', label: 'SLIP39 Test' }, + { id: 'security', label: 'Security Check' }, + { id: 'functional', label: 'Functional Test' }, + { id: 'attachToPin', label: 'Attach to PIN' }, + { id: 'chainMethod', label: 'Chain Method' }, +]; + +/** Styled link button */ +const LinkButton = styled(Text, { + fontSize: 12, + color: '$blue10', + cursor: 'pointer', + pressStyle: { opacity: 0.7 }, + hoverStyle: { textDecorationLine: 'underline' }, +}); + +/** Styled table cell for checkbox */ +const TableCheckCell = styled(YStack, { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + paddingVertical: '$1', +}); + +export default function AutomationTestScreen() { + return ( + + + + + {/* Connection Panel */} + + + {/* Configuration Panel */} + + + {/* Progress Panel */} + + + {/* Logs Panel */} + + + {/* Results Panel */} + + + + + + ); +} + +/** + * PhonePilot Connection Panel + */ +function ConnectionPanel() { + const { + connectionState, + connectPhonePilot, + disconnectPhonePilot, + captureFrame, + } = useAutomationTest(); + + const serverUrl = useAtomValue(phonePilotUrlAtom); + const isConnected = connectionState === 'connected'; + const isConnecting = connectionState === 'connecting'; + const isError = connectionState === 'error'; + + return ( + + + {/* Left: Status */} + + + + + {isConnected + ? 'Connected' + : isError + ? 'Failed' + : isConnecting + ? 'Connecting...' + : 'Disconnected'} + + + {serverUrl} + + + + + {/* Right: Actions */} + + {!isConnected ? ( + + + {isConnecting ? 'Connecting...' : 'Connect'} + + + ) : ( + + Disconnect + + )} + + + + ); +} + +/** + * Test Configuration Panel + */ +function ConfigurationPanel() { + const [config, setConfig] = useAtom(automationConfigAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + + const mnemonicsByWordCount = useMemo(() => getMnemonicsOrganizedByWordCount(), []); + const standardMnemonics = useMemo( + () => mnemonicsByWordCount.filter((m) => m.type === 'standard'), + [mnemonicsByWordCount] + ); + const slip39Mnemonics = useMemo( + () => mnemonicsByWordCount.filter((m) => m.type === 'slip39'), + [mnemonicsByWordCount] + ); + + const allTestSuites = useMemo(() => TEST_SUITE_OPTIONS.map((s) => s.id), []); + const allMnemonicIds = useMemo( + () => mnemonicsByWordCount.flatMap((m) => m.groups.map((g) => g.id)), + [mnemonicsByWordCount] + ); + + // Toggle functions + const toggleMnemonicGroup = useCallback( + (groupId: MnemonicGroupId) => { + const newGroups = config.mnemonicGroups.includes(groupId) + ? config.mnemonicGroups.filter((g) => g !== groupId) + : [...config.mnemonicGroups, groupId]; + setConfig({ ...config, mnemonicGroups: newGroups }); + }, + [config, setConfig] + ); + + const togglePassphraseVariant = useCallback( + (variantId: PassphraseVariantId) => { + const newVariants = config.passphraseVariants.includes(variantId) + ? config.passphraseVariants.filter((v) => v !== variantId) + : [...config.passphraseVariants, variantId]; + setConfig({ ...config, passphraseVariants: newVariants }); + }, + [config, setConfig] + ); + + const toggleTestSuite = useCallback( + (suiteId: TestSuiteType) => { + const newSuites = config.testSuites.includes(suiteId) + ? config.testSuites.filter((s) => s !== suiteId) + : [...config.testSuites, suiteId]; + setConfig({ ...config, testSuites: newSuites }); + }, + [config, setConfig] + ); + + // Batch select functions + const selectAllMnemonics = useCallback(() => { + setConfig({ ...config, mnemonicGroups: allMnemonicIds }); + }, [config, setConfig, allMnemonicIds]); + + const clearMnemonics = useCallback(() => { + setConfig({ ...config, mnemonicGroups: [] }); + }, [config, setConfig]); + + const selectAllPassphraseVariants = useCallback(() => { + setConfig({ ...config, passphraseVariants: [...ALL_PASSPHRASE_VARIANT_IDS] }); + }, [config, setConfig]); + + const clearPassphraseVariants = useCallback(() => { + setConfig({ ...config, passphraseVariants: [] }); + }, [config, setConfig]); + + const selectAllTestSuites = useCallback(() => { + setConfig({ ...config, testSuites: allTestSuites }); + }, [config, setConfig, allTestSuites]); + + const clearTestSuites = useCallback(() => { + setConfig({ ...config, testSuites: [] }); + }, [config, setConfig]); + + return ( + + + {/* 1. Mnemonic Selection */} + + + + + + + 1 + + + + Mnemonic Selection + + + + Requires device reset when switching + + + + + Select All + + | + + Clear + + + + + {/* Standard Mnemonics Table */} + + Standard Mnemonics + + + {/* Header */} + + + Share + + {standardMnemonics.map((m) => ( + + {m.label} + + ))} + + {/* Rows */} + {['one', 'two', 'three'].map((shareLabel, rowIndex) => ( + + + {shareLabel} + + {standardMnemonics.map((m) => { + const group = m.groups.find((g) => g.shareLabel === shareLabel); + if (!group) return ; + const isSelected = config.mnemonicGroups.includes(group.id); + return ( + !isRunning && toggleMnemonicGroup(group.id)} + cursor={isRunning ? 'not-allowed' : 'pointer'} + > + + {isSelected && ( + + ✓ + + )} + + + ); + })} + + ))} + + + {/* SLIP39 Mnemonics Table */} + + SLIP39 Mnemonics + + + {/* Header */} + + + Share + + {slip39Mnemonics.map((m) => ( + + {m.label} + + ))} + + {/* Rows */} + {['one', 'two', 'three'].map((shareLabel, rowIndex) => ( + + + {shareLabel} + + {slip39Mnemonics.map((m) => { + const group = m.groups.find((g) => g.shareLabel === shareLabel); + if (!group) { + return ( + + + + ); + } + const isSelected = config.mnemonicGroups.includes(group.id); + return ( + !isRunning && toggleMnemonicGroup(group.id)} + cursor={isRunning ? 'not-allowed' : 'pointer'} + > + + {isSelected && ( + + ✓ + + )} + + + ); + })} + + ))} + + + + + + {/* 2. Passphrase Variants */} + + + + + + + 2 + + + + Passphrase Variants + + + + No device reset needed between variants + + + + + Select All + + | + + Clear + + + + + + {ALL_PASSPHRASE_VARIANT_IDS.map((variantId) => { + const info = PASSPHRASE_VARIANT_INFO[variantId]; + const isSelected = config.passphraseVariants.includes(variantId); + return ( + !isRunning && togglePassphraseVariant(variantId)} + opacity={isRunning ? 0.5 : 1} + cursor={isRunning ? 'not-allowed' : 'pointer'} + minWidth={140} + > + + {isSelected && ( + + ✓ + + )} + + + + {info.label} + + + {info.description} + + + + ); + })} + + + + + + {/* 3. Test Types */} + + + + + + 3 + + + + Test Types + + + + + Select All + + | + + Clear + + + + + + {TEST_SUITE_OPTIONS.map((suite) => { + const isSelected = config.testSuites.includes(suite.id); + return ( + !isRunning && toggleTestSuite(suite.id)} + opacity={isRunning ? 0.5 : 1} + cursor={isRunning ? 'not-allowed' : 'pointer'} + > + + {isSelected && ( + + ✓ + + )} + + + {suite.label} + + + ); + })} + + + + + ); +} + +/** + * Progress Panel + */ +function ProgressPanel() { + const { progress, startAutomation, stopAutomation } = useAutomationTest(); + const isConnected = useAtomValue(isPhonePilotConnectedAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + const progressPercent = useAtomValue(progressPercentageAtom); + const config = useAtomValue(automationConfigAtom); + + const canStart = + isConnected && + !isRunning && + config.mnemonicGroups.length > 0 && + config.passphraseVariants.length > 0 && + config.testSuites.length > 0; + + return ( + + + {/* Configuration Summary */} + {!isRunning && ( + + + + + {config.mnemonicGroups.length} + + + + Mnemonics + + + + + + {config.passphraseVariants.length} + + + + Passphrases + + + + + + {config.testSuites.length} + + + + Test Types + + + + )} + + {/* Status and Controls */} + + + + + + {progress.status.charAt(0).toUpperCase() + progress.status.slice(1)} + + + {progress.currentMnemonicGroup && ( + + {progress.currentMnemonicGroup} + {progress.currentPassphrase && ` → ${progress.currentPassphrase}`} + + )} + + + + + + + + + {/* Progress bar */} + {isRunning && ( + + + + + + {progress.completedMnemonicGroups}/{progress.totalMnemonicGroups} mnemonic + groups completed ({progressPercent}%) + + + )} + + + ); +} + +/** + * Logs Panel + */ +function LogsPanel() { + const { logs } = useAutomationTest(); + + return ( + + + + {logs.length === 0 ? ( + + No logs yet + + ) : ( + logs.map((log, index) => ( + + {log} + + )) + )} + + + + ); +} + +/** + * Results Panel + */ +function ResultsPanel() { + const report = useAtomValue(automationReportAtom); + const [expandedSuite, setExpandedSuite] = React.useState(null); + + if (!report) { + return null; + } + + return ( + + + {/* Summary */} + + + + + {report.passedTests} + + + Passed + + + + + {report.failedTests} + + + Failed + + + + + {report.skippedTests} + + + Skipped + + + + + {report.totalTests} + + + Total + + + + + + {/* Duration */} + + Duration: {Math.round(report.duration / 1000)}s + + + {/* Suite details */} + + Suite Results + {report.suiteResults.map((suite, index) => ( + + {/* Suite header */} + setExpandedSuite(expandedSuite === index ? null : index)} + cursor="pointer" + > + + + {expandedSuite === index ? '▼' : '▶'} + + {suite.suiteName} + + + 0 ? '$red10' : '$green10'} fontWeight="600"> + {suite.passedTests}/{suite.totalTests} + + + {Math.round(suite.duration / 1000)}s + + + + + {/* Test case details - expanded */} + {expandedSuite === index && suite.results && suite.results.length > 0 && ( + + {suite.results.map((testCase, testIndex) => ( + + + + {testCase.passed ? '✅' : '❌'} + + + {testCase.testName || testCase.method} + + + {testCase.duration}ms + + + + {/* Test details */} + + + Method: + {testCase.method} + + + Expected: + + {testCase.expected} + + + + Actual: + + {testCase.actual || '(empty)'} + + + {testCase.error && ( + + Error: + + {testCase.error} + + + )} + + + ))} + + )} + + ))} + + + + ); +} diff --git a/yarn.lock b/yarn.lock index 0754ef425..ac942b4f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8205,6 +8205,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== +"@types/node@^24.9.0": + version "24.10.10" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.10.tgz#ea4813a65368ca7a98dfd75c84d748831b63e1cf" + integrity sha512-+0/4J266CBGPUq/ELg7QUHhN25WYjE0wYTPSQJn1xeu8DOlIOPxXxrNGiLmfAWl7HMMgWFWXpt9IDjMWrF5Iow== + dependencies: + undici-types "~7.16.0" + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -10403,14 +10410,14 @@ bplist-parser@^0.3.1: brace-expansion@^1.1.7, brace-expansion@^2.0.1, brace-expansion@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" braces@3.0.3, braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" @@ -11054,7 +11061,7 @@ ci-info@^3.7.0: cipher-base@1.0.5, cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.5" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.5.tgz#749f80731c7821e9a5fabd51f6998b696f296686" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.5.tgz#749f80731c7821e9a5fabd51f6998b696f296686" integrity sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w== dependencies: inherits "^2.0.4" @@ -11793,7 +11800,7 @@ cross-fetch@^3.1.5: cross-spawn@7.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5, cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== dependencies: path-key "^3.1.0" @@ -12782,13 +12789,13 @@ electron@^25.0.0: "@types/node" "^18.11.18" extract-zip "^2.0.1" -electron@^28.0.0: - version "28.2.3" - resolved "https://registry.yarnpkg.com/electron/-/electron-28.2.3.tgz#d26821bcfda7ee445b4b75231da4b057a7ce6e7b" - integrity sha512-he9nGphZo03ejDjYBXpmFVw0KBKogXvR2tYxE4dyYvnfw42uaFIBFrwGeenvqoEOfheJfcI0u4rFG6h3QxDwnA== +electron@^40.1.0: + version "40.1.0" + resolved "https://registry.npmjs.org/electron/-/electron-40.1.0.tgz#e5c45ecd90bfbaa9dd14db2f7fb5ab730e458a9e" + integrity sha512-2j/kvw7uF0H1PnzYBzw2k2Q6q16J8ToKrtQzZfsAoXbbMY0l5gQi2DLOauIZLzwp4O01n8Wt/74JhSRwG0yj9A== dependencies: "@electron/get" "^2.0.0" - "@types/node" "^18.11.18" + "@types/node" "^24.9.0" extract-zip "^2.0.1" elliptic@6.5.4, elliptic@^6.5.3: @@ -13068,7 +13075,7 @@ es-errors@^1.3.0: es-iterator-helpers@1.0.15, es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.2.1: version "1.0.15" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: asynciterator.prototype "^1.0.0" @@ -19211,7 +19218,7 @@ micromark@^4.0.0: micromatch@4.0.8, micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.8, micromatch@~4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -19667,7 +19674,7 @@ node-gyp-build@^4.5.0, node-gyp-build@^4.8.1, node-gyp-build@^4.8.4: node-gyp@10.0.1, node-gyp@^5.0.2, node-gyp@^7.1.0: version "10.0.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== dependencies: env-paths "^2.2.0" @@ -20494,7 +20501,7 @@ parse-json@^5.0.0, parse-json@^5.2.0: parse-path@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.1.0.tgz#41fb513cb122831807a4c7b29c8727947a09d8c6" + resolved "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz#41fb513cb122831807a4c7b29c8727947a09d8c6" integrity sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw== dependencies: protocols "^2.0.0" @@ -20513,7 +20520,7 @@ parse-uri@^1.0.7: parse-url@8.1.0, parse-url@^6.0.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + resolved "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: parse-path "^7.0.0" @@ -21233,7 +21240,7 @@ pretty-format@^29.7.0: proc-log@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== proc-log@^4.2.0: @@ -21338,7 +21345,7 @@ protobufjs@^6.11.2: protocols@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.2.tgz#822e8fcdcb3df5356538b3e91bfd890b067fd0a4" + resolved "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz#822e8fcdcb3df5356538b3e91bfd890b067fd0a4" integrity sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ== protocols@^2.0.1: @@ -23067,7 +23074,7 @@ sf-symbols-typescript@^1.0.0: sha.js@2.4.12, sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.12" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== dependencies: inherits "^2.0.4" @@ -24874,6 +24881,11 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -25896,7 +25908,7 @@ wordwrap@^1.0.0: wrap-ansi@7.0.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.1.0, wrap-ansi@^9.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" From 6451f3498bbe45cb1d0e579159f3b333209f58e6 Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 12 Mar 2026 22:32:28 +0800 Subject: [PATCH 2/7] feat: automation test scenario catalog, PhonePilot MCP client, and unified test runner Refactor automation test from flat mnemonic groups to Jira-based scenario catalog (OK-26053/26054/5504/40090) with BIP39 and SLIP39 create/import coverage. - Add PhonePilot MCP client with arm control, OCR, sequence execution - Add scenarioCatalog and scenarioResolver for test case resolution - Support passphrase variants (normal/empty/passphrase_1/passphrase_2) - Add test suites: deviceFlow, sdkAddressBatch, sdkPubkeyBatch - Rebuild AutomationTestScreen with connection, config, progress, and report panels - Update SLIP39 test data with unified id format and passphrase support - Add count12_three address/pubkey test data with passphrase variants Co-Authored-By: Claude Opus 4.6 --- .../docs/automation-test-design.md | 938 +++---- .../expo-example/src/atoms/automationAtoms.ts | 144 +- .../src/provider/HardwareInputPinProvider.tsx | 1 + .../src/services/phonePilotMcp/index.ts | 203 +- .../src/services/phonePilotMcp/types.ts | 276 +- .../addressTest/data/count12_three/index.ts | 24 +- .../addressTest/data/count12_three/normal.ts | 1 + .../data/count12_three/passphrase_1.ts | 1 + .../data/count12_three/passphrase_2.ts | 1 + .../data/count12_three/passphrase_empty.ts | 1 + .../dataVariant/count12_one/normal.ts | 2 +- .../dataVariant/count12_three/normal.ts | 2 +- .../dataVariant/count12_two/normal.ts | 2 +- .../dataVariant/count18_one/normal.ts | 2 +- .../dataVariant/count18_three/normal.ts | 2 +- .../dataVariant/count18_two/normal.ts | 2 +- .../dataVariant/count24_one/normal.ts | 2 +- .../dataVariant/count24_three/normal.ts | 2 +- .../dataVariant/count24_two/normal.ts | 2 +- .../src/testTools/automationTest/index.ts | 6 +- .../automationTest/mnemonicGroups.ts | 433 --- .../automationTest/scenarioCatalog.ts | 335 +++ .../automationTest/scenarioResolver.ts | 191 ++ .../automationTest/useAutomationTest.ts | 2483 ++++++++++++++--- .../initDuration/InitDurationTest.tsx | 5 +- .../lockDevice/LockDeviceTest.tsx | 3 +- .../pubkeyTest/data/count12_three/index.ts | 26 +- .../pubkeyTest/data/count12_three/normal.ts | 1 + .../data/count12_three/passphrase_1.ts | 1 + .../data/count12_three/passphrase_2.ts | 1 + .../data/count12_three/passphrase_empty.ts | 1 + .../addressData/count20_one/normal.ts | 832 +++--- .../addressData/count20_one/passphrase_1.ts | 834 +++--- .../addressData/count20_one/passphrase_2.ts | 834 +++--- .../count20_one/passphrase_empty.ts | 834 +++--- .../addressData/count20_three/normal.ts | 862 +++--- .../addressData/count20_three/passphrase_1.ts | 864 +++--- .../addressData/count20_three/passphrase_2.ts | 864 +++--- .../count20_three/passphrase_empty.ts | 864 +++--- .../addressData/count20_two/normal.ts | 834 +++--- .../addressData/count20_two/passphrase_1.ts | 836 +++--- .../addressData/count20_two/passphrase_2.ts | 836 +++--- .../count20_two/passphrase_empty.ts | 836 +++--- .../addressData/count33_one/normal.ts | 832 +++--- .../addressData/count33_one/passphrase_1.ts | 834 +++--- .../addressData/count33_one/passphrase_2.ts | 834 +++--- .../count33_one/passphrase_empty.ts | 834 +++--- .../addressData/count33_two/normal.ts | 834 +++--- .../addressData/count33_two/passphrase_1.ts | 836 +++--- .../addressData/count33_two/passphrase_2.ts | 836 +++--- .../count33_two/passphrase_empty.ts | 836 +++--- .../testTools/slip39Test/addressData/index.ts | 4 +- .../slip39Test/generateUnifiedSLIP39Data.ts | 27 +- .../pubKeyData/count20_one/normal.ts | 275 +- .../pubKeyData/count20_one/passphrase_1.ts | 277 +- .../pubKeyData/count20_one/passphrase_2.ts | 277 +- .../count20_one/passphrase_empty.ts | 277 +- .../pubKeyData/count20_three/normal.ts | 305 +- .../pubKeyData/count20_three/passphrase_1.ts | 307 +- .../pubKeyData/count20_three/passphrase_2.ts | 307 +- .../count20_three/passphrase_empty.ts | 307 +- .../pubKeyData/count20_two/normal.ts | 277 +- .../pubKeyData/count20_two/passphrase_1.ts | 279 +- .../pubKeyData/count20_two/passphrase_2.ts | 279 +- .../count20_two/passphrase_empty.ts | 279 +- .../pubKeyData/count33_one/normal.ts | 275 +- .../pubKeyData/count33_one/passphrase_1.ts | 277 +- .../pubKeyData/count33_one/passphrase_2.ts | 277 +- .../count33_one/passphrase_empty.ts | 277 +- .../pubKeyData/count33_two/normal.ts | 277 +- .../pubKeyData/count33_two/passphrase_1.ts | 279 +- .../pubKeyData/count33_two/passphrase_2.ts | 279 +- .../count33_two/passphrase_empty.ts | 279 +- .../testTools/slip39Test/pubKeyData/index.ts | 4 +- .../src/testTools/slip39Test/slip39Utils.ts | 9 +- .../src/types/external-modules.d.ts | 17 + .../mockDevice/method/nostrGetPublicKey.ts | 5 +- .../mockDevice/method/polkadotGetAddress.ts | 19 +- .../mockDevice/method/polkadotGetPublicKey.ts | 5 +- .../src/views/AutomationTestScreen.tsx | 1690 ++++++----- .../views/FirmwareScreen/ExportDeviceInfo.tsx | 7 +- 81 files changed, 14977 insertions(+), 14376 deletions(-) create mode 100644 packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/normal.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_1.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_2.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_empty.ts delete mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/automationTest/scenarioResolver.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/normal.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_1.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_2.ts create mode 100644 packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_empty.ts create mode 100644 packages/connect-examples/expo-example/src/types/external-modules.d.ts diff --git a/packages/connect-examples/expo-example/docs/automation-test-design.md b/packages/connect-examples/expo-example/docs/automation-test-design.md index 36674ac60..77818aa50 100644 --- a/packages/connect-examples/expo-example/docs/automation-test-design.md +++ b/packages/connect-examples/expo-example/docs/automation-test-design.md @@ -2,652 +2,540 @@ ## 概述 -本文档描述了基于 PhonePilot MCP 的硬件钱包自动化测试系统设计方案。该系统通过机械臂物理控制硬件钱包,实现完全自动化的端到端测试。 +本文档描述 `expo-example` 当前已经落地的 auto-test 方案。当前实现不再使用早期的 `prepare-device` / `mnemonic` 注入模型,而是统一切换为: -## 核心原则:职责分离 +- `PhonePilot execute-sequence` 负责把设备走到目标状态 +- `expo-example` 负责 SDK 连接、UI_EVENT 协调、结果校验与报告生成 +- 场景配置以 `scenarioIds` 驱动,而不是以本地助记词或 `mnemonicGroups` 驱动 +- 只有 `OK-40090` 的 `SLIP39 import` 场景会继续执行 SDK 批量校验 -``` -┌─────────────────────────────────────────────────────────────────────┐ -│ 职责划分 │ -├──────────────────────────────┬──────────────────────────────────────┤ -│ PhonePilot 负责 │ expo-example 负责 │ -├──────────────────────────────┼──────────────────────────────────────┤ -│ ✓ 设备重置 (wipe) │ ✓ 执行测试用例 │ -│ ✓ 恢复助记词 │ ✓ 调用 SDK 方法 │ -│ ✓ 恢复 SLIP39 分片 │ ✓ 验证返回结果 │ -│ ✓ 输入 PIN │ ✓ 记录测试状态 │ -│ ✓ 输入 Passphrase │ ✓ 生成测试报告 │ -│ ✓ 点击确认/取消按钮 │ ✓ 测试流程编排 │ -│ ✓ 所有物理操作 │ ✓ 通知 PhonePilot 执行物理操作 │ -└──────────────────────────────┴──────────────────────────────────────┘ -``` - -**expo-example 不直接调用 SDK.resetDevice() 等设备准备方法,而是通知 PhonePilot 来完成。** +这份文档以当前代码为准,覆盖以下实现文件: -## 目录 - -- [1. 系统架构](#1-系统架构) -- [2. 流程图](#2-流程图) -- [3. 模块设计](#3-模块设计) -- [4. 接口定义](#4-接口定义) -- [5. 状态管理](#5-状态管理) -- [6. 实现计划](#6-实现计划) +- `packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts` +- `packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts` +- `packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts` +- `packages/connect-examples/expo-example/src/testTools/automationTest/scenarioResolver.ts` +- `packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts` +- `packages/connect-examples/expo-example/src/atoms/automationAtoms.ts` +- `packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx` --- -## 1. 系统架构 +## 1. 核心设计原则 -### 1.1 整体架构图 +### 1.1 职责分离 -``` -┌─────────────────────────────────────────────────────────────────────────────────┐ -│ 自动化测试系统架构 │ -├─────────────────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ -│ │ expo-example │ │ PhonePilot │ │ 硬件钱包设备 │ │ -│ │ (测试控制器) │ │ (物理操作) │ │ (OneKey) │ │ -│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ -│ │ │ │ │ -│ │ MCP Protocol │ 机械臂 │ │ -│ │◄──────────────────────►│◄──────────────────────►│ │ -│ │ │ │ │ -│ │ USB/BLE SDK │ │ │ -│ │◄───────────────────────┼───────────────────────►│ │ -│ │ │ │ │ -└─────────────────────────────────────────────────────────────────────────────────┘ -``` +| 模块 | 职责 | +|------|------| +| `PhonePilot` | 通过 `execute-sequence` 驱动设备完成创建/导入;在运行中响应确认按钮、PIN 输入、截图、停止等物理操作 | +| `expo-example` | 负责场景选择、测试编排、SDK 调用、UI_EVENT 处理、SLIP39 数据映射、测试报告输出 | +| `scenarioCatalog` | 维护 Jira 场景矩阵、`sequenceId`、suite 支持范围、SLIP39 数据集映射 | +| `scenarioResolver` | 将 `PassphraseVariantId` 解析为 literal,并把 `slip39DatasetId` 映射到现有地址/公钥数据集 | -### 1.2 组件职责 +### 1.2 当前方案边界 -| 组件 | 职责 | -|------|------| -| **expo-example** | 测试编排、SDK 调用、结果验证、报告生成 | -| **PhonePilot** | MCP Server、机械臂控制、摄像头捕获 | -| **硬件钱包** | 被测设备、执行签名/地址生成等操作 | +当前方案明确不做以下事情: -### 1.3 通信协议 +- 不在 runtime 保存 BIP39 / SLIP39 的导入 seed 数据 +- 不通过 `run-scenario` 动态注入创建结果或导入数据 +- 不做 Desktop 黑盒验证 +- 不再保留旧的 `mnemonicGroups`、`prepare-device`、`screenConfig` 模型 -- **expo-example ↔ PhonePilot**: MCP Protocol (HTTP/SSE) -- **expo-example ↔ 硬件钱包**: USB/Bluetooth (via hardware-js-sdk) -- **PhonePilot ↔ 机械臂**: HTTP (ESP32 Controller) +也就是说,设备初始化的唯一业务入口是 `PhonePilot execute-sequence(sequenceId)`。 --- -## 2. 流程图 +## 2. 系统架构 + +### 2.1 总体关系 + +```text ++---------------------+ MCP / HTTP +---------------------+ +| expo-example | <----------------------> | PhonePilot | +| 场景选择 / Runner | | 机械臂 / 序列执行 | +| SDK 校验 / 报告 | | confirm / pin / 图像 | ++----------+----------+ +----------+----------+ + | | + | SDK / UI_EVENT | 物理操作 + v v ++---------------------+ +---------------------+ +| hardware-js-sdk API | | OneKey Hardware | ++---------------------+ +---------------------+ +``` -### 2.1 测试执行时序图 +### 2.2 运行分层 -``` -┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ -│ expo-example │ │ PhonePilot │ │ 机械臂 │ │ 硬件钱包 │ -│ (测试执行) │ │ (设备准备) │ │ Controller │ │ (OneKey) │ -└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ - │ │ │ │ - │ 1. 请求准备设备 │ │ │ - │ ─────────────────► │ │ │ - │ prepare-device │ │ │ - │ {mnemonic, type} │ │ │ - │ │ │ │ - │ │ 2. PhonePilot 完成设备准备 (内部流程) │ - │ │ ════════════════════════════════════════│ - │ │ │ │ - │ │ 重置设备 │ │ - │ │───────────────────►│───────────────────►│ - │ │ 输入助记词 │ │ - │ │───────────────────►│───────────────────►│ - │ │ 确认操作 │ │ - │ │───────────────────►│───────────────────►│ - │ │ │ │ - │ device-ready │◄═══════════════════════════════════════│ - │ ◄───────────────── │ │ │ - │ │ │ │ - │ 3. 执行测试用例序列 (expo-example 核心职责) │ - │ ════════════════════════════════════════════════════════════│ - │ │ │ │ - │ SDK.btcGetAddress()│ │ │ - │ ───────────────────┼────────────────────┼───────────────────►│ - │ │ │ 显示确认 │ - │ │ │ │ - │ 请求物理确认 │ │ │ - │ ──────────────────►│ move + click │ 物理点击 │ - │ confirm-action │───────────────────►│───────────────────►│ - │ done │◄───────────────────│ │ - │ ◄─────────────────│ │ │ - │ │ │ │ - │ address: 1A1z... │ │ │ - │ ◄──────────────────┼────────────────────┼────────────────────│ - │ │ │ │ - │ 验证地址 ✓ │ │ │ - │ 记录结果 │ │ │ - │ │ │ │ - │ ... 重复更多测试 ... │ │ │ - │ │ │ │ - │ 4. 测试完成,生成报告 │ │ │ - │ ════════════════════════════════════════════════════════════│ - │ │ │ │ - │ 通知测试完成 │ │ │ - │ ──────────────────►│ │ │ - │ test-complete │ │ │ - │ │ │ │ - ▼ ▼ ▼ ▼ -``` +1. `AutomationTestScreen` 提供连接、场景选择、suite 选择、日志与报告 UI +2. `automationAtoms` 持有配置、进度、日志、截图与报告状态 +3. `useAutomationTest` 负责执行主流程 +4. `PhonePilotClient` 负责 MCP 通信与工具调用 +5. `scenarioCatalog` / `scenarioResolver` 负责场景元数据和 SDK 数据解析 -### 2.2 测试套件执行流程 +--- -``` -┌─────────────────────────────────────────────────────────────────────┐ -│ 自动化测试套件执行流程 │ -├─────────────────────────────────────────────────────────────────────┤ -│ │ -│ ┌─────────────┐ │ -│ │ 开始测试 │ │ -│ └──────┬──────┘ │ -│ ▼ │ -│ ┌─────────────────────────────────────┐ │ -│ │ 1. 初始化阶段 (expo-example) │ │ -│ │ ├─ 连接 PhonePilot MCP │ │ -│ │ └─ 连接硬件钱包 (USB/BLE) │ │ -│ └──────┬──────────────────────────────┘ │ -│ ▼ │ -│ ┌─────────────────────────────────────────────────────────────┐ │ -│ │ 2. 按助记词分组执行 (每个助记词只需准备一次) │ │ -│ │ │ │ -│ │ ┌───────────────────────────────────────────────────────┐ │ │ -│ │ │ 助记词组 1: count24_one (24位助记词 - 组1) │ │ │ -│ │ │ ├─ prepare-device {mnemonic} ← PhonePilot 重置恢复 │ │ │ -│ │ │ │ │ │ │ -│ │ │ │ 同一助记词下,不需要重置: │ │ │ -│ │ │ ├─ normal: 执行测试 (无 passphrase) │ │ │ -│ │ │ ├─ passphrase_empty: 执行测试 (passphrase="") │ │ │ -│ │ │ ├─ passphrase_1: 执行测试 (passphrase="asdfg7890") │ │ │ -│ │ │ └─ passphrase_2: 执行测试 (passphrase="xxx") │ │ │ -│ │ └───────────────────────────────────────────────────────┘ │ │ -│ │ ▼ 切换助记词,需要重置 │ │ -│ │ ┌───────────────────────────────────────────────────────┐ │ │ -│ │ │ 助记词组 2: count24_two (24位助记词 - 组2) │ │ │ -│ │ │ ├─ prepare-device {mnemonic} ← PhonePilot 重置恢复 │ │ │ -│ │ │ ├─ normal, passphrase_empty, passphrase_1, ... │ │ │ -│ │ └───────────────────────────────────────────────────────┘ │ │ -│ │ ▼ 切换到 SLIP39 │ │ -│ │ ┌───────────────────────────────────────────────────────┐ │ │ -│ │ │ SLIP39 测试组 │ │ │ -│ │ │ ├─ prepare-device {slip39Shares} ← 分片恢复 │ │ │ -│ │ │ └─ 执行 SLIP39 测试用例 │ │ │ -│ │ └───────────────────────────────────────────────────────┘ │ │ -│ │ ▼ │ │ -│ │ ... 更多助记词组 ... │ │ -│ │ │ │ -│ └──────┬──────────────────────────────────────────────────────┘ │ -│ ▼ │ -│ ┌─────────────────────────────────────┐ │ -│ │ 3. 报告生成 (expo-example) │ │ -│ │ ├─ 汇总测试结果 │ │ -│ │ ├─ 生成 Markdown 报告 │ │ -│ │ └─ 导出/保存报告 │ │ -│ └──────┬──────────────────────────────┘ │ -│ ▼ │ -│ ┌─────────────┐ │ -│ │ 测试完成 │ │ -│ └─────────────┘ │ -│ │ -└─────────────────────────────────────────────────────────────────────┘ +## 3. 场景模型 + +### 3.1 场景字段 + +当前自动化不再以助记词数组直接驱动,而是以 `AutomationScenario` 作为最小执行单元: + +```ts +export interface AutomationScenario { + id: AutomationScenarioId; + jiraKey: JiraIssueKey; + title: string; + flowType: 'create' | 'import'; + walletType: 'bip39' | 'slip39'; + caseLabel: string; + wordCount: number; + shareCount?: number; + threshold?: number; + phonePilotSequenceId: string; + supportedSuites: TestSuiteType[]; + slip39DatasetId?: Slip39DatasetId; +} ``` -### 2.3 设备重置时机 +关键点: + +- `phonePilotSequenceId` 是执行时唯一的设备流入口 +- `supportedSuites` 决定场景可执行哪些 suite +- `slip39DatasetId` 只在 `OK-40090` 场景下使用,用于映射现有 `slip39Test` 数据 +- 不再存在 `importArtifact`、`ScenarioArtifact` 等 seed 载荷字段 + +### 3.2 当前 Jira 场景矩阵 + +当前共 15 个 concrete case: + +| Jira | 场景 | scenarioId | sequenceId | suites | dataset | +|------|------|------------|------------|--------|---------| +| `OK-26053` | BIP39 create 12 | `ok26053_bip39_create_12` | `bip39-create-12` | `deviceFlow` | - | +| `OK-26053` | BIP39 create 18 | `ok26053_bip39_create_18` | `bip39-create-18` | `deviceFlow` | - | +| `OK-26053` | BIP39 create 24 | `ok26053_bip39_create_24` | `bip39-create-24` | `deviceFlow` | - | +| `OK-26054` | BIP39 import 12 | `ok26054_bip39_import_12` | `bip39-import-12` | `deviceFlow` | - | +| `OK-26054` | BIP39 import 18 | `ok26054_bip39_import_18` | `bip39-import-18` | `deviceFlow` | - | +| `OK-26054` | BIP39 import 24 | `ok26054_bip39_import_24` | `bip39-import-24` | `deviceFlow` | - | +| `OK-5504` | SLIP39 create 20(1-1) | `ok5504_slip39_create_20_1of1` | `slip39-create-20-1of1` | `deviceFlow` | - | +| `OK-5504` | SLIP39 create 20(2-2) | `ok5504_slip39_create_20_2of2` | `slip39-create-20-2of2` | `deviceFlow` | - | +| `OK-5504` | SLIP39 create 20(8-8) | `ok5504_slip39_create_20_8of8` | `slip39-create-20-8of8` | `deviceFlow` | - | +| `OK-5504` | SLIP39 create 20(16-2) | `ok5504_slip39_create_20_16of2` | `slip39-create-20-16of2` | `deviceFlow` | - | +| `OK-40090` | SLIP39 import 20(1-1) | `ok40090_slip39_import_20_1of1` | `slip39-import-20-1of1` | `deviceFlow + sdkAddressBatch + sdkPubkeyBatch` | `count20_one` | +| `OK-40090` | SLIP39 import 20(3-2) | `ok40090_slip39_import_20_3of2` | `slip39-import-20-3of2` | `deviceFlow + sdkAddressBatch + sdkPubkeyBatch` | `count20_two` | +| `OK-40090` | SLIP39 import 20(16-16) | `ok40090_slip39_import_20_16of16` | `slip39-import-20-16of16` | `deviceFlow + sdkAddressBatch + sdkPubkeyBatch` | `count20_three` | +| `OK-40090` | SLIP39 import 33(1-1) | `ok40090_slip39_import_33_1of1` | `slip39-import-33-1of1` | `deviceFlow + sdkAddressBatch + sdkPubkeyBatch` | `count33_one` | +| `OK-40090` | SLIP39 import 33(2-3) | `ok40090_slip39_import_33_2of3` | `slip39-import-33-2of3` | `deviceFlow + sdkAddressBatch + sdkPubkeyBatch` | `count33_two` | + +### 3.3 Test suite 定义 + +当前只保留 3 个真正可执行的 suite: + +```ts +export type TestSuiteType = 'deviceFlow' | 'sdkAddressBatch' | 'sdkPubkeyBatch'; +``` -| 场景 | 是否需要重置 | 说明 | -|------|-------------|------| -| 同一助记词下执行多个测试用例 | ❌ 不需要 | 钱包状态不变 | -| 同一助记词,切换 Passphrase | ❌ 不需要 | Passphrase 运行时通过 SDK 输入 | -| 切换到不同助记词 | ✅ 需要 | 调用 `prepare-device` | -| 切换到 SLIP39 恢复 | ✅ 需要 | 调用 `prepare-device` | -| 设置/修改 PIN | ✅ 需要 | 调用 `prepare-device` | +含义如下: -**说明**: Passphrase 是通过 SDK 的 `UI_REQUEST.REQUEST_PASSPHRASE` 事件在运行时输入的,不需要重置设备。 +| suite | 说明 | +|------|------| +| `deviceFlow` | 调用 `PhonePilot execute-sequence`,验证设备端流程是否成功 | +| `sdkAddressBatch` | 基于 `slip39Test/addressData` 执行地址批量校验 | +| `sdkPubkeyBatch` | 基于 `slip39Test/pubKeyData` 执行公钥批量校验 | --- -## 3. 模块设计 +## 4. PhonePilot 接口约定 + +### 4.1 当前实际使用的能力 -### 3.1 目录结构 +`PhonePilotClient` 当前面向 auto-test 暴露以下能力: +```ts +class PhonePilotClient { + async connect(): Promise; + async disconnect(): Promise; + async healthCheck(): Promise; + + async armConnect(): Promise; + async armDisconnect(): Promise; + async armMove(x: number, y: number, captureFrame?: boolean): Promise; + async armClick(depth?: number, captureFrame?: boolean): Promise; + async captureFrame(): Promise; + + async confirmAction(): Promise; + async cancelAction(): Promise; + async inputPin(pin: string): Promise; + async executeSequence(sequenceId: string): Promise; + async stopSequence(): Promise; +} ``` -expo-example/src/ -├── services/ -│ └── phonePilotMcp/ # 新增: PhonePilot MCP 客户端 -│ ├── index.ts # MCP 客户端主模块 -│ ├── types.ts # 类型定义 -│ ├── walletActions.ts # 钱包物理操作封装 -│ └── screenMapping.ts # 屏幕坐标映射配置 -│ -├── testTools/ -│ └── automationTest/ # 新增: 自动化测试编排 -│ ├── index.ts # 测试套件入口 -│ ├── testSuiteRunner.ts # 测试套件执行器 -│ ├── devicePreparation.ts # 设备准备逻辑 -│ └── reportGenerator.ts # 增强版报告生成 -│ -├── views/ -│ └── AutomationTestScreen.tsx # 新增: 自动化测试界面 -│ -└── atoms/ - └── automationAtoms.ts # 新增: 自动化测试状态 + +### 4.2 当前与 auto-test 有关的 MCP tools + +| Tool | 用途 | 是否关键路径 | +|------|------|-------------| +| `execute-sequence` | 执行 Jira 对应创建/导入设备流 | 是 | +| `confirm-action` | 响应 SDK 的确认按钮请求 | 是 | +| `input-pin` | 响应 SDK 的 PIN 输入请求 | 是 | +| `stop-sequence` | 用户点击“停止执行”时中断 PhonePilot 当前流程 | 是 | +| `capture-frame` | 获取最近截图并显示在页面 | 否 | +| `arm-connect` / `arm-disconnect` | 机械臂连接和断开 | 否 | +| `arm-move` / `arm-click` | 调试用原子能力 | 否 | + +### 4.3 不再使用的旧接口 + +以下接口已经不属于当前方案,不应再作为设计目标: + +- `prepare-device` +- `input-passphrase` +- `run-scenario` +- `screenConfig` +- `mnemonicGroups` +- 本地 seed / artifact 注入 + +### 4.4 execute-sequence 返回要求 + +Runner 依赖 `execute-sequence` 至少返回: + +```ts +export interface ExecuteSequenceResult { + success: boolean; + message: string; + sequenceId?: string; + sequenceName?: string; + stepsCompleted?: number; + totalSteps?: number; + frame?: string; +} ``` -### 3.2 模块说明 +其中: -#### 3.2.1 PhonePilot MCP 客户端 (`services/phonePilotMcp/`) +- `success` / `message` 用于判定 `deviceFlow` 成败 +- `sequenceId` / `stepsCompleted` / `totalSteps` 会被写入测试报告元数据 +- `frame` 会被展示为自动化页面中的最近一帧 -负责与 PhonePilot MCP Server 通信,封装机械臂控制操作。 +--- -**核心类:** +## 5. Runner 执行流程 + +### 5.1 启动条件 + +`useAutomationTest` 启动自动化前需要满足: + +- `PhonePilot` 已连接 +- `SDK` 已初始化 +- `selectedDevice.connectId` 可用 +- 至少选择 1 个 `scenarioId` +- 至少选择 1 个 `testSuite` + +### 5.2 主流程 + +```mermaid +sequenceDiagram + participant UI as AutomationTestScreen + participant Hook as useAutomationTest + participant PP as PhonePilotClient + participant SDK as Hardware SDK + participant Device as OneKey Device + + UI->>Hook: startAutomation() + Hook->>PP: connect()/healthCheck() + Hook->>PP: executeSequence(sequenceId) + PP->>Device: 执行创建/导入序列 + PP-->>Hook: success/message/frame + Hook->>SDK: 监听 UI_EVENT + SDK-->>Hook: REQUEST_BUTTON / REQUEST_PIN / REQUEST_PASSPHRASE + Hook->>PP: confirmAction()/inputPin() + Hook->>SDK: RECEIVE_PASSPHRASE(value) + Hook->>SDK: getFeatures(connectId) + Hook->>SDK: 地址/公钥批量方法调用 + Hook-->>UI: 更新日志、进度、报告、截图 +``` -- `PhonePilotClient` - MCP 协议客户端 -- `WalletPhysicalActions` - 钱包物理操作高级封装 -- `ScreenConfig` - 屏幕坐标配置 +### 5.3 关键执行逻辑 -#### 3.2.2 自动化测试编排 (`testTools/automationTest/`) +#### 第一步:设备流执行 -负责测试流程编排、设备准备、结果收集。 +每个场景先执行 `deviceFlow`: -**核心类:** +```ts +await client.executeSequence(scenario.phonePilotSequenceId); +``` -- `AutomationTestRunner` - 测试执行引擎 -- `DevicePreparation` - 设备状态准备 -- `ReportGenerator` - 报告生成器 +行为说明: -#### 3.2.3 自动化测试界面 (`views/AutomationTestScreen.tsx`) +- 成功时生成一条 `Device Flow` suite 结果 +- 失败时该场景直接失败,其余 SDK suites 标记为 skipped +- 如果返回 `frame`,立即更新页面截图 -提供可视化的测试配置和执行界面。 +#### 第二步:UI_EVENT 协调 ---- +当前 `UI_EVENT` 处理策略如下: -## 4. 接口定义 +| UI_EVENT | 当前处理方式 | +|----------|-------------| +| `REQUEST_BUTTON` | 调 `PhonePilot confirmAction()` | +| `REQUEST_PIN` | 调 `PhonePilot inputPin('1111')`,再回 `RECEIVE_PIN` | +| `REQUEST_PASSPHRASE` | 不通过 PhonePilot 输入,直接用 SDK `RECEIVE_PASSPHRASE` 回传 literal | -### 4.1 PhonePilot MCP 客户端 +这里有一个重要差异: -```typescript -// services/phonePilotMcp/index.ts +- `PIN` 仍由 PhonePilot 进行设备侧物理输入 +- `Passphrase` 当前由 runner 通过 SDK 直接返回 literal,不走 PhonePilot 工具 -export class PhonePilotClient { - private serverUrl: string; - private sessionId: string | null = null; +#### 第三步:SLIP39 SDK 校验 - constructor(serverUrl: string = 'http://localhost:3847'); +只有带 `slip39DatasetId` 的 `OK-40090` 场景会跑 SDK batch: - // 连接管理 - async connect(): Promise; - async disconnect(): Promise; - async healthCheck(): Promise; +1. 先 `sdk.getFeatures(connectId)` 读取最新 `deviceId` +2. 再按 `scenarioResolver` 解析出的地址/公钥 case 列表逐个执行 +3. 按 `passphraseVariants` 过滤要跑的隐藏钱包变体 - // 机械臂控制 - async armConnect(): Promise; - async armDisconnect(): Promise; - async armMove(x: number, y: number, captureFrame?: boolean): Promise; - async armClick(depth?: number, captureFrame?: boolean): Promise; - async captureFrame(): Promise; // base64 JPEG - - // 高级操作 - async tapAt(x: number, y: number): Promise; - async inputText(text: string, keyboard: KeyboardLayout): Promise; -} -``` +如果 `deviceFlow` 失败,或 `deviceId` 获取失败,则后续 SDK suites 直接失败或跳过。 -### 4.2 PhonePilot MCP 扩展工具 (需在 PhonePilot 侧实现) +--- -expo-example 通过 MCP 调用以下工具,由 PhonePilot 负责执行: +## 6. 数据解析策略 -```typescript -// PhonePilot 需要新增的 MCP Tools +### 6.1 BIP39 策略 -// 设备准备 (PhonePilot 内部处理所有物理操作) -interface PrepareDeviceParams { - testType: 'standard' | 'passphrase' | 'slip39' | 'pin'; - mnemonic?: string[]; // 标准助记词 - slip39Shares?: string[][]; // SLIP39 分片 - passphrase?: string; // Passphrase - pin?: string; // PIN -} -// Tool: prepare-device +BIP39 当前只保留场景级元数据,不在 runtime 存储导入助记词: -// 物理确认操作 -interface ConfirmActionParams { - action: 'confirm' | 'cancel'; -} -// Tool: confirm-action +- `OK-26053`:只执行创建流程的 `deviceFlow` +- `OK-26054`:只执行导入流程的 `deviceFlow` +- 具体导入词组由 PhonePilot 原生 sequence 自己维护 -// 输入 Passphrase (测试过程中) -interface InputPassphraseParams { - passphrase: string; -} -// Tool: input-passphrase +这样可以避免: -// 输入 PIN (测试过程中) -interface InputPinParams { - pin: string; -} -// Tool: input-pin -``` +- 在 `expo-example` runtime 打进整份 seed 数据 +- 设计文档与 PhonePilot 真正执行的词组发生漂移 +- 本地测试代码继续依赖已废弃的 seed 注入机制 -### 4.3 expo-example 调用封装 +### 6.2 SLIP39 策略 -```typescript -// services/phonePilotMcp/index.ts +SLIP39 的设备导入流程也由 PhonePilot sequence 负责,但 SDK 校验仍复用仓库里的现有数据: -export class PhonePilotClient { - private serverUrl: string; +- 地址数据:`testTools/slip39Test/addressData` +- 公钥数据:`testTools/slip39Test/pubKeyData` - constructor(serverUrl: string = 'http://localhost:3847'); +`scenarioResolver` 通过 `slip39DatasetId` 组装 case id: - // 连接管理 - async connect(): Promise; - async disconnect(): Promise; - async healthCheck(): Promise; +```ts +count20_one + passphrase_2 -> count20_one_passphrase_2 +count33_two + normal -> count33_two_normal +``` - // 设备准备 (通知 PhonePilot 执行) - async prepareDevice(params: PrepareDeviceParams): Promise<{ success: boolean }>; +### 6.3 Passphrase literal 映射 - // 物理操作 (通知 PhonePilot 执行) - async confirmAction(): Promise; - async cancelAction(): Promise; - async inputPassphrase(passphrase: string): Promise; - async inputPin(pin: string): Promise; +当前隐藏钱包密码短语映射如下: - // 调试用 - async captureFrame(): Promise; // base64 JPEG -} -``` +#### BIP39 -### 4.3 屏幕坐标配置 +| variant | literal | +|---------|---------| +| `normal` | `undefined` | +| `passphrase_empty` | `''` | +| `passphrase_1` | `asdfg7890` | +| `passphrase_2` | `1234567890qwertyuiopasdfghjklzxcvbnm` | -```typescript -// services/phonePilotMcp/screenMapping.ts +#### SLIP39 -export interface ScreenConfig { - deviceType: 'classic' | 'classic1s' | 'pro' | 'touch' | 'mini'; +| variant | literal | +|---------|---------| +| `normal` | `undefined` | +| `passphrase_empty` | `''` | +| `passphrase_1` | `12345` | +| `passphrase_2` | `onekey` | - // 键盘布局坐标 - keyboard: { - [key: string]: { x: number; y: number }; - }; +页面会在配置区明确提示: - // 按钮位置 - buttons: { - confirm: { x: number; y: number }; - cancel: { x: number; y: number }; - back: { x: number; y: number }; - }; +- 报告展示 literal +- `SLIP39` 的 `passphrase_1 = 12345` +- `SLIP39` 的 `passphrase_2 = onekey` - // 功能区域 - areas: { - scrollUp: { x: number; y: number }; - scrollDown: { x: number; y: number }; - }; -} +--- -// 预设配置 -export const SCREEN_CONFIGS: Record = { - classic1s: { /* ... */ }, - pro: { /* ... */ }, - // ... -}; -``` +## 7. 配置与状态管理 -### 4.4 自动化测试配置 +### 7.1 AutomationTestConfig -```typescript -// testTools/automationTest/types.ts +当前配置模型如下: +```ts export interface AutomationTestConfig { - // 测试配置 + scenarioIds: AutomationScenarioId[]; testSuites: TestSuiteType[]; - mnemonic: string[]; // 测试用助记词 - passphrase?: string; // 可选 passphrase - slip39Shares?: string[][]; // SLIP39 分片 - pin?: string; // 测试 PIN - - // PhonePilot 配置 + passphraseVariants: PassphraseVariantId[]; phonePilotUrl: string; - screenConfig: ScreenConfig; - - // 执行选项 stopOnFirstError: boolean; retryCount: number; delayBetweenTests: number; } - -export type TestSuiteType = - | 'address' - | 'pubkey' - | 'passphrase' - | 'slip39' - | 'security' - | 'functional' - | 'attachToPin' - | 'chainMethod'; ``` -### 4.5 测试套件执行器 - -```typescript -// testTools/automationTest/testSuiteRunner.ts - -export class AutomationTestRunner { - private config: AutomationTestConfig; - private phonePilot: PhonePilotClient; - private sdk: HardwareSDK; - - constructor(config: AutomationTestConfig); - - // 生命周期 - async initialize(): Promise; - async runAllTests(): Promise; - async stop(): Promise; - async cleanup(): Promise; +默认值: - // 请求 PhonePilot 准备设备 (不直接操作设备) - private async requestDevicePreparation(suiteType: TestSuiteType): Promise; +```ts +{ + scenarioIds: ['ok26054_bip39_import_12', 'ok40090_slip39_import_20_1of1'], + testSuites: ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch'], + passphraseVariants: ['normal', 'passphrase_2'], + phonePilotUrl: process.env.EXPO_PUBLIC_PHONEPILOT_URL || 'http://localhost:3847', + stopOnFirstError: false, + retryCount: 1, + delayBetweenTests: 500, +} +``` - // 测试执行 (expo-example 核心职责) - private async runTestSuite(suite: TestSuiteType): Promise; - private async executeTestCase(testCase: TestCase): Promise; +### 7.2 Jotai atoms - // UI 请求处理 (通知 PhonePilot 执行物理操作) - private async handleUIRequest(request: UIRequest): Promise; +当前页面实际使用的 atoms: - // 事件回调 - onProgress: (progress: TestProgress) => void; - onTestComplete: (result: TestCaseResult) => void; - onSuiteComplete: (result: SuiteResult) => void; +| atom | 作用 | +|------|------| +| `phonePilotConnectionStateAtom` | PhonePilot 连接状态 | +| `cameraFrameAtom` | 最近一帧截图 | +| `automationConfigAtom` | 自动化配置 | +| `automationProgressAtom` | 运行进度 | +| `automationReportAtom` | 最终报告 | +| `automationLogsAtom` | 实时日志 | +| `isAutomationRunningAtom` | 是否处于运行中 | +| `canStartAutomationAtom` | 是否满足启动条件 | +| `progressPercentageAtom` | suite 级进度百分比 | + +### 7.3 Progress 与 Report 结构 + +#### Progress + +```ts +export interface TestProgress { + currentScenarioId: AutomationScenarioId | null; + currentScenarioTitle: string | null; + currentPassphrase: string | null; + currentTestSuite: TestSuiteType | null; + currentTestIndex: number; + totalTests: number; + completedScenarios: number; + totalScenarios: number; + completedSuites: number; + totalSuites: number; + status: 'idle' | 'preparing-device' | 'running' | 'paused' | 'done' | 'error'; + errorMessage?: string; } ``` -**核心逻辑示意:** - -```typescript -async function runAutomationTest(config: AutomationTestConfig) { - const phonePilot = new PhonePilotClient(config.phonePilotUrl); - await phonePilot.connect(); - - // 1. 请求 PhonePilot 准备设备 (PhonePilot 内部完成重置、恢复助记词等) - await phonePilot.prepareDevice({ - testType: 'standard', - mnemonic: config.mnemonic, - }); - - // 2. 设置 SDK 监听器 (当需要物理操作时通知 PhonePilot) - sdk.on(UI_EVENT, async (message) => { - if (message.type === UI_REQUEST.REQUEST_BUTTON) { - await phonePilot.confirmAction(); // 通知 PhonePilot 点击确认 - } - if (message.type === UI_REQUEST.REQUEST_PIN) { - await phonePilot.inputPin(config.pin); - sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PIN, payload: '@@ONEKEY_INPUT_PIN_IN_DEVICE' }); - } - if (message.type === UI_REQUEST.REQUEST_PASSPHRASE) { - await phonePilot.inputPassphrase(config.passphrase); - sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PASSPHRASE, payload: { passphraseOnDevice: true } }); - } - }); - - // 3. 执行测试 (expo-example 核心职责) - for (const testCase of testCases) { - const result = await sdk.btcGetAddress(...); // 调用 SDK - validateResult(result); // 验证结果 - recordResult(testCase, result); // 记录结果 - } - - // 4. 生成报告 - return generateReport(results); +#### Report + +```ts +export interface TestReport { + startTime: number; + endTime: number; + duration: number; + totalScenarios: number; + passedScenarios: number; + failedScenarios: number; + skippedScenarios: number; + scenarioResults: ScenarioReportResult[]; } ``` ---- - -## 5. 状态管理 +报告按 `scenario -> suite -> case` 三层组织,页面直接按这个结构展示。 -### 5.1 Jotai Atoms - -```typescript -// atoms/automationAtoms.ts - -import { atom } from 'jotai'; - -// PhonePilot 连接状态 -export const phonePilotConnectedAtom = atom(false); -export const phonePilotUrlAtom = atom('http://localhost:3847'); - -// 自动化测试配置 -export const automationConfigAtom = atom({ - testSuites: ['address', 'pubkey'], - mnemonic: [], - phonePilotUrl: 'http://localhost:3847', - screenConfig: defaultScreenConfig, - stopOnFirstError: false, - retryCount: 1, - delayBetweenTests: 500, -}); +--- -// 测试执行状态 -export const automationRunnerStateAtom = atom< - 'idle' | 'preparing' | 'running' | 'paused' | 'done' ->('idle'); - -// 当前进度 -export const automationProgressAtom = atom<{ - currentSuite: TestSuiteType | null; - currentTest: string | null; - completedSuites: number; - totalSuites: number; - completedTests: number; - totalTests: number; -}>({ - currentSuite: null, - currentTest: null, - completedSuites: 0, - totalSuites: 0, - completedTests: 0, - totalTests: 0, -}); - -// 测试结果 -export const automationResultsAtom = atom(null); - -// PhonePilot 摄像头画面 -export const cameraFrameAtom = atom(null); -``` +## 8. UI 设计要点 + +`AutomationTestScreen` 当前页面包含 5 个主区域: + +1. `PhonePilot 连接` + - 输入 MCP 地址 + - 连接 / 断开 + - 获取截图 +2. `Jira 场景矩阵` + - 按 Jira key 分组勾选 concrete case + - 每条场景展示 `sequenceId` 和支持的 suite +3. `执行 suite` + - 选择 `deviceFlow` / `sdkAddressBatch` / `sdkPubkeyBatch` +4. `隐藏钱包密码短语变体` + - 选择 `normal` / `passphrase_empty` / `passphrase_1` / `passphrase_2` +5. `Runner 行为 / 进度 / 日志 / 报告` + - 停错策略、重试次数、间隔时间 + - 进度卡片 + - 运行日志 + - 场景级报告 + +页面不再出现: + +- Desktop 配置区 +- Desktop suite +- mnemonic group 勾选区 +- prepare-device 相关文案 --- -## 6. 实现计划 +## 9. 失败策略与重试 -### 6.1 PhonePilot 侧工作 (前置依赖) +### 9.1 重试 -| 任务 | 描述 | 优先级 | -|------|------|--------| -| 屏幕坐标映射 | 标定 Classic1s 设备坐标 | P0 | -| 助记词输入 | 实现键盘输入逻辑 | P0 | -| 设备重置恢复 | wipe + restore 流程 | P0 | -| `prepare-device` Tool | MCP 工具: 设备准备 | P0 | -| `confirm-action` Tool | MCP 工具: 物理确认 | P0 | -| `input-passphrase` Tool | MCP 工具: 输入 Passphrase | P1 | -| `input-pin` Tool | MCP 工具: 输入 PIN | P1 | -| SLIP39 恢复 | 分片恢复流程 | P1 | -| 多设备支持 | Pro/Touch 坐标配置 | P2 | +`runWithRetry()` 会对关键操作按 `retryCount` 重试,当前主要用于: -### 6.2 expo-example 侧工作 +- `execute-sequence` +- 其他关键 SDK 校验步骤中的异常恢复 -#### Phase 1: 基础设施 (P0) +### 9.2 stopOnFirstError -| 任务 | 描述 | -|------|------| -| PhonePilot MCP 客户端 | 实现 MCP 协议通信封装 | -| 测试配置管理 | 助记词、测试套件选择等 | +当前语义是: -#### Phase 2: 核心功能 (P0) - -| 任务 | 描述 | -|------|------| -| UI 请求处理 | 监听 SDK UI_EVENT,通知 PhonePilot | -| 地址测试自动化 | 集成现有 addressTest | -| 测试结果验证 | 验证 SDK 返回结果 | +- 默认关闭时,按 suite 粒度继续执行,能跑的尽量继续跑 +- 打开时,只要某个场景下有 suite 失败,就停止后续场景 -#### Phase 3: 完整集成 (P1) +### 9.3 suite 失败联动 -| 任务 | 描述 | +| 情况 | 行为 | |------|------| -| 测试套件集成 | 集成全部 8 类测试 | -| 自动化测试 UI | 实现 AutomationTestScreen | -| 进度显示 | 实时显示测试进度 | +| `deviceFlow` 失败 | 当前场景标记 failed,其余 SDK suites 标记 skipped | +| `deviceId` 获取失败 | SDK suites 标记 failed | +| 某个 SDK case 失败 | 当前 suite failed;是否继续跑后续 suite 取决于 `stopOnFirstError` | -#### Phase 4: 增强功能 (P2) +--- -| 任务 | 描述 | -|------|------| -| 报告生成增强 | 详细测试报告 | -| 错误恢复重试 | 失败自动重试 | -| 测试历史记录 | 保存历史测试结果 | +## 10. 当前非目标与后续扩展 ---- +### 10.1 当前非目标 -## 7. 测试套件清单 +以下内容不在本期设计范围内: -| 测试类型 | 描述 | 物理操作需求 | -|----------|------|-------------| -| **Address Test** | 地址生成验证 | 确认按钮 | -| **PubKey Test** | 公钥生成验证 | 确认按钮 | -| **Passphrase Test** | 密语保护测试 | 确认 + 密语输入 | -| **SLIP39 Test** | Shamir 恢复测试 | 分片输入 | -| **Security Check** | 安全检查测试 | 确认按钮 | -| **Functional Test** | 功能测试 | 多种操作 | -| **Attach-to-PIN** | PIN 绑定测试 | PIN 输入 | -| **Chain Method** | 链式调用测试 | 多次确认 | +- Desktop 黑盒验证 +- 创建场景返回 artifact 并做本地派生校验 +- Jest 兜底校验本地 seed 数据 +- 在文档中维护导入助记词明文 ---- +### 10.2 可扩展方向 -## 8. 风险与挑战 +后续如果需要增强,可以在当前模型上继续扩展: -| 风险 | 影响 | 缓解措施 | -|------|------|----------| -| 屏幕坐标漂移 | 点击位置不准 | 定期校准 + 视觉识别 | -| 设备响应超时 | 测试中断 | 超时重试机制 | -| 助记词输入错误 | 恢复失败 | 逐字验证 + 截图对比 | -| 网络连接不稳定 | MCP 通信失败 | 重连机制 + 本地运行 | +1. 给 `scenarioCatalog` 增加更多 Jira 场景 +2. 给 `supportedSuites` 增加新 suite 类型 +3. 把 `execute-sequence` 扩展为返回更细粒度步骤信息 +4. 为报告增加导出能力或历史记录 --- ## 附录 -### A. PhonePilot MCP Tools +### A. 当前 PhonePilot 相关工具清单 -| Tool | 描述 | 参数 | -|------|------|------| -| `arm-connect` | 连接机械臂 | - | -| `arm-disconnect` | 断开连接 | - | -| `arm-move` | 移动到坐标 | x, y, captureFrame | -| `arm-click` | 执行点击 | depth, captureFrame | -| `capture-frame` | 截取画面 | - | +| Tool | 描述 | +|------|------| +| `execute-sequence` | 执行设备创建/导入完整序列 | +| `confirm-action` | 执行设备确认 | +| `input-pin` | 输入设备 PIN | +| `stop-sequence` | 停止当前序列 | +| `capture-frame` | 获取截图 | +| `arm-connect` | 连接机械臂 | +| `arm-disconnect` | 断开机械臂 | +| `arm-move` | 移动机械臂 | +| `arm-click` | 执行点击 | ### B. 相关资源 diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts index bcb0d5bf4..8491333a1 100644 --- a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -1,165 +1,79 @@ /** * Automation Test State Management - * - * Jotai atoms for managing automation test state. */ import { atom } from 'jotai'; + import type { AutomationTestConfig, + ConnectionState, + HealthCheckResponse, TestProgress, TestReport, - ConnectionState, - MnemonicGroupId, - TestSuiteType, - PassphraseVariantId, } from '../services/phonePilotMcp/types'; -// ============================================================================ -// PhonePilot Connection State -// ============================================================================ - -/** PhonePilot MCP connection state */ -export const phonePilotConnectionStateAtom = atom('disconnected'); - -/** PhonePilot server URL */ -export const phonePilotUrlAtom = atom('http://localhost:3847'); - -/** Latest camera frame from PhonePilot (base64 JPEG) */ -export const cameraFrameAtom = atom(null); - -// ============================================================================ -// Automation Test Configuration -// ============================================================================ - -/** Default test configuration */ const defaultConfig: AutomationTestConfig = { - testSuites: ['address'], - mnemonicGroups: ['count24_one'], - passphraseVariants: ['normal'], - phonePilotUrl: 'http://localhost:3847', + scenarioIds: ['ok26054_bip39_import_12', 'ok40090_slip39_import_20_1of1'], + testSuites: ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch'], + passphraseVariants: ['normal', 'passphrase_2'], + phonePilotUrl: process.env.EXPO_PUBLIC_PHONEPILOT_URL || 'http://localhost:3847', stopOnFirstError: false, retryCount: 1, delayBetweenTests: 500, }; -/** Automation test configuration */ -export const automationConfigAtom = atom(defaultConfig); - -/** Selected test suites */ -export const selectedTestSuitesAtom = atom( - (get) => get(automationConfigAtom).testSuites, - (get, set, newSuites: TestSuiteType[]) => { - const config = get(automationConfigAtom); - set(automationConfigAtom, { ...config, testSuites: newSuites }); - } -); - -/** Selected mnemonic groups */ -export const selectedMnemonicGroupsAtom = atom( - (get) => get(automationConfigAtom).mnemonicGroups, - (get, set, newGroups: MnemonicGroupId[]) => { - const config = get(automationConfigAtom); - set(automationConfigAtom, { ...config, mnemonicGroups: newGroups }); - } -); - -/** Selected passphrase variants */ -export const selectedPassphraseVariantsAtom = atom( - (get) => get(automationConfigAtom).passphraseVariants, - (get, set, newVariants: PassphraseVariantId[]) => { - const config = get(automationConfigAtom); - set(automationConfigAtom, { ...config, passphraseVariants: newVariants }); - } -); - -// ============================================================================ -// Test Execution State -// ============================================================================ - -/** Default progress state */ const defaultProgress: TestProgress = { - currentMnemonicGroup: null, + currentScenarioId: null, + currentScenarioTitle: null, currentPassphrase: null, currentTestSuite: null, currentTestIndex: 0, totalTests: 0, - completedMnemonicGroups: 0, - totalMnemonicGroups: 0, + completedScenarios: 0, + totalScenarios: 0, + completedSuites: 0, + totalSuites: 0, status: 'idle', }; -/** Test execution progress */ +export const phonePilotConnectionStateAtom = atom('disconnected'); +export const phonePilotHealthAtom = atom(null); +export const cameraFrameAtom = atom(null); +export const automationConfigAtom = atom(defaultConfig); export const automationProgressAtom = atom(defaultProgress); - -/** Reset progress to initial state */ -export const resetProgressAtom = atom(null, (_get, set) => { - set(automationProgressAtom, defaultProgress); -}); - -/** Update progress status */ -export const updateProgressStatusAtom = atom( - null, - (get, set, status: TestProgress['status'], errorMessage?: string) => { - const progress = get(automationProgressAtom); - set(automationProgressAtom, { ...progress, status, errorMessage }); - } -); - -// ============================================================================ -// Test Results -// ============================================================================ - -/** Current test report */ export const automationReportAtom = atom(null); - -/** Test logs */ export const automationLogsAtom = atom([]); -/** Add a log entry */ export const addLogAtom = atom(null, (get, set, log: string) => { const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const logs = get(automationLogsAtom); set(automationLogsAtom, [...logs, `[${timestamp}] ${log}`]); }); -/** Clear logs */ export const clearLogsAtom = atom(null, (_get, set) => { set(automationLogsAtom, []); }); -// ============================================================================ -// Derived Atoms -// ============================================================================ +export const resetProgressAtom = atom(null, (_get, set) => { + set(automationProgressAtom, defaultProgress); +}); -/** Is automation test running */ -export const isAutomationRunningAtom = atom((get) => { +export const isAutomationRunningAtom = atom(get => { const progress = get(automationProgressAtom); return progress.status === 'running' || progress.status === 'preparing-device'; }); -/** Is PhonePilot connected */ -export const isPhonePilotConnectedAtom = atom((get) => { - return get(phonePilotConnectionStateAtom) === 'connected'; -}); - -/** Can start automation test */ -export const canStartAutomationAtom = atom((get) => { - const isConnected = get(isPhonePilotConnectedAtom); +export const canStartAutomationAtom = atom(get => { + const isConnected = get(phonePilotConnectionStateAtom) === 'connected'; const isRunning = get(isAutomationRunningAtom); const config = get(automationConfigAtom); - return ( - isConnected && - !isRunning && - config.mnemonicGroups.length > 0 && - config.testSuites.length > 0 && - config.passphraseVariants.length > 0 - ); + return isConnected && !isRunning && config.scenarioIds.length > 0 && config.testSuites.length > 0; }); -/** Progress percentage */ -export const progressPercentageAtom = atom((get) => { +export const progressPercentageAtom = atom(get => { const progress = get(automationProgressAtom); - if (progress.totalTests === 0) return 0; - return Math.round((progress.currentTestIndex / progress.totalTests) * 100); + if (progress.totalSuites === 0) { + return 0; + } + return Math.round((progress.completedSuites / progress.totalSuites) * 100); }); diff --git a/packages/connect-examples/expo-example/src/provider/HardwareInputPinProvider.tsx b/packages/connect-examples/expo-example/src/provider/HardwareInputPinProvider.tsx index 0b7c13f29..fa127ea94 100644 --- a/packages/connect-examples/expo-example/src/provider/HardwareInputPinProvider.tsx +++ b/packages/connect-examples/expo-example/src/provider/HardwareInputPinProvider.tsx @@ -82,6 +82,7 @@ export const HardwareInputPinDialogProvider: React.FC<{ children: ReactNode }> = onConfirm={val => onConfirmPin(val)} onSwitchDevice={onInputPinOnDeviceCallback} onCancel={onPinCancelCallback} + onTestUnexpectedMessage={() => {}} /> ); diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts index 7c48508b6..4e3454ca7 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts @@ -1,85 +1,63 @@ /** * PhonePilot MCP Client * - * Provides communication with PhonePilot MCP Server for mechanical arm control - * and device preparation operations. + * 提供与 PhonePilot MCP Server 的连接、机械臂控制、截图与序列执行能力。 */ import type { - ConnectionState, - HealthCheckResponse, + ActionResult, + ArmClickResult, ArmConnectResult, ArmDisconnectResult, ArmMoveResult, - ArmClickResult, CaptureFrameResult, - PrepareDeviceParams, - PrepareDeviceResult, - ActionResult, + ConnectionState, + ExecuteSequenceResult, + HealthCheckResponse, + MnemonicStoreResult, } from './types'; -/** Default PhonePilot server URL */ +/** PhonePilot 默认服务地址 */ const DEFAULT_SERVER_URL = 'http://localhost:3847'; -/** MCP JSON-RPC request ID counter */ +/** MCP JSON-RPC 请求 ID 计数器 */ let requestId = 0; /** - * PhonePilot MCP Client + * PhonePilot MCP 客户端 * - * Communicates with PhonePilot via MCP Streamable HTTP transport. + * 通过 MCP Streamable HTTP transport 与 PhonePilot 通信。 */ export class PhonePilotClient { private serverUrl: string; + private sessionId: string | null = null; + private connectionState: ConnectionState = 'disconnected'; + private onStateChange?: (state: ConnectionState) => void; constructor(serverUrl: string = DEFAULT_SERVER_URL) { this.serverUrl = serverUrl; } - /** - * Sets a callback for connection state changes - */ setOnStateChange(callback: (state: ConnectionState) => void): void { this.onStateChange = callback; } - /** - * Gets the current connection state - */ - getConnectionState(): ConnectionState { - return this.connectionState; - } - - /** - * Updates connection state and notifies listeners - */ private updateState(state: ConnectionState): void { this.connectionState = state; this.onStateChange?.(state); } - /** - * Parses SSE (Server-Sent Events) response format - */ private parseSSEResponse(sseText: string): { result?: unknown; error?: { message: string } } { - // SSE format: - // event: message - // data: {"jsonrpc":"2.0","id":1,"result":{...}} - // - // event: endpoint - // ... - const lines = sseText.trim().split('\n'); let jsonData = ''; for (let i = 0; i < lines.length; i++) { const line = lines[i].trim(); - if (line.startsWith('data: ')) { - jsonData = line.substring(6); // Remove "data: " prefix + jsonData = line.substring(6); break; } } @@ -95,9 +73,6 @@ export class PhonePilotClient { } } - /** - * Performs a health check on the PhonePilot server - */ async healthCheck(): Promise { try { const response = await fetch(`${this.serverUrl}/health`); @@ -111,14 +86,10 @@ export class PhonePilotClient { } } - /** - * Connects to the PhonePilot MCP server - */ async connect(): Promise { this.updateState('connecting'); try { - // Initialize MCP session const initRequest = { jsonrpc: '2.0', id: ++requestId, @@ -128,7 +99,7 @@ export class PhonePilotClient { capabilities: {}, clientInfo: { name: 'expo-example-automation', - version: '1.0.0', + version: '2.0.0', }, }, }; @@ -137,7 +108,7 @@ export class PhonePilotClient { method: 'POST', headers: { 'Content-Type': 'application/json', - 'Accept': 'application/json, text/event-stream', + Accept: 'application/json, text/event-stream', }, body: JSON.stringify(initRequest), }); @@ -146,25 +117,22 @@ export class PhonePilotClient { throw new Error(`MCP connection failed: ${response.status}`); } - // Get session ID from response header this.sessionId = response.headers.get('mcp-session-id'); - - // Send initialized notification + if (!this.sessionId) { + throw new Error('MCP connection succeeded but mcp-session-id header is missing'); + } await this.sendNotification('notifications/initialized', {}); this.updateState('connected'); - console.log('PhonePilot MCP connected, session:', this.sessionId?.slice(0, 8)); return true; } catch (error) { + this.sessionId = null; console.error('PhonePilot MCP connection failed:', error); this.updateState('error'); return false; } } - /** - * Disconnects from the PhonePilot MCP server - */ async disconnect(): Promise { if (this.sessionId) { try { @@ -182,9 +150,6 @@ export class PhonePilotClient { this.updateState('disconnected'); } - /** - * Sends an MCP request and returns the result - */ private async sendRequest(method: string, params: Record = {}): Promise { if (!this.sessionId) { throw new Error('Not connected to PhonePilot MCP'); @@ -201,7 +166,7 @@ export class PhonePilotClient { method: 'POST', headers: { 'Content-Type': 'application/json', - 'Accept': 'application/json, text/event-stream', + Accept: 'application/json, text/event-stream', 'mcp-session-id': this.sessionId, }, body: JSON.stringify(request), @@ -211,35 +176,28 @@ export class PhonePilotClient { throw new Error(`MCP request failed: ${response.status}`); } - // Check Content-Type to determine response format const contentType = response.headers.get('content-type') || ''; - if (contentType.includes('text/event-stream')) { - // SSE stream response - parse SSE format const text = await response.text(); const result = this.parseSSEResponse(text); - if (result.error) { throw new Error(result.error.message || 'MCP request error'); } - return result.result as T; - } else { - // Direct JSON response - const result = await response.json(); - - if (result.error) { - throw new Error(result.error.message || 'MCP request error'); - } + } - return result.result as T; + const result = await response.json(); + if (result.error) { + throw new Error(result.error.message || 'MCP request error'); } + + return result.result as T; } - /** - * Sends an MCP notification (no response expected) - */ - private async sendNotification(method: string, params: Record = {}): Promise { + private async sendNotification( + method: string, + params: Record = {} + ): Promise { if (!this.sessionId) { return; } @@ -254,16 +212,13 @@ export class PhonePilotClient { method: 'POST', headers: { 'Content-Type': 'application/json', - 'Accept': 'application/json, text/event-stream', + Accept: 'application/json, text/event-stream', 'mcp-session-id': this.sessionId, }, body: JSON.stringify(notification), }); } - /** - * Calls an MCP tool and parses the response - */ private async callTool(toolName: string, args: Record = {}): Promise { const result = await this.sendRequest<{ content: Array<{ @@ -277,8 +232,7 @@ export class PhonePilotClient { arguments: args, }); - // Parse the text content as JSON - const textContent = result.content.find((c) => c.type === 'text'); + const textContent = result.content.find(c => c.type === 'text'); if (textContent?.text) { return JSON.parse(textContent.text) as T; } @@ -286,9 +240,6 @@ export class PhonePilotClient { throw new Error(`Tool ${toolName} returned no text content`); } - /** - * Calls an MCP tool and returns both parsed result and optional image - */ private async callToolWithImage( toolName: string, args: Record = {} @@ -305,8 +256,8 @@ export class PhonePilotClient { arguments: args, }); - const textContent = response.content.find((c) => c.type === 'text'); - const imageContent = response.content.find((c) => c.type === 'image'); + const textContent = response.content.find(c => c.type === 'text'); + const imageContent = response.content.find(c => c.type === 'image'); if (!textContent?.text) { throw new Error(`Tool ${toolName} returned no text content`); @@ -318,27 +269,14 @@ export class PhonePilotClient { }; } - // ============================================================================ - // Arm Control Methods - // ============================================================================ - - /** - * Connects to the mechanical arm controller - */ async armConnect(): Promise { return this.callTool('arm-connect', {}); } - /** - * Disconnects from the mechanical arm controller - */ async armDisconnect(): Promise { return this.callTool('arm-disconnect', {}); } - /** - * Moves the arm to the specified position - */ async armMove(x: number, y: number, captureFrame = false): Promise { const { result, frame } = await this.callToolWithImage('arm-move', { x, @@ -348,9 +286,6 @@ export class PhonePilotClient { return { ...result, frame }; } - /** - * Performs a click at the current position - */ async armClick(depth = 12, captureFrame = false): Promise { const { result, frame } = await this.callToolWithImage('arm-click', { depth, @@ -359,78 +294,54 @@ export class PhonePilotClient { return { ...result, frame }; } - /** - * Captures the current camera frame - */ async captureFrame(): Promise { const { result, frame } = await this.callToolWithImage('capture-frame', {}); return { ...result, frame }; } - // ============================================================================ - // High-Level Device Operations - // ============================================================================ - - /** - * Taps at a specific screen coordinate - */ async tapAt(x: number, y: number): Promise { await this.armMove(x, y); await this.armClick(); } - /** - * Prepares the device with specified mnemonic/configuration - * - * This calls the PhonePilot prepare-device tool which handles: - * - Device reset/wipe - * - Mnemonic recovery - * - PIN setup - * - All physical operations - */ - async prepareDevice(params: PrepareDeviceParams): Promise { - return this.callTool('prepare-device', params as unknown as Record); - } - - /** - * Performs a confirm action on the device - */ async confirmAction(): Promise { return this.callTool('confirm-action', { action: 'confirm' }); } - /** - * Performs a cancel action on the device - */ async cancelAction(): Promise { return this.callTool('confirm-action', { action: 'cancel' }); } - /** - * Inputs a PIN on the device - */ async inputPin(pin: string): Promise { return this.callTool('input-pin', { pin }); } - /** - * Executes a predefined auto operation sequence - * @param sequenceId The sequence ID from PhonePilot (e.g., 'one-normal-24', 'reset-wallet') - */ - async executeSequence(sequenceId: string): Promise { - return this.callTool('execute-sequence', { sequenceId }); + async executeSequence(sequenceId: string): Promise { + const { result, frame } = await this.callToolWithImage( + 'execute-sequence', + { sequenceId } + ); + return { + ...result, + frame, + }; } - /** - * Stops the currently running sequence - */ async stopSequence(): Promise { return this.callTool('stop-sequence', {}); } -} -// Export singleton instance -export const phonePilotClient = new PhonePilotClient(); + async mnemonicStoreGet(): Promise { + return this.callTool('mnemonic-store', { action: 'get' }); + } + + async mnemonicStoreStatus(): Promise { + return this.callTool('mnemonic-store', { action: 'status' }); + } + + async mnemonicStoreClear(): Promise { + return this.callTool('mnemonic-store', { action: 'clear' }); + } +} -// Re-export types export * from './types'; diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts index c3f29cea4..8ee98d3a3 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -2,204 +2,218 @@ * PhonePilot MCP Client Type Definitions */ -/** MCP Tool call result */ -export interface McpToolResult { - content: Array<{ - type: 'text' | 'image'; - text?: string; - data?: string; - mimeType?: string; - }>; - result?: T; -} - -/** Arm connect result */ export interface ArmConnectResult { success: boolean; handle: number; message: string; } -/** Arm disconnect result */ export interface ArmDisconnectResult { success: boolean; message: string; } -/** Arm move result */ export interface ArmMoveResult { success: boolean; position: { x: number; y: number }; message: string; - frame?: string; // base64 JPEG if captureFrame was true + frame?: string; } -/** Arm click result */ export interface ArmClickResult { success: boolean; message: string; - frame?: string; // base64 JPEG if captureFrame was true + frame?: string; } -/** Capture frame result */ export interface CaptureFrameResult { success: boolean; message: string; - frame?: string; // base64 JPEG + frame?: string; } -/** Device preparation parameters */ -export interface PrepareDeviceParams { - /** Type of test setup */ - testType: 'standard' | 'passphrase' | 'slip39' | 'pin'; - /** Standard mnemonic words */ - mnemonic?: string[]; - /** SLIP39 shares (array of word arrays) */ - slip39Shares?: string[][]; - /** Optional passphrase */ - passphrase?: string; - /** Optional PIN */ - pin?: string; -} - -/** Device preparation result */ -export interface PrepareDeviceResult { +export interface ActionResult { success: boolean; message: string; } -/** Confirm/Cancel action params */ -export interface ConfirmActionParams { - action: 'confirm' | 'cancel'; -} - -/** Action result */ -export interface ActionResult { - success: boolean; - message: string; +export interface ExecuteSequenceResult extends ActionResult { + sequenceId?: string; + sequenceName?: string; + stepsCompleted?: number; + totalSteps?: number; + frame?: string; } -/** PhonePilot connection state */ export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'error'; -/** PhonePilot health check response */ export interface HealthCheckResponse { status: 'ok' | 'error'; server: string; version: string; + mcpReady: boolean; + ocrReady: boolean; + message?: string; + ocr: PhonePilotOcrHealth; + sequenceIds: string[]; activeSessions: { streamable: number; sse: number; }; } -/** Mnemonic group identifier */ -export type MnemonicGroupId = - | 'count12_one' - | 'count12_two' - | 'count12_three' - | 'count18_one' - | 'count18_two' - | 'count18_three' - | 'count24_one' - | 'count24_two' - | 'count24_three' - | 'slip39_20_one' - | 'slip39_20_two' - | 'slip39_20_three' - | 'slip39_33_one' - | 'slip39_33_two'; - -/** Mnemonic group configuration */ -export interface MnemonicGroup { - id: MnemonicGroupId; - name: string; - type: 'standard' | 'slip39'; - wordCount: number; - /** For standard mnemonic */ - mnemonic?: string[]; - /** For SLIP39 */ - slip39Shares?: string[][]; - /** PhonePilot sequence ID for this mnemonic */ - phonePilotSequenceId: string; +export interface PhonePilotOcrHealth { + ready: boolean; + pythonBin: string; + pythonVersion?: string; + scriptPath?: string; + missingDependencies: string[]; + missingModels: string[]; + message: string; + checkedAt: string; } -/** Passphrase variant */ -export interface PassphraseVariant { - name: string; - passphrase: string; - passphraseState: string; +export interface MnemonicStoreMetadata { + capturedAt?: string; + wordCount?: number; + source?: string; } -/** Passphrase variant identifier */ +export interface MnemonicStoreResult { + success: boolean; + message: string; + words?: string[]; + wordCount?: number; + metadata?: MnemonicStoreMetadata; + shares?: string[][]; + shareCount?: number; + threshold?: number; + sequenceId?: string; + walletType?: 'bip39' | 'slip39'; + flowType?: 'create' | 'import' | 'manual'; +} + +export type JiraIssueKey = 'OK-26053' | 'OK-26054' | 'OK-5504' | 'OK-40090'; export type PassphraseVariantId = 'normal' | 'passphrase_empty' | 'passphrase_1' | 'passphrase_2'; -/** Passphrase variant display info */ -export const PASSPHRASE_VARIANT_INFO: Record = { - normal: { label: 'Normal', description: '无 Passphrase' }, - passphrase_empty: { label: 'Empty', description: '空字符串 Passphrase' }, - passphrase_1: { label: 'Passphrase 1', description: 'asdfg7890' }, - passphrase_2: { label: 'Passphrase 2', description: '1234567890qwerty...' }, +export const PASSPHRASE_VARIANT_INFO: Record< + PassphraseVariantId, + { label: string; description: string } +> = { + normal: { label: 'Normal', description: '标准钱包,不输入密码短语' }, + passphrase_empty: { label: 'Empty', description: '隐藏钱包,输入空字符串' }, + passphrase_1: { label: 'Passphrase 1', description: '场景绑定的第一组密码短语' }, + passphrase_2: { label: 'Passphrase 2', description: '场景绑定的第二组密码短语' }, +}; + +export const ALL_PASSPHRASE_VARIANT_IDS: PassphraseVariantId[] = [ + 'normal', + 'passphrase_empty', + 'passphrase_1', + 'passphrase_2', +]; + +export type TestSuiteType = 'deviceFlow' | 'sdkAddressBatch' | 'sdkPubkeyBatch'; + +export const TEST_SUITE_INFO: Record = { + deviceFlow: { label: 'Device Flow', description: 'PhonePilot 设备端创建/导入流程执行是否成功' }, + sdkAddressBatch: { + label: 'SDK Address Batch', + description: '仅导入助记词场景执行地址结果核对', + }, + sdkPubkeyBatch: { + label: 'SDK Pubkey Batch', + description: '仅导入助记词场景执行公钥结果核对', + }, }; -/** Test suite type */ -export type TestSuiteType = - | 'address' - | 'pubkey' - | 'passphrase' - | 'slip39' - | 'security' - | 'functional' - | 'attachToPin' - | 'chainMethod'; - -/** Automation test configuration */ +export type AutomationScenarioId = + | 'ok26053_bip39_create_12' + | 'ok26053_bip39_create_18' + | 'ok26053_bip39_create_24' + | 'ok26054_bip39_import_12' + | 'ok26054_bip39_import_12_two' + | 'ok26054_bip39_import_12_three' + | 'ok26054_bip39_import_18' + | 'ok26054_bip39_import_18_two' + | 'ok26054_bip39_import_18_three' + | 'ok26054_bip39_import_24' + | 'ok26054_bip39_import_24_two' + | 'ok26054_bip39_import_24_three' + | 'ok5504_slip39_create_20_1of1' + | 'ok5504_slip39_create_20_2of2' + | 'ok5504_slip39_create_20_8of8' + | 'ok5504_slip39_create_20_16of2' + | 'ok40090_slip39_import_20_1of1' + | 'ok40090_slip39_import_20_3of2' + | 'ok40090_slip39_import_20_16of16' + | 'ok40090_slip39_import_33_1of1' + | 'ok40090_slip39_import_33_2of3'; + +export type Slip39DatasetId = + | 'count20_one' + | 'count20_two' + | 'count20_three' + | 'count33_one' + | 'count33_two'; + +export interface AutomationScenario { + id: AutomationScenarioId; + jiraKey: JiraIssueKey; + title: string; + flowType: 'create' | 'import'; + walletType: 'bip39' | 'slip39'; + caseLabel: string; + wordCount: number; + shareCount?: number; + threshold?: number; + phonePilotSequenceId: string; + supportedSuites: TestSuiteType[]; + slip39DatasetId?: Slip39DatasetId; + bip39ImportMnemonicWords?: string[]; +} + export interface AutomationTestConfig { - /** Test suites to run */ + scenarioIds: AutomationScenarioId[]; testSuites: TestSuiteType[]; - /** Mnemonic groups to test */ - mnemonicGroups: MnemonicGroupId[]; - /** Passphrase variants to test */ passphraseVariants: PassphraseVariantId[]; - /** PhonePilot server URL */ phonePilotUrl: string; - /** Stop on first error */ stopOnFirstError: boolean; - /** Retry count for failed tests */ retryCount: number; - /** Delay between tests in ms */ delayBetweenTests: number; } -/** Test progress state */ export interface TestProgress { - currentMnemonicGroup: MnemonicGroupId | null; + currentScenarioId: AutomationScenarioId | null; + currentScenarioTitle: string | null; currentPassphrase: string | null; currentTestSuite: TestSuiteType | null; currentTestIndex: number; totalTests: number; - completedMnemonicGroups: number; - totalMnemonicGroups: number; + completedScenarios: number; + totalScenarios: number; + completedSuites: number; + totalSuites: number; status: 'idle' | 'preparing-device' | 'running' | 'paused' | 'done' | 'error'; errorMessage?: string; } -/** Test case result */ export interface TestCaseResult { - testName: string; - method: string; - expected: string; - actual: string; + title: string; + method?: string; + expected?: string; + actual?: string; passed: boolean; + skipped?: boolean; error?: string; duration: number; + metadata?: Record; } -/** Test suite result */ export interface TestSuiteResult { + suiteType: TestSuiteType; suiteName: string; - mnemonicGroup: MnemonicGroupId; - passphrase: string; + status: 'passed' | 'failed' | 'skipped'; totalTests: number; passedTests: number; failedTests: number; @@ -208,15 +222,25 @@ export interface TestSuiteResult { results: TestCaseResult[]; } -/** Complete test report */ +export interface ScenarioReportResult { + scenarioId: AutomationScenarioId; + scenarioTitle: string; + jiraKey: JiraIssueKey; + flowType: 'create' | 'import'; + walletType: 'bip39' | 'slip39'; + caseLabel: string; + status: 'passed' | 'failed' | 'skipped'; + duration: number; + suiteResults: TestSuiteResult[]; +} + export interface TestReport { startTime: number; endTime: number; duration: number; - totalSuites: number; - totalTests: number; - passedTests: number; - failedTests: number; - skippedTests: number; - suiteResults: TestSuiteResult[]; + totalScenarios: number; + passedScenarios: number; + failedScenarios: number; + skippedScenarios: number; + scenarioResults: ScenarioReportResult[]; } diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/index.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/index.ts index 2f567890e..d0dbe517a 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/index.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/index.ts @@ -1,19 +1,19 @@ import { convertTestBatchData, convertTestSingleData } from '../utils'; -import normal12 from './normal12'; -import passphrase12Empty from './passphrase12_empty'; -import passphrase121 from './passphrase12_1'; -import passphrase122 from './passphrase12_2'; +import normal from './normal'; +import passphraseEmpty from './passphrase_empty'; +import passphrase1 from './passphrase_1'; +import passphrase2 from './passphrase_2'; export const singleAddressTestCount12Three = [ - convertTestSingleData(normal12), - convertTestSingleData(passphrase12Empty), - convertTestSingleData(passphrase121), - convertTestSingleData(passphrase122), + convertTestSingleData(normal), + convertTestSingleData(passphraseEmpty), + convertTestSingleData(passphrase1), + convertTestSingleData(passphrase2), ]; export const batchAddressTestCount12Three = [ - convertTestBatchData(normal12), - convertTestBatchData(passphrase12Empty), - convertTestBatchData(passphrase121), - convertTestBatchData(passphrase122), + convertTestBatchData(normal), + convertTestBatchData(passphraseEmpty), + convertTestBatchData(passphrase1), + convertTestBatchData(passphrase2), ]; diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/normal.ts new file mode 100644 index 000000000..ec6aa10cf --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/normal.ts @@ -0,0 +1 @@ +export { default } from './normal12'; diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_1.ts new file mode 100644 index 000000000..61b7ed02d --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_1.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_1'; diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_2.ts new file mode 100644 index 000000000..8e5c3b470 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_2.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_2'; diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_empty.ts new file mode 100644 index 000000000..197a795b3 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/data/count12_three/passphrase_empty.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_empty'; diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_one/normal.ts index c63a81a8a..dc5c36b11 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_one/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_three/normal.ts index 4a58c3252..e3fb37155 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_three/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_three/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_two/normal.ts index 2abdad63d..bffc2d6ff 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count12_two/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_one/normal.ts index 7f0e2d84f..f0efc6a77 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_one/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_three/normal.ts index 92553e613..15f9420b0 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_three/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_three/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_two/normal.ts index c6858aedb..fed49d1a2 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count18_two/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_one/normal.ts index ba48240a1..a768712ef 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_one/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_three/normal.ts index 16df7dc37..adcd5ea4c 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_three/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_three/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_two/normal.ts index 0a0395ef4..7a0a6c6c3 100644 --- a/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/addressTest/dataVariant/count24_two/normal.ts @@ -1,6 +1,6 @@ import passphraseEmpty from './passphrase_empty'; -import type { AddressTestCaseData } from '../types'; +import type { AddressTestCaseData } from '../../data/types'; export default { ...passphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts index 05129fd21..d5d896ecc 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/index.ts @@ -1,9 +1,9 @@ /** * Automation Test Module * - * Provides automated testing capabilities by integrating PhonePilot MCP - * with the existing test framework. + * 提供基于 Jira 场景目录的自动化测试入口、场景解析与执行能力。 */ -export * from './mnemonicGroups'; +export * from './scenarioCatalog'; +export * from './scenarioResolver'; export * from './useAutomationTest'; diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts deleted file mode 100644 index 88ca0ca76..000000000 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/mnemonicGroups.ts +++ /dev/null @@ -1,433 +0,0 @@ -/** - * Mnemonic Groups Configuration - * - * Maps test mnemonics to PhonePilot sequences. - * Each group corresponds to a specific mnemonic that PhonePilot can restore on the device. - */ - -import type { - MnemonicGroup, - MnemonicGroupId, - PassphraseVariant, - PassphraseVariantId, -} from '../../services/phonePilotMcp/types'; - -// ============================================================================ -// Standard Mnemonics (12/18/24 words) -// These match the mnemonics defined in PhonePilot ControlPanel.tsx -// ============================================================================ - -/** 12-word mnemonics */ -const MNEMONIC_12_1 = 'air census life sheriff attack include paper provide fantasy left opera sauce'.split(' '); -const MNEMONIC_12_2 = 'relief exchange burst bullet topple manage impose dumb raise panther sibling shove'.split(' '); -const MNEMONIC_12_3 = 'pyramid enforce season tide flag brisk law anchor refuse require reward negative'.split(' '); - -/** 18-word mnemonics */ -const MNEMONIC_18_1 = 'slab canyon coffee wine gold bronze rigid peace output security boy quick vital cat become stove tape super'.split(' '); -const MNEMONIC_18_2 = 'arrange private session nose dial echo skull robust erode rain odor mango solve angle festival amazing decorate menu'.split(' '); -const MNEMONIC_18_3 = 'riot fee raise forget always city spring million spike purse tackle impose faith remove hover snap leopard kitchen'.split(' '); - -/** 24-word mnemonics */ -const MNEMONIC_24_1 = 'gorilla absent bone address stay minimum artist train piano coil gadget truck almost voice runway drip pony pizza uncover expose country enlist avocado hotel'.split(' '); -const MNEMONIC_24_2 = 'jazz cactus tower knee gift crazy tourist exile valid short exhibit cute asthma segment dragon write jacket ribbon cheese ignore use dwarf small dove'.split(' '); -const MNEMONIC_24_3 = 'post flock violin raven size harvest media cash divide blade scale eternal action comic ball increase track unhappy ask speed timber exist trim expose'.split(' '); - -// ============================================================================ -// SLIP39 Mnemonics -// ============================================================================ - -/** slip39 20-word (1 share) */ -const SLIP39_20_1 = [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis'.split(' '), -]; - -/** slip39 20-word (2-3: 3 shares, need 2) */ -const SLIP39_20_2 = [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash'.split(' '), - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw'.split(' '), - // Third share available but only 2 needed: 'network vexed academic always debut unhappy veteran trust goat cluster easel penalty entrance drift mild uncover short sack excuse kitchen'.split(' '), -]; - -/** slip39 20-word (16-16: 16 shares, need 16) */ -const SLIP39_20_16 = [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught'.split(' '), - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal'.split(' '), - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto'.split(' '), - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic'.split(' '), - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield'.split(' '), - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate'.split(' '), - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august'.split(' '), - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic'.split(' '), - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak'.split(' '), - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer'.split(' '), - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold'.split(' '), - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk'.split(' '), - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle'.split(' '), - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact'.split(' '), - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor'.split(' '), - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash'.split(' '), -]; - -/** slip39 33-word (1 share) */ -const SLIP39_33_1 = [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue'.split(' '), -]; - -/** slip39 33-word (3-2: 3 shares, need 2) */ -const SLIP39_33_2 = [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various'.split(' '), - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven'.split(' '), - // Third share available but only 2 needed -]; - -// ============================================================================ -// Mnemonic Groups Configuration -// ============================================================================ - -/** - * All available mnemonic groups - * Each group maps to: - * - A specific mnemonic or SLIP39 shares - * - A PhonePilot sequence ID for device restoration - * - Test data folders in addressTest/data/ - */ -export const MNEMONIC_GROUPS: Record = { - // 12-word groups - count12_one: { - id: 'count12_one', - name: '12词-1 (air census...)', - type: 'standard', - wordCount: 12, - mnemonic: MNEMONIC_12_1, - phonePilotSequenceId: 'one-normal-12', - }, - count12_two: { - id: 'count12_two', - name: '12词-2 (relief exchange...)', - type: 'standard', - wordCount: 12, - mnemonic: MNEMONIC_12_2, - phonePilotSequenceId: 'two-normal-12', - }, - count12_three: { - id: 'count12_three', - name: '12词-3 (pyramid enforce...)', - type: 'standard', - wordCount: 12, - mnemonic: MNEMONIC_12_3, - phonePilotSequenceId: 'three-normal-12', - }, - - // 18-word groups - count18_one: { - id: 'count18_one', - name: '18词-1 (slab canyon...)', - type: 'standard', - wordCount: 18, - mnemonic: MNEMONIC_18_1, - phonePilotSequenceId: 'one-normal-18', - }, - count18_two: { - id: 'count18_two', - name: '18词-2 (arrange private...)', - type: 'standard', - wordCount: 18, - mnemonic: MNEMONIC_18_2, - phonePilotSequenceId: 'two-normal-18', - }, - count18_three: { - id: 'count18_three', - name: '18词-3 (riot fee...)', - type: 'standard', - wordCount: 18, - mnemonic: MNEMONIC_18_3, - phonePilotSequenceId: 'three-normal-18', - }, - - // 24-word groups - count24_one: { - id: 'count24_one', - name: '24词-1 (gorilla absent...)', - type: 'standard', - wordCount: 24, - mnemonic: MNEMONIC_24_1, - phonePilotSequenceId: 'one-normal-24', - }, - count24_two: { - id: 'count24_two', - name: '24词-2 (jazz cactus...)', - type: 'standard', - wordCount: 24, - mnemonic: MNEMONIC_24_2, - phonePilotSequenceId: 'two-normal-24', - }, - count24_three: { - id: 'count24_three', - name: '24词-3 (post flock...)', - type: 'standard', - wordCount: 24, - mnemonic: MNEMONIC_24_3, - phonePilotSequenceId: 'three-normal-24', - }, - - // SLIP39 20-word groups - slip39_20_one: { - id: 'slip39_20_one', - name: 'SLIP39-20词-1份', - type: 'slip39', - wordCount: 20, - slip39Shares: SLIP39_20_1, - phonePilotSequenceId: 'count20_one_normal', - }, - slip39_20_two: { - id: 'slip39_20_two', - name: 'SLIP39-20词-2/3', - type: 'slip39', - wordCount: 20, - slip39Shares: SLIP39_20_2, - phonePilotSequenceId: 'count20_two_normal', - }, - slip39_20_three: { - id: 'slip39_20_three', - name: 'SLIP39-20词-16/16', - type: 'slip39', - wordCount: 20, - slip39Shares: SLIP39_20_16, - phonePilotSequenceId: 'count20_three_normal', - }, - - // SLIP39 33-word groups - slip39_33_one: { - id: 'slip39_33_one', - name: 'SLIP39-33词-1份', - type: 'slip39', - wordCount: 33, - slip39Shares: SLIP39_33_1, - phonePilotSequenceId: 'count33_one_normal', - }, - slip39_33_two: { - id: 'slip39_33_two', - name: 'SLIP39-33词-3/2', - type: 'slip39', - wordCount: 33, - slip39Shares: SLIP39_33_2, - phonePilotSequenceId: 'count33_two_normal', - }, -}; - -/** - * Passphrase variants for each mnemonic group - * These match the test data files: normal.ts, passphrase_empty.ts, passphrase_1.ts, passphrase_2.ts - */ -export const PASSPHRASE_VARIANTS: Record = { - count12_one: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n4KZ2aKvYzJzWM6eG1YhNiP1iuGJiYbEh3' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxM4v8Eyo9S5BPCB1xbvmDBLXfACf4rPDK' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'myRpmVHzDdYd1yDm51hghVKKrZrHo9B5HG' }, - ], - count12_two: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3gj4cYqaL2oV2Kqp5kpDtMkfHFNpVLHq2' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mwZpVpJjjYu1NNxfwNRcpM9vVwKJVYpSn4' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mnyqRXNUGn52LJKgxz6LWv9nRoYLc5D41B' }, - ], - count12_three: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3H8jZ9iSfPCpWGVMWJT4Y5LoMRSPKoEiy' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxC7kcQhHvWHTBKLovKdhKnzDHMrFJCGFR' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3wC2CfMy4sD5xnRBVwVq4QeFzaBQPEoEp' }, - ], - count18_one: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n3SnW2LPPXgRwT9LxLvxjWVJpNvRFj1bMw' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'msSBAbDfbRHgBF6xBgaEd6YupR3qdVBu9H' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'muuXRoW6N8LZ4SDNMW1g1nvvGNV5e7T42x' }, - ], - count18_two: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'mzUAusDxuKwPhyLxMJwmPGpThiX1qWYJfK' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2MpHzYuEaWL81tT2p5LhkjDQgNGYEywcS' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mzHxQYjvjJLKQoaDZv2VXYwHy5RAXNvMwH' }, - ], - count18_three: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'mz2jx4mxw6qfYNJh5oAxLSz7bYsFFqYD9S' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2NopY1LPRWVGsLTRyMgL8SWXNzxVVNz2A' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3Dj7NJPENKNkXCW78EUK4vX7JXCdvLVTK' }, - ], - count24_one: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'mpZyZrARXurTXC6fhzHdQzs4xVNXCkCbxW' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'n2LkLQUmqRAFpjBwVAbwLmpnC3C43u1uv6' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n3dRrM9B4ZtEVNUiHF18LXNh5UUpZ1h8Zd' }, - ], - count24_two: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n2ygQ1UrZsUdQQb9VKsKcvCYm9yzRXmWPm' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mxeLmYLWevRtZ2nKkQ1qFjWQ8Q2dX3dU97' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'mzCw8LvNMSYZzQmgKz4BLQFZfCL9MUH3Ln' }, - ], - count24_three: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - { name: 'passphrase_empty', passphrase: '', passphraseState: 'n2bVqSJcvGDrPcT11tCPE6x1nLUVVyAfKF' }, - { name: 'passphrase_1', passphrase: 'asdfg7890', passphraseState: 'mvCcxPqVVJvbFLKJfvYHvCwD7FdqxGBjUx' }, - { name: 'passphrase_2', passphrase: '1234567890qwertyuiopasdfghjklzxcvbnm', passphraseState: 'n19rHMPLTuHxFBQnq5NMSkKMvPvWhjBpCY' }, - ], - // SLIP39 groups - typically only test with normal/empty passphrase - slip39_20_one: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - ], - slip39_20_two: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - ], - slip39_20_three: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - ], - slip39_33_one: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - ], - slip39_33_two: [ - { name: 'normal', passphrase: '', passphraseState: '' }, - ], -}; - -/** - * Get mnemonic group by ID - */ -export function getMnemonicGroup(id: MnemonicGroupId): MnemonicGroup { - return MNEMONIC_GROUPS[id]; -} - -/** - * Get passphrase variants for a mnemonic group - */ -export function getPassphraseVariants(id: MnemonicGroupId): PassphraseVariant[] { - return PASSPHRASE_VARIANTS[id] || []; -} - -/** - * Get all standard (non-SLIP39) mnemonic group IDs - */ -export function getStandardMnemonicGroupIds(): MnemonicGroupId[] { - return Object.keys(MNEMONIC_GROUPS).filter( - (id) => MNEMONIC_GROUPS[id as MnemonicGroupId].type === 'standard' - ) as MnemonicGroupId[]; -} - -/** - * Get all SLIP39 mnemonic group IDs - */ -export function getSlip39MnemonicGroupIds(): MnemonicGroupId[] { - return Object.keys(MNEMONIC_GROUPS).filter( - (id) => MNEMONIC_GROUPS[id as MnemonicGroupId].type === 'slip39' - ) as MnemonicGroupId[]; -} - -/** - * Get all mnemonic group IDs - */ -export function getAllMnemonicGroupIds(): MnemonicGroupId[] { - return Object.keys(MNEMONIC_GROUPS) as MnemonicGroupId[]; -} - -/** - * Mnemonic organization by word count - */ -export interface MnemonicsByWordCount { - wordCount: number; - label: string; - type: 'standard' | 'slip39'; - groups: Array<{ - shareLabel: string; - id: MnemonicGroupId; - }>; -} - -/** - * Get mnemonics organized by word count for UI display - */ -export function getMnemonicsOrganizedByWordCount(): MnemonicsByWordCount[] { - return [ - { - wordCount: 12, - label: '12-word', - type: 'standard', - groups: [ - { shareLabel: 'one', id: 'count12_one' }, - { shareLabel: 'two', id: 'count12_two' }, - { shareLabel: 'three', id: 'count12_three' }, - ], - }, - { - wordCount: 18, - label: '18-word', - type: 'standard', - groups: [ - { shareLabel: 'one', id: 'count18_one' }, - { shareLabel: 'two', id: 'count18_two' }, - { shareLabel: 'three', id: 'count18_three' }, - ], - }, - { - wordCount: 24, - label: '24-word', - type: 'standard', - groups: [ - { shareLabel: 'one', id: 'count24_one' }, - { shareLabel: 'two', id: 'count24_two' }, - { shareLabel: 'three', id: 'count24_three' }, - ], - }, - { - wordCount: 20, - label: 'SLIP39-20', - type: 'slip39', - groups: [ - { shareLabel: 'one', id: 'slip39_20_one' }, - { shareLabel: 'two', id: 'slip39_20_two' }, - { shareLabel: 'three', id: 'slip39_20_three' }, - ], - }, - { - wordCount: 33, - label: 'SLIP39-33', - type: 'slip39', - groups: [ - { shareLabel: 'one', id: 'slip39_33_one' }, - { shareLabel: 'two', id: 'slip39_33_two' }, - ], - }, - ]; -} - -/** - * Get passphrase variants filtered by selected variant IDs - */ -export function getFilteredPassphraseVariants( - mnemonicGroupId: MnemonicGroupId, - selectedVariantIds: PassphraseVariantId[] -): PassphraseVariant[] { - const allVariants = PASSPHRASE_VARIANTS[mnemonicGroupId] || []; - return allVariants.filter((variant) => - selectedVariantIds.includes(variant.name as PassphraseVariantId) - ); -} - -/** - * Get available passphrase variant IDs for a mnemonic group - */ -export function getAvailablePassphraseVariantIds(mnemonicGroupId: MnemonicGroupId): PassphraseVariantId[] { - const variants = PASSPHRASE_VARIANTS[mnemonicGroupId] || []; - return variants.map((v) => v.name as PassphraseVariantId); -} - -/** - * All passphrase variant IDs - */ -export const ALL_PASSPHRASE_VARIANT_IDS: PassphraseVariantId[] = [ - 'normal', - 'passphrase_empty', - 'passphrase_1', - 'passphrase_2', -]; diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts new file mode 100644 index 000000000..e182bc3f6 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts @@ -0,0 +1,335 @@ +import type { + AutomationScenario, + AutomationScenarioId, + Slip39DatasetId, + TestSuiteType, +} from '../../services/phonePilotMcp/types'; + +const BIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow']; +const BIP39_IMPORT_SUITES: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; +const SLIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow']; +const SLIP39_IMPORT_SUITES: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; + +const BIP39_IMPORT_VECTORS = { + 12: { + one: { + sequenceId: 'one-normal-12', + words: 'air census life sheriff attack include paper provide fantasy left opera sauce'.split( + ' ' + ), + }, + two: { + sequenceId: 'two-normal-12', + words: + 'relief exchange burst bullet topple manage impose dumb raise panther sibling shove'.split( + ' ' + ), + }, + three: { + sequenceId: 'three-normal-12', + words: + 'pyramid enforce season tide flag brisk law anchor refuse require reward negative'.split( + ' ' + ), + }, + }, + 18: { + one: { + sequenceId: 'one-normal-18', + words: + 'slab canyon coffee wine gold bronze rigid peace output security boy quick vital cat become stove tape super'.split( + ' ' + ), + }, + two: { + sequenceId: 'two-normal-18', + words: + 'arrange private session nose dial echo skull robust erode rain odor mango solve angle festival amazing decorate menu'.split( + ' ' + ), + }, + three: { + sequenceId: 'three-normal-18', + words: + 'riot fee raise forget always city spring million spike purse tackle impose faith remove hover snap leopard kitchen'.split( + ' ' + ), + }, + }, + 24: { + one: { + sequenceId: 'one-normal-24', + words: + 'gorilla absent bone address stay minimum artist train piano coil gadget truck almost voice runway drip pony pizza uncover expose country enlist avocado hotel'.split( + ' ' + ), + }, + two: { + sequenceId: 'two-normal-24', + words: + 'jazz cactus tower knee gift crazy tourist exile valid short exhibit cute asthma segment dragon write jacket ribbon cheese ignore use dwarf small dove'.split( + ' ' + ), + }, + three: { + sequenceId: 'three-normal-24', + words: + 'post flock violin raven size harvest media cash divide blade scale eternal action comic ball increase track unhappy ask speed timber exist trim expose'.split( + ' ' + ), + }, + }, +} as const; + +function createBip39CreateScenario( + id: AutomationScenarioId, + caseLabel: string, + wordCount: number, + sequenceId: string +): AutomationScenario { + return { + id, + jiraKey: 'OK-26053', + title: `OK-26053 / create / ${caseLabel}`, + flowType: 'create', + walletType: 'bip39', + caseLabel, + wordCount, + phonePilotSequenceId: sequenceId, + supportedSuites: BIP39_CREATE_SUITES, + }; +} + +function createBip39ImportScenario( + id: AutomationScenarioId, + caseLabel: string, + wordCount: 12 | 18 | 24, + vectorKey: 'one' | 'two' | 'three' +): AutomationScenario { + const vector = BIP39_IMPORT_VECTORS[wordCount][vectorKey]; + + return { + id, + jiraKey: 'OK-26054', + title: `OK-26054 / import / ${caseLabel}`, + flowType: 'import', + walletType: 'bip39', + caseLabel, + wordCount, + phonePilotSequenceId: vector.sequenceId, + supportedSuites: BIP39_IMPORT_SUITES, + bip39ImportMnemonicWords: [...vector.words], + }; +} + +function createSlip39CreateScenario( + id: AutomationScenarioId, + caseLabel: string, + wordCount: number, + shareCount: number, + threshold: number, + sequenceId: string +): AutomationScenario { + return { + id, + jiraKey: 'OK-5504', + title: `OK-5504 / create / ${caseLabel}`, + flowType: 'create', + walletType: 'slip39', + caseLabel, + wordCount, + shareCount, + threshold, + phonePilotSequenceId: sequenceId, + supportedSuites: SLIP39_CREATE_SUITES, + }; +} + +function createSlip39ImportScenario( + id: AutomationScenarioId, + caseLabel: string, + wordCount: number, + shareCount: number, + threshold: number, + sequenceId: string, + datasetId: Slip39DatasetId +): AutomationScenario { + return { + id, + jiraKey: 'OK-40090', + title: `OK-40090 / import / ${caseLabel}`, + flowType: 'import', + walletType: 'slip39', + caseLabel, + wordCount, + shareCount, + threshold, + phonePilotSequenceId: sequenceId, + supportedSuites: SLIP39_IMPORT_SUITES, + slip39DatasetId: datasetId, + }; +} + +export const AUTOMATION_SCENARIOS: Record = { + ok26053_bip39_create_12: createBip39CreateScenario( + 'ok26053_bip39_create_12', + '12-word', + 12, + 'create-wallet' + ), + ok26053_bip39_create_18: createBip39CreateScenario( + 'ok26053_bip39_create_18', + '18-word', + 18, + 'create-wallet-18' + ), + ok26053_bip39_create_24: createBip39CreateScenario( + 'ok26053_bip39_create_24', + '24-word', + 24, + 'create-wallet-24' + ), + ok26054_bip39_import_12: createBip39ImportScenario( + 'ok26054_bip39_import_12', + '12-word / one', + 12, + 'one' + ), + ok26054_bip39_import_12_two: createBip39ImportScenario( + 'ok26054_bip39_import_12_two', + '12-word / two', + 12, + 'two' + ), + ok26054_bip39_import_12_three: createBip39ImportScenario( + 'ok26054_bip39_import_12_three', + '12-word / three', + 12, + 'three' + ), + ok26054_bip39_import_18: createBip39ImportScenario( + 'ok26054_bip39_import_18', + '18-word / one', + 18, + 'one' + ), + ok26054_bip39_import_18_two: createBip39ImportScenario( + 'ok26054_bip39_import_18_two', + '18-word / two', + 18, + 'two' + ), + ok26054_bip39_import_18_three: createBip39ImportScenario( + 'ok26054_bip39_import_18_three', + '18-word / three', + 18, + 'three' + ), + ok26054_bip39_import_24: createBip39ImportScenario( + 'ok26054_bip39_import_24', + '24-word / one', + 24, + 'one' + ), + ok26054_bip39_import_24_two: createBip39ImportScenario( + 'ok26054_bip39_import_24_two', + '24-word / two', + 24, + 'two' + ), + ok26054_bip39_import_24_three: createBip39ImportScenario( + 'ok26054_bip39_import_24_three', + '24-word / three', + 24, + 'three' + ), + ok5504_slip39_create_20_1of1: createSlip39CreateScenario( + 'ok5504_slip39_create_20_1of1', + '20(1-1)', + 20, + 1, + 1, + 'create-slip39-single-template' + ), + ok5504_slip39_create_20_2of2: createSlip39CreateScenario( + 'ok5504_slip39_create_20_2of2', + '20(2-2)', + 20, + 2, + 2, + 'create-slip39-multi-2of2-template' + ), + ok5504_slip39_create_20_8of8: createSlip39CreateScenario( + 'ok5504_slip39_create_20_8of8', + '20(8-8)', + 20, + 8, + 8, + 'create-slip39-multi-8of8-template' + ), + ok5504_slip39_create_20_16of2: createSlip39CreateScenario( + 'ok5504_slip39_create_20_16of2', + '20(16-2)', + 20, + 16, + 2, + 'create-slip39-multi-16of2-template' + ), + ok40090_slip39_import_20_1of1: createSlip39ImportScenario( + 'ok40090_slip39_import_20_1of1', + '20(1-1)', + 20, + 1, + 1, + 'count20_one_normal', + 'count20_one' + ), + ok40090_slip39_import_20_3of2: createSlip39ImportScenario( + 'ok40090_slip39_import_20_3of2', + '20(3-2)', + 20, + 3, + 2, + 'count20_two_normal', + 'count20_two' + ), + ok40090_slip39_import_20_16of16: createSlip39ImportScenario( + 'ok40090_slip39_import_20_16of16', + '20(16-16)', + 20, + 16, + 16, + 'count20_three_normal', + 'count20_three' + ), + ok40090_slip39_import_33_1of1: createSlip39ImportScenario( + 'ok40090_slip39_import_33_1of1', + '33(1-1)', + 33, + 1, + 1, + 'count33_one_normal', + 'count33_one' + ), + ok40090_slip39_import_33_2of3: createSlip39ImportScenario( + 'ok40090_slip39_import_33_2of3', + '33(2-3)', + 33, + 3, + 2, + 'count33_two_normal', + 'count33_two' + ), +}; + +export const ALL_AUTOMATION_SCENARIO_IDS = Object.keys( + AUTOMATION_SCENARIOS +) as AutomationScenarioId[]; + +export function getAutomationScenario(id: AutomationScenarioId): AutomationScenario { + return AUTOMATION_SCENARIOS[id]; +} + +export function getAllAutomationScenarios(): AutomationScenario[] { + return ALL_AUTOMATION_SCENARIO_IDS.map(id => AUTOMATION_SCENARIOS[id]); +} diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioResolver.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioResolver.ts new file mode 100644 index 000000000..f4464e95a --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioResolver.ts @@ -0,0 +1,191 @@ +import { batchAddressTestCount12One } from '../addressTest/data/count12_one'; +import { batchAddressTestCount12Three } from '../addressTest/data/count12_three'; +import { batchAddressTestCount12Two } from '../addressTest/data/count12_two'; +import { batchAddressTestCount18One } from '../addressTest/data/count18_one'; +import { batchAddressTestCount18Three } from '../addressTest/data/count18_three'; +import { batchAddressTestCount18Two } from '../addressTest/data/count18_two'; +import { batchAddressTestCount24One } from '../addressTest/data/count24_one'; +import { batchAddressTestCount24Three } from '../addressTest/data/count24_three'; +import { batchAddressTestCount24Two } from '../addressTest/data/count24_two'; +import { batchPubkeyTestCount12One } from '../pubkeyTest/data/count12_one'; +import { batchPubkeyTestCount12Three } from '../pubkeyTest/data/count12_three'; +import { batchPubkeyTestCount12Two } from '../pubkeyTest/data/count12_two'; +import { batchPubkeyTestCount18One } from '../pubkeyTest/data/count18_one'; +import { batchPubkeyTestCount18Three } from '../pubkeyTest/data/count18_three'; +import { batchPubkeyTestCount18Two } from '../pubkeyTest/data/count18_two'; +import { batchPubkeyTestCount24One } from '../pubkeyTest/data/count24_one'; +import { batchPubkeyTestCount24Three } from '../pubkeyTest/data/count24_three'; +import { batchPubkeyTestCount24Two } from '../pubkeyTest/data/count24_two'; +import { batchAddressTests } from '../slip39Test/addressData'; +import { allPubkeyTestCases } from '../slip39Test/pubKeyData'; + +import type { + AutomationScenario, + PassphraseVariantId, + Slip39DatasetId, +} from '../../services/phonePilotMcp/types'; +import type { AddressBatchTestCase } from '../addressTest/types'; +import type { PubkeyBatchTestCase } from '../pubkeyTest/types'; +import type { SLIP39TestCaseData } from '../slip39Test/types'; + +const BIP39_CREATE_PASSPHRASE_LITERALS: Partial> = { + normal: undefined, + passphrase_empty: '', + passphrase_1: 'asdfg7890', + passphrase_2: '1234567890qwertyuiopasdfghjklzxcvbnm', +}; + +const SLIP39_PASSPHRASE_LITERALS: Partial> = { + normal: undefined, + passphrase_empty: '', + passphrase_1: '12345', + passphrase_2: 'onekey', +}; + +const BIP39_IMPORT_VARIANT_INDEX: Record = { + normal: 0, + passphrase_empty: 1, + passphrase_1: 2, + passphrase_2: 3, +}; + +export interface AutomationSdkMethodCase { + method: string; + name?: string; + params?: any; + expectedByPath: Record; +} + +export interface AutomationSdkCase { + id: string; + name: string; + description: string; + passphrase?: string; + passphraseState?: string; + data: AutomationSdkMethodCase[]; +} + +type Bip39BatchTestCase = AddressBatchTestCase | PubkeyBatchTestCase; + +function toSlip39DataCaseMap(dataList: SLIP39TestCaseData[]): Record { + return Object.fromEntries(dataList.map(item => [item.id, item])); +} + +function normalizeBip39BatchCase(testCase: Bip39BatchTestCase): AutomationSdkCase { + return { + id: testCase.id, + name: testCase.name, + description: testCase.description, + passphrase: testCase.extra?.passphrase, + passphraseState: testCase.extra?.passphraseState, + data: testCase.data.map(item => ({ + method: item.method, + name: item.name, + params: item.params, + expectedByPath: item.result, + })), + }; +} + +const BIP39_IMPORT_ADDRESS_CASE_GROUPS: Record = { + 'one-normal-12': batchAddressTestCount12One, + 'two-normal-12': batchAddressTestCount12Two, + 'three-normal-12': batchAddressTestCount12Three, + 'one-normal-18': batchAddressTestCount18One, + 'two-normal-18': batchAddressTestCount18Two, + 'three-normal-18': batchAddressTestCount18Three, + 'one-normal-24': batchAddressTestCount24One, + 'two-normal-24': batchAddressTestCount24Two, + 'three-normal-24': batchAddressTestCount24Three, +}; + +const BIP39_IMPORT_PUBKEY_CASE_GROUPS: Record = { + 'one-normal-12': batchPubkeyTestCount12One, + 'two-normal-12': batchPubkeyTestCount12Two, + 'three-normal-12': batchPubkeyTestCount12Three, + 'one-normal-18': batchPubkeyTestCount18One, + 'two-normal-18': batchPubkeyTestCount18Two, + 'three-normal-18': batchPubkeyTestCount18Three, + 'one-normal-24': batchPubkeyTestCount24One, + 'two-normal-24': batchPubkeyTestCount24Two, + 'three-normal-24': batchPubkeyTestCount24Three, +}; + +const slip39AddressCaseMap = toSlip39DataCaseMap(batchAddressTests); +const slip39PubkeyCaseMap = toSlip39DataCaseMap(allPubkeyTestCases); +const SLIP39_CREATE_TEMPLATE_CASE_ID = 'count20_one_normal'; + +function buildSlip39CaseId(datasetId: Slip39DatasetId, variantId: PassphraseVariantId): string { + const suffixMap: Record = { + normal: 'normal', + passphrase_empty: 'passphrase_empty', + passphrase_1: 'passphrase_1', + passphrase_2: 'passphrase_2', + }; + return `${datasetId}_${suffixMap[variantId]}`; +} + +function getBip39ImportCaseGroup( + scenario: AutomationScenario, + caseType: 'address' | 'pubkey' +): Bip39BatchTestCase[] { + if (scenario.walletType !== 'bip39' || scenario.flowType !== 'import') { + return []; + } + + return caseType === 'address' + ? BIP39_IMPORT_ADDRESS_CASE_GROUPS[scenario.phonePilotSequenceId] || [] + : BIP39_IMPORT_PUBKEY_CASE_GROUPS[scenario.phonePilotSequenceId] || []; +} + +export function resolveBip39ImportSdkCases( + scenario: AutomationScenario, + selectedPassphraseVariantIds: PassphraseVariantId[], + caseType: 'address' | 'pubkey' +): AutomationSdkCase[] { + const caseGroup = getBip39ImportCaseGroup(scenario, caseType); + + return selectedPassphraseVariantIds + .map(variantId => caseGroup[BIP39_IMPORT_VARIANT_INDEX[variantId]]) + .filter((item): item is Bip39BatchTestCase => Boolean(item)) + .map(normalizeBip39BatchCase); +} + +export function resolveSlip39SdkCases( + scenario: AutomationScenario, + selectedPassphraseVariantIds: PassphraseVariantId[], + caseType: 'address' | 'pubkey' +): SLIP39TestCaseData[] { + if (!scenario.slip39DatasetId) { + return []; + } + + const datasetId = scenario.slip39DatasetId; + const caseMap = caseType === 'address' ? slip39AddressCaseMap : slip39PubkeyCaseMap; + + return selectedPassphraseVariantIds + .map(variantId => caseMap[buildSlip39CaseId(datasetId, variantId)]) + .filter((item): item is SLIP39TestCaseData => Boolean(item)); +} + +export function getSlip39CreateTemplateCase( + caseType: 'address' | 'pubkey' +): SLIP39TestCaseData | null { + const caseMap = caseType === 'address' ? slip39AddressCaseMap : slip39PubkeyCaseMap; + return caseMap[SLIP39_CREATE_TEMPLATE_CASE_ID] || null; +} + +export function getScenarioPassphraseLiteral( + scenario: AutomationScenario, + variantId: PassphraseVariantId +): string | undefined { + if (scenario.walletType === 'slip39') { + return SLIP39_PASSPHRASE_LITERALS[variantId]; + } + + if (scenario.flowType === 'import') { + return resolveBip39ImportSdkCases(scenario, [variantId], 'address')[0]?.passphrase; + } + + return BIP39_CREATE_PASSPHRASE_LITERALS[variantId]; +} diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts index f935202f6..83ad64e30 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -1,50 +1,506 @@ /** * useAutomationTest Hook - * - * Integrates PhonePilot MCP with the existing test framework for automated testing. - * Handles device preparation, UI request interception, and test execution flow. */ -import { useCallback, useContext, useRef, useEffect } from 'react'; -import { useAtom, useSetAtom, useAtomValue } from 'jotai'; +import { useCallback, useContext, useEffect, useRef } from 'react'; +import { useAtom, useAtomValue, useSetAtom } from 'jotai'; import { UI_EVENT, UI_REQUEST, UI_RESPONSE } from '@onekeyfe/hd-core'; +import { getAllAutomationScenarios, getAutomationScenario } from './scenarioCatalog'; +import { + resolveBip39ImportSdkCases, + type AutomationSdkCase, + type AutomationSdkMethodCase, + getScenarioPassphraseLiteral, + getSlip39CreateTemplateCase, + resolveSlip39SdkCases, +} from './scenarioResolver'; import { PhonePilotClient } from '../../services/phonePilotMcp'; import { - phonePilotConnectionStateAtom, - phonePilotUrlAtom, + addLogAtom, automationConfigAtom, + automationLogsAtom, automationProgressAtom, automationReportAtom, - automationLogsAtom, - addLogAtom, + cameraFrameAtom, clearLogsAtom, + phonePilotConnectionStateAtom, + phonePilotHealthAtom, resetProgressAtom, - cameraFrameAtom, } from '../../atoms/automationAtoms'; -import { getMnemonicGroup, getFilteredPassphraseVariants } from './mnemonicGroups'; import HardwareSDKContext from '../../provider/HardwareSDKContext'; import { useDevice } from '../../provider/DeviceProvider'; +import { deriveKeyPairWithPath, mnemonicToSeed } from '../../utils/mockDevice/helper'; +import { generateAptosPublicKeyFromSeed } from '../../utils/mockDevice/method/aptosGetPublicKey'; +import { generateEvmAddressFromSeed } from '../../utils/mockDevice/method/evmGetAddress'; +import { + generateMultiChainAddressFromSLIP39, + generateMultiChainPublicKeyFromSLIP39, +} from '../slip39Test/slip39Utils'; import type { - TestProgress, + AutomationScenario, + HealthCheckResponse, + MnemonicStoreResult, + PassphraseVariantId, + ScenarioReportResult, + TestCaseResult, TestReport, TestSuiteResult, - TestCaseResult, - MnemonicGroupId, - PassphraseVariant, + TestSuiteType, } from '../../services/phonePilotMcp/types'; import type { CoreApi } from '@onekeyfe/hd-core'; +import type { SLIP39MethodData, SLIP39TestCaseData } from '../slip39Test/types'; + +const SUITE_EXECUTION_ORDER: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; +const EVM_ADDRESS_PATH = "m/44'/60'/0'/0/0"; +const BIP39_CREATE_PUBKEY_PROBES: Array<{ + method: string; + caseName: string; + path: string; +}> = [ + { + method: 'btcGetPublicKey', + caseName: 'btcGetPublicKey-pubkey', + path: "m/44'/0'/0'/0/0", + }, + { + method: 'btcGetPublicKey', + caseName: 'btcGetPublicKey-xpub', + path: "m/44'/0'/0'", + }, + { + method: 'evmGetPublicKey', + caseName: 'evmGetPublicKey-pubkey', + path: EVM_ADDRESS_PATH, + }, + { + method: 'evmGetPublicKey', + caseName: 'evmGetPublicKey-xpub', + path: "m/44'/60'/0'", + }, + { + method: 'aptosGetPublicKey', + caseName: 'aptosGetPublicKey', + path: "m/44'/637'/0'/0'/0'", + }, +]; +const SLIP39_CREATE_ALLOWED_VARIANTS: PassphraseVariantId[] = ['normal', 'passphrase_2']; +const RESET_SEQUENCE_LOCKED = 'reset-wallet-locked'; +const RESET_SEQUENCE_UNLOCKED = 'reset-wallet-unlocked'; +const DEBUG_SKIP_DEVICE_FLOW_REASON = 'debug mode skipped device flow'; + +type AutomationRunMode = 'full' | 'debug'; + +interface PreparationResult { + success: boolean; + suiteResult: TestSuiteResult; + mnemonicStoreResult: MnemonicStoreResult | null; +} + +interface DebugScenarioDecision { + matched: boolean; + reason?: string; +} + +interface DebugRunContext { + deviceId: string; + currentEvmAddress: string; + mnemonicStoreResult: MnemonicStoreResult | null; + scenarioDecisions: Map; +} + +function delay(ms: number): Promise { + return new Promise(resolve => { + setTimeout(resolve, ms); + }); +} + +function createSuiteResult( + suiteType: TestSuiteType, + suiteName: string, + results: TestCaseResult[], + duration: number +): TestSuiteResult { + const skippedTests = results.filter(item => item.skipped).length; + const failedTests = results.filter(item => !item.passed && !item.skipped).length; + const passedTests = results.filter(item => item.passed).length; + let status: TestSuiteResult['status'] = 'passed'; + + if (results.length === 0 || skippedTests === results.length) { + status = 'skipped'; + } else if (failedTests > 0) { + status = 'failed'; + } + + return { + suiteType, + suiteName, + status, + totalTests: results.length, + passedTests, + failedTests, + skippedTests, + duration, + results, + }; +} + +function createSkippedSuiteResult( + suiteType: TestSuiteType, + suiteName: string, + reason: string +): TestSuiteResult { + return createSuiteResult( + suiteType, + suiteName, + [ + { + title: suiteName, + passed: false, + skipped: true, + error: reason, + duration: 0, + }, + ], + 0 + ); +} + +function createFailureSuiteResult( + suiteType: TestSuiteType, + suiteName: string, + reason: string +): TestSuiteResult { + return createSuiteResult( + suiteType, + suiteName, + [ + { + title: suiteName, + passed: false, + error: reason, + duration: 0, + }, + ], + 0 + ); +} + +function extractPublicKeyValue(payload: unknown, method: string, caseName?: string): string { + if (!payload) { + return ''; + } + if (typeof payload === 'string') { + return payload; + } + + const normalizedPayload = payload as { + publicKey?: string; + xpub?: string; + public_key?: string; + pub?: string; + publickey?: string; + node?: { public_key?: string }; + message?: { + node?: { public_key?: string }; + public_keys?: string[]; + }; + }; + + const lowerCaseName = (caseName || '').toLowerCase(); + const expectXpub = lowerCaseName.includes('xpub'); + const expectPubkey = lowerCaseName.includes('pubkey'); + + if (expectXpub) { + return String(normalizedPayload.xpub || ''); + } + + if (expectPubkey) { + return String( + normalizedPayload.publicKey || + normalizedPayload.public_key || + normalizedPayload.pub || + normalizedPayload.publickey || + normalizedPayload.node?.public_key || + normalizedPayload.message?.node?.public_key || + normalizedPayload.message?.public_keys?.[0] || + normalizedPayload.xpub || + '' + ); + } + + if (method === 'cardanoGetPublicKey') { + return String(normalizedPayload.xpub || ''); + } + + return String( + normalizedPayload.publicKey || + normalizedPayload.public_key || + normalizedPayload.pub || + normalizedPayload.publickey || + normalizedPayload.node?.public_key || + normalizedPayload.message?.node?.public_key || + normalizedPayload.message?.public_keys?.[0] || + normalizedPayload.xpub || + '' + ); +} + +function extractAddressValue(payload: unknown): string { + if (!payload) { + return ''; + } + if (typeof payload === 'string') { + return payload; + } + + const normalizedPayload = payload as { + address?: string; + payload?: { address?: string }; + }; + + return String(normalizedPayload.address || normalizedPayload.payload?.address || ''); +} + +function normalizeComparisonValue( + value: string, + caseType: 'address' | 'pubkey', + method: string, + caseName?: string +): string { + if (!value) { + return ''; + } + + if (caseType === 'pubkey') { + const lowerCaseName = (caseName || '').toLowerCase(); + if (method === 'evmGetPublicKey' && !lowerCaseName.includes('xpub') && !value.startsWith('0x')) { + return `0x${value}`; + } + if (method === 'suiGetPublicKey' && !value.startsWith('00')) { + return `00${value}`; + } + } + + return value; +} + +function extractComparisonValue( + payload: unknown, + caseType: 'address' | 'pubkey', + method: string, + caseName?: string +): string { + const rawValue = + caseType === 'address' + ? extractAddressValue(payload) + : extractPublicKeyValue(payload, method, caseName); + return normalizeComparisonValue(rawValue, caseType, method, caseName); +} + +function formatPassphraseDisplay(passphrase?: string): string { + if (passphrase === undefined) { + return '(none)'; + } + if (passphrase === '') { + return '(empty)'; + } + return passphrase; +} + +function normalizeMnemonicWords(words?: string[]): string[] { + return (words || []).map(word => word.trim()).filter(Boolean); +} + +function normalizeSlip39Shares(shares?: string[][]): string[] { + return (shares || []) + .map(share => + share + .map(word => word.trim()) + .filter(Boolean) + .join(' ') + ) + .filter(Boolean); +} + +function buildBip39CreateExpectedValue( + method: string, + caseName: string, + seed: Buffer, + path: string +): string { + if (method === 'evmGetAddress') { + return generateEvmAddressFromSeed(seed, path); + } + + if (method === 'aptosGetPublicKey') { + return extractComparisonValue( + { publicKey: generateAptosPublicKeyFromSeed(seed, path) }, + 'pubkey', + method, + caseName + ); + } + + const keyPair = deriveKeyPairWithPath(seed, path, 'secp256k1'); + const publicKey = keyPair.publicKey ? Buffer.from(keyPair.publicKey).toString('hex') : ''; + const xpub = (keyPair as { publicExtendedKey?: string }).publicExtendedKey || ''; + + if (method === 'btcGetPublicKey') { + return extractComparisonValue( + { xpub, node: { public_key: publicKey } }, + 'pubkey', + method, + caseName + ); + } + + if (method === 'evmGetPublicKey') { + return extractComparisonValue( + { publicKey: `0x${publicKey}`, xpub }, + 'pubkey', + method, + caseName + ); + } + + return ''; +} + +function extractExpectedByPath( + expectedByPath: Record, + expectedPath: string, + caseType: 'address' | 'pubkey', + method: string, + caseName?: string +): string { + return extractComparisonValue(expectedByPath[expectedPath], caseType, method, caseName); +} + +function buildSdkParamsForPath(methodCase: AutomationSdkMethodCase, expectedPath: string): any { + const bundle = methodCase.params?.bundle; + if (Array.isArray(bundle)) { + const matchedParams = bundle.find( + (item: any) => item?.path === expectedPath || item?.addressParameters?.path === expectedPath + ); + if (!matchedParams) { + throw new Error(`Missing bundle params for ${methodCase.name || methodCase.method} / ${expectedPath}`); + } + return { + ...matchedParams, + showOnOneKey: false, + }; + } + + if (methodCase.params?.addressParameters?.path) { + return { + ...methodCase.params, + showOnOneKey: false, + }; + } + + return { + ...(methodCase.params || {}), + path: expectedPath, + showOnOneKey: false, + }; +} + +function getSuiteName(suiteType: TestSuiteType): string { + return suiteType === 'deviceFlow' + ? 'Device Flow' + : suiteType === 'sdkAddressBatch' + ? 'SDK Address Batch' + : 'SDK Pubkey Batch'; +} + +function getBip39ImportProbeAddress(scenario: AutomationScenario): string { + const sdkCase = resolveBip39ImportSdkCases(scenario, ['normal'], 'address')[0]; + if (!sdkCase) { + return ''; + } + + for (const methodData of sdkCase.data) { + if (methodData.method !== 'evmGetAddress') { + continue; + } + return extractExpectedByPath( + methodData.expectedByPath, + EVM_ADDRESS_PATH, + 'address', + methodData.method, + methodData.name + ); + } + + return ''; +} + +function getSlip39ImportProbeAddress(scenario: AutomationScenario): string { + const slip39Cases = resolveSlip39SdkCases(scenario, ['normal'], 'address'); + for (const slip39Case of slip39Cases) { + for (const methodData of slip39Case.data) { + if (methodData.method !== 'evmGetAddress') { + continue; + } + const expected = methodData.expectedAddress?.[EVM_ADDRESS_PATH]; + if (expected) { + return expected; + } + } + } + + return ''; +} + +function buildScenarioStatus(suiteResults: TestSuiteResult[]): ScenarioReportResult['status'] { + if (suiteResults.length === 0 || suiteResults.every(item => item.status === 'skipped')) { + return 'skipped'; + } + if (suiteResults.some(item => item.status === 'failed')) { + return 'failed'; + } + return 'passed'; +} + +function buildScenarioReport( + scenario: AutomationScenario, + suiteResults: TestSuiteResult[], + duration: number, + status?: ScenarioReportResult['status'] +): ScenarioReportResult { + return { + scenarioId: scenario.id, + scenarioTitle: scenario.title, + jiraKey: scenario.jiraKey, + flowType: scenario.flowType, + walletType: scenario.walletType, + caseLabel: scenario.caseLabel, + status: status || buildScenarioStatus(suiteResults), + duration, + suiteResults, + }; +} + +function buildSelectedSuites( + scenario: AutomationScenario, + selectedSuites: TestSuiteType[] +): TestSuiteType[] { + return SUITE_EXECUTION_ORDER.filter( + suiteType => selectedSuites.includes(suiteType) && scenario.supportedSuites.includes(suiteType) + ); +} + +function shouldStopBySuiteFailure( + stopOnFirstError: boolean, + suiteResults: TestSuiteResult[] +): boolean { + return stopOnFirstError && suiteResults.some(item => item.status === 'failed'); +} -/** - * Automation Test Hook - * - * Provides methods to control automated test execution with PhonePilot integration. - */ export function useAutomationTest() { - // Atoms const [connectionState, setConnectionState] = useAtom(phonePilotConnectionStateAtom); - const phonePilotUrl = useAtomValue(phonePilotUrlAtom); const config = useAtomValue(automationConfigAtom); const [progress, setProgress] = useAtom(automationProgressAtom); const setReport = useSetAtom(automationReportAtom); @@ -53,102 +509,145 @@ export function useAutomationTest() { const clearLogs = useSetAtom(clearLogsAtom); const resetProgress = useSetAtom(resetProgressAtom); const setCameraFrame = useSetAtom(cameraFrameAtom); + const setPhonePilotHealth = useSetAtom(phonePilotHealthAtom); - // Context const { sdk: SDK } = useContext(HardwareSDKContext); const { selectedDevice } = useDevice(); - // Refs const clientRef = useRef(null); - const runningRef = useRef(false); - const currentPassphraseRef = useRef(''); + const runningRef = useRef(false); + const currentPassphraseRef = useRef(''); + const lastUrlRef = useRef(config.phonePilotUrl); + const phonePilotHealthRef = useRef(null); + + const updateSuiteProgress = useCallback( + (suiteType: TestSuiteType, scenario: AutomationScenario) => { + setProgress(prev => ({ + ...prev, + status: 'running', + currentScenarioId: scenario.id, + currentScenarioTitle: scenario.title, + currentTestSuite: suiteType, + currentTestIndex: prev.completedSuites, + })); + }, + [setProgress] + ); + + const markSuiteCompleted = useCallback(() => { + setProgress(prev => ({ + ...prev, + completedSuites: prev.completedSuites + 1, + currentTestIndex: prev.completedSuites + 1, + })); + }, [setProgress]); + + const markScenarioCompleted = useCallback(() => { + setProgress(prev => ({ + ...prev, + completedScenarios: prev.completedScenarios + 1, + currentPassphrase: null, + })); + }, [setProgress]); - // Track URL for client recreation - const lastUrlRef = useRef(phonePilotUrl); + const updateHealthState = useCallback( + (health: HealthCheckResponse | null) => { + phonePilotHealthRef.current = health; + setPhonePilotHealth(health); + }, + [setPhonePilotHealth] + ); - // Initialize PhonePilot client (recreate if URL changes) useEffect(() => { - // Recreate client if URL changed or not initialized - if (!clientRef.current || lastUrlRef.current !== phonePilotUrl) { - // Disconnect old client if exists - if (clientRef.current && lastUrlRef.current !== phonePilotUrl) { + if (!clientRef.current || lastUrlRef.current !== config.phonePilotUrl) { + if (clientRef.current && lastUrlRef.current !== config.phonePilotUrl) { clientRef.current.disconnect(); } - clientRef.current = new PhonePilotClient(phonePilotUrl); + clientRef.current = new PhonePilotClient(config.phonePilotUrl); clientRef.current.setOnStateChange(setConnectionState); - lastUrlRef.current = phonePilotUrl; + lastUrlRef.current = config.phonePilotUrl; + updateHealthState(null); } - return () => { - clientRef.current?.disconnect(); - }; - }, [phonePilotUrl, setConnectionState]); + }, [config.phonePilotUrl, setConnectionState, updateHealthState]); - /** - * Connect to PhonePilot MCP server - */ - const connectPhonePilot = useCallback(async (): Promise => { - // Always disconnect old connection first to ensure fresh connection - if (clientRef.current) { - await clientRef.current.disconnect(); + useEffect( + () => () => { + if (clientRef.current) { + clientRef.current.disconnect(); + } + updateHealthState(null); + }, + [updateHealthState] + ); + + const refreshPhonePilotHealth = useCallback(async (): Promise => { + if (!clientRef.current) { + return null; } - // Create new client - clientRef.current = new PhonePilotClient(phonePilotUrl); - clientRef.current.setOnStateChange(setConnectionState); - lastUrlRef.current = phonePilotUrl; + const health = await clientRef.current.healthCheck(); + if (health) { + updateHealthState(health); + } + return health; + }, [updateHealthState]); - addLog(`Connecting to PhonePilot at ${phonePilotUrl}...`); - const success = await clientRef.current.connect(); + const connectPhonePilot = useCallback(async (): Promise => { + if (!clientRef.current) { + clientRef.current = new PhonePilotClient(config.phonePilotUrl); + clientRef.current.setOnStateChange(setConnectionState); + } - if (success) { - addLog('PhonePilot connected successfully'); - // Also connect to mechanical arm - try { - const armResult = await clientRef.current.armConnect(); - if (armResult.success) { - addLog(`Arm connected: handle=${armResult.handle}`); - } else { - addLog(`Arm connection failed: ${armResult.message}`); - } - } catch (error) { - addLog(`Arm connection error: ${error}`); - } - } else { - addLog('PhonePilot connection failed'); + const client = clientRef.current; + const health = await refreshPhonePilotHealth(); + if (!health) { + addLog(`PhonePilot server is not reachable: ${config.phonePilotUrl}`); + setConnectionState('error'); + updateHealthState(null); + return false; + } + + addLog(`PhonePilot server is healthy: ${health.version}`); + addLog( + `MCP ready: ${health.mcpReady ? 'yes' : 'no'} · OCR ready: ${health.ocrReady ? 'yes' : 'no'}` + ); + if (health.message) { + addLog(`Health message: ${health.message}`); } + addLog(`Sequence count: ${health.sequenceIds.length}`); + const success = await client.connect(); + addLog(success ? 'PhonePilot connected' : 'PhonePilot connection failed'); return success; - }, [phonePilotUrl, setConnectionState, addLog]); + }, [ + addLog, + config.phonePilotUrl, + refreshPhonePilotHealth, + setConnectionState, + updateHealthState, + ]); - /** - * Disconnect from PhonePilot - */ const disconnectPhonePilot = useCallback(async (): Promise => { if (clientRef.current) { try { await clientRef.current.armDisconnect(); } catch (error) { - // Ignore disconnect errors + addLog(`PhonePilot arm disconnect ignored: ${error}`); } await clientRef.current.disconnect(); + updateHealthState(null); addLog('PhonePilot disconnected'); } - }, [addLog]); + }, [addLog, updateHealthState]); - /** - * Setup SDK UI event listener for physical operations - */ const setupUIListener = useCallback( (sdk: CoreApi) => { sdk.removeAllListeners(UI_EVENT); - - sdk.on(UI_EVENT, async (message: { type: string; payload?: unknown }) => { + sdk.on(UI_EVENT, async (message: { type: string }) => { addLog(`UI Event: ${message.type}`); switch (message.type) { case UI_REQUEST.REQUEST_BUTTON: - // Device needs physical confirmation - addLog('Device requesting button confirmation...'); if (clientRef.current) { try { await clientRef.current.confirmAction(); @@ -158,13 +657,10 @@ export function useAutomationTest() { } } break; - case UI_REQUEST.REQUEST_PIN: - // Device needs PIN input - addLog('Device requesting PIN...'); if (clientRef.current) { try { - await clientRef.current.inputPin('1111'); // Default test PIN + await clientRef.current.inputPin('1111'); sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PIN, payload: '@@ONEKEY_INPUT_PIN_IN_DEVICE', @@ -175,460 +671,1609 @@ export function useAutomationTest() { } } break; - case UI_REQUEST.REQUEST_PASSPHRASE: - // Passphrase is sent directly via SDK, no physical input needed - const passphrase = currentPassphraseRef.current; - addLog(`Device requesting passphrase, sending via SDK: "${passphrase || '(empty)'}"...`); + addLog( + `Device requesting passphrase, sending via SDK: "${ + currentPassphraseRef.current || '(empty)' + }"` + ); sdk.uiResponse({ type: UI_RESPONSE.RECEIVE_PASSPHRASE, - payload: { value: passphrase || '' }, + payload: { value: currentPassphraseRef.current || '' }, }); - addLog('Passphrase sent via SDK'); break; - default: - addLog(`Unhandled UI event: ${message.type}`); + break; } }); }, [addLog] ); - /** - * Prepare device with mnemonic using PhonePilot - */ - const prepareDevice = useCallback( - async (mnemonicGroupId: MnemonicGroupId): Promise => { - if (!clientRef.current) { - addLog('PhonePilot client not initialized'); - return false; + const runWithRetry = useCallback( + async (label: string, operation: () => Promise): Promise => { + let lastError: unknown; + const attempts = Math.max(1, config.retryCount); + + for (let attempt = 1; attempt <= attempts; attempt += 1) { + try { + if (attempt > 1) { + addLog(`${label} retry ${attempt}/${attempts}`); + } + return await operation(); + } catch (error) { + lastError = error; + if (attempt < attempts) { + await delay(300); + } + } } - // Check if actually connected (not just state) - if (clientRef.current.getConnectionState() !== 'connected') { - addLog('PhonePilot not connected, attempting to connect...'); - const connected = await connectPhonePilot(); - if (!connected) { - addLog('Failed to connect to PhonePilot'); - return false; + throw lastError; + }, + [addLog, config.retryCount] + ); + + const executePhonePilotSequence = useCallback( + async (sequenceId: string) => { + const result = await runWithRetry(`execute-sequence:${sequenceId}`, () => { + if (!clientRef.current) { + throw new Error('PhonePilot client is not initialized'); } + return clientRef.current.executeSequence(sequenceId); + }); + + if (result.frame) { + setCameraFrame(result.frame); } - const group = getMnemonicGroup(mnemonicGroupId); - addLog(`Preparing device with ${group.name}...`); + return result; + }, + [runWithRetry, setCameraFrame] + ); - setProgress((prev) => ({ + const executeScenarioPreparation = useCallback( + async ( + scenario: AutomationScenario, + options?: { health?: HealthCheckResponse | null; clearMnemonicStore?: boolean } + ): Promise => { + updateSuiteProgress('deviceFlow', scenario); + setProgress(prev => ({ ...prev, status: 'preparing-device', - currentMnemonicGroup: mnemonicGroupId, + currentScenarioId: scenario.id, + currentScenarioTitle: scenario.title, + currentPassphrase: null, })); + addLog(`Preparing scenario: ${scenario.title}`); - try { - // First reset the device - addLog('Resetting device...'); - const resetResult = await clientRef.current.executeSequence('reset-wallet'); - if (!resetResult.success) { - throw new Error(`Reset failed: ${resetResult.message}`); - } - addLog('Device reset complete'); + if (!clientRef.current) { + return { + success: false, + suiteResult: createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + 'PhonePilot client is not initialized' + ), + mnemonicStoreResult: null, + }; + } - // Check if stopped - if (!runningRef.current) { - addLog('Test stopped by user during device preparation'); - return false; - } + const health = options?.health || (await refreshPhonePilotHealth()); + if (!health) { + return { + success: false, + suiteResult: createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + 'PhonePilot health check failed before scenario preparation' + ), + mnemonicStoreResult: null, + }; + } + + if (!health.sequenceIds.includes(scenario.phonePilotSequenceId)) { + const driftMessage = `sequence drift: ${scenario.phonePilotSequenceId} is not present in PhonePilot /health sequenceIds`; + addLog(driftMessage); + return { + success: false, + suiteResult: createFailureSuiteResult('deviceFlow', 'Device Flow', driftMessage), + mnemonicStoreResult: null, + }; + } - // Wait a bit for device to restart - await delay(5000); + if (scenario.flowType === 'create' && !health.ocrReady) { + const ocrMessage = `OCR not ready: ${ + health.ocr.message || health.message || 'missing OCR dependency or model' + }`; + addLog(ocrMessage); + return { + success: false, + suiteResult: createFailureSuiteResult('deviceFlow', 'Device Flow', ocrMessage), + mnemonicStoreResult: null, + }; + } - // Check again before restore - if (!runningRef.current) { - addLog('Test stopped by user during device preparation'); - return false; + const startAt = Date.now(); + + if (options?.clearMnemonicStore !== false) { + try { + await clientRef.current.mnemonicStoreClear(); + } catch (error) { + addLog(`Mnemonic store clear ignored: ${error}`); } + } - // Then restore with the mnemonic - addLog(`Restoring with sequence: ${group.phonePilotSequenceId}...`); - const restoreResult = await clientRef.current.executeSequence(group.phonePilotSequenceId); - if (!restoreResult.success) { - throw new Error(`Mnemonic restoration failed: ${restoreResult.message}`); + try { + const result = await executePhonePilotSequence(scenario.phonePilotSequenceId); + + if (!result.success) { + return { + success: false, + suiteResult: createFailureSuiteResult('deviceFlow', 'Device Flow', result.message), + mnemonicStoreResult: null, + }; } - addLog('Mnemonic restoration complete'); - // Capture a frame to verify - const frameResult = await clientRef.current.captureFrame(); - if (frameResult.frame) { - setCameraFrame(frameResult.frame); + let mnemonicStoreResult: MnemonicStoreResult | null = null; + if (scenario.flowType === 'create' && clientRef.current) { + mnemonicStoreResult = await clientRef.current.mnemonicStoreGet(); + if (mnemonicStoreResult.success) { + const shareInfo = + typeof mnemonicStoreResult.shareCount === 'number' + ? `, shares=${mnemonicStoreResult.shares?.length || 0}/${ + mnemonicStoreResult.shareCount + }, threshold=${mnemonicStoreResult.threshold || 0}` + : ''; + addLog(`Mnemonic captured: ${mnemonicStoreResult.wordCount || 0} words${shareInfo}`); + } else { + addLog(`Mnemonic store unavailable after create flow: ${mnemonicStoreResult.message}`); + } } - return true; + const duration = Date.now() - startAt; + return { + success: true, + suiteResult: createSuiteResult( + 'deviceFlow', + 'Device Flow', + [ + { + title: scenario.title, + expected: 'PhonePilot sequence success', + actual: result.message, + passed: true, + duration, + metadata: { + sequenceId: result.sequenceId || scenario.phonePilotSequenceId, + steps: `${result.stepsCompleted || 0}/${result.totalSteps || 0}`, + }, + }, + ], + duration + ), + mnemonicStoreResult, + }; } catch (error) { - addLog(`Device preparation failed: ${error}`); - return false; + return { + success: false, + suiteResult: createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + error instanceof Error ? error.message : String(error) + ), + mnemonicStoreResult: null, + }; } }, - [addLog, setProgress, setCameraFrame, connectPhonePilot] + [ + addLog, + executePhonePilotSequence, + refreshPhonePilotHealth, + setProgress, + updateSuiteProgress, + ] ); - /** - * Load test cases based on mnemonic group and passphrase variant - */ - const loadTestCases = useCallback( - async (mnemonicGroupId: MnemonicGroupId, variant: PassphraseVariant) => { - // Dynamic import test data based on mnemonic group - try { - // Import the index file which contains all converted test cases for this mnemonic group - const testDataModule = await import(`../addressTest/dataVariant/${mnemonicGroupId}/index.ts`); - - // Get the singleAddressTest array from the module - // The naming convention is: singleAddressTestCount24One, singleAddressTestCount12Two, etc. - const camelCaseName = mnemonicGroupId - .split('_') - .map((word, index) => - index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1) - ) - .join(''); - const arrayKey = `singleAddressTest${camelCaseName.charAt(0).toUpperCase()}${camelCaseName.slice(1)}`; - const testCasesArray = testDataModule[arrayKey]; - - if (!testCasesArray) { - addLog(`No test data array found for ${mnemonicGroupId} (key: ${arrayKey})`); - return null; - } + const refreshDeviceId = useCallback(async (sdk: CoreApi, connectId: string): Promise => { + const featuresResult = await sdk.getFeatures(connectId); + if (!featuresResult.success) { + throw new Error('Failed to get device features'); + } + return featuresResult.payload?.device_id ?? ''; + }, []); + + const readMnemonicStoreContext = useCallback(async (): Promise => { + if (!clientRef.current) { + return null; + } + + try { + return await clientRef.current.mnemonicStoreGet(); + } catch (error) { + addLog(`Mnemonic store get failed: ${error}`); + return null; + } + }, [addLog]); - // Find the test case that matches the variant's passphrase and passphraseState - // Each converted test case has an 'extra' field with passphrase and passphraseState - const matchingTestCase = testCasesArray.find((testCase: any) => { - if (!testCase.extra) return false; + const getCurrentDeviceEvmAddress = useCallback( + async (sdk: CoreApi, connectId: string, deviceId: string): Promise => { + const result = (await runWithRetry('evmGetAddress:current-wallet', () => + sdk.evmGetAddress(connectId, deviceId, { + path: EVM_ADDRESS_PATH, + showOnOneKey: false, + }) + )) as { success: boolean; payload?: unknown }; + + if (!result.success) { + throw new Error( + (result.payload as { error?: string } | undefined)?.error || + 'Failed to get current wallet EVM address' + ); + } - // Match based on passphrase and passphraseState - const passphraseMatches = (testCase.extra.passphrase || '') === variant.passphrase; - const stateMatches = (testCase.extra.passphraseState || '') === variant.passphraseState; + return extractComparisonValue(result.payload, 'address', 'evmGetAddress'); + }, + [runWithRetry] + ); - return passphraseMatches && stateMatches; - }); + const runSdkMethodCase = useCallback( + async ( + sdk: CoreApi, + connectId: string, + deviceId: string, + scenario: AutomationScenario, + slip39Case: SLIP39TestCaseData, + methodData: SLIP39MethodData, + expectedPath: string, + caseType: 'address' | 'pubkey' + ): Promise => { + const startedAt = Date.now(); + const expected = extractComparisonValue( + caseType === 'address' + ? methodData.expectedAddress?.[expectedPath] + : methodData.expectedPublicKey?.[expectedPath], + caseType, + methodData.method, + methodData.name + ); - if (!matchingTestCase) { - addLog(`No matching test case found for ${mnemonicGroupId}/${variant.name} (passphrase: "${variant.passphrase}", state: "${variant.passphraseState}")`); - return null; + try { + const params = { + ...(methodData.params || {}), + path: expectedPath, + showOnOneKey: false, + }; + const result = (await runWithRetry(`${methodData.method}:${expectedPath}`, () => { + const method = (sdk as Record)[methodData.method]; + if (typeof method !== 'function') { + throw new Error(`SDK method not found: ${methodData.method}`); + } + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, params); + })) as { success: boolean; payload?: unknown }; + + if (!result.success) { + return { + title: `${slip39Case.id} / ${methodData.name || methodData.method} / ${expectedPath}`, + method: methodData.method, + expected, + actual: '', + passed: false, + error: (result.payload as { error?: string } | undefined)?.error || 'Unknown error', + duration: Date.now() - startedAt, + }; } - return matchingTestCase; + const actual = extractComparisonValue( + result.payload, + caseType, + methodData.method, + methodData.name + ); + + return { + title: `${slip39Case.id} / ${methodData.name || methodData.method} / ${expectedPath}`, + method: methodData.method, + expected, + actual, + passed: actual === expected, + duration: Date.now() - startedAt, + metadata: { + scenario: scenario.title, + passphrase: formatPassphraseDisplay(slip39Case.passphrase), + }, + }; } catch (error) { - addLog(`Failed to load test data for ${mnemonicGroupId}/${variant.name}: ${error}`); - return null; + return { + title: `${slip39Case.id} / ${methodData.name || methodData.method} / ${expectedPath}`, + method: methodData.method, + expected, + actual: '', + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAt, + }; } }, - [addLog] + [runWithRetry] ); - /** - * Run a single test case - */ - const runTestCase = useCallback( + const runSlip39SdkSuite = useCallback( async ( - testCase: any, + suiteType: 'sdkAddressBatch' | 'sdkPubkeyBatch', + scenario: AutomationScenario, sdk: CoreApi, connectId: string, - deviceId: string - ): Promise => { - const testStartTime = Date.now(); - const method = testCase.method; - const params = testCase.params || {}; + deviceId: string, + selectedPassphraseVariants: PassphraseVariantId[] + ): Promise => { + updateSuiteProgress(suiteType, scenario); + const startedAt = Date.now(); + const caseType = suiteType === 'sdkAddressBatch' ? 'address' : 'pubkey'; + const slip39Cases = resolveSlip39SdkCases(scenario, selectedPassphraseVariants, caseType); + + if (slip39Cases.length === 0) { + return createSkippedSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + 'No matched SLIP39 SDK cases for selected passphrase variants' + ); + } - try { - addLog(`Running ${testCase.id || method}...`); + const results: TestCaseResult[] = []; + for (const slip39Case of slip39Cases) { + currentPassphraseRef.current = slip39Case.passphrase || ''; + const passphraseDisplay = formatPassphraseDisplay(slip39Case.passphrase); + setProgress(prev => ({ + ...prev, + currentPassphrase: passphraseDisplay, + })); - // Call SDK method - const result = await (sdk as any)[method](connectId, deviceId, { - ...params, - showOnOneKey: false, // Don't show on device for batch testing - }); + for (const methodData of slip39Case.data) { + const expectedMap = + caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; + const expectedPaths = Object.keys(expectedMap || {}); - if (result.success) { - const actualAddress = result.payload?.address || result.payload; - const expectedAddress = testCase.address || testCase.expected; + for (const expectedPath of expectedPaths) { + if (!runningRef.current) { + break; + } + const caseResult = await runSdkMethodCase( + sdk, + connectId, + deviceId, + scenario, + slip39Case, + methodData, + expectedPath, + caseType + ); + results.push(caseResult); + await delay(80); + } + } + } - const passed = !expectedAddress || actualAddress === expectedAddress; + currentPassphraseRef.current = ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: null, + })); - if (passed) { - addLog(`✅ ${testCase.id || method}: ${actualAddress}`); - } else { - addLog(`❌ ${testCase.id || method}: Expected ${expectedAddress}, got ${actualAddress}`); + return createSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + results, + Date.now() - startedAt + ); + }, + [runSdkMethodCase, setProgress, updateSuiteProgress] + ); + + const runAutomationSdkBatchCase = useCallback( + async ( + sdk: CoreApi, + connectId: string, + deviceId: string, + scenario: AutomationScenario, + sdkCase: AutomationSdkCase, + methodCase: AutomationSdkMethodCase, + expectedPath: string, + caseType: 'address' | 'pubkey' + ): Promise => { + const startedAt = Date.now(); + const expected = extractExpectedByPath( + methodCase.expectedByPath, + expectedPath, + caseType, + methodCase.method, + methodCase.name + ); + + try { + const params = buildSdkParamsForPath(methodCase, expectedPath); + const result = (await runWithRetry(`${methodCase.method}:${expectedPath}`, () => { + const method = (sdk as Record)[methodCase.method]; + if (typeof method !== 'function') { + throw new Error(`SDK method not found: ${methodCase.method}`); } + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, params); + })) as { success: boolean; payload?: unknown }; + if (!result.success) { return { - testName: testCase.id || method, - method, - expected: expectedAddress || 'any valid address', - actual: String(actualAddress), - passed, - duration: Date.now() - testStartTime, - }; - } else { - addLog(`❌ ${testCase.id || method} failed: ${result.payload?.error || 'Unknown error'}`); - return { - testName: testCase.id || method, - method, - expected: testCase.address || testCase.expected || 'success', + title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, + method: methodCase.method, + expected, actual: '', passed: false, - error: result.payload?.error || 'Unknown error', - duration: Date.now() - testStartTime, + error: (result.payload as { error?: string } | undefined)?.error || 'Unknown error', + duration: Date.now() - startedAt, }; } + + const actual = extractComparisonValue( + result.payload, + caseType, + methodCase.method, + methodCase.name + ); + + return { + title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, + method: methodCase.method, + expected, + actual, + passed: actual === expected, + duration: Date.now() - startedAt, + metadata: { + scenario: scenario.title, + passphrase: formatPassphraseDisplay(sdkCase.passphrase), + source: scenario.phonePilotSequenceId, + }, + }; } catch (error) { - addLog(`❌ ${testCase.id || method} error: ${error}`); return { - testName: testCase.id || method, - method, - expected: testCase.address || testCase.expected || 'success', + title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, + method: methodCase.method, + expected, actual: '', passed: false, - error: String(error), - duration: Date.now() - testStartTime, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAt, }; } }, - [addLog] + [runWithRetry] ); - /** - * Run tests for a specific mnemonic group and passphrase variant - */ - const runTestsForVariant = useCallback( + const runBip39ImportSdkSuite = useCallback( async ( - mnemonicGroupId: MnemonicGroupId, - variant: PassphraseVariant, + suiteType: 'sdkAddressBatch' | 'sdkPubkeyBatch', + scenario: AutomationScenario, sdk: CoreApi, connectId: string, - _deviceId: string + deviceId: string, + selectedPassphraseVariants: PassphraseVariantId[] ): Promise => { + updateSuiteProgress(suiteType, scenario); + const startedAt = Date.now(); + const caseType = suiteType === 'sdkAddressBatch' ? 'address' : 'pubkey'; + const bip39Cases = resolveBip39ImportSdkCases(scenario, selectedPassphraseVariants, caseType); + + if (bip39Cases.length === 0) { + return createSkippedSuiteResult( + suiteType, + getSuiteName(suiteType), + 'No matched BIP39 SDK cases for selected passphrase variants' + ); + } + const results: TestCaseResult[] = []; - const startTime = Date.now(); + for (const bip39Case of bip39Cases) { + currentPassphraseRef.current = bip39Case.passphrase || ''; + const passphraseDisplay = formatPassphraseDisplay(bip39Case.passphrase); + setProgress(prev => ({ + ...prev, + currentPassphrase: passphraseDisplay, + })); + + for (const methodCase of bip39Case.data) { + const expectedPaths = Object.keys(methodCase.expectedByPath || {}); + for (const expectedPath of expectedPaths) { + if (!runningRef.current) { + break; + } + const caseResult = await runAutomationSdkBatchCase( + sdk, + connectId, + deviceId, + scenario, + bip39Case, + methodCase, + expectedPath, + caseType + ); + results.push(caseResult); + await delay(80); + } + } + } + + currentPassphraseRef.current = ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: null, + })); + + return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); + }, + [runAutomationSdkBatchCase, setProgress, updateSuiteProgress] + ); + + const runBip39CreateDynamicSuite = useCallback( + async ( + suiteType: 'sdkAddressBatch' | 'sdkPubkeyBatch', + scenario: AutomationScenario, + sdk: CoreApi, + connectId: string, + deviceId: string, + selectedPassphraseVariants: PassphraseVariantId[], + mnemonicStoreResult: MnemonicStoreResult | null + ): Promise => { + updateSuiteProgress(suiteType, scenario); + const startedAt = Date.now(); + const caseType = suiteType === 'sdkAddressBatch' ? 'address' : 'pubkey'; + const mnemonicWords = normalizeMnemonicWords(mnemonicStoreResult?.words); + + if (mnemonicWords.length === 0) { + return createFailureSuiteResult( + suiteType, + getSuiteName(suiteType), + `No BIP39 mnemonic words available for ${caseType} verification` + ); + } + + const probes = + suiteType === 'sdkAddressBatch' + ? [{ method: 'evmGetAddress', caseName: 'evmGetAddress', path: EVM_ADDRESS_PATH }] + : BIP39_CREATE_PUBKEY_PROBES; + + const results: TestCaseResult[] = []; + for (const variantId of selectedPassphraseVariants) { + if (!runningRef.current) { + break; + } + + const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); + const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); + currentPassphraseRef.current = passphraseLiteral || ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: passphraseDisplay, + })); + + const seed = mnemonicToSeed(mnemonicWords.join(' '), passphraseLiteral); + for (const probe of probes) { + const startedAtCase = Date.now(); + let expected = ''; + + try { + expected = buildBip39CreateExpectedValue(probe.method, probe.caseName, seed, probe.path); + if (!expected) { + throw new Error(`Missing expected ${caseType} value for ${probe.caseName}`); + } + + const result = (await runWithRetry(`${probe.method}:${probe.path}`, () => { + const method = (sdk as Record)[probe.method]; + if (typeof method !== 'function') { + throw new Error(`SDK method not found: ${probe.method}`); + } + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, { + path: probe.path, + showOnOneKey: false, + }); + })) as { success: boolean; payload?: unknown }; + + if (!result.success) { + results.push({ + title: `${scenario.id} / ${probe.caseName} / ${probe.path} / ${variantId}`, + method: probe.method, + expected, + actual: '', + passed: false, + error: (result.payload as { error?: string } | undefined)?.error || 'Unknown error', + duration: Date.now() - startedAtCase, + metadata: { + path: probe.path, + passphrase: passphraseDisplay, + }, + }); + } else { + const actual = extractComparisonValue( + result.payload, + caseType, + probe.method, + probe.caseName + ); + results.push({ + title: `${scenario.id} / ${probe.caseName} / ${probe.path} / ${variantId}`, + method: probe.method, + expected, + actual, + passed: actual === expected, + duration: Date.now() - startedAtCase, + metadata: { + path: probe.path, + passphrase: passphraseDisplay, + source: mnemonicStoreResult?.sequenceId || scenario.phonePilotSequenceId, + }, + }); + } + } catch (error) { + results.push({ + title: `${scenario.id} / ${probe.caseName} / ${probe.path} / ${variantId}`, + method: probe.method, + expected, + actual: '', + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAtCase, + metadata: { + path: probe.path, + passphrase: passphraseDisplay, + }, + }); + } + + await delay(80); + } + } + + currentPassphraseRef.current = ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: null, + })); + + return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); + }, + [runWithRetry, setProgress, updateSuiteProgress] + ); + + const runSlip39CreateDynamicSuite = useCallback( + async ( + suiteType: 'sdkAddressBatch' | 'sdkPubkeyBatch', + scenario: AutomationScenario, + sdk: CoreApi, + connectId: string, + deviceId: string, + selectedPassphraseVariants: PassphraseVariantId[], + mnemonicStoreResult: MnemonicStoreResult | null + ): Promise => { + updateSuiteProgress(suiteType, scenario); + const startedAt = Date.now(); + const caseType = suiteType === 'sdkAddressBatch' ? 'address' : 'pubkey'; + const templateCase = getSlip39CreateTemplateCase(caseType); + const shareMnemonics = normalizeSlip39Shares(mnemonicStoreResult?.shares); + const variantIds = selectedPassphraseVariants.filter(variantId => + SLIP39_CREATE_ALLOWED_VARIANTS.includes(variantId) + ); + + if (!templateCase) { + return createFailureSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + 'SLIP39 create template case is missing' + ); + } + + if (variantIds.length === 0) { + return createSkippedSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + 'SLIP39 create v1 only validates normal and passphrase_2' + ); + } + + if (shareMnemonics.length === 0) { + return createFailureSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + 'No SLIP39 shares captured from PhonePilot mnemonic-store' + ); + } + + const results: TestCaseResult[] = []; + for (const variantId of variantIds) { + if (!runningRef.current) { + break; + } + + const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); + const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); + currentPassphraseRef.current = passphraseLiteral || ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: passphraseDisplay, + })); + + for (const methodData of templateCase.data) { + const expectedMap = + caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; + const expectedPaths = Object.keys(expectedMap || {}); + + for (const expectedPath of expectedPaths) { + if (!runningRef.current) { + break; + } + + const startedAtCase = Date.now(); + let expected = ''; + + try { + const generatorParams = { + ...(methodData.params || {}), + path: expectedPath, + }; + const generatorResult = + caseType === 'address' + ? await generateMultiChainAddressFromSLIP39({ + shares: shareMnemonics, + passphrase: passphraseLiteral, + method: methodData.method, + params: generatorParams, + }) + : await generateMultiChainPublicKeyFromSLIP39({ + shares: shareMnemonics, + passphrase: passphraseLiteral, + method: methodData.method, + params: generatorParams, + }); + + if (!generatorResult.success) { + throw new Error( + generatorResult.error || 'Failed to generate expected value from SLIP39 shares' + ); + } + + expected = extractComparisonValue( + generatorResult.payload, + caseType, + methodData.method, + methodData.name + ); + if (!expected) { + throw new Error('Generated expected value is empty'); + } + + const sdkResult = (await runWithRetry(`${methodData.method}:${expectedPath}`, () => { + const method = (sdk as Record)[methodData.method]; + if (typeof method !== 'function') { + throw new Error(`SDK method not found: ${methodData.method}`); + } + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, { + ...(methodData.params || {}), + path: expectedPath, + showOnOneKey: false, + }); + })) as { success: boolean; payload?: unknown }; + + if (!sdkResult.success) { + results.push({ + title: `${scenario.id} / ${ + methodData.name || methodData.method + } / ${variantId} / ${expectedPath}`, + method: methodData.method, + expected, + actual: '', + passed: false, + error: + (sdkResult.payload as { error?: string } | undefined)?.error || 'Unknown error', + duration: Date.now() - startedAtCase, + metadata: { + passphrase: passphraseDisplay, + shares: String(shareMnemonics.length), + }, + }); + } else { + const actual = extractComparisonValue( + sdkResult.payload, + caseType, + methodData.method, + methodData.name + ); + results.push({ + title: `${scenario.id} / ${ + methodData.name || methodData.method + } / ${variantId} / ${expectedPath}`, + method: methodData.method, + expected, + actual, + passed: actual === expected, + duration: Date.now() - startedAtCase, + metadata: { + passphrase: passphraseDisplay, + shares: String(shareMnemonics.length), + threshold: String(mnemonicStoreResult?.threshold || scenario.threshold || 0), + }, + }); + } + } catch (error) { + results.push({ + title: `${scenario.id} / ${ + methodData.name || methodData.method + } / ${variantId} / ${expectedPath}`, + method: methodData.method, + expected, + actual: '', + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAtCase, + metadata: { + passphrase: passphraseDisplay, + shares: String(shareMnemonics.length), + }, + }); + } - currentPassphraseRef.current = variant.passphrase; - addLog(`Testing with passphrase variant: ${variant.name}`); + await delay(80); + } + } + } - setProgress((prev) => ({ + currentPassphraseRef.current = ''; + setProgress(prev => ({ ...prev, - currentPassphrase: variant.name, + currentPassphrase: null, })); - // Load test data for this combination - const testData = await loadTestCases(mnemonicGroupId, variant); + return createSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + results, + Date.now() - startedAt + ); + }, + [runWithRetry, setProgress, updateSuiteProgress] + ); + + const runSelectedSdkSuites = useCallback( + async ( + scenario: AutomationScenario, + selectedSuites: TestSuiteType[], + suiteResults: TestSuiteResult[], + sdk: CoreApi, + connectId: string, + deviceId: string, + mnemonicStoreResult: MnemonicStoreResult | null + ): Promise => { + const nextSuiteResults = [...suiteResults]; + + if ( + selectedSuites.includes('sdkAddressBatch') && + !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) + ) { + const sdkAddressResult = + scenario.walletType === 'bip39' + ? scenario.flowType === 'import' + ? await runBip39ImportSdkSuite( + 'sdkAddressBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants + ) + : await runBip39CreateDynamicSuite( + 'sdkAddressBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants, + mnemonicStoreResult + ) + : scenario.flowType === 'create' + ? await runSlip39CreateDynamicSuite( + 'sdkAddressBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants, + mnemonicStoreResult + ) + : await runSlip39SdkSuite( + 'sdkAddressBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants + ); + nextSuiteResults.push(sdkAddressResult); + markSuiteCompleted(); + } + + if ( + selectedSuites.includes('sdkPubkeyBatch') && + !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) + ) { + const sdkPubkeyResult = + scenario.walletType === 'bip39' + ? scenario.flowType === 'import' + ? await runBip39ImportSdkSuite( + 'sdkPubkeyBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants + ) + : await runBip39CreateDynamicSuite( + 'sdkPubkeyBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants, + mnemonicStoreResult + ) + : scenario.flowType === 'create' + ? await runSlip39CreateDynamicSuite( + 'sdkPubkeyBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants, + mnemonicStoreResult + ) + : await runSlip39SdkSuite( + 'sdkPubkeyBatch', + scenario, + sdk, + connectId, + deviceId, + config.passphraseVariants + ); + nextSuiteResults.push(sdkPubkeyResult); + markSuiteCompleted(); + } + + return nextSuiteResults; + }, + [ + config.passphraseVariants, + config.stopOnFirstError, + markSuiteCompleted, + runBip39CreateDynamicSuite, + runBip39ImportSdkSuite, + runSlip39CreateDynamicSuite, + runSlip39SdkSuite, + ] + ); + + const executeResetPreparation = useCallback( + async (scenarioIndex: number, health: HealthCheckResponse): Promise => { + const resetSequenceId = + scenarioIndex === 0 ? RESET_SEQUENCE_LOCKED : RESET_SEQUENCE_UNLOCKED; + + if (!health.sequenceIds.includes(resetSequenceId)) { + const reason = `sequence drift: ${resetSequenceId} is not present in PhonePilot /health sequenceIds`; + addLog(reason); + return { + success: false, + suiteResult: createFailureSuiteResult('deviceFlow', 'Device Flow', reason), + mnemonicStoreResult: null, + }; + } + + addLog(`Resetting wallet via ${resetSequenceId}`); + + try { + const result = await executePhonePilotSequence(resetSequenceId); + if (!result.success) { + return { + success: false, + suiteResult: createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + `Reset wallet failed via ${resetSequenceId}: ${result.message}` + ), + mnemonicStoreResult: null, + }; + } - if (!testData) { - addLog(`No test data available for ${mnemonicGroupId}/${variant.name}`); return { - suiteName: `${mnemonicGroupId}/${variant.name}`, - mnemonicGroup: mnemonicGroupId, - passphrase: variant.passphrase, - totalTests: 0, - passedTests: 0, - failedTests: 0, - skippedTests: 0, - duration: Date.now() - startTime, - results: [], + success: true, + suiteResult: createSuiteResult( + 'deviceFlow', + 'Device Flow', + [ + { + title: `Reset via ${resetSequenceId}`, + expected: 'PhonePilot reset sequence success', + actual: result.message, + passed: true, + duration: 0, + metadata: { + sequenceId: result.sequenceId || resetSequenceId, + steps: `${result.stepsCompleted || 0}/${result.totalSteps || 0}`, + }, + }, + ], + 0 + ), + mnemonicStoreResult: null, }; + } catch (error) { + return { + success: false, + suiteResult: createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + `Reset wallet failed via ${resetSequenceId}: ${ + error instanceof Error ? error.message : String(error) + }` + ), + mnemonicStoreResult: null, + }; + } + }, + [addLog, executePhonePilotSequence] + ); + + const resolveDebugRunContext = useCallback( + async (selectedScenarios: AutomationScenario[], connectId: string): Promise => { + const sdk = SDK; + if (!sdk) { + throw new Error('SDK is not available'); + } + + const scenarioDecisions = new Map(); + const selectedSdkScenarios = selectedScenarios.filter(scenario => + buildSelectedSuites(scenario, config.testSuites).some(suiteType => suiteType !== 'deviceFlow') + ); + + let deviceId = ''; + if (selectedSdkScenarios.length > 0) { + deviceId = await refreshDeviceId(sdk, connectId); + addLog(`Device ID updated: ${deviceId}`); + } + + let currentEvmAddress = ''; + const importScenarios = selectedSdkScenarios.filter(scenario => scenario.flowType === 'import'); + if (importScenarios.length > 0 && deviceId) { + try { + currentEvmAddress = await getCurrentDeviceEvmAddress(sdk, connectId, deviceId); + addLog(`Current wallet EVM address: ${currentEvmAddress}`); + } catch (error) { + addLog(`Current wallet probe failed: ${error instanceof Error ? error.message : String(error)}`); + } + } + + const needCreateContext = selectedSdkScenarios.some(scenario => scenario.flowType === 'create'); + const mnemonicStoreResult = needCreateContext ? await readMnemonicStoreContext() : null; + if (mnemonicStoreResult?.success) { + addLog( + `Debug mnemonic context: ${mnemonicStoreResult.walletType || 'unknown'} ${ + mnemonicStoreResult.flowType || 'unknown' + } (${mnemonicStoreResult.sequenceId || 'no-sequence'})` + ); + } else if (needCreateContext && mnemonicStoreResult) { + addLog(`Debug mnemonic context unavailable: ${mnemonicStoreResult.message}`); } - // Run all test cases from loaded data - const testCases = Array.isArray(testData) ? testData : [testData]; + for (const scenario of selectedScenarios) { + const selectedSuites = buildSelectedSuites(scenario, config.testSuites); + const hasSdkSuites = selectedSuites.some(suiteType => suiteType !== 'deviceFlow'); + if (!hasSdkSuites) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: 'debug mode has no SDK suites to execute', + }); + continue; + } + + if (scenario.flowType === 'import') { + const expectedAddress = + scenario.walletType === 'bip39' + ? getBip39ImportProbeAddress(scenario) + : getSlip39ImportProbeAddress(scenario); + + if (!currentEvmAddress) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: 'current wallet mismatch: current wallet probe unavailable', + }); + continue; + } + + if (!expectedAddress) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: 'current wallet mismatch: missing expected probe address', + }); + continue; + } + + const matched = currentEvmAddress.toLowerCase() === expectedAddress.toLowerCase(); + scenarioDecisions.set(scenario.id, { + matched, + reason: matched + ? undefined + : `current wallet mismatch: expected ${expectedAddress}, actual ${currentEvmAddress}`, + }); + continue; + } - for (const testCase of testCases) { - if (!runningRef.current) break; + if (!mnemonicStoreResult) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: 'missing create context: mnemonic-store unavailable', + }); + continue; + } + + if (!mnemonicStoreResult.success) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: `missing create context: ${mnemonicStoreResult.message}`, + }); + continue; + } - // Handle nested test case data - const cases = testCase.data || [testCase]; + if (mnemonicStoreResult.flowType !== 'create') { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: `missing create context: flowType=${mnemonicStoreResult.flowType || 'unknown'}`, + }); + continue; + } - for (const singleCase of cases) { - if (!runningRef.current) break; + if (mnemonicStoreResult.walletType !== scenario.walletType) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: `missing create context: walletType=${ + mnemonicStoreResult.walletType || 'unknown' + }`, + }); + continue; + } - const result = await runTestCase(singleCase, sdk, connectId, _deviceId); - results.push(result); + if (mnemonicStoreResult.sequenceId !== scenario.phonePilotSequenceId) { + scenarioDecisions.set(scenario.id, { + matched: false, + reason: `missing create context: expected sequence ${ + scenario.phonePilotSequenceId + }, got ${mnemonicStoreResult.sequenceId || 'unknown'}`, + }); + continue; + } - // Small delay between tests - await delay(100); + if (scenario.walletType === 'bip39') { + const mnemonicWords = normalizeMnemonicWords(mnemonicStoreResult.words); + scenarioDecisions.set(scenario.id, { + matched: mnemonicWords.length > 0, + reason: + mnemonicWords.length > 0 + ? undefined + : 'missing create context: no BIP39 mnemonic words captured', + }); + continue; } + + const shareMnemonics = normalizeSlip39Shares(mnemonicStoreResult.shares); + scenarioDecisions.set(scenario.id, { + matched: shareMnemonics.length > 0 && typeof mnemonicStoreResult.threshold === 'number', + reason: + shareMnemonics.length > 0 && typeof mnemonicStoreResult.threshold === 'number' + ? undefined + : 'missing create shares: shares or threshold unavailable', + }); + } + + const matchedCount = Array.from(scenarioDecisions.values()).filter(item => item.matched).length; + addLog(`Debug matched scenarios: ${matchedCount}/${selectedScenarios.length}`); + if (matchedCount === 0) { + addLog('Debug mode found no matching scenarios; only skipped reports will be generated'); } return { - suiteName: `${mnemonicGroupId}/${variant.name}`, - mnemonicGroup: mnemonicGroupId, - passphrase: variant.passphrase, - totalTests: results.length, - passedTests: results.filter((r) => r.passed).length, - failedTests: results.filter((r) => !r.passed).length, - skippedTests: 0, - duration: Date.now() - startTime, - results, + deviceId, + currentEvmAddress, + mnemonicStoreResult, + scenarioDecisions, }; }, - [addLog, setProgress, loadTestCases, runTestCase] + [ + SDK, + addLog, + config.testSuites, + getCurrentDeviceEvmAddress, + readMnemonicStoreContext, + refreshDeviceId, + ] ); - /** - * Start automation test - */ - const startAutomation = useCallback(async (): Promise => { - if (!SDK || !selectedDevice?.connectId) { - addLog('SDK or device not available'); - return; - } - - if (connectionState !== 'connected') { - addLog('PhonePilot not connected, connecting...'); - const connected = await connectPhonePilot(); - if (!connected) { - addLog('Failed to connect to PhonePilot, aborting test'); + const runAutomation = useCallback( + async (mode: AutomationRunMode): Promise => { + if (!SDK || !selectedDevice?.connectId) { + addLog('SDK or selected device is not available'); return; } - } - runningRef.current = true; - clearLogs(); - resetProgress(); + if (connectionState !== 'connected') { + addLog('PhonePilot not connected, connecting...'); + const connected = await connectPhonePilot(); + if (!connected) { + addLog('Failed to connect to PhonePilot'); + return; + } + } - const connectId = selectedDevice.connectId; - const featuresRes = await SDK.getFeatures(connectId); - if (!featuresRes.success) { - addLog('Failed to get device features'); - return; - } - const deviceId = featuresRes.payload?.device_id ?? ''; + runningRef.current = true; + clearLogs(); + resetProgress(); + setReport(null); + currentPassphraseRef.current = ''; - // Setup UI listener - setupUIListener(SDK); + setupUIListener(SDK); - const startTime = Date.now(); - const suiteResults: TestSuiteResult[] = []; + const selectedScenarios = config.scenarioIds.map(id => getAutomationScenario(id)); + const totalSuites = selectedScenarios.reduce( + (sum, scenario) => sum + buildSelectedSuites(scenario, config.testSuites).length, + 0 + ); + const { connectId } = selectedDevice; + const startTime = Date.now(); + const scenarioResults: ScenarioReportResult[] = []; + let fatalErrorMessage = ''; - setProgress({ - currentMnemonicGroup: null, - currentPassphrase: null, - currentTestSuite: null, - currentTestIndex: 0, - totalTests: config.mnemonicGroups.length * 4, // Rough estimate - completedMnemonicGroups: 0, - totalMnemonicGroups: config.mnemonicGroups.length, - status: 'running', - }); - - addLog('=== Automation Test Started ==='); - addLog(`Testing ${config.mnemonicGroups.length} mnemonic groups`); - addLog(`Passphrase variants: ${config.passphraseVariants.join(', ')}`); - addLog(`Test suites: ${config.testSuites.join(', ')}`); - - // Process each mnemonic group - for (let groupIndex = 0; groupIndex < config.mnemonicGroups.length; groupIndex++) { - if (!runningRef.current) { - addLog('Test stopped by user'); - break; - } - - const mnemonicGroupId = config.mnemonicGroups[groupIndex]; - const variants = getFilteredPassphraseVariants(mnemonicGroupId, config.passphraseVariants); - - addLog(`\n--- Mnemonic Group ${groupIndex + 1}/${config.mnemonicGroups.length}: ${mnemonicGroupId} ---`); - - // Skip if no matching passphrase variants for this mnemonic - if (variants.length === 0) { - addLog(`No matching passphrase variants for ${mnemonicGroupId}, skipping...`); - setProgress((prev) => ({ + const health = await refreshPhonePilotHealth(); + if (!health) { + runningRef.current = false; + setProgress(prev => ({ ...prev, - completedMnemonicGroups: groupIndex + 1, + status: 'error', + errorMessage: 'PhonePilot health check failed before automation start', })); - continue; + addLog('PhonePilot health check failed before automation start'); + return; } - addLog(`Testing ${variants.length} passphrase variant(s): ${variants.map((v) => v.name).join(', ')}`); - - // Prepare device for this mnemonic (only once per mnemonic) - const prepared = await prepareDevice(mnemonicGroupId); - if (!prepared) { - addLog(`Failed to prepare device for ${mnemonicGroupId}, skipping...`); - continue; + addLog( + mode === 'debug' ? '=== Automation Debug Test Started ===' : '=== Automation Test Started ===' + ); + addLog(`Scenario count: ${selectedScenarios.length}`); + addLog(`PhonePilot MCP ready: ${health.mcpReady ? 'yes' : 'no'}`); + addLog(`PhonePilot OCR ready: ${health.ocrReady ? 'yes' : 'no'}`); + if (health.message) { + addLog(`PhonePilot health message: ${health.message}`); + } + if (mode === 'debug') { + addLog('Debug mode enabled: skip reset-wallet and execute-sequence, run SDK validation only'); } - // After device reset/restore, device_id changes - need to re-fetch features - addLog('Re-fetching device features after reset/restore...'); - const newFeaturesRes = await SDK.getFeatures(connectId); - if (!newFeaturesRes.success) { - addLog('Failed to get device features after reset/restore, skipping...'); - continue; + let debugRunContext: DebugRunContext | null = null; + if (mode === 'debug') { + try { + debugRunContext = await resolveDebugRunContext(selectedScenarios, connectId); + } catch (error) { + fatalErrorMessage = error instanceof Error ? error.message : String(error); + addLog(`Debug context initialization failed: ${fatalErrorMessage}`); + } } - const newDeviceId = newFeaturesRes.payload?.device_id ?? ''; - addLog(`Device ID updated: ${newDeviceId}`); - // Run tests for each passphrase variant (no device reset needed) - for (const variant of variants) { - if (!runningRef.current) break; + setProgress({ + currentScenarioId: null, + currentScenarioTitle: null, + currentPassphrase: null, + currentTestSuite: null, + currentTestIndex: 0, + totalTests: totalSuites, + completedScenarios: 0, + totalScenarios: selectedScenarios.length, + completedSuites: 0, + totalSuites, + status: 'running', + }); + + try { + for (let scenarioIndex = 0; scenarioIndex < selectedScenarios.length; scenarioIndex += 1) { + const scenario = selectedScenarios[scenarioIndex]; + if (!runningRef.current || fatalErrorMessage) { + if (!fatalErrorMessage) { + addLog('Test stopped by user'); + } + break; + } + + addLog( + `\n--- Scenario ${scenarioIndex + 1}/${selectedScenarios.length}: ${scenario.title} ---` + ); + const selectedSuites = buildSelectedSuites(scenario, config.testSuites); + const scenarioStartedAt = Date.now(); + let suiteResults: TestSuiteResult[] = []; + let scenarioReport: ScenarioReportResult; + + if (selectedSuites.length === 0) { + scenarioReport = buildScenarioReport(scenario, [], 0, 'skipped'); + } else if (mode === 'debug') { + if (selectedSuites.includes('deviceFlow')) { + suiteResults.push( + createSkippedSuiteResult('deviceFlow', 'Device Flow', DEBUG_SKIP_DEVICE_FLOW_REASON) + ); + markSuiteCompleted(); + } + + const sdkSuites = selectedSuites.filter(suiteType => suiteType !== 'deviceFlow'); + const decision = debugRunContext?.scenarioDecisions.get(scenario.id) || { + matched: false, + reason: 'current wallet mismatch: debug context unavailable', + }; + + if (sdkSuites.length === 0) { + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt, + 'skipped' + ); + } else if (!decision.matched || !debugRunContext?.deviceId) { + const reason = + decision.reason || + (debugRunContext?.deviceId + ? 'current wallet mismatch' + : 'current wallet mismatch: device ID unavailable'); + sdkSuites.forEach(suiteType => { + suiteResults.push(createSkippedSuiteResult(suiteType, getSuiteName(suiteType), reason)); + markSuiteCompleted(); + }); + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt, + 'skipped' + ); + } else { + suiteResults = await runSelectedSdkSuites( + scenario, + sdkSuites, + suiteResults, + SDK, + connectId, + debugRunContext.deviceId, + debugRunContext.mnemonicStoreResult + ); + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt + ); + } + } else { + const scenarioHealth = await refreshPhonePilotHealth(); + if (!scenarioHealth) { + if (selectedSuites.includes('deviceFlow')) { + suiteResults.push( + createFailureSuiteResult( + 'deviceFlow', + 'Device Flow', + 'PhonePilot health check failed before scenario preparation' + ) + ); + markSuiteCompleted(); + } + selectedSuites + .filter(suiteType => suiteType !== 'deviceFlow') + .forEach(suiteType => { + suiteResults.push( + createSkippedSuiteResult( + suiteType, + getSuiteName(suiteType), + 'Skipped because device preparation failed' + ) + ); + markSuiteCompleted(); + }); + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt, + 'failed' + ); + } else { + const resetPreparation = await executeResetPreparation(scenarioIndex, scenarioHealth); + if (!resetPreparation.success) { + if (selectedSuites.includes('deviceFlow')) { + suiteResults.push(resetPreparation.suiteResult); + markSuiteCompleted(); + } + selectedSuites + .filter(suiteType => suiteType !== 'deviceFlow') + .forEach(suiteType => { + suiteResults.push( + createSkippedSuiteResult( + suiteType, + getSuiteName(suiteType), + 'Skipped because device preparation failed' + ) + ); + markSuiteCompleted(); + }); + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt, + 'failed' + ); + } else { + const preparation = await executeScenarioPreparation(scenario, { + health: scenarioHealth, + clearMnemonicStore: true, + }); + + if (selectedSuites.includes('deviceFlow')) { + suiteResults.push(preparation.suiteResult); + markSuiteCompleted(); + } + + if (!preparation.success) { + selectedSuites + .filter(suiteType => suiteType !== 'deviceFlow') + .forEach(suiteType => { + suiteResults.push( + createSkippedSuiteResult( + suiteType, + getSuiteName(suiteType), + 'Skipped because device preparation failed' + ) + ); + markSuiteCompleted(); + }); + + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt, + 'failed' + ); + } else { + let deviceId = ''; + const shouldRunSdkSuites = + !shouldStopBySuiteFailure(config.stopOnFirstError, suiteResults) && + selectedSuites.some(suiteType => suiteType !== 'deviceFlow'); + + if (shouldRunSdkSuites) { + try { + deviceId = await refreshDeviceId(SDK, connectId); + addLog(`Device ID updated: ${deviceId}`); + } catch (error) { + const reason = error instanceof Error ? error.message : String(error); + selectedSuites + .filter(suiteType => suiteType !== 'deviceFlow') + .forEach(suiteType => { + suiteResults.push( + createFailureSuiteResult(suiteType, getSuiteName(suiteType), reason) + ); + markSuiteCompleted(); + }); + } + } + + if (shouldRunSdkSuites && deviceId) { + suiteResults = await runSelectedSdkSuites( + scenario, + selectedSuites.filter(suiteType => suiteType !== 'deviceFlow'), + suiteResults, + SDK, + connectId, + deviceId, + preparation.mnemonicStoreResult + ); + } + + scenarioReport = buildScenarioReport( + scenario, + suiteResults, + Date.now() - scenarioStartedAt + ); + } + } + } + } - const result = await runTestsForVariant(mnemonicGroupId, variant, SDK, connectId, newDeviceId); - suiteResults.push(result); + scenarioResults.push(scenarioReport); + markScenarioCompleted(); - // Delay between variants - await delay(config.delayBetweenTests); + if (shouldStopBySuiteFailure(config.stopOnFirstError, scenarioReport.suiteResults)) { + addLog(`Stop on first error triggered at scenario: ${scenario.title}`); + break; + } + + if (scenarioIndex < selectedScenarios.length - 1) { + await delay(config.delayBetweenTests); + } + } + } catch (error) { + fatalErrorMessage = error instanceof Error ? error.message : String(error); + addLog(`Automation aborted by unexpected error: ${fatalErrorMessage}`); + } finally { + SDK.removeAllListeners(UI_EVENT); + runningRef.current = false; } - setProgress((prev) => ({ + const endTime = Date.now(); + const report: TestReport = { + startTime, + endTime, + duration: endTime - startTime, + totalScenarios: scenarioResults.length, + passedScenarios: scenarioResults.filter(item => item.status === 'passed').length, + failedScenarios: scenarioResults.filter(item => item.status === 'failed').length, + skippedScenarios: scenarioResults.filter(item => item.status === 'skipped').length, + scenarioResults, + }; + + setReport(report); + setProgress(prev => ({ ...prev, - completedMnemonicGroups: groupIndex + 1, + status: fatalErrorMessage ? 'error' : 'done', + errorMessage: fatalErrorMessage || undefined, + currentPassphrase: null, })); - } - - // Generate report - const endTime = Date.now(); - const report: TestReport = { - startTime, - endTime, - duration: endTime - startTime, - totalSuites: suiteResults.length, - totalTests: suiteResults.reduce((sum, s) => sum + s.totalTests, 0), - passedTests: suiteResults.reduce((sum, s) => sum + s.passedTests, 0), - failedTests: suiteResults.reduce((sum, s) => sum + s.failedTests, 0), - skippedTests: suiteResults.reduce((sum, s) => sum + s.skippedTests, 0), - suiteResults, - }; - setReport(report); - setProgress((prev) => ({ ...prev, status: 'done' })); + addLog( + mode === 'debug' + ? '=== Automation Debug Test Completed ===' + : '=== Automation Test Completed ===' + ); + addLog(`Passed scenarios: ${report.passedScenarios}/${report.totalScenarios}`); + addLog(`Failed scenarios: ${report.failedScenarios}`); + if (fatalErrorMessage) { + addLog(`Fatal error: ${fatalErrorMessage}`); + } + }, + [ + SDK, + addLog, + clearLogs, + config, + connectPhonePilot, + connectionState, + executeResetPreparation, + executeScenarioPreparation, + markScenarioCompleted, + markSuiteCompleted, + refreshDeviceId, + refreshPhonePilotHealth, + resetProgress, + resolveDebugRunContext, + runSelectedSdkSuites, + selectedDevice, + setProgress, + setReport, + setupUIListener, + ] + ); - addLog('\n=== Automation Test Completed ==='); - addLog(`Duration: ${Math.round(report.duration / 1000)}s`); - addLog(`Passed: ${report.passedTests}/${report.totalTests}`); - addLog(`Failed: ${report.failedTests}`); + const startAutomation = useCallback(async (): Promise => { + await runAutomation('full'); + }, [runAutomation]); - // Cleanup - SDK.removeAllListeners(UI_EVENT); - runningRef.current = false; - }, [ - SDK, - selectedDevice, - connectionState, - config, - addLog, - clearLogs, - resetProgress, - connectPhonePilot, - setupUIListener, - prepareDevice, - runTestsForVariant, - setProgress, - setReport, - ]); + const startDebugAutomation = useCallback(async (): Promise => { + await runAutomation('debug'); + }, [runAutomation]); - /** - * Stop automation test - */ const stopAutomation = useCallback(async () => { runningRef.current = false; - setProgress((prev) => ({ ...prev, status: 'idle' })); + currentPassphraseRef.current = ''; + setProgress(prev => ({ ...prev, status: 'idle', currentPassphrase: null })); addLog('Stopping automation test...'); - // Stop PhonePilot sequence execution if (clientRef.current) { try { await clientRef.current.stopSequence(); @@ -639,11 +2284,8 @@ export function useAutomationTest() { } SDK?.cancel(); - }, [SDK, setProgress, addLog]); + }, [SDK, addLog, setProgress]); - /** - * Capture current camera frame - */ const captureFrame = useCallback(async (): Promise => { if (!clientRef.current || connectionState !== 'connected') { return null; @@ -659,25 +2301,18 @@ export function useAutomationTest() { addLog(`Capture frame failed: ${error}`); } return null; - }, [connectionState, setCameraFrame, addLog]); + }, [addLog, connectionState, setCameraFrame]); return { - // State connectionState, progress, logs, - - // Actions + scenarios: getAllAutomationScenarios(), connectPhonePilot, disconnectPhonePilot, startAutomation, + startDebugAutomation, stopAutomation, captureFrame, - prepareDevice, }; } - -// Helper -function delay(ms: number): Promise { - return new Promise((resolve) => setTimeout(resolve, ms)); -} diff --git a/packages/connect-examples/expo-example/src/testTools/functionalTesting/initDuration/InitDurationTest.tsx b/packages/connect-examples/expo-example/src/testTools/functionalTesting/initDuration/InitDurationTest.tsx index c55332ab4..f85f0585f 100644 --- a/packages/connect-examples/expo-example/src/testTools/functionalTesting/initDuration/InitDurationTest.tsx +++ b/packages/connect-examples/expo-example/src/testTools/functionalTesting/initDuration/InitDurationTest.tsx @@ -141,7 +141,10 @@ function ExecuteView() { await new Promise(resolve => setTimeout(resolve, intervalTime)); const sdkPromise = async () => { try { - const res = await sdk[`${method}` as keyof typeof sdk](connectId, requestParams); + const sdkMethod = (sdk as unknown as Record Promise>)[ + method + ]; + const res = await sdkMethod(connectId, requestParams); return { payload: res, skipVerify: true }; } catch (error) { console.log('=====>>>>> processRequest error: ', error); diff --git a/packages/connect-examples/expo-example/src/testTools/functionalTesting/lockDevice/LockDeviceTest.tsx b/packages/connect-examples/expo-example/src/testTools/functionalTesting/lockDevice/LockDeviceTest.tsx index 111d5d9aa..f6a7b1188 100644 --- a/packages/connect-examples/expo-example/src/testTools/functionalTesting/lockDevice/LockDeviceTest.tsx +++ b/packages/connect-examples/expo-example/src/testTools/functionalTesting/lockDevice/LockDeviceTest.tsx @@ -51,7 +51,8 @@ function ExportReportView() { markdown.push(`| --- | --- | --- | --- |`); items.forEach(item => { const caseItem = item; - const { $key, method, path } = caseItem; + const { $key, method, params } = caseItem; + const path = get(params, 'path', '-'); const state = itemVerifyState?.[$key].verify; diff --git a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/index.ts b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/index.ts index beca6d7f2..04bbcd35f 100644 --- a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/index.ts +++ b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/index.ts @@ -1,25 +1,25 @@ import { convertTestBatchData, convertTestSingleData } from '../utils'; -import normal12 from './normal12'; -import passphrase12Empty from './passphrase12_empty'; -import passphrase121 from './passphrase12_1'; -import passphrase122 from './passphrase12_2'; +import normal from './normal'; +import passphraseEmpty from './passphrase_empty'; +import passphrase1 from './passphrase_1'; +import passphrase2 from './passphrase_2'; export const singlePubkeyTestCount12Three = [ { - ...convertTestSingleData(normal12, { + ...convertTestSingleData(normal, { getOnlyOne: true, }), name: 'three-normal-12-only-one', }, - convertTestSingleData(normal12), - convertTestSingleData(passphrase12Empty), - convertTestSingleData(passphrase121), - convertTestSingleData(passphrase122), + convertTestSingleData(normal), + convertTestSingleData(passphraseEmpty), + convertTestSingleData(passphrase1), + convertTestSingleData(passphrase2), ]; export const batchPubkeyTestCount12Three = [ - convertTestBatchData(normal12), - convertTestBatchData(passphrase12Empty), - convertTestBatchData(passphrase121), - convertTestBatchData(passphrase122), + convertTestBatchData(normal), + convertTestBatchData(passphraseEmpty), + convertTestBatchData(passphrase1), + convertTestBatchData(passphrase2), ]; diff --git a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/normal.ts new file mode 100644 index 000000000..ec6aa10cf --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/normal.ts @@ -0,0 +1 @@ +export { default } from './normal12'; diff --git a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_1.ts new file mode 100644 index 000000000..61b7ed02d --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_1.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_1'; diff --git a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_2.ts new file mode 100644 index 000000000..8e5c3b470 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_2.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_2'; diff --git a/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_empty.ts new file mode 100644 index 000000000..197a795b3 --- /dev/null +++ b/packages/connect-examples/expo-example/src/testTools/pubkeyTest/data/count12_three/passphrase_empty.ts @@ -0,0 +1 @@ +export { default } from './passphrase12_empty'; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/normal.ts index aa69ef73b..5eb2fbe38 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/normal.ts @@ -1,488 +1,476 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OneNormal: SLIP39TestCaseData = { - id: 'count20_one_normal', - name: 'count20_one_normal', - description: '1-of-1 (20 words) + normal', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_normal", + "name": "count20_one_normal", + "description": "1-of-1 (20 words) + normal", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1E2ymXPaABRPPy84McDRxWhJ3qVU7hVW1x', - "m/44'/0'/1'/0/0": '1HFRCWfjTcuPSm1U656D61z5uXyPP9pbjp', - "m/44'/0'/21234567'/0/0": '1L7B35znryG7gaQjiNn5Cr6ha2jbrN4jyS', - "m/44'/0'/2147483646'/0/0": '18Mcy6hd14Lg3qQx2xbQes848DyrFa8M8', - "m/44'/0'/2147483647'/0/0": '171sSEnmQNAGWY4QexJ9WPucYEtpXmnhJa', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1E2ymXPaABRPPy84McDRxWhJ3qVU7hVW1x", + "m/44'/0'/1'/0/0": "1HFRCWfjTcuPSm1U656D61z5uXyPP9pbjp", + "m/44'/0'/21234567'/0/0": "1L7B35znryG7gaQjiNn5Cr6ha2jbrN4jyS", + "m/44'/0'/2147483646'/0/0": "18Mcy6hd14Lg3qQx2xbQes848DyrFa8M8", + "m/44'/0'/2147483647'/0/0": "171sSEnmQNAGWY4QexJ9WPucYEtpXmnhJa" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '36HRc53LTjz6nELk8mvyEYjed8dNBmFZFh', - "m/49'/0'/1'/0/0": '3AyGUoXttCrrYcZw7ArqAmKQiFiQ1gRf3m', - "m/49'/0'/21234567'/0/0": '3Po9qQaQWUV2hUo1FB2yWJXomLphVLay6j', - "m/49'/0'/2147483646'/0/0": '3HmS7UFtyiCZNZL91i5V75yeXyJb6mPB8w', - "m/49'/0'/2147483647'/0/0": '3EiLdx7Zqyi3vJ1K3zxQ5NLwPsV5LZaxMd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "36HRc53LTjz6nELk8mvyEYjed8dNBmFZFh", + "m/49'/0'/1'/0/0": "3AyGUoXttCrrYcZw7ArqAmKQiFiQ1gRf3m", + "m/49'/0'/21234567'/0/0": "3Po9qQaQWUV2hUo1FB2yWJXomLphVLay6j", + "m/49'/0'/2147483646'/0/0": "3HmS7UFtyiCZNZL91i5V75yeXyJb6mPB8w", + "m/49'/0'/2147483647'/0/0": "3EiLdx7Zqyi3vJ1K3zxQ5NLwPsV5LZaxMd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qxm5z86crrad57jtfkc4tn3kpvquhnyak4rnmdj', - "m/84'/0'/1'/0/0": 'bc1q4lqkk6f2zcaw65ukxrj2kdwwu92lhy4hpqarpa', - "m/84'/0'/21234567'/0/0": 'bc1q65v0ftz5xntmswn0gs33lqk6duhq8e4srswgty', - "m/84'/0'/2147483646'/0/0": 'bc1qznuruypc4xp89fm9dtspe50p9d79tcawr7t3km', - "m/84'/0'/2147483647'/0/0": 'bc1qz2c8565mztrnwcke4fltfqhzs3fn5puqvyn95m', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qxm5z86crrad57jtfkc4tn3kpvquhnyak4rnmdj", + "m/84'/0'/1'/0/0": "bc1q4lqkk6f2zcaw65ukxrj2kdwwu92lhy4hpqarpa", + "m/84'/0'/21234567'/0/0": "bc1q65v0ftz5xntmswn0gs33lqk6duhq8e4srswgty", + "m/84'/0'/2147483646'/0/0": "bc1qznuruypc4xp89fm9dtspe50p9d79tcawr7t3km", + "m/84'/0'/2147483647'/0/0": "bc1qz2c8565mztrnwcke4fltfqhzs3fn5puqvyn95m" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1p73eyp0qezuhn2aaytawenq9pdu9ygvgvtegrwnunpryruw28czjq3ma3nc', - "m/86'/0'/1'/0/0": 'bc1phfegeulnhg2zgr2tevg60gnjzge77fd386t6uhas3zxtewcpj6wsk7vu05', - "m/86'/0'/21234567'/0/0": 'bc1pxcpsjxfh8j02a6wmgc9m77lrhmw6rnuens052ne26vmf26q3kdqqke0cxu', - "m/86'/0'/2147483646'/0/0": - 'bc1phap3cms24p5449k49farmm8w2mapd5t49x2p6k4aewu0kgk0mhks6wgfw5', - "m/86'/0'/2147483647'/0/0": - 'bc1prvkj0xfzypvj49sx4rycc5crvfmfnh3m088vq3ft355zyu96qvesfdel4g', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1p73eyp0qezuhn2aaytawenq9pdu9ygvgvtegrwnunpryruw28czjq3ma3nc", + "m/86'/0'/1'/0/0": "bc1phfegeulnhg2zgr2tevg60gnjzge77fd386t6uhas3zxtewcpj6wsk7vu05", + "m/86'/0'/21234567'/0/0": "bc1pxcpsjxfh8j02a6wmgc9m77lrhmw6rnuens052ne26vmf26q3kdqqke0cxu", + "m/86'/0'/2147483646'/0/0": "bc1phap3cms24p5449k49farmm8w2mapd5t49x2p6k4aewu0kgk0mhks6wgfw5", + "m/86'/0'/2147483647'/0/0": "bc1prvkj0xfzypvj49sx4rycc5crvfmfnh3m088vq3ft355zyu96qvesfdel4g" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D9GoogTWg7zTNvYw4w2buedUN8U8uD1LQX', - "m/44'/3'/1'/0/0": 'DDbcWUwvNs2dgic8KtvnKskDTR9hfHZkCv', - "m/44'/3'/21234567'/0/0": 'DCSg3SLHZrR49pnccRp5JQm6VjM4zsnMQM', - "m/44'/3'/2147483646'/0/0": 'DJPo8FtKZer4zXtyQqNmiRXmwQJLUZFJPz', - "m/44'/3'/2147483647'/0/0": 'D9KvGSuEzLKFu3oRgYTsLWn8jm1frwCGvR', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D9GoogTWg7zTNvYw4w2buedUN8U8uD1LQX", + "m/44'/3'/1'/0/0": "DDbcWUwvNs2dgic8KtvnKskDTR9hfHZkCv", + "m/44'/3'/21234567'/0/0": "DCSg3SLHZrR49pnccRp5JQm6VjM4zsnMQM", + "m/44'/3'/2147483646'/0/0": "DJPo8FtKZer4zXtyQqNmiRXmwQJLUZFJPz", + "m/44'/3'/2147483647'/0/0": "D9KvGSuEzLKFu3oRgYTsLWn8jm1frwCGvR" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qqlyylpqmfy4wjrjukc3n0m4f864zkaum548da58d4', - "m/44'/145'/1'/0/0": 'bitcoincash:qplrr260znex4q9j99ch6ncsx004hnhxusse57z676', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qzjmyz08p4nn92gvapn3s4x2hf42eya05swpey26f8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qrngejl0hmyt5qn8nrvq65aph0sl4x5p8cgks6d8j3', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrs9ww5rgk8k5a07nzjplxcfnmkkuwc2gskky2k272', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qqlyylpqmfy4wjrjukc3n0m4f864zkaum548da58d4", + "m/44'/145'/1'/0/0": "bitcoincash:qplrr260znex4q9j99ch6ncsx004hnhxusse57z676", + "m/44'/145'/21234567'/0/0": "bitcoincash:qzjmyz08p4nn92gvapn3s4x2hf42eya05swpey26f8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qrngejl0hmyt5qn8nrvq65aph0sl4x5p8cgks6d8j3", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrs9ww5rgk8k5a07nzjplxcfnmkkuwc2gskky2k272" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LWrVYxFGxNBGjQ2yjucQZfNWXa9GLMaLX5', - "m/44'/2'/1'/0/0": 'LYDqZW8Ys7zAJiQorpZcmPZxxe43qxCbaH', - "m/44'/2'/21234567'/0/0": 'LZHPZVxJurQotfry2HeZTtiWbhv5QXPa9c', - "m/44'/2'/2147483646'/0/0": 'LgW4ZNwRZme1Hi452KZ4vupfGwRihkp8Gj', - "m/44'/2'/2147483647'/0/0": 'LaFJGRtWDN1wPG2P5wnbqWUdEAAfC5xvuh', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LWrVYxFGxNBGjQ2yjucQZfNWXa9GLMaLX5", + "m/44'/2'/1'/0/0": "LYDqZW8Ys7zAJiQorpZcmPZxxe43qxCbaH", + "m/44'/2'/21234567'/0/0": "LZHPZVxJurQotfry2HeZTtiWbhv5QXPa9c", + "m/44'/2'/2147483646'/0/0": "LgW4ZNwRZme1Hi452KZ4vupfGwRihkp8Gj", + "m/44'/2'/2147483647'/0/0": "LaFJGRtWDN1wPG2P5wnbqWUdEAAfC5xvuh" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MKGK4KJb6AqPgs32JayohX3a5gAVTLxw1j', - "m/49'/2'/1'/0/0": 'M8znzMFsLKXNihsXiUMshoSbNANZrGaxod', - "m/49'/2'/21234567'/0/0": 'MUvu2yhp2Tqc9kN7pwoxSbnR83LQbGkpvS', - "m/49'/2'/2147483646'/0/0": 'MHbxsvL4eZSjv6etT8cv1bTm7sib3BLFaw', - "m/49'/2'/2147483647'/0/0": 'MBT2igPbhapu4oZeMRiwSsjMFGc8cSCCMQ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MKGK4KJb6AqPgs32JayohX3a5gAVTLxw1j", + "m/49'/2'/1'/0/0": "M8znzMFsLKXNihsXiUMshoSbNANZrGaxod", + "m/49'/2'/21234567'/0/0": "MUvu2yhp2Tqc9kN7pwoxSbnR83LQbGkpvS", + "m/49'/2'/2147483646'/0/0": "MHbxsvL4eZSjv6etT8cv1bTm7sib3BLFaw", + "m/49'/2'/2147483647'/0/0": "MBT2igPbhapu4oZeMRiwSsjMFGc8cSCCMQ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qyw6nqgjg26mqdmpzcs2ns2z3a40acywe7ydcqy', - "m/84'/2'/1'/0/0": 'ltc1qdldpt3r38mg5ed70s8paml37tyvflawjqhjt3d', - "m/84'/2'/21234567'/0/0": 'ltc1qkspf8cy385ksqvah0th5ulvcad5a7v469f8cgh', - "m/84'/2'/2147483646'/0/0": 'ltc1qrh25cppd9l3fa5hdyw70n8jvcxh7s87kdfc2fd', - "m/84'/2'/2147483647'/0/0": 'ltc1qkx6pssft834axg68z3w2enq8l9nlvcku2gjkym', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qyw6nqgjg26mqdmpzcs2ns2z3a40acywe7ydcqy", + "m/84'/2'/1'/0/0": "ltc1qdldpt3r38mg5ed70s8paml37tyvflawjqhjt3d", + "m/84'/2'/21234567'/0/0": "ltc1qkspf8cy385ksqvah0th5ulvcad5a7v469f8cgh", + "m/84'/2'/2147483646'/0/0": "ltc1qrh25cppd9l3fa5hdyw70n8jvcxh7s87kdfc2fd", + "m/84'/2'/2147483647'/0/0": "ltc1qkx6pssft834axg68z3w2enq8l9nlvcku2gjkym" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NRcFZa2GzoF3M8igDM79GEVjeE2HdyT24H', - "m/44'/1900'/1'/0/0": 'NY6nNGexkGjoasD583yU4Skarj5BXPB92P', - "m/44'/1900'/21234567'/0/0": 'NduSo6qAWMwanYMiRrvQbjbUzb7Dcm8w59', - "m/44'/1900'/2147483646'/0/0": 'NXKDmwHztPUspaZ63SLzKr6rsGQiBvZJG1', - "m/44'/1900'/2147483647'/0/0": 'NVnTzG4bJuhpiqzQ2Shs38CUMPVaARDB8H', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NRcFZa2GzoF3M8igDM79GEVjeE2HdyT24H", + "m/44'/1900'/1'/0/0": "NY6nNGexkGjoasD583yU4Skarj5BXPB92P", + "m/44'/1900'/21234567'/0/0": "NduSo6qAWMwanYMiRrvQbjbUzb7Dcm8w59", + "m/44'/1900'/2147483646'/0/0": "NXKDmwHztPUspaZ63SLzKr6rsGQiBvZJG1", + "m/44'/1900'/2147483647'/0/0": "NVnTzG4bJuhpiqzQ2Shs38CUMPVaARDB8H" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x9176D80d064575875e242723F427e91DcADeFe26', - "m/44'/60'/1'/0/0": '0xEde7827e5bbecAF18e602714a15e58dbAf4883D5', - "m/44'/60'/21234567'/0/0": '0xfB7Ff45554Dc2493CbE3B192cACc240C0083d6dB', - "m/44'/60'/2147483646'/0/0": '0xADE6E74cfa00cA1bcE776C72B5aD5BF5fEEb551b', - "m/44'/60'/2147483647'/0/0": '0x99E19dB7196d67FC681DD38aF8447883EB56598d', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x9176D80d064575875e242723F427e91DcADeFe26", + "m/44'/60'/1'/0/0": "0xEde7827e5bbecAF18e602714a15e58dbAf4883D5", + "m/44'/60'/21234567'/0/0": "0xfB7Ff45554Dc2493CbE3B192cACc240C0083d6dB", + "m/44'/60'/2147483646'/0/0": "0xADE6E74cfa00cA1bcE776C72B5aD5BF5fEEb551b", + "m/44'/60'/2147483647'/0/0": "0x99E19dB7196d67FC681DD38aF8447883EB56598d" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xbA1f8e5Df9620a42e0C0D6a01aA2B9915B4A945a', - "m/44'/61'/1'/0/0": '0x211231B672b1D5D3b41a39C9b30b91a4bE719db2', - "m/44'/61'/21234567'/0/0": '0x0b8958B85CBBd929591903F8a29d3Cbb509423ad', - "m/44'/61'/2147483646'/0/0": '0x6DF7a10326EE07a022Fb60724D40510ee2E991FC', - "m/44'/61'/2147483647'/0/0": '0x15687755a2114702a201a808e73fb1aA305237ef', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xbA1f8e5Df9620a42e0C0D6a01aA2B9915B4A945a", + "m/44'/61'/1'/0/0": "0x211231B672b1D5D3b41a39C9b30b91a4bE719db2", + "m/44'/61'/21234567'/0/0": "0x0b8958B85CBBd929591903F8a29d3Cbb509423ad", + "m/44'/61'/2147483646'/0/0": "0x6DF7a10326EE07a022Fb60724D40510ee2E991FC", + "m/44'/61'/2147483647'/0/0": "0x15687755a2114702a201a808e73fb1aA305237ef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos15ngat80aqs2n8g5umpejvs0h0snpac9jt0ct5r', - "m/44'/118'/1'/0/0": 'cosmos1wtdd7cxy204gqede9jcat0evunq3hqlwf363me', - "m/44'/118'/21234567'/0/0": 'cosmos1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmvj9sl3', - "m/44'/118'/2147483646'/0/0": 'cosmos13js0cj3fazmnaqxrxn4cxda7ggcv8y6y95zfuj', - "m/44'/118'/2147483647'/0/0": 'cosmos1t7xe8g8lql8cs90x9qyx4sjvp6r50e34v2psg5', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos15ngat80aqs2n8g5umpejvs0h0snpac9jt0ct5r", + "m/44'/118'/1'/0/0": "cosmos1wtdd7cxy204gqede9jcat0evunq3hqlwf363me", + "m/44'/118'/21234567'/0/0": "cosmos1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmvj9sl3", + "m/44'/118'/2147483646'/0/0": "cosmos13js0cj3fazmnaqxrxn4cxda7ggcv8y6y95zfuj", + "m/44'/118'/2147483647'/0/0": "cosmos1t7xe8g8lql8cs90x9qyx4sjvp6r50e34v2psg5" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash15ngat80aqs2n8g5umpejvs0h0snpac9jx54vde', - "m/44'/118'/1'/0/0": 'akash1wtdd7cxy204gqede9jcat0evunq3hqlwy2hkzr', - "m/44'/118'/21234567'/0/0": 'akash1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmpfghxt', - "m/44'/118'/2147483646'/0/0": 'akash13js0cj3fazmnaqxrxn4cxda7ggcv8y6yg00w9g', - "m/44'/118'/2147483647'/0/0": 'akash1t7xe8g8lql8cs90x9qyx4sjvp6r50e34p3vh3w', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash15ngat80aqs2n8g5umpejvs0h0snpac9jx54vde", + "m/44'/118'/1'/0/0": "akash1wtdd7cxy204gqede9jcat0evunq3hqlwy2hkzr", + "m/44'/118'/21234567'/0/0": "akash1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmpfghxt", + "m/44'/118'/2147483646'/0/0": "akash13js0cj3fazmnaqxrxn4cxda7ggcv8y6yg00w9g", + "m/44'/118'/2147483647'/0/0": "akash1t7xe8g8lql8cs90x9qyx4sjvp6r50e34p3vh3w" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro15ngat80aqs2n8g5umpejvs0h0snpac9jn5sjgj', - "m/44'/118'/1'/0/0": 'cro1wtdd7cxy204gqede9jcat0evunq3hqlw32jg8g', - "m/44'/118'/21234567'/0/0": 'cro1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm5fdfrq', - "m/44'/118'/2147483646'/0/0": 'cro13js0cj3fazmnaqxrxn4cxda7ggcv8y6ya02sqr', - "m/44'/118'/2147483647'/0/0": 'cro1t7xe8g8lql8cs90x9qyx4sjvp6r50e3453ff59', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro15ngat80aqs2n8g5umpejvs0h0snpac9jn5sjgj", + "m/44'/118'/1'/0/0": "cro1wtdd7cxy204gqede9jcat0evunq3hqlw32jg8g", + "m/44'/118'/21234567'/0/0": "cro1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm5fdfrq", + "m/44'/118'/2147483646'/0/0": "cro13js0cj3fazmnaqxrxn4cxda7ggcv8y6ya02sqr", + "m/44'/118'/2147483647'/0/0": "cro1t7xe8g8lql8cs90x9qyx4sjvp6r50e3453ff59" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch15ngat80aqs2n8g5umpejvs0h0snpac9jcj30k5', - "m/44'/118'/1'/0/0": 'fetch1wtdd7cxy204gqede9jcat0evunq3hqlw6vn4ew', - "m/44'/118'/21234567'/0/0": 'fetch1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpml0v5ax', - "m/44'/118'/2147483646'/0/0": 'fetch13js0cj3fazmnaqxrxn4cxda7ggcv8y6ykftd79', - "m/44'/118'/2147483647'/0/0": 'fetch1t7xe8g8lql8cs90x9qyx4sjvp6r50e34lhg52r', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch15ngat80aqs2n8g5umpejvs0h0snpac9jcj30k5", + "m/44'/118'/1'/0/0": "fetch1wtdd7cxy204gqede9jcat0evunq3hqlw6vn4ew", + "m/44'/118'/21234567'/0/0": "fetch1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpml0v5ax", + "m/44'/118'/2147483646'/0/0": "fetch13js0cj3fazmnaqxrxn4cxda7ggcv8y6ykftd79", + "m/44'/118'/2147483647'/0/0": "fetch1t7xe8g8lql8cs90x9qyx4sjvp6r50e34lhg52r" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo15ngat80aqs2n8g5umpejvs0h0snpac9jr5tmz3', - "m/44'/118'/1'/0/0": 'osmo1wtdd7cxy204gqede9jcat0evunq3hqlwp2fpdt', - "m/44'/118'/21234567'/0/0": 'osmo1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmyfkqfr', - "m/44'/118'/2147483646'/0/0": 'osmo13js0cj3fazmnaqxrxn4cxda7ggcv8y6yd03e2q', - "m/44'/118'/2147483647'/0/0": 'osmo1t7xe8g8lql8cs90x9qyx4sjvp6r50e34y3jq7x', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo15ngat80aqs2n8g5umpejvs0h0snpac9jr5tmz3", + "m/44'/118'/1'/0/0": "osmo1wtdd7cxy204gqede9jcat0evunq3hqlwp2fpdt", + "m/44'/118'/21234567'/0/0": "osmo1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmyfkqfr", + "m/44'/118'/2147483646'/0/0": "osmo13js0cj3fazmnaqxrxn4cxda7ggcv8y6yd03e2q", + "m/44'/118'/2147483647'/0/0": "osmo1t7xe8g8lql8cs90x9qyx4sjvp6r50e34y3jq7x" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno15ngat80aqs2n8g5umpejvs0h0snpac9jaamsnl', - "m/44'/118'/1'/0/0": 'juno1wtdd7cxy204gqede9jcat0evunq3hqlwlre2u9', - "m/44'/118'/21234567'/0/0": 'juno1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm6qxtcd', - "m/44'/118'/2147483646'/0/0": 'juno13js0cj3fazmnaqxrxn4cxda7ggcv8y6ynxpjmw', - "m/44'/118'/2147483647'/0/0": 'juno1t7xe8g8lql8cs90x9qyx4sjvp6r50e346czt0g', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno15ngat80aqs2n8g5umpejvs0h0snpac9jaamsnl", + "m/44'/118'/1'/0/0": "juno1wtdd7cxy204gqede9jcat0evunq3hqlwlre2u9", + "m/44'/118'/21234567'/0/0": "juno1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm6qxtcd", + "m/44'/118'/2147483646'/0/0": "juno13js0cj3fazmnaqxrxn4cxda7ggcv8y6ynxpjmw", + "m/44'/118'/2147483647'/0/0": "juno1t7xe8g8lql8cs90x9qyx4sjvp6r50e346czt0g" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra15ngat80aqs2n8g5umpejvs0h0snpac9jdtztkr', - "m/44'/118'/1'/0/0": 'terra1wtdd7cxy204gqede9jcat0evunq3hqlw04q3ee', - "m/44'/118'/21234567'/0/0": 'terra1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm2klsa3', - "m/44'/118'/2147483646'/0/0": 'terra13js0cj3fazmnaqxrxn4cxda7ggcv8y6yrscf7j', - "m/44'/118'/2147483647'/0/0": 'terra1t7xe8g8lql8cs90x9qyx4sjvp6r50e342wms25', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra15ngat80aqs2n8g5umpejvs0h0snpac9jdtztkr", + "m/44'/118'/1'/0/0": "terra1wtdd7cxy204gqede9jcat0evunq3hqlw04q3ee", + "m/44'/118'/21234567'/0/0": "terra1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm2klsa3", + "m/44'/118'/2147483646'/0/0": "terra13js0cj3fazmnaqxrxn4cxda7ggcv8y6yrscf7j", + "m/44'/118'/2147483647'/0/0": "terra1t7xe8g8lql8cs90x9qyx4sjvp6r50e342wms25" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret15ngat80aqs2n8g5umpejvs0h0snpac9jf2vzfl', - "m/44'/118'/1'/0/0": 'secret1wtdd7cxy204gqede9jcat0evunq3hqlwt5wcx9', - "m/44'/118'/21234567'/0/0": 'secret1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmwh3ezd', - "m/44'/118'/2147483646'/0/0": 'secret13js0cj3fazmnaqxrxn4cxda7ggcv8y6y83kqpw', - "m/44'/118'/2147483647'/0/0": 'secret1t7xe8g8lql8cs90x9qyx4sjvp6r50e34w04e4g', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret15ngat80aqs2n8g5umpejvs0h0snpac9jf2vzfl", + "m/44'/118'/1'/0/0": "secret1wtdd7cxy204gqede9jcat0evunq3hqlwt5wcx9", + "m/44'/118'/21234567'/0/0": "secret1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmwh3ezd", + "m/44'/118'/2147483646'/0/0": "secret13js0cj3fazmnaqxrxn4cxda7ggcv8y6y83kqpw", + "m/44'/118'/2147483647'/0/0": "secret1t7xe8g8lql8cs90x9qyx4sjvp6r50e34w04e4g" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia15ngat80aqs2n8g5umpejvs0h0snpac9j69fmww', - "m/44'/118'/1'/0/0": 'celestia1wtdd7cxy204gqede9jcat0evunq3hqlwcmtpp5', - "m/44'/118'/21234567'/0/0": 'celestia1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmac5q9u', - "m/44'/118'/2147483646'/0/0": 'celestia13js0cj3fazmnaqxrxn4cxda7ggcv8y6y57nexl', - "m/44'/118'/2147483647'/0/0": 'celestia1t7xe8g8lql8cs90x9qyx4sjvp6r50e34aqsqje', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia15ngat80aqs2n8g5umpejvs0h0snpac9j69fmww", + "m/44'/118'/1'/0/0": "celestia1wtdd7cxy204gqede9jcat0evunq3hqlwcmtpp5", + "m/44'/118'/21234567'/0/0": "celestia1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmac5q9u", + "m/44'/118'/2147483646'/0/0": "celestia13js0cj3fazmnaqxrxn4cxda7ggcv8y6y57nexl", + "m/44'/118'/2147483647'/0/0": "celestia1t7xe8g8lql8cs90x9qyx4sjvp6r50e34aqsqje" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x1800714ad662c8abc309d7419e469618106d1f86eef88b8e4f9f826039949318', - "m/44'/784'/1'/0'/0'": '0x9d5ab711e91ca8ad190693e25ae3cea84e6cf856bd51b3d2a786f8b6850fc0c0', - "m/44'/784'/21234567'/0'/0'": - '0x3d1bbea2eb35eac37ab4eee86992352e795428868a9f82af0d76653314b9b385', - "m/44'/784'/2147483646'/0'/0'": - '0x9b7a0dcd6e59bcfaf46c078c1ca2da50e74ce64c60d0ab63d223aa4ee19383ca', - "m/44'/784'/2147483647'/0'/0'": - '0x90d805b55fadc421378815d4ba7b293ebcd503e0e5d6ec0e06064c3addecbe45', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x1800714ad662c8abc309d7419e469618106d1f86eef88b8e4f9f826039949318", + "m/44'/784'/1'/0'/0'": "0x9d5ab711e91ca8ad190693e25ae3cea84e6cf856bd51b3d2a786f8b6850fc0c0", + "m/44'/784'/21234567'/0'/0'": "0x3d1bbea2eb35eac37ab4eee86992352e795428868a9f82af0d76653314b9b385", + "m/44'/784'/2147483646'/0'/0'": "0x9b7a0dcd6e59bcfaf46c078c1ca2da50e74ce64c60d0ab63d223aa4ee19383ca", + "m/44'/784'/2147483647'/0'/0'": "0x90d805b55fadc421378815d4ba7b293ebcd503e0e5d6ec0e06064c3addecbe45" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6', - "m/44'/144'/1'/0/0": 'rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J', - "m/44'/144'/21234567'/0/0": 'rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT', - "m/44'/144'/2147483646'/0/0": 'r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE', - "m/44'/144'/2147483647'/0/0": 'rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6", + "m/44'/144'/1'/0/0": "rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J", + "m/44'/144'/21234567'/0/0": "rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT", + "m/44'/144'/2147483646'/0/0": "r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE", + "m/44'/144'/2147483647'/0/0": "rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC750ef68c35006320666d9d52b36821f7738a537933e4bc029ce3c3a03f5c0d2b3948', - "m/44'/728'/1'/0'/0'": - 'BFCb0924e82d25eb944327f231683c04743e6d167fe1df39e9e34c44d3ca16bf67b11df', - "m/44'/728'/21234567'/0'/0'": - 'BFCacbcb3996a60324b2b0c7931afa743cf1685ab05e031d569236181b7aebf4111f2ac', - "m/44'/728'/2147483646'/0'/0'": - 'BFCb0f5d8d4735753a9367f31e1c680fe5bbe39401be27903255c0698504a20766c41fe', - "m/44'/728'/2147483647'/0'/0'": - 'BFC6765740e0ad86c689aa414b9331a2abdb574a62d530b904ac7f2ce5c807255987469', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC750ef68c35006320666d9d52b36821f7738a537933e4bc029ce3c3a03f5c0d2b3948", + "m/44'/728'/1'/0'/0'": "BFCb0924e82d25eb944327f231683c04743e6d167fe1df39e9e34c44d3ca16bf67b11df", + "m/44'/728'/21234567'/0'/0'": "BFCacbcb3996a60324b2b0c7931afa743cf1685ab05e031d569236181b7aebf4111f2ac", + "m/44'/728'/2147483646'/0'/0'": "BFCb0f5d8d4735753a9367f31e1c680fe5bbe39401be27903255c0698504a20766c41fe", + "m/44'/728'/2147483647'/0'/0'": "BFC6765740e0ad86c689aa414b9331a2abdb574a62d530b904ac7f2ce5c807255987469" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13RLNhuqPMZR4W44yxPTFmkpP6bexaBNE6bznePfECer8', - "m/44'/1234'/1'/0/0": '1HUiVEXoCSgwZr69xiryAvVBK45WEBQLhfnbeZP3HzjfA', - "m/44'/1234'/21234567'/0/0": '14R6EcSPyYCMQ4GEUmCbHe1G8t3jxrzPcokxESv8psN6Z', - "m/44'/1234'/2147483646'/0/0": '18y9AxjxfCSomrrGg338TLcQETt2X67BrDZ5mHvsgUP4Y', - "m/44'/1234'/2147483647'/0/0": '1DaJ5qpEuAL6nd3oxCK35VhVDjijLACd93XhZMdFUDnMs', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13RLNhuqPMZR4W44yxPTFmkpP6bexaBNE6bznePfECer8", + "m/44'/1234'/1'/0/0": "1HUiVEXoCSgwZr69xiryAvVBK45WEBQLhfnbeZP3HzjfA", + "m/44'/1234'/21234567'/0/0": "14R6EcSPyYCMQ4GEUmCbHe1G8t3jxrzPcokxESv8psN6Z", + "m/44'/1234'/2147483646'/0/0": "18y9AxjxfCSomrrGg338TLcQETt2X67BrDZ5mHvsgUP4Y", + "m/44'/1234'/2147483647'/0/0": "1DaJ5qpEuAL6nd3oxCK35VhVDjijLACd93XhZMdFUDnMs" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'SRMCYSF2DTCPOMUWDZ4DX4LTCB7UOIOQIP2NICABLG4O4LFR5MBZJBZB6Y', - "m/44'/283'/1'/0'/0'": 'NY76F5BCHRRQU43OHF5RYEPNN3FH5QP2GVPJHN7BUKBOG3LGNPRQNZQPYU', - "m/44'/283'/21234567'/0'/0'": 'IFRRZL7RY5YFHJ3BIO5GH6P3FL6ZO434ZQ2GKDDMVYCYNBM76BFWUYUSQ4', - "m/44'/283'/2147483646'/0'/0'": - 'NY6R3UFH63XS2NX5WXBIXGL2GGSZFR3VHUDIONQXYS5SGDIIZTJQOQLJ4Q', - "m/44'/283'/2147483647'/0'/0'": - 'SV4ATNTW532TP3WJE4C32DGAA57J7ANZ424NH6MQ6FPQUDIYO6Q5BR3ZSE', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "SRMCYSF2DTCPOMUWDZ4DX4LTCB7UOIOQIP2NICABLG4O4LFR5MBZJBZB6Y", + "m/44'/283'/1'/0'/0'": "NY76F5BCHRRQU43OHF5RYEPNN3FH5QP2GVPJHN7BUKBOG3LGNPRQNZQPYU", + "m/44'/283'/21234567'/0'/0'": "IFRRZL7RY5YFHJ3BIO5GH6P3FL6ZO434ZQ2GKDDMVYCYNBM76BFWUYUSQ4", + "m/44'/283'/2147483646'/0'/0'": "NY6R3UFH63XS2NX5WXBIXGL2GGSZFR3VHUDIONQXYS5SGDIIZTJQOQLJ4Q", + "m/44'/283'/2147483647'/0'/0'": "SV4ATNTW532TP3WJE4C32DGAA57J7ANZ424NH6MQ6FPQUDIYO6Q5BR3ZSE" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQA1cG0jIgoa0QoXhXMCdYV5aKK5CQ4kg8AfBIOUK7CjkK0A', - "m/44'/607'/1'": 'UQDtvzZfgnJeo7nvPTiABSiHxgWwBssWJsNCaD-VVxxhwgDx', - "m/44'/607'/21234567'": 'UQD3YW6XcyNIjfMf7HhUVRtW_zD1fCsbk8KGmMu8iUJO0nq-', - "m/44'/607'/2147483646'": 'UQB313Q75YjN_iBGtF_eRNtB-owlDVKrN63Rq-iIVnvrm1js', - "m/44'/607'/2147483647'": 'UQAPM18KfvrFeroExN3kAFfhxtfghCvrPZRdk3crpyJoKLXQ', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQA1cG0jIgoa0QoXhXMCdYV5aKK5CQ4kg8AfBIOUK7CjkK0A", + "m/44'/607'/1'": "UQDtvzZfgnJeo7nvPTiABSiHxgWwBssWJsNCaD-VVxxhwgDx", + "m/44'/607'/21234567'": "UQD3YW6XcyNIjfMf7HhUVRtW_zD1fCsbk8KGmMu8iUJO0nq-", + "m/44'/607'/2147483646'": "UQB313Q75YjN_iBGtF_eRNtB-owlDVKrN63Rq-iIVnvrm1js", + "m/44'/607'/2147483647'": "UQAPM18KfvrFeroExN3kAFfhxtfghCvrPZRdk3crpyJoKLXQ" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqzdtr8dglzrm5lx7utrcpvrf4wtsvd22xs8xtacl', - "m/44'/309'/1'/0/0": 'ckb1qyqqm48pugmrn453khxr0vcn7rht33zkq4es9enf0p', - "m/44'/309'/21234567'/0/0": 'ckb1qyqy32dy97eqtm6npezt6fhrl83kx3m76x2sjfrkvg', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqf8w7658e2tdevjp4vak2jdd5249v7qe5sy5asgn', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqfcfzavpvvmr906dghzwyah2tfr08nq7ws049tha', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqzdtr8dglzrm5lx7utrcpvrf4wtsvd22xs8xtacl", + "m/44'/309'/1'/0/0": "ckb1qyqqm48pugmrn453khxr0vcn7rht33zkq4es9enf0p", + "m/44'/309'/21234567'/0/0": "ckb1qyqy32dy97eqtm6npezt6fhrl83kx3m76x2sjfrkvg", + "m/44'/309'/2147483646'/0/0": "ckb1qyqf8w7658e2tdevjp4vak2jdd5249v7qe5sy5asgn", + "m/44'/309'/2147483647'/0/0": "ckb1qyqfcfzavpvvmr906dghzwyah2tfr08nq7ws049tha" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5mcs9yd26yy028032mf363g0cj2s7vtas4ce7ha2j', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5pmltxghefuhu0jt07605unjn4wht4wzmv4mrwqms', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5nqzsxngqs3s8zrstnaj2th3pwmuw95eatdm5eyml', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5mpqpdtz5v8mmc6qtlzxjea07rf9gddd96cmhadl5', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g58kmger26n3qayvfdwmxspl5fvgj0l2vpez2amh6v', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5mcs9yd26yy028032mf363g0cj2s7vtas4ce7ha2j", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5pmltxghefuhu0jt07605unjn4wht4wzmv4mrwqms", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5nqzsxngqs3s8zrstnaj2th3pwmuw95eatdm5eyml", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5mpqpdtz5v8mmc6qtlzxjea07rf9gddd96cmhadl5", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g58kmger26n3qayvfdwmxspl5fvgj0l2vpez2amh6v" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6', - "m/44'/144'/1'/0/0": 'rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J', - "m/44'/144'/21234567'/0/0": 'rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT', - "m/44'/144'/2147483646'/0/0": 'r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE', - "m/44'/144'/2147483647'/0/0": 'rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6", + "m/44'/144'/1'/0/0": "rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J", + "m/44'/144'/21234567'/0/0": "rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT", + "m/44'/144'/2147483646'/0/0": "r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE", + "m/44'/144'/2147483647'/0/0": "rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S014b949e1afcf18c37db6a5b455de26ef617dc51', - "m/44'/541'/1'/0/0": '1S01bef934279a81837627d18009d0173d482626e1', - "m/44'/541'/21234567'/0/0": '1S01fd94730ef99038045800a6f3b387c8905cdb91', - "m/44'/541'/2147483646'/0/0": '1S019ce88e007fbb1e63743122b386c09710af3271', - "m/44'/541'/2147483647'/0/0": '1S015a65ce630ccbea1f3c91f5947dbe9e8de238b1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S014b949e1afcf18c37db6a5b455de26ef617dc51", + "m/44'/541'/1'/0/0": "1S01bef934279a81837627d18009d0173d482626e1", + "m/44'/541'/21234567'/0/0": "1S01fd94730ef99038045800a6f3b387c8905cdb91", + "m/44'/541'/2147483646'/0/0": "1S019ce88e007fbb1e63743122b386c09710af3271", + "m/44'/541'/2147483647'/0/0": "1S015a65ce630ccbea1f3c91f5947dbe9e8de238b1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_1.ts index e76b129a5..5e22e47b0 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_1.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphrase1: SLIP39TestCaseData = { - id: 'count20_one_passphrase_1', - name: 'count20_one_passphrase_1', - description: '1-of-1 (20 words) + passphrase_1', - passphrase: '12345', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_1", + "name": "count20_one_passphrase_1", + "description": "1-of-1 (20 words) + passphrase_1", + "passphrase": "12345", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '164UwQSCfgt9QKVD415tJz4eFwrLe5ePo3', - "m/44'/0'/1'/0/0": '1KYpAsrtZPyvb3zoKHcLoKYP9LLDEMyLhm', - "m/44'/0'/21234567'/0/0": '1GcqQDZhdr5dR46PUgPWV1WuEvQH9Ar2zY', - "m/44'/0'/2147483646'/0/0": '1KZ1Qjk87L2s18f5m1bZy5TM67zh1kYdTj', - "m/44'/0'/2147483647'/0/0": '17cRRxCDoS3mGaYTcAQ7LsuhGcDhvw75qq', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "164UwQSCfgt9QKVD415tJz4eFwrLe5ePo3", + "m/44'/0'/1'/0/0": "1KYpAsrtZPyvb3zoKHcLoKYP9LLDEMyLhm", + "m/44'/0'/21234567'/0/0": "1GcqQDZhdr5dR46PUgPWV1WuEvQH9Ar2zY", + "m/44'/0'/2147483646'/0/0": "1KZ1Qjk87L2s18f5m1bZy5TM67zh1kYdTj", + "m/44'/0'/2147483647'/0/0": "17cRRxCDoS3mGaYTcAQ7LsuhGcDhvw75qq" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3GXfQ4GUoPC1xTWKEWKppepi4XKyKmMgpe', - "m/49'/0'/1'/0/0": '37VxJRcaNAsggRfbkq9jFWYosiSHGeRnBo', - "m/49'/0'/21234567'/0/0": '34AuQeHwBm38t36BjciuJw9Bw5bH4vJXdA', - "m/49'/0'/2147483646'/0/0": '3KEAxxorAiapYoB8A5cqq9GWakBdsKBSkr', - "m/49'/0'/2147483647'/0/0": '3LQrvzUMjkv8Kd1xUAMy7yfnYW2j5t1PKB', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3GXfQ4GUoPC1xTWKEWKppepi4XKyKmMgpe", + "m/49'/0'/1'/0/0": "37VxJRcaNAsggRfbkq9jFWYosiSHGeRnBo", + "m/49'/0'/21234567'/0/0": "34AuQeHwBm38t36BjciuJw9Bw5bH4vJXdA", + "m/49'/0'/2147483646'/0/0": "3KEAxxorAiapYoB8A5cqq9GWakBdsKBSkr", + "m/49'/0'/2147483647'/0/0": "3LQrvzUMjkv8Kd1xUAMy7yfnYW2j5t1PKB" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qgnl82mwj3dj6j40zpn7nn5c244uatadnf2sfex', - "m/84'/0'/1'/0/0": 'bc1quucmhzq8m6s6jeyukusnmjpakq4r9qw397upt9', - "m/84'/0'/21234567'/0/0": 'bc1qwrm6fwfhvn5h68maxw2jy8h8w5dr7xmskx4r2y', - "m/84'/0'/2147483646'/0/0": 'bc1q0mlpg2grh6zw8rh97xe73dsd97ar8qkkusq2k3', - "m/84'/0'/2147483647'/0/0": 'bc1qyq6qlpa0sw3nnyvn89eetsauwgj2g00cepjcd2', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qgnl82mwj3dj6j40zpn7nn5c244uatadnf2sfex", + "m/84'/0'/1'/0/0": "bc1quucmhzq8m6s6jeyukusnmjpakq4r9qw397upt9", + "m/84'/0'/21234567'/0/0": "bc1qwrm6fwfhvn5h68maxw2jy8h8w5dr7xmskx4r2y", + "m/84'/0'/2147483646'/0/0": "bc1q0mlpg2grh6zw8rh97xe73dsd97ar8qkkusq2k3", + "m/84'/0'/2147483647'/0/0": "bc1qyq6qlpa0sw3nnyvn89eetsauwgj2g00cepjcd2" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1p27jja6g9hl0n6zghrtyt0tl7cer3u7z793lx99fy3afyf3vhf9nq97x48p', - "m/86'/0'/1'/0/0": 'bc1p5xmn220nlquf66pl3hue08kxyj67mcsz0l6g3hv95yrpezqs4m6s525zal', - "m/86'/0'/21234567'/0/0": 'bc1pscuqu0vwyzpkarps4a3jz5rtaymdq4rvqh5x88uljnev2kr6a58semhpls', - "m/86'/0'/2147483646'/0/0": - 'bc1pfkhdaaemud3nq8m3au87yuurh3lfndczm43tg2hp7gqjtwdnhreqd87yfu', - "m/86'/0'/2147483647'/0/0": - 'bc1pyex998dzw4uvm6exsm0leu2qcpwd2kte56tf7364s57a53w8se4sr7w3a5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1p27jja6g9hl0n6zghrtyt0tl7cer3u7z793lx99fy3afyf3vhf9nq97x48p", + "m/86'/0'/1'/0/0": "bc1p5xmn220nlquf66pl3hue08kxyj67mcsz0l6g3hv95yrpezqs4m6s525zal", + "m/86'/0'/21234567'/0/0": "bc1pscuqu0vwyzpkarps4a3jz5rtaymdq4rvqh5x88uljnev2kr6a58semhpls", + "m/86'/0'/2147483646'/0/0": "bc1pfkhdaaemud3nq8m3au87yuurh3lfndczm43tg2hp7gqjtwdnhreqd87yfu", + "m/86'/0'/2147483647'/0/0": "bc1pyex998dzw4uvm6exsm0leu2qcpwd2kte56tf7364s57a53w8se4sr7w3a5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DMpLpiVgJpbqNMijmz2SfdteRKu8RQFHWo', - "m/44'/3'/1'/0/0": 'DMnKxL34NQsmmutW21N9RACz71xsVnDcNy', - "m/44'/3'/21234567'/0/0": 'DFK7KXvNasXhKe2K56fPiP7zne6CqGz89k', - "m/44'/3'/2147483646'/0/0": 'D8FyxxbKTuPHRvbrG6jbmWLedkfxEcm6yw', - "m/44'/3'/2147483647'/0/0": 'DQqT6F3Moy62rMvWWBTYPTi9Exoe9bt2wd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DMpLpiVgJpbqNMijmz2SfdteRKu8RQFHWo", + "m/44'/3'/1'/0/0": "DMnKxL34NQsmmutW21N9RACz71xsVnDcNy", + "m/44'/3'/21234567'/0/0": "DFK7KXvNasXhKe2K56fPiP7zne6CqGz89k", + "m/44'/3'/2147483646'/0/0": "D8FyxxbKTuPHRvbrG6jbmWLedkfxEcm6yw", + "m/44'/3'/2147483647'/0/0": "DQqT6F3Moy62rMvWWBTYPTi9Exoe9bt2wd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qp8dvyxss6y93hqq69kj8g0eddydqfuemc7q44rcaa', - "m/44'/145'/1'/0/0": 'bitcoincash:qzkgppd7hpesmlxyv84tsavzfy7dpcupeyh8g9z6jx', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qznaxy2nt0a6ax9raaz08ttdphjekmuzjgm8t0d0pn', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qp4elqkvucldgjrs3wh56fy098njeu45dsae0wun23', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qqk4fz5g6qetma7dgym3kvux5w6zwaz5v5uh5dq3pq', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qp8dvyxss6y93hqq69kj8g0eddydqfuemc7q44rcaa", + "m/44'/145'/1'/0/0": "bitcoincash:qzkgppd7hpesmlxyv84tsavzfy7dpcupeyh8g9z6jx", + "m/44'/145'/21234567'/0/0": "bitcoincash:qznaxy2nt0a6ax9raaz08ttdphjekmuzjgm8t0d0pn", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qp4elqkvucldgjrs3wh56fy098njeu45dsae0wun23", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qqk4fz5g6qetma7dgym3kvux5w6zwaz5v5uh5dq3pq" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LafeVh7Fu2m5CA13hkhxfoepAV9cTNVGkw', - "m/44'/2'/1'/0/0": 'LKRE92ctME97aXvQUvcCtnddkNc9hg3yia', - "m/44'/2'/21234567'/0/0": 'LQgcGxuMS2gaBUPKnwL7ezpQUzB9fjoKgH', - "m/44'/2'/2147483646'/0/0": 'LcGLkYkfKviBhetinAdWNynnmAc7kssKx6', - "m/44'/2'/2147483647'/0/0": 'LS8hkH4q5kkBY9H6KPEJt5S2rEK47iPVB4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LafeVh7Fu2m5CA13hkhxfoepAV9cTNVGkw", + "m/44'/2'/1'/0/0": "LKRE92ctME97aXvQUvcCtnddkNc9hg3yia", + "m/44'/2'/21234567'/0/0": "LQgcGxuMS2gaBUPKnwL7ezpQUzB9fjoKgH", + "m/44'/2'/2147483646'/0/0": "LcGLkYkfKviBhetinAdWNynnmAc7kssKx6", + "m/44'/2'/2147483647'/0/0": "LS8hkH4q5kkBY9H6KPEJt5S2rEK47iPVB4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'M9RijxjeFBRumatBtZLcKDQT9PGcuqowrh', - "m/49'/2'/1'/0/0": 'MD3AR8XmgG1WLeQYH8xrC9KtxiDR79q6it', - "m/49'/2'/21234567'/0/0": 'M9jRZFEEe8JQfpMRjQBXdbRWg44HBAjxh9', - "m/49'/2'/2147483646'/0/0": 'MLrpeQUoG24bq47Q4yCsLnNbTaMkEy8uB1', - "m/49'/2'/2147483647'/0/0": 'ME9songLH89HEXJuTGXm1FNgfNdmEqBQUd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "M9RijxjeFBRumatBtZLcKDQT9PGcuqowrh", + "m/49'/2'/1'/0/0": "MD3AR8XmgG1WLeQYH8xrC9KtxiDR79q6it", + "m/49'/2'/21234567'/0/0": "M9jRZFEEe8JQfpMRjQBXdbRWg44HBAjxh9", + "m/49'/2'/2147483646'/0/0": "MLrpeQUoG24bq47Q4yCsLnNbTaMkEy8uB1", + "m/49'/2'/2147483647'/0/0": "ME9songLH89HEXJuTGXm1FNgfNdmEqBQUd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qh0pfpyazhp04zk8vgfy8makczs5k5l4nx7xy6h', - "m/84'/2'/1'/0/0": 'ltc1qw5e2pz47jsaakzdg4nj37flf4w4j7tpr0yadhr', - "m/84'/2'/21234567'/0/0": 'ltc1qfeytpwe0850c76fsw8masqf3s4mxt4l56zrylt', - "m/84'/2'/2147483646'/0/0": 'ltc1qjgn7qw88j8aj7ke2n7m58f47y7qcnepqrkyhfx', - "m/84'/2'/2147483647'/0/0": 'ltc1qtcdgxe72mksjsp0wtlxqvtay933ce2rax2r6lk', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qh0pfpyazhp04zk8vgfy8makczs5k5l4nx7xy6h", + "m/84'/2'/1'/0/0": "ltc1qw5e2pz47jsaakzdg4nj37flf4w4j7tpr0yadhr", + "m/84'/2'/21234567'/0/0": "ltc1qfeytpwe0850c76fsw8masqf3s4mxt4l56zrylt", + "m/84'/2'/2147483646'/0/0": "ltc1qjgn7qw88j8aj7ke2n7m58f47y7qcnepqrkyhfx", + "m/84'/2'/2147483647'/0/0": "ltc1qtcdgxe72mksjsp0wtlxqvtay933ce2rax2r6lk" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NZRorKct9gbMvQeKc9uZF1RnEFWFnvUyFc', - "m/44'/1900'/1'/0/0": 'Ndap7Qpsu2XEU5fmyUVRvtat3CiTptsiAK', - "m/44'/1900'/21234567'/0/0": 'Nfsm9dhbgbWwDUFC3gWMk5XnQKLtFsBxzL', - "m/44'/1900'/2147483646'/0/0": 'NPx8wfSdcAGcxzoUE2nHjQshWBXAmczSgm', - "m/44'/1900'/2147483647'/0/0": 'NPL7NBYdic3JatFuaxp29n65hBFMDWqrUS', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NZRorKct9gbMvQeKc9uZF1RnEFWFnvUyFc", + "m/44'/1900'/1'/0/0": "Ndap7Qpsu2XEU5fmyUVRvtat3CiTptsiAK", + "m/44'/1900'/21234567'/0/0": "Nfsm9dhbgbWwDUFC3gWMk5XnQKLtFsBxzL", + "m/44'/1900'/2147483646'/0/0": "NPx8wfSdcAGcxzoUE2nHjQshWBXAmczSgm", + "m/44'/1900'/2147483647'/0/0": "NPL7NBYdic3JatFuaxp29n65hBFMDWqrUS" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xf0776334160c88c9fa673680D4eEf5C62Ad1FdfA', - "m/44'/60'/1'/0/0": '0xe90e2CfabFA1a2696D2a3D12e9d4B4Ca3bCd8aA0', - "m/44'/60'/21234567'/0/0": '0x12A3d4F1948Fad8EBF574BEee8059b8A6bbF7fee', - "m/44'/60'/2147483646'/0/0": '0x938B00f2E61Dd968cAC20DF35D8BFE2c1B8eE2F7', - "m/44'/60'/2147483647'/0/0": '0x087C309341d3F89389B2aC43C40d315Dfe82126D', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xf0776334160c88c9fa673680D4eEf5C62Ad1FdfA", + "m/44'/60'/1'/0/0": "0xe90e2CfabFA1a2696D2a3D12e9d4B4Ca3bCd8aA0", + "m/44'/60'/21234567'/0/0": "0x12A3d4F1948Fad8EBF574BEee8059b8A6bbF7fee", + "m/44'/60'/2147483646'/0/0": "0x938B00f2E61Dd968cAC20DF35D8BFE2c1B8eE2F7", + "m/44'/60'/2147483647'/0/0": "0x087C309341d3F89389B2aC43C40d315Dfe82126D" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x3306CEE7D2778e864707081251a6F18F29a4df3e', - "m/44'/61'/1'/0/0": '0x8E3Abf99f1e9F5f489a34164c8b1865966A02F1B', - "m/44'/61'/21234567'/0/0": '0xD4c269754810E3Fea3186Cb641Fab1D1E5285627', - "m/44'/61'/2147483646'/0/0": '0xCfd8B0534300d619ade1ab547882CcF05c8cA372', - "m/44'/61'/2147483647'/0/0": '0x687918e027fCBAd86c2871190d9eB3623D262153', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x3306CEE7D2778e864707081251a6F18F29a4df3e", + "m/44'/61'/1'/0/0": "0x8E3Abf99f1e9F5f489a34164c8b1865966A02F1B", + "m/44'/61'/21234567'/0/0": "0xD4c269754810E3Fea3186Cb641Fab1D1E5285627", + "m/44'/61'/2147483646'/0/0": "0xCfd8B0534300d619ade1ab547882CcF05c8cA372", + "m/44'/61'/2147483647'/0/0": "0x687918e027fCBAd86c2871190d9eB3623D262153" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1te7q6knnk9mf5eqnsytgv8yla4mkhsl2eaqql9', - "m/44'/118'/1'/0/0": 'cosmos1j6axuwrgvr66xe3fg7hjsf8m477xfkpgnyc23q', - "m/44'/118'/21234567'/0/0": 'cosmos1t269lmtz58q80psfll5md9ku8sg3c8pqg6la8s', - "m/44'/118'/2147483646'/0/0": 'cosmos1ptp300tqafntzne47y6557mqpn0hmssz6lm9z9', - "m/44'/118'/2147483647'/0/0": 'cosmos1h7dzxsfww7l9n6tpkul27quagamgly5lfg4chd', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1te7q6knnk9mf5eqnsytgv8yla4mkhsl2eaqql9", + "m/44'/118'/1'/0/0": "cosmos1j6axuwrgvr66xe3fg7hjsf8m477xfkpgnyc23q", + "m/44'/118'/21234567'/0/0": "cosmos1t269lmtz58q80psfll5md9ku8sg3c8pqg6la8s", + "m/44'/118'/2147483646'/0/0": "cosmos1ptp300tqafntzne47y6557mqpn0hmssz6lm9z9", + "m/44'/118'/2147483647'/0/0": "cosmos1h7dzxsfww7l9n6tpkul27quagamgly5lfg4chd" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1te7q6knnk9mf5eqnsytgv8yla4mkhsl25xd8xl', - "m/44'/118'/1'/0/0": 'akash1j6axuwrgvr66xe3fg7hjsf8m477xfkpg7l4dg6', - "m/44'/118'/21234567'/0/0": 'akash1t269lmtz58q80psfll5md9ku8sg3c8pq9pj672', - "m/44'/118'/2147483646'/0/0": 'akash1ptp300tqafntzne47y6557mqpn0hmsszhykzml', - "m/44'/118'/2147483647'/0/0": 'akash1h7dzxsfww7l9n6tpkul27quagamgly5lynclwh', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1te7q6knnk9mf5eqnsytgv8yla4mkhsl25xd8xl", + "m/44'/118'/1'/0/0": "akash1j6axuwrgvr66xe3fg7hjsf8m477xfkpg7l4dg6", + "m/44'/118'/21234567'/0/0": "akash1t269lmtz58q80psfll5md9ku8sg3c8pq9pj672", + "m/44'/118'/2147483646'/0/0": "akash1ptp300tqafntzne47y6557mqpn0hmsszhykzml", + "m/44'/118'/2147483647'/0/0": "akash1h7dzxsfww7l9n6tpkul27quagamgly5lynclwh" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1te7q6knnk9mf5eqnsytgv8yla4mkhsl2pxger5', - "m/44'/118'/1'/0/0": 'cro1j6axuwrgvr66xe3fg7hjsf8m477xfkpgtlsnd3', - "m/44'/118'/21234567'/0/0": 'cro1t269lmtz58q80psfll5md9ku8sg3c8pqsphymp', - "m/44'/118'/2147483646'/0/0": 'cro1ptp300tqafntzne47y6557mqpn0hmsszzynu75', - "m/44'/118'/2147483647'/0/0": 'cro1h7dzxsfww7l9n6tpkul27quagamgly5l3naptu', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1te7q6knnk9mf5eqnsytgv8yla4mkhsl2pxger5", + "m/44'/118'/1'/0/0": "cro1j6axuwrgvr66xe3fg7hjsf8m477xfkpgtlsnd3", + "m/44'/118'/21234567'/0/0": "cro1t269lmtz58q80psfll5md9ku8sg3c8pqsphymp", + "m/44'/118'/2147483646'/0/0": "cro1ptp300tqafntzne47y6557mqpn0hmsszzynu75", + "m/44'/118'/2147483647'/0/0": "cro1h7dzxsfww7l9n6tpkul27quagamgly5l3naptu" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1te7q6knnk9mf5eqnsytgv8yla4mkhsl22qfyaj', - "m/44'/118'/1'/0/0": 'fetch1j6axuwrgvr66xe3fg7hjsf8m477xfkpgqe3wnh', - "m/44'/118'/21234567'/0/0": 'fetch1t269lmtz58q80psfll5md9ku8sg3c8pqm8ke98', - "m/44'/118'/2147483646'/0/0": 'fetch1ptp300tqafntzne47y6557mqpn0hmsszfzjpqj', - "m/44'/118'/2147483647'/0/0": 'fetch1h7dzxsfww7l9n6tpkul27quagamgly5l64uu46', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1te7q6knnk9mf5eqnsytgv8yla4mkhsl22qfyaj", + "m/44'/118'/1'/0/0": "fetch1j6axuwrgvr66xe3fg7hjsf8m477xfkpgqe3wnh", + "m/44'/118'/21234567'/0/0": "fetch1t269lmtz58q80psfll5md9ku8sg3c8pqm8ke98", + "m/44'/118'/2147483646'/0/0": "fetch1ptp300tqafntzne47y6557mqpn0hmsszfzjpqj", + "m/44'/118'/2147483647'/0/0": "fetch1h7dzxsfww7l9n6tpkul27quagamgly5l64uu46" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1te7q6knnk9mf5eqnsytgv8yla4mkhsl23xnsfh', - "m/44'/118'/1'/0/0": 'osmo1j6axuwrgvr66xe3fg7hjsf8m477xfkpgmlt68j', - "m/44'/118'/21234567'/0/0": 'osmo1t269lmtz58q80psfll5md9ku8sg3c8pqqpvd3z', - "m/44'/118'/2147483646'/0/0": 'osmo1ptp300tqafntzne47y6557mqpn0hmsszjyg45h', - "m/44'/118'/2147483647'/0/0": 'osmo1h7dzxsfww7l9n6tpkul27quagamgly5lpnxgpl', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1te7q6knnk9mf5eqnsytgv8yla4mkhsl23xnsfh", + "m/44'/118'/1'/0/0": "osmo1j6axuwrgvr66xe3fg7hjsf8m477xfkpgmlt68j", + "m/44'/118'/21234567'/0/0": "osmo1t269lmtz58q80psfll5md9ku8sg3c8pqqpvd3z", + "m/44'/118'/2147483646'/0/0": "osmo1ptp300tqafntzne47y6557mqpn0hmsszjyg45h", + "m/44'/118'/2147483647'/0/0": "osmo1h7dzxsfww7l9n6tpkul27quagamgly5lpnxgpl" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1te7q6knnk9mf5eqnsytgv8yla4mkhsl200rmce', - "m/44'/118'/1'/0/0": 'juno1j6axuwrgvr66xe3fg7hjsf8m477xfkpg9km3ku', - "m/44'/118'/21234567'/0/0": 'juno1t269lmtz58q80psfll5md9ku8sg3c8pq7guxqv', - "m/44'/118'/2147483646'/0/0": 'juno1ptp300tqafntzne47y6557mqpn0hmsszvdc79e', - "m/44'/118'/2147483647'/0/0": 'juno1h7dzxsfww7l9n6tpkul27quagamgly5ll6krs3', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1te7q6knnk9mf5eqnsytgv8yla4mkhsl200rmce", + "m/44'/118'/1'/0/0": "juno1j6axuwrgvr66xe3fg7hjsf8m477xfkpg9km3ku", + "m/44'/118'/21234567'/0/0": "juno1t269lmtz58q80psfll5md9ku8sg3c8pq7guxqv", + "m/44'/118'/2147483646'/0/0": "juno1ptp300tqafntzne47y6557mqpn0hmsszvdc79e", + "m/44'/118'/2147483647'/0/0": "juno1h7dzxsfww7l9n6tpkul27quagamgly5ll6krs3" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1te7q6knnk9mf5eqnsytgv8yla4mkhsl2le6qa9', - "m/44'/118'/1'/0/0": 'terra1j6axuwrgvr66xe3fg7hjsf8m477xfkpg4qz2nq', - "m/44'/118'/21234567'/0/0": 'terra1t269lmtz58q80psfll5md9ku8sg3c8pqw79a9s', - "m/44'/118'/2147483646'/0/0": 'terra1ptp300tqafntzne47y6557mqpn0hmsszump9q9', - "m/44'/118'/2147483647'/0/0": 'terra1h7dzxsfww7l9n6tpkul27quagamgly5l0v0c4d', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1te7q6knnk9mf5eqnsytgv8yla4mkhsl2le6qa9", + "m/44'/118'/1'/0/0": "terra1j6axuwrgvr66xe3fg7hjsf8m477xfkpg4qz2nq", + "m/44'/118'/21234567'/0/0": "terra1t269lmtz58q80psfll5md9ku8sg3c8pqw79a9s", + "m/44'/118'/2147483646'/0/0": "terra1ptp300tqafntzne47y6557mqpn0hmsszump9q9", + "m/44'/118'/2147483647'/0/0": "terra1h7dzxsfww7l9n6tpkul27quagamgly5l0v0c4d" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1te7q6knnk9mf5eqnsytgv8yla4mkhsl2mc5fze', - "m/44'/118'/1'/0/0": 'secret1j6axuwrgvr66xe3fg7hjsf8m477xfkpg3pvrvu', - "m/44'/118'/21234567'/0/0": 'secret1t269lmtz58q80psfll5md9ku8sg3c8pq2lt56v', - "m/44'/118'/2147483646'/0/0": 'secret1ptp300tqafntzne47y6557mqpn0hmsszc60vle', - "m/44'/118'/2147483647'/0/0": 'secret1h7dzxsfww7l9n6tpkul27quagamgly5ltdp323', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1te7q6knnk9mf5eqnsytgv8yla4mkhsl2mc5fze", + "m/44'/118'/1'/0/0": "secret1j6axuwrgvr66xe3fg7hjsf8m477xfkpg3pvrvu", + "m/44'/118'/21234567'/0/0": "secret1t269lmtz58q80psfll5md9ku8sg3c8pq2lt56v", + "m/44'/118'/2147483646'/0/0": "secret1ptp300tqafntzne47y6557mqpn0hmsszc60vle", + "m/44'/118'/2147483647'/0/0": "secret1h7dzxsfww7l9n6tpkul27quagamgly5ltdp323" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1te7q6knnk9mf5eqnsytgv8yla4mkhsl2gh3s9g', - "m/44'/118'/1'/0/0": 'celestia1j6axuwrgvr66xe3fg7hjsf8m477xfkpgzwf6td', - "m/44'/118'/21234567'/0/0": 'celestia1t269lmtz58q80psfll5md9ku8sg3c8pqeswdaa', - "m/44'/118'/2147483646'/0/0": 'celestia1ptp300tqafntzne47y6557mqpn0hmsszt424cg', - "m/44'/118'/2147483647'/0/0": 'celestia1h7dzxsfww7l9n6tpkul27quagamgly5lczygdq', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1te7q6knnk9mf5eqnsytgv8yla4mkhsl2gh3s9g", + "m/44'/118'/1'/0/0": "celestia1j6axuwrgvr66xe3fg7hjsf8m477xfkpgzwf6td", + "m/44'/118'/21234567'/0/0": "celestia1t269lmtz58q80psfll5md9ku8sg3c8pqeswdaa", + "m/44'/118'/2147483646'/0/0": "celestia1ptp300tqafntzne47y6557mqpn0hmsszt424cg", + "m/44'/118'/2147483647'/0/0": "celestia1h7dzxsfww7l9n6tpkul27quagamgly5lczygdq" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0xd5fe4f37f6e495ad51028eba8954963d07de356dcaa4f98f1bab57317f9e5aea', - "m/44'/784'/1'/0'/0'": '0x29906c3e83efe479f2077539d35d857948c95aee3f25aa41558da6b18d830a80', - "m/44'/784'/21234567'/0'/0'": - '0x348d366fd383dcc8e2ab5e74c0159e787be6abe2d20d7ad13026726f65f9479e', - "m/44'/784'/2147483646'/0'/0'": - '0x1173332c0552bfac5694a5aa6c98b6b85d06b31c3d7e9ed138d86676324ec112', - "m/44'/784'/2147483647'/0'/0'": - '0xd6c12a10181e149c8a4d5a917afb158cd27d8f2acf331ba5250e42bd4a3b595e', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0xd5fe4f37f6e495ad51028eba8954963d07de356dcaa4f98f1bab57317f9e5aea", + "m/44'/784'/1'/0'/0'": "0x29906c3e83efe479f2077539d35d857948c95aee3f25aa41558da6b18d830a80", + "m/44'/784'/21234567'/0'/0'": "0x348d366fd383dcc8e2ab5e74c0159e787be6abe2d20d7ad13026726f65f9479e", + "m/44'/784'/2147483646'/0'/0'": "0x1173332c0552bfac5694a5aa6c98b6b85d06b31c3d7e9ed138d86676324ec112", + "m/44'/784'/2147483647'/0'/0'": "0xd6c12a10181e149c8a4d5a917afb158cd27d8f2acf331ba5250e42bd4a3b595e" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rnWp71fi7KLsxNAYkWesdJF7RsBZGnJfyL', - "m/44'/144'/1'/0/0": 'rHK7hTcu8sA1UNqitQrTrwtrcAGBC7XaXK', - "m/44'/144'/21234567'/0/0": 'rHVdo5coArrFtANNavK2N5qyFzzP7t2nKc', - "m/44'/144'/2147483646'/0/0": 'rpjt8u4FaiYqnyMTyLL3WGLyHm8VCu4s8i', - "m/44'/144'/2147483647'/0/0": 'rLmSybD6xMdWWFbNHBc1G6PK9go32saKLz', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rnWp71fi7KLsxNAYkWesdJF7RsBZGnJfyL", + "m/44'/144'/1'/0/0": "rHK7hTcu8sA1UNqitQrTrwtrcAGBC7XaXK", + "m/44'/144'/21234567'/0/0": "rHVdo5coArrFtANNavK2N5qyFzzP7t2nKc", + "m/44'/144'/2147483646'/0/0": "rpjt8u4FaiYqnyMTyLL3WGLyHm8VCu4s8i", + "m/44'/144'/2147483647'/0/0": "rLmSybD6xMdWWFbNHBc1G6PK9go32saKLz" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC585b878b52329b1375c9b531b337eab134691277996b8cbc4236678ddcb91c8d1d46', - "m/44'/728'/1'/0'/0'": - 'BFC19cc773522e501614f044515e651603d85ad80f6daa5dd08c0a8cced816bd5fdf752', - "m/44'/728'/21234567'/0'/0'": - 'BFC983c8099b13a8d9f90657ce6c7376bed064c617cbb07938eac9fc08ff1ee0d3d9d20', - "m/44'/728'/2147483646'/0'/0'": - 'BFC46b8ed0be3fb5e14e9e564513b14b4f5ebdf12c8bd3bd9e27f92ecb7d78500fb8123', - "m/44'/728'/2147483647'/0'/0'": - 'BFCb4155c175ecd4bb72769be3763bbb39ec05363024a17cba728ebeab87a67e77b8707', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC585b878b52329b1375c9b531b337eab134691277996b8cbc4236678ddcb91c8d1d46", + "m/44'/728'/1'/0'/0'": "BFC19cc773522e501614f044515e651603d85ad80f6daa5dd08c0a8cced816bd5fdf752", + "m/44'/728'/21234567'/0'/0'": "BFC983c8099b13a8d9f90657ce6c7376bed064c617cbb07938eac9fc08ff1ee0d3d9d20", + "m/44'/728'/2147483646'/0'/0'": "BFC46b8ed0be3fb5e14e9e564513b14b4f5ebdf12c8bd3bd9e27f92ecb7d78500fb8123", + "m/44'/728'/2147483647'/0'/0'": "BFCb4155c175ecd4bb72769be3763bbb39ec05363024a17cba728ebeab87a67e77b8707" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1FC2GiEv7qtW5VsusngWMmvnjETNc3Ttqta7P2Z8sGyuv', - "m/44'/1234'/1'/0/0": '12qi11pn5wZfhYiqPGAdneEtyZLAmqwjZYYW9JJJUjdUZ', - "m/44'/1234'/21234567'/0/0": '1p9EHM5bADH8ivn5Rn9fE7iKnrSddzYiihsynGFe6BJd', - "m/44'/1234'/2147483646'/0/0": '1EGT8ABNmBrkCt1dXyFc2mhop2Sznq7EpqZLdpMw7TEdF', - "m/44'/1234'/2147483647'/0/0": '178CDDcsnADuDTTiKtHXEgxZ25TfWKyfRNMXDiQmwfpr6', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1FC2GiEv7qtW5VsusngWMmvnjETNc3Ttqta7P2Z8sGyuv", + "m/44'/1234'/1'/0/0": "12qi11pn5wZfhYiqPGAdneEtyZLAmqwjZYYW9JJJUjdUZ", + "m/44'/1234'/21234567'/0/0": "1p9EHM5bADH8ivn5Rn9fE7iKnrSddzYiihsynGFe6BJd", + "m/44'/1234'/2147483646'/0/0": "1EGT8ABNmBrkCt1dXyFc2mhop2Sznq7EpqZLdpMw7TEdF", + "m/44'/1234'/2147483647'/0/0": "178CDDcsnADuDTTiKtHXEgxZ25TfWKyfRNMXDiQmwfpr6" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": '6CCBWQSJJ7VHQSRGTJUX64G7FGYHQSNQLFGZ2EMGNYEPUXYL65LUPZDL5U', - "m/44'/283'/1'/0'/0'": 'KQ6ETFXJ7VLEW3HY4UT4KGDDT7BKVNSOFLHQQZ3XHW2SDRQHWS7XSTT2QE', - "m/44'/283'/21234567'/0'/0'": 'S4POUFEC77GOLCNTW6B3MLNA4FWMPIIGZH3OL5FISF3O6CYQQAUQ54D2YQ', - "m/44'/283'/2147483646'/0'/0'": - 'B6PZGNRYNXQR3ITA4KSPKQBAO537IFYT6PMLFKSNNYYIO7MA75ZG2EY2BY', - "m/44'/283'/2147483647'/0'/0'": - '24QX3DA3TPSWUVHGU64V4EE6Y2FXHJIUGYRNAXDWCCIO3XKNVRHS2S4BBQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "6CCBWQSJJ7VHQSRGTJUX64G7FGYHQSNQLFGZ2EMGNYEPUXYL65LUPZDL5U", + "m/44'/283'/1'/0'/0'": "KQ6ETFXJ7VLEW3HY4UT4KGDDT7BKVNSOFLHQQZ3XHW2SDRQHWS7XSTT2QE", + "m/44'/283'/21234567'/0'/0'": "S4POUFEC77GOLCNTW6B3MLNA4FWMPIIGZH3OL5FISF3O6CYQQAUQ54D2YQ", + "m/44'/283'/2147483646'/0'/0'": "B6PZGNRYNXQR3ITA4KSPKQBAO537IFYT6PMLFKSNNYYIO7MA75ZG2EY2BY", + "m/44'/283'/2147483647'/0'/0'": "24QX3DA3TPSWUVHGU64V4EE6Y2FXHJIUGYRNAXDWCCIO3XKNVRHS2S4BBQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQDgGq7khKMhJsvYyNdG1xZFZpcMbZch-LqJTrxArh_FGntR', - "m/44'/607'/1'": 'UQD1_SxxyOmzqLkvWjaHpcWH9zUfJq7H_kkVkaV3r78G85-D', - "m/44'/607'/21234567'": 'UQDtyZaeaVk4K21qZEml4Nod02-THmeVjewWvFI075cEoL2L', - "m/44'/607'/2147483646'": 'UQDHTfJ77G6j8vf7RyQ0MIbECBnTQNusZGxdImlao57Xf53o', - "m/44'/607'/2147483647'": 'UQBty7Mcg9yETItDH2E799pOcJc7WwofAvv8Diab63ESkR6b', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQDgGq7khKMhJsvYyNdG1xZFZpcMbZch-LqJTrxArh_FGntR", + "m/44'/607'/1'": "UQD1_SxxyOmzqLkvWjaHpcWH9zUfJq7H_kkVkaV3r78G85-D", + "m/44'/607'/21234567'": "UQDtyZaeaVk4K21qZEml4Nod02-THmeVjewWvFI075cEoL2L", + "m/44'/607'/2147483646'": "UQDHTfJ77G6j8vf7RyQ0MIbECBnTQNusZGxdImlao57Xf53o", + "m/44'/607'/2147483647'": "UQBty7Mcg9yETItDH2E799pOcJc7WwofAvv8Diab63ESkR6b" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqgdfjhzh0jjt8ey98qs7m09k4ynl2dhx8q4swy63', - "m/44'/309'/1'/0/0": 'ckb1qyqv67zuvuwsrm5fhpqn0dwgg6ll3js5dqsshl67j7', - "m/44'/309'/21234567'/0/0": 'ckb1qyqxgxuca5c38ck9xrda8g65sjwaadkaav8sagt6ct', - "m/44'/309'/2147483646'/0/0": 'ckb1qyq8rgw2q4ppfrl6h3wg9kw7y6glxgxh0y6qvvs67y', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqt4yqlg7e5cv3fr9pfjq4kdsqjtd208nus4y467u', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqgdfjhzh0jjt8ey98qs7m09k4ynl2dhx8q4swy63", + "m/44'/309'/1'/0/0": "ckb1qyqv67zuvuwsrm5fhpqn0dwgg6ll3js5dqsshl67j7", + "m/44'/309'/21234567'/0/0": "ckb1qyqxgxuca5c38ck9xrda8g65sjwaadkaav8sagt6ct", + "m/44'/309'/2147483646'/0/0": "ckb1qyq8rgw2q4ppfrl6h3wg9kw7y6glxgxh0y6qvvs67y", + "m/44'/309'/2147483647'/0/0": "ckb1qyqt4yqlg7e5cv3fr9pfjq4kdsqjtd208nus4y467u" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5awavj73d3p368ps0y3t3tmhymjg9lzwx24q87j9l', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5r3hmny9qjpauexpce9h43vgskp2ydl6fdfa6n0f0', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g52jz22hxgat2eksnlptzswpm3a70tktp8mufqdl36', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5z6pjndscacyqzgye556szwpftw6kp6xvdajuz8na', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5n5n30cq6yukj03p2fwsrfnag84x294jg9rd28ttr', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5awavj73d3p368ps0y3t3tmhymjg9lzwx24q87j9l", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5r3hmny9qjpauexpce9h43vgskp2ydl6fdfa6n0f0", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g52jz22hxgat2eksnlptzswpm3a70tktp8mufqdl36", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5z6pjndscacyqzgye556szwpftw6kp6xvdajuz8na", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5n5n30cq6yukj03p2fwsrfnag84x294jg9rd28ttr" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rnWp71fi7KLsxNAYkWesdJF7RsBZGnJfyL', - "m/44'/144'/1'/0/0": 'rHK7hTcu8sA1UNqitQrTrwtrcAGBC7XaXK', - "m/44'/144'/21234567'/0/0": 'rHVdo5coArrFtANNavK2N5qyFzzP7t2nKc', - "m/44'/144'/2147483646'/0/0": 'rpjt8u4FaiYqnyMTyLL3WGLyHm8VCu4s8i', - "m/44'/144'/2147483647'/0/0": 'rLmSybD6xMdWWFbNHBc1G6PK9go32saKLz', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rnWp71fi7KLsxNAYkWesdJF7RsBZGnJfyL", + "m/44'/144'/1'/0/0": "rHK7hTcu8sA1UNqitQrTrwtrcAGBC7XaXK", + "m/44'/144'/21234567'/0/0": "rHVdo5coArrFtANNavK2N5qyFzzP7t2nKc", + "m/44'/144'/2147483646'/0/0": "rpjt8u4FaiYqnyMTyLL3WGLyHm8VCu4s8i", + "m/44'/144'/2147483647'/0/0": "rLmSybD6xMdWWFbNHBc1G6PK9go32saKLz" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S0122d0a8660d7538180b87a057f29500addde5a1', - "m/44'/541'/1'/0/0": '1S01f406e1030523750ebbc6897bbb3161e1df2d31', - "m/44'/541'/21234567'/0/0": '1S01a778945d67d9e9939c327aabca9519e26acec1', - "m/44'/541'/2147483646'/0/0": '1S0100fef1c2ec0dc565f473b12e038cbb3fedf151', - "m/44'/541'/2147483647'/0/0": '1S014cc602e696c70f20b16ee8642b80e4003d9391', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S0122d0a8660d7538180b87a057f29500addde5a1", + "m/44'/541'/1'/0/0": "1S01f406e1030523750ebbc6897bbb3161e1df2d31", + "m/44'/541'/21234567'/0/0": "1S01a778945d67d9e9939c327aabca9519e26acec1", + "m/44'/541'/2147483646'/0/0": "1S0100fef1c2ec0dc565f473b12e038cbb3fedf151", + "m/44'/541'/2147483647'/0/0": "1S014cc602e696c70f20b16ee8642b80e4003d9391" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_2.ts index 66e71e253..9eb5ba12f 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_2.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphrase2: SLIP39TestCaseData = { - id: 'count20_one_passphrase_2', - name: 'count20_one_passphrase_2', - description: '1-of-1 (20 words) + passphrase_2', - passphrase: 'onekey', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_2", + "name": "count20_one_passphrase_2", + "description": "1-of-1 (20 words) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1NJa3ThmmGUEYQx4AgxanvB93Rn3TW5mF4', - "m/44'/0'/1'/0/0": '17WZaU3rgvV9Fw61eaUWaQwpcPFjzDaavz', - "m/44'/0'/21234567'/0/0": '143mQ8DiAkM2XNYVSVYmEnssQphYzqfXns', - "m/44'/0'/2147483646'/0/0": '1LmAqWJMY4gNwaneHRafzWhbzYgqR53exv', - "m/44'/0'/2147483647'/0/0": '1K7ZzHthuP72ptYhWr6R2qVPLoxT2sc6rh', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1NJa3ThmmGUEYQx4AgxanvB93Rn3TW5mF4", + "m/44'/0'/1'/0/0": "17WZaU3rgvV9Fw61eaUWaQwpcPFjzDaavz", + "m/44'/0'/21234567'/0/0": "143mQ8DiAkM2XNYVSVYmEnssQphYzqfXns", + "m/44'/0'/2147483646'/0/0": "1LmAqWJMY4gNwaneHRafzWhbzYgqR53exv", + "m/44'/0'/2147483647'/0/0": "1K7ZzHthuP72ptYhWr6R2qVPLoxT2sc6rh" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3Q2NC1SRRUySyLAKK6faYexLzuFGRMggAZ', - "m/49'/0'/1'/0/0": '3DuagrbvVyepknkz2mQZn5rfrd5bp2TTUg', - "m/49'/0'/21234567'/0/0": '34rkZTsyBD7cUtnZrnFKjnZiZTo63r1wmo', - "m/49'/0'/2147483646'/0/0": '3HzKQ8yAueGXwU6tp5MJnXFiQw5ziMc73w', - "m/49'/0'/2147483647'/0/0": '3MQYX57zwqP6AbGFS6Eap2PrLUMecuN2ZM', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3Q2NC1SRRUySyLAKK6faYexLzuFGRMggAZ", + "m/49'/0'/1'/0/0": "3DuagrbvVyepknkz2mQZn5rfrd5bp2TTUg", + "m/49'/0'/21234567'/0/0": "34rkZTsyBD7cUtnZrnFKjnZiZTo63r1wmo", + "m/49'/0'/2147483646'/0/0": "3HzKQ8yAueGXwU6tp5MJnXFiQw5ziMc73w", + "m/49'/0'/2147483647'/0/0": "3MQYX57zwqP6AbGFS6Eap2PrLUMecuN2ZM" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q029zqf667jrlgu24ne792wjvwrxges0zaf3y0e', - "m/84'/0'/1'/0/0": 'bc1quvqsnhzc23csa349qrq70an4pl5yyvxs5ftswa', - "m/84'/0'/21234567'/0/0": 'bc1qqgqxkez5h0am5mgkq6mcn5rf0zyp85q4uyklmu', - "m/84'/0'/2147483646'/0/0": 'bc1qh9e8hdczedn8p6k8ml67q8dmagkpamxalk8wdx', - "m/84'/0'/2147483647'/0/0": 'bc1qvrzljsdm9dkt9k9y8p6ems538eg4ydalxkwxtm', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q029zqf667jrlgu24ne792wjvwrxges0zaf3y0e", + "m/84'/0'/1'/0/0": "bc1quvqsnhzc23csa349qrq70an4pl5yyvxs5ftswa", + "m/84'/0'/21234567'/0/0": "bc1qqgqxkez5h0am5mgkq6mcn5rf0zyp85q4uyklmu", + "m/84'/0'/2147483646'/0/0": "bc1qh9e8hdczedn8p6k8ml67q8dmagkpamxalk8wdx", + "m/84'/0'/2147483647'/0/0": "bc1qvrzljsdm9dkt9k9y8p6ems538eg4ydalxkwxtm" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pn9kvchyhnk2h63f00lzjkcm5saphv0avjgwk6kjxj5euztje2gfqfckyn3', - "m/86'/0'/1'/0/0": 'bc1prp8ndpw5dpg2pegzdq82vntz70nmm3l2gf28qqfy4pptwdgx5r7s9xflcy', - "m/86'/0'/21234567'/0/0": 'bc1pcf53nzuggxfhdjx06zaey6aqtv8k8zed9tuj7trwhdvxp85a6q9s8jq7r6', - "m/86'/0'/2147483646'/0/0": - 'bc1pflcwtvu24ruf86337g6ptjvgwf3lyt2wp87fwcl8l2cz7x82tkrq7zuu2h', - "m/86'/0'/2147483647'/0/0": - 'bc1pc0wq95e8v4uhjkw6pj5tx2vl6k5tsf82elkxg7ts0yurj9q2n6aq3q7eqq', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pn9kvchyhnk2h63f00lzjkcm5saphv0avjgwk6kjxj5euztje2gfqfckyn3", + "m/86'/0'/1'/0/0": "bc1prp8ndpw5dpg2pegzdq82vntz70nmm3l2gf28qqfy4pptwdgx5r7s9xflcy", + "m/86'/0'/21234567'/0/0": "bc1pcf53nzuggxfhdjx06zaey6aqtv8k8zed9tuj7trwhdvxp85a6q9s8jq7r6", + "m/86'/0'/2147483646'/0/0": "bc1pflcwtvu24ruf86337g6ptjvgwf3lyt2wp87fwcl8l2cz7x82tkrq7zuu2h", + "m/86'/0'/2147483647'/0/0": "bc1pc0wq95e8v4uhjkw6pj5tx2vl6k5tsf82elkxg7ts0yurj9q2n6aq3q7eqq" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DTTEdqTZwuP24xSyMtmDKp5c2D3ec9HGqy', - "m/44'/3'/1'/0/0": 'DSk8r2bdbRLbCbm71Dv65a3cRkMuZbN8kx', - "m/44'/3'/21234567'/0/0": 'D91fignHC2qxczs6jqRYqyHzRheX4YhjgM', - "m/44'/3'/2147483646'/0/0": 'DRQ3aq7T4Toe2e12RHKqGfSJWax8n46NhZ', - "m/44'/3'/2147483647'/0/0": 'DARuPkqHqNJdkTbm2YLqfYhSeiMXXoYipK', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DTTEdqTZwuP24xSyMtmDKp5c2D3ec9HGqy", + "m/44'/3'/1'/0/0": "DSk8r2bdbRLbCbm71Dv65a3cRkMuZbN8kx", + "m/44'/3'/21234567'/0/0": "D91fignHC2qxczs6jqRYqyHzRheX4YhjgM", + "m/44'/3'/2147483646'/0/0": "DRQ3aq7T4Toe2e12RHKqGfSJWax8n46NhZ", + "m/44'/3'/2147483647'/0/0": "DARuPkqHqNJdkTbm2YLqfYhSeiMXXoYipK" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qr6yg8lzvcyd5rar0ufqdxsm9mf6r2dy45yldc7qm8', - "m/44'/145'/1'/0/0": 'bitcoincash:qrmfy9lvdx93su0can983aztedk7kzht8g92usu5ac', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qz3yp4qcuyqw622m7ypjf2fp0q6wvv0xms6fs8uav3', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qqye0dkruyn359fm0heaf7lk0l5rqsatuc9hh9mrpt', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrpwum22t0qk59nhc49qyv7e5cg972qjxg4vxz5m7h', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qr6yg8lzvcyd5rar0ufqdxsm9mf6r2dy45yldc7qm8", + "m/44'/145'/1'/0/0": "bitcoincash:qrmfy9lvdx93su0can983aztedk7kzht8g92usu5ac", + "m/44'/145'/21234567'/0/0": "bitcoincash:qz3yp4qcuyqw622m7ypjf2fp0q6wvv0xms6fs8uav3", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qqye0dkruyn359fm0heaf7lk0l5rqsatuc9hh9mrpt", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrpwum22t0qk59nhc49qyv7e5cg972qjxg4vxz5m7h" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LgavSbfLU8WVFu6RcN9Ux8xksHKFbAHunr', - "m/44'/2'/1'/0/0": 'LUxvyVkvhsy44XEx1sAHf3CySQjvVG3Mbk', - "m/44'/2'/21234567'/0/0": 'LhUVVhrENT8RKenK6ndu6rc2PUBNiicKqH', - "m/44'/2'/2147483646'/0/0": 'LgtGD7fXDe4o8uBKrE6CtzzAXryzfmPrKr', - "m/44'/2'/2147483647'/0/0": 'LLk74YsyuBsgciozvDHZzYe1a78S1unmSy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LgavSbfLU8WVFu6RcN9Ux8xksHKFbAHunr", + "m/44'/2'/1'/0/0": "LUxvyVkvhsy44XEx1sAHf3CySQjvVG3Mbk", + "m/44'/2'/21234567'/0/0": "LhUVVhrENT8RKenK6ndu6rc2PUBNiicKqH", + "m/44'/2'/2147483646'/0/0": "LgtGD7fXDe4o8uBKrE6CtzzAXryzfmPrKr", + "m/44'/2'/2147483647'/0/0": "LLk74YsyuBsgciozvDHZzYe1a78S1unmSy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MMwaLoHcR7dTDjP8esX3NTM7XefafgsVUx', - "m/49'/2'/1'/0/0": 'MX6dxRhnG28fhcwHJ2nJ9voipC9vwUGgZC', - "m/49'/2'/21234567'/0/0": 'MF5kgwFPNd6c1tFw1dpFB2xMzd91uKG8ZS', - "m/49'/2'/2147483646'/0/0": 'MWSs1cRmByKZdVhzojtdSLMZFdVp67pUnE', - "m/49'/2'/2147483647'/0/0": 'M8K6CLmvXnjigRAUKHcHyVDWKQPsx9X8qK', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MMwaLoHcR7dTDjP8esX3NTM7XefafgsVUx", + "m/49'/2'/1'/0/0": "MX6dxRhnG28fhcwHJ2nJ9voipC9vwUGgZC", + "m/49'/2'/21234567'/0/0": "MF5kgwFPNd6c1tFw1dpFB2xMzd91uKG8ZS", + "m/49'/2'/2147483646'/0/0": "MWSs1cRmByKZdVhzojtdSLMZFdVp67pUnE", + "m/49'/2'/2147483647'/0/0": "M8K6CLmvXnjigRAUKHcHyVDWKQPsx9X8qK" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q2660z67xqz3mg49r5p7hx0qqsdw40aagmf0ek5', - "m/84'/2'/1'/0/0": 'ltc1q4tq80f39ewyme2rrpha2qhn7ay8yz26qr59sta', - "m/84'/2'/21234567'/0/0": 'ltc1quyxzxu4r74whhrd7cchux36rj4d3ecfpcunrv8', - "m/84'/2'/2147483646'/0/0": 'ltc1ql8xcwgsyngzsvnnzvgzn8lqe8d6z7ymakykwul', - "m/84'/2'/2147483647'/0/0": 'ltc1q8erugqgt65fr2vqj3g77hd8hx06ucmajn664zv', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q2660z67xqz3mg49r5p7hx0qqsdw40aagmf0ek5", + "m/84'/2'/1'/0/0": "ltc1q4tq80f39ewyme2rrpha2qhn7ay8yz26qr59sta", + "m/84'/2'/21234567'/0/0": "ltc1quyxzxu4r74whhrd7cchux36rj4d3ecfpcunrv8", + "m/84'/2'/2147483646'/0/0": "ltc1ql8xcwgsyngzsvnnzvgzn8lqe8d6z7ymakykwul", + "m/84'/2'/2147483647'/0/0": "ltc1q8erugqgt65fr2vqj3g77hd8hx06ucmajn664zv" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NbEdjwK5MXd87Zh4cJ5bVmDAmT6ejgjXLT', - "m/44'/1900'/1'/0/0": 'NXdnvXZioChoRf8JGfQWqqNHFRQVRizHae', - "m/44'/1900'/21234567'/0/0": 'NdCu6ngQ37LBr2NKjNiWMky6zp94KsVwLB', - "m/44'/1900'/2147483646'/0/0": 'NZHXMyyBMQY9uR1rWvnmecc6Xe3mBQwG5t', - "m/44'/1900'/2147483647'/0/0": 'NfXXjHyjwAGoHyrahjoHhmDHvrLRfkhVzQ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NbEdjwK5MXd87Zh4cJ5bVmDAmT6ejgjXLT", + "m/44'/1900'/1'/0/0": "NXdnvXZioChoRf8JGfQWqqNHFRQVRizHae", + "m/44'/1900'/21234567'/0/0": "NdCu6ngQ37LBr2NKjNiWMky6zp94KsVwLB", + "m/44'/1900'/2147483646'/0/0": "NZHXMyyBMQY9uR1rWvnmecc6Xe3mBQwG5t", + "m/44'/1900'/2147483647'/0/0": "NfXXjHyjwAGoHyrahjoHhmDHvrLRfkhVzQ" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xDEC6446F0C266F25FB835497de50f78Cd2c241c6', - "m/44'/60'/1'/0/0": '0x5842029ab2bD6963c440D94E20aA1CE8523f5e35', - "m/44'/60'/21234567'/0/0": '0x460a5d1af94cF26ae35491f9C5cf27Db9302948a', - "m/44'/60'/2147483646'/0/0": '0xF92886D5Ad0B0ACb7Aa3007070BF7D24E6D888CA', - "m/44'/60'/2147483647'/0/0": '0xa4ebD8b632E9DF0985B352fE18aeabfCC2a74940', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xDEC6446F0C266F25FB835497de50f78Cd2c241c6", + "m/44'/60'/1'/0/0": "0x5842029ab2bD6963c440D94E20aA1CE8523f5e35", + "m/44'/60'/21234567'/0/0": "0x460a5d1af94cF26ae35491f9C5cf27Db9302948a", + "m/44'/60'/2147483646'/0/0": "0xF92886D5Ad0B0ACb7Aa3007070BF7D24E6D888CA", + "m/44'/60'/2147483647'/0/0": "0xa4ebD8b632E9DF0985B352fE18aeabfCC2a74940" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x331faA8f4eB1Bb173eEEd6Cf8Bd6f4A46C1Db1Ab', - "m/44'/61'/1'/0/0": '0xfD71083DD493d0C05695222D84f52400F9e12970', - "m/44'/61'/21234567'/0/0": '0x7408BB820904DfBe9C116BDdCB9A8d2a59B22F74', - "m/44'/61'/2147483646'/0/0": '0x169dE9E2e5e9810C1f1FC09b63895bcdF2CF2dBf', - "m/44'/61'/2147483647'/0/0": '0x1472C51e03E6fA6f4f70c208250c624C17959e18', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x331faA8f4eB1Bb173eEEd6Cf8Bd6f4A46C1Db1Ab", + "m/44'/61'/1'/0/0": "0xfD71083DD493d0C05695222D84f52400F9e12970", + "m/44'/61'/21234567'/0/0": "0x7408BB820904DfBe9C116BDdCB9A8d2a59B22F74", + "m/44'/61'/2147483646'/0/0": "0x169dE9E2e5e9810C1f1FC09b63895bcdF2CF2dBf", + "m/44'/61'/2147483647'/0/0": "0x1472C51e03E6fA6f4f70c208250c624C17959e18" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1vz3ycwyzvq75vz49ym9tkszax3v7uyuur9j6ed', - "m/44'/118'/1'/0/0": 'cosmos10xvphz5w4ch6q39vafgnkwfka5574uav44qe7p', - "m/44'/118'/21234567'/0/0": 'cosmos1dz8p0663gtats0dxy8qp3gpaypsyn8slclqqs5', - "m/44'/118'/2147483646'/0/0": 'cosmos1ksahua2y5fk8y6rahncfhmdqxmkuuqhjjha9ar', - "m/44'/118'/2147483647'/0/0": 'cosmos1nxf677drac3qva2335pgz0tftun60lfcyzrv77', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1vz3ycwyzvq75vz49ym9tkszax3v7uyuur9j6ed", + "m/44'/118'/1'/0/0": "cosmos10xvphz5w4ch6q39vafgnkwfka5574uav44qe7p", + "m/44'/118'/21234567'/0/0": "cosmos1dz8p0663gtats0dxy8qp3gpaypsyn8slclqqs5", + "m/44'/118'/2147483646'/0/0": "cosmos1ksahua2y5fk8y6rahncfhmdqxmkuuqhjjha9ar", + "m/44'/118'/2147483647'/0/0": "cosmos1nxf677drac3qva2335pgz0tftun60lfcyzrv77" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1vz3ycwyzvq75vz49ym9tkszax3v7uyuuw7laqh', - "m/44'/118'/1'/0/0": 'akash10xvphz5w4ch6q39vafgnkwfka5574uavcwd78m', - "m/44'/118'/21234567'/0/0": 'akash1dz8p0663gtats0dxy8qp3gpaypsyn8sl4yd8fw', - "m/44'/118'/2147483646'/0/0": 'akash1ksahua2y5fk8y6rahncfhmdqxmkuuqhjlvszye', - "m/44'/118'/2147483647'/0/0": 'akash1nxf677drac3qva2335pgz0tftun60lfcfewt8y', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1vz3ycwyzvq75vz49ym9tkszax3v7uyuuw7laqh", + "m/44'/118'/1'/0/0": "akash10xvphz5w4ch6q39vafgnkwfka5574uavcwd78m", + "m/44'/118'/21234567'/0/0": "akash1dz8p0663gtats0dxy8qp3gpaypsyn8sl4yd8fw", + "m/44'/118'/2147483646'/0/0": "akash1ksahua2y5fk8y6rahncfhmdqxmkuuqhjlvszye", + "m/44'/118'/2147483647'/0/0": "akash1nxf677drac3qva2335pgz0tftun60lfcfewt8y" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1vz3ycwyzvq75vz49ym9tkszax3v7uyuum76r9u', - "m/44'/118'/1'/0/0": 'cro10xvphz5w4ch6q39vafgnkwfka5574uavdwgqzs', - "m/44'/118'/21234567'/0/0": 'cro1dz8p0663gtats0dxy8qp3gpaypsyn8slqygev9', - "m/44'/118'/2147483646'/0/0": 'cro1ksahua2y5fk8y6rahncfhmdqxmkuuqhj2v4upj', - "m/44'/118'/2147483647'/0/0": 'cro1nxf677drac3qva2335pgz0tftun60lfcuet4z0', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1vz3ycwyzvq75vz49ym9tkszax3v7uyuum76r9u", + "m/44'/118'/1'/0/0": "cro10xvphz5w4ch6q39vafgnkwfka5574uavdwgqzs", + "m/44'/118'/21234567'/0/0": "cro1dz8p0663gtats0dxy8qp3gpaypsyn8slqygev9", + "m/44'/118'/2147483646'/0/0": "cro1ksahua2y5fk8y6rahncfhmdqxmkuuqhj2v4upj", + "m/44'/118'/2147483647'/0/0": "cro1nxf677drac3qva2335pgz0tftun60lfcuet4z0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1vz3ycwyzvq75vz49ym9tkszax3v7uyuuscm7m6', - "m/44'/118'/1'/0/0": 'fetch10xvphz5w4ch6q39vafgnkwfka5574uavxgfauk', - "m/44'/118'/21234567'/0/0": 'fetch1dz8p0663gtats0dxy8qp3gpaypsyn8sltzfyjr', - "m/44'/118'/2147483646'/0/0": 'fetch1ksahua2y5fk8y6rahncfhmdqxmkuuqhjp25pl5', - "m/44'/118'/2147483647'/0/0": 'fetch1nxf677drac3qva2335pgz0tftun60lfchl2guf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1vz3ycwyzvq75vz49ym9tkszax3v7uyuuscm7m6", + "m/44'/118'/1'/0/0": "fetch10xvphz5w4ch6q39vafgnkwfka5574uavxgfauk", + "m/44'/118'/21234567'/0/0": "fetch1dz8p0663gtats0dxy8qp3gpaypsyn8sltzfyjr", + "m/44'/118'/2147483646'/0/0": "fetch1ksahua2y5fk8y6rahncfhmdqxmkuuqhjp25pl5", + "m/44'/118'/2147483647'/0/0": "fetch1nxf677drac3qva2335pgz0tftun60lfchl2guf" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1vz3ycwyzvq75vz49ym9tkszax3v7uyuut7p20l', - "m/44'/118'/1'/0/0": 'osmo10xvphz5w4ch6q39vafgnkwfka5574uavawnfgn', - "m/44'/118'/21234567'/0/0": 'osmo1dz8p0663gtats0dxy8qp3gpaypsyn8slsynsxx', - "m/44'/118'/2147483646'/0/0": 'osmo1ksahua2y5fk8y6rahncfhmdqxmkuuqhj6vw4t3', - "m/44'/118'/2147483647'/0/0": 'osmo1nxf677drac3qva2335pgz0tftun60lfcvesugv', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1vz3ycwyzvq75vz49ym9tkszax3v7uyuut7p20l", + "m/44'/118'/1'/0/0": "osmo10xvphz5w4ch6q39vafgnkwfka5574uavawnfgn", + "m/44'/118'/21234567'/0/0": "osmo1dz8p0663gtats0dxy8qp3gpaypsyn8slsynsxx", + "m/44'/118'/2147483646'/0/0": "osmo1ksahua2y5fk8y6rahncfhmdqxmkuuqhj6vw4t3", + "m/44'/118'/2147483647'/0/0": "osmo1nxf677drac3qva2335pgz0tftun60lfcvesugv" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1vz3ycwyzvq75vz49ym9tkszax3v7uyuu4h3p73', - "m/44'/118'/1'/0/0": 'juno10xvphz5w4ch6q39vafgnkwfka5574uavr8rzea', - "m/44'/118'/21234567'/0/0": 'juno1dz8p0663gtats0dxy8qp3gpaypsyn8slwdrmhg', - "m/44'/118'/2147483646'/0/0": 'juno1ksahua2y5fk8y6rahncfhmdqxmkuuqhjy9776l', - "m/44'/118'/2147483647'/0/0": 'juno1nxf677drac3qva2335pgz0tftun60lfcjsqhez', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1vz3ycwyzvq75vz49ym9tkszax3v7uyuu4h3p73", + "m/44'/118'/1'/0/0": "juno10xvphz5w4ch6q39vafgnkwfka5574uavr8rzea", + "m/44'/118'/21234567'/0/0": "juno1dz8p0663gtats0dxy8qp3gpaypsyn8slwdrmhg", + "m/44'/118'/2147483646'/0/0": "juno1ksahua2y5fk8y6rahncfhmdqxmkuuqhjy9776l", + "m/44'/118'/2147483647'/0/0": "juno1nxf677drac3qva2335pgz0tftun60lfcjsqhez" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1vz3ycwyzvq75vz49ym9tkszax3v7uyuu9pg6md', - "m/44'/118'/1'/0/0": 'terra10xvphz5w4ch6q39vafgnkwfka5574uavn36eup', - "m/44'/118'/21234567'/0/0": 'terra1dz8p0663gtats0dxy8qp3gpaypsyn8sl7m6qj5', - "m/44'/118'/2147483646'/0/0": 'terra1ksahua2y5fk8y6rahncfhmdqxmkuuqhj5n89lr', - "m/44'/118'/2147483647'/0/0": 'terra1nxf677drac3qva2335pgz0tftun60lfczxevu7', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1vz3ycwyzvq75vz49ym9tkszax3v7uyuu9pg6md", + "m/44'/118'/1'/0/0": "terra10xvphz5w4ch6q39vafgnkwfka5574uavn36eup", + "m/44'/118'/21234567'/0/0": "terra1dz8p0663gtats0dxy8qp3gpaypsyn8sl7m6qj5", + "m/44'/118'/2147483646'/0/0": "terra1ksahua2y5fk8y6rahncfhmdqxmkuuqhj5n89lr", + "m/44'/118'/2147483647'/0/0": "terra1nxf677drac3qva2335pgz0tftun60lfczxevu7" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1vz3ycwyzvq75vz49ym9tkszax3v7uyuupqxny3', - "m/44'/118'/1'/0/0": 'secret10xvphz5w4ch6q39vafgnkwfka5574uavhs5sra', - "m/44'/118'/21234567'/0/0": 'secret1dz8p0663gtats0dxy8qp3gpaypsyn8sl665fdg', - "m/44'/118'/2147483646'/0/0": 'secret1ksahua2y5fk8y6rahncfhmdqxmkuuqhjsjfvql', - "m/44'/118'/2147483647'/0/0": 'secret1nxf677drac3qva2335pgz0tftun60lfcx8h9rz', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1vz3ycwyzvq75vz49ym9tkszax3v7uyuupqxny3", + "m/44'/118'/1'/0/0": "secret10xvphz5w4ch6q39vafgnkwfka5574uavhs5sra", + "m/44'/118'/21234567'/0/0": "secret1dz8p0663gtats0dxy8qp3gpaypsyn8sl665fdg", + "m/44'/118'/2147483646'/0/0": "secret1ksahua2y5fk8y6rahncfhmdqxmkuuqhjsjfvql", + "m/44'/118'/2147483647'/0/0": "secret1nxf677drac3qva2335pgz0tftun60lfcx8h9rz" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1vz3ycwyzvq75vz49ym9tkszax3v7uyuuj0r2rq', - "m/44'/118'/1'/0/0": 'celestia10xvphz5w4ch6q39vafgnkwfka5574uavyl3fyv', - "m/44'/118'/21234567'/0/0": 'celestia1dz8p0663gtats0dxy8qp3gpaypsyn8slf43s2e', - "m/44'/118'/2147483646'/0/0": 'celestia1ksahua2y5fk8y6rahncfhmdqxmkuuqhjrav48w', - "m/44'/118'/2147483647'/0/0": 'celestia1nxf677drac3qva2335pgz0tftun60lfc4gjuyn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1vz3ycwyzvq75vz49ym9tkszax3v7uyuuj0r2rq", + "m/44'/118'/1'/0/0": "celestia10xvphz5w4ch6q39vafgnkwfka5574uavyl3fyv", + "m/44'/118'/21234567'/0/0": "celestia1dz8p0663gtats0dxy8qp3gpaypsyn8slf43s2e", + "m/44'/118'/2147483646'/0/0": "celestia1ksahua2y5fk8y6rahncfhmdqxmkuuqhjrav48w", + "m/44'/118'/2147483647'/0/0": "celestia1nxf677drac3qva2335pgz0tftun60lfc4gjuyn" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0xfdd2e2d631156364dc0555c05970467b197cc9a620c3fbd59ebf9778f529c7be', - "m/44'/784'/1'/0'/0'": '0x719dcbd84539c3693baecf1ae547ec5e135bd5ae3c90f8aae9d57432a7166db3', - "m/44'/784'/21234567'/0'/0'": - '0x69957ec71d062b87a9cba96d4e4a786b471a24355f211dac5b0b6a5f5d0335c6', - "m/44'/784'/2147483646'/0'/0'": - '0x382a75757d467412fcf029eb4aa675d909a42bf8b391677955b5e94a3bd351b4', - "m/44'/784'/2147483647'/0'/0'": - '0xcf05f2223720d9a266ba96d5b142d90b2020afc88a1a3d5a12f1c53a5586a734', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0xfdd2e2d631156364dc0555c05970467b197cc9a620c3fbd59ebf9778f529c7be", + "m/44'/784'/1'/0'/0'": "0x719dcbd84539c3693baecf1ae547ec5e135bd5ae3c90f8aae9d57432a7166db3", + "m/44'/784'/21234567'/0'/0'": "0x69957ec71d062b87a9cba96d4e4a786b471a24355f211dac5b0b6a5f5d0335c6", + "m/44'/784'/2147483646'/0'/0'": "0x382a75757d467412fcf029eb4aa675d909a42bf8b391677955b5e94a3bd351b4", + "m/44'/784'/2147483647'/0'/0'": "0xcf05f2223720d9a266ba96d5b142d90b2020afc88a1a3d5a12f1c53a5586a734" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rGLN87wzj2czoGwaBXmEvn4C8a7XstWAF2', - "m/44'/144'/1'/0/0": 'rssck8Gt5VXixq68GtaMrkoaaaCnAPLnYa', - "m/44'/144'/21234567'/0/0": 'rEFKypmMmGYrPJoXsdgWttSzwMwCK39xbj', - "m/44'/144'/2147483646'/0/0": 'rJ1p2GHxqddEfsJbcKTxJpJaKebhy8G7CX', - "m/44'/144'/2147483647'/0/0": 'rNTaWZQKmeLo8KxhWqigLLBucvk2ZCNvSj', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rGLN87wzj2czoGwaBXmEvn4C8a7XstWAF2", + "m/44'/144'/1'/0/0": "rssck8Gt5VXixq68GtaMrkoaaaCnAPLnYa", + "m/44'/144'/21234567'/0/0": "rEFKypmMmGYrPJoXsdgWttSzwMwCK39xbj", + "m/44'/144'/2147483646'/0/0": "rJ1p2GHxqddEfsJbcKTxJpJaKebhy8G7CX", + "m/44'/144'/2147483647'/0/0": "rNTaWZQKmeLo8KxhWqigLLBucvk2ZCNvSj" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC968c93e98d777295948168da1dc8e07ebad3c4527dd31ac89f324aa88650f4ae9da2', - "m/44'/728'/1'/0'/0'": - 'BFCf3ad7064ae94ad6ebbcf92bcb2fa74c569a207d3af5208a54181c74e98f1a60d7965', - "m/44'/728'/21234567'/0'/0'": - 'BFC8dd511c27c7559886c8b9a52b7d8bbe6a50d529b589b0ff31f9522a4995aff5688cc', - "m/44'/728'/2147483646'/0'/0'": - 'BFC4b42d7fcc4dead99f66bed7d7fcb9524e9252a2e729d32b14067fc14ccc5f76039a2', - "m/44'/728'/2147483647'/0'/0'": - 'BFC82d9908a06ff149e6af3746fdd06faf41f9d2db466d1f769bd7ba7737c1b9bb2b3f4', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC968c93e98d777295948168da1dc8e07ebad3c4527dd31ac89f324aa88650f4ae9da2", + "m/44'/728'/1'/0'/0'": "BFCf3ad7064ae94ad6ebbcf92bcb2fa74c569a207d3af5208a54181c74e98f1a60d7965", + "m/44'/728'/21234567'/0'/0'": "BFC8dd511c27c7559886c8b9a52b7d8bbe6a50d529b589b0ff31f9522a4995aff5688cc", + "m/44'/728'/2147483646'/0'/0'": "BFC4b42d7fcc4dead99f66bed7d7fcb9524e9252a2e729d32b14067fc14ccc5f76039a2", + "m/44'/728'/2147483647'/0'/0'": "BFC82d9908a06ff149e6af3746fdd06faf41f9d2db466d1f769bd7ba7737c1b9bb2b3f4" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1LRQVfbUR2RJAbg73i4wAHiuagDq9dBVk1ueGyiRSASx', - "m/44'/1234'/1'/0/0": '19trBbayb9DngdJCeTKBAujU3APGY96TmfQFd2timEu4g', - "m/44'/1234'/21234567'/0/0": '1FNqeuA7f8bFPF2qkrJ9FpojB7oHdRUyzS4fr3yTrWCqu', - "m/44'/1234'/2147483646'/0/0": '139EQizVJTJuYT3owq9ozCu4ipSddUsCSpM7sEXRY9PH6', - "m/44'/1234'/2147483647'/0/0": '15anT1xEYD9WkeJMo21vdbamKASECDhWJRa3tb3gvpWiP', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1LRQVfbUR2RJAbg73i4wAHiuagDq9dBVk1ueGyiRSASx", + "m/44'/1234'/1'/0/0": "19trBbayb9DngdJCeTKBAujU3APGY96TmfQFd2timEu4g", + "m/44'/1234'/21234567'/0/0": "1FNqeuA7f8bFPF2qkrJ9FpojB7oHdRUyzS4fr3yTrWCqu", + "m/44'/1234'/2147483646'/0/0": "139EQizVJTJuYT3owq9ozCu4ipSddUsCSpM7sEXRY9PH6", + "m/44'/1234'/2147483647'/0/0": "15anT1xEYD9WkeJMo21vdbamKASECDhWJRa3tb3gvpWiP" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": '43M35COET54AR4O7BDO4RAC3PA6SLUGRKNAYLHZVYJBSL5EMTAO7UVJN2A', - "m/44'/283'/1'/0'/0'": 'Z6JAP4K65O7AS2FXMSV2OVXYTTULISLUT7WZD3ZA3RRQXL7BFUB6VJPSWQ', - "m/44'/283'/21234567'/0'/0'": 'YCI7NJJA3P766CTPZT4Q4IMBHXIACKSHKLS3HEL2ROT574DLYWRLZTFR7E', - "m/44'/283'/2147483646'/0'/0'": - 'SNEOT74KTLL56YZK5WXIJJGJ7U7MTNMGOLJR4OIDQYBJAOTU5EJP6BGX6M', - "m/44'/283'/2147483647'/0'/0'": - 'VGHATIYYDOYUMXEDEY5C37YBBR6DWI67J2XC4MUH5B5G5JBFSUL5RP4CUQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "43M35COET54AR4O7BDO4RAC3PA6SLUGRKNAYLHZVYJBSL5EMTAO7UVJN2A", + "m/44'/283'/1'/0'/0'": "Z6JAP4K65O7AS2FXMSV2OVXYTTULISLUT7WZD3ZA3RRQXL7BFUB6VJPSWQ", + "m/44'/283'/21234567'/0'/0'": "YCI7NJJA3P766CTPZT4Q4IMBHXIACKSHKLS3HEL2ROT574DLYWRLZTFR7E", + "m/44'/283'/2147483646'/0'/0'": "SNEOT74KTLL56YZK5WXIJJGJ7U7MTNMGOLJR4OIDQYBJAOTU5EJP6BGX6M", + "m/44'/283'/2147483647'/0'/0'": "VGHATIYYDOYUMXEDEY5C37YBBR6DWI67J2XC4MUH5B5G5JBFSUL5RP4CUQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQAyHJvPGQjZ6PXKfJvq3mUxiCnn3OFovYQJclEzXBMZBLFq', - "m/44'/607'/1'": 'UQDVqYojX5d-EaZFP-u4zGphXmGQO-0PCozHv9azn_uvWZFw', - "m/44'/607'/21234567'": 'UQBtywR1uRfjgxMNpSruj4xtxebuwalzw5DIzpmbM3JpJaf1', - "m/44'/607'/2147483646'": 'UQCOPAbhsnyhKcIsA8osDjmxQH0SFt_f3BcGXL0MdPSa7z9w', - "m/44'/607'/2147483647'": 'UQA7vF5UDLzAR6NBAf-Y7UQx4QYKyMk7VGSt5katPRj4vumq', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQAyHJvPGQjZ6PXKfJvq3mUxiCnn3OFovYQJclEzXBMZBLFq", + "m/44'/607'/1'": "UQDVqYojX5d-EaZFP-u4zGphXmGQO-0PCozHv9azn_uvWZFw", + "m/44'/607'/21234567'": "UQBtywR1uRfjgxMNpSruj4xtxebuwalzw5DIzpmbM3JpJaf1", + "m/44'/607'/2147483646'": "UQCOPAbhsnyhKcIsA8osDjmxQH0SFt_f3BcGXL0MdPSa7z9w", + "m/44'/607'/2147483647'": "UQA7vF5UDLzAR6NBAf-Y7UQx4QYKyMk7VGSt5katPRj4vumq" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqtfa0ch6fw4rthp4qesdkswe9dmtvukwdqs85h3z', - "m/44'/309'/1'/0/0": 'ckb1qyqpxjy97sttfk0248fjpx52l2s38344z54q8x0de0', - "m/44'/309'/21234567'/0/0": 'ckb1qyqynsxysjum5fs6v45rtjxlangr23fpnrdsnanh74', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqx2ytpxcpy53ge3ful5zym4tt2fz7zurgqdj7qtz', - "m/44'/309'/2147483647'/0/0": 'ckb1qyq8rp40haujpzwz3y64kt0gdwqyd0f99khshuqk6d', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqtfa0ch6fw4rthp4qesdkswe9dmtvukwdqs85h3z", + "m/44'/309'/1'/0/0": "ckb1qyqpxjy97sttfk0248fjpx52l2s38344z54q8x0de0", + "m/44'/309'/21234567'/0/0": "ckb1qyqynsxysjum5fs6v45rtjxlangr23fpnrdsnanh74", + "m/44'/309'/2147483646'/0/0": "ckb1qyqx2ytpxcpy53ge3ful5zym4tt2fz7zurgqdj7qtz", + "m/44'/309'/2147483647'/0/0": "ckb1qyq8rp40haujpzwz3y64kt0gdwqyd0f99khshuqk6d" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5wefxa37kw3nu89n6mpfadmj4xd5vwa0rmy58ulyj', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5f5x2pvznh4nspxk67atlxm7xnd0cjaxyamwuvkv4', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5fftyyu6zr86tdhkfxp6qcfe233la3q5a3ymrp27m', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g54aq3qqwkf3ku8vfm623cdtcknqyrrh8vk39lnmnh', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g50p7s3jflaqdedy9jfga2jl9tnznvcl9ptaeexqng', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5wefxa37kw3nu89n6mpfadmj4xd5vwa0rmy58ulyj", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5f5x2pvznh4nspxk67atlxm7xnd0cjaxyamwuvkv4", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5fftyyu6zr86tdhkfxp6qcfe233la3q5a3ymrp27m", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g54aq3qqwkf3ku8vfm623cdtcknqyrrh8vk39lnmnh", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g50p7s3jflaqdedy9jfga2jl9tnznvcl9ptaeexqng" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rGLN87wzj2czoGwaBXmEvn4C8a7XstWAF2', - "m/44'/144'/1'/0/0": 'rssck8Gt5VXixq68GtaMrkoaaaCnAPLnYa', - "m/44'/144'/21234567'/0/0": 'rEFKypmMmGYrPJoXsdgWttSzwMwCK39xbj', - "m/44'/144'/2147483646'/0/0": 'rJ1p2GHxqddEfsJbcKTxJpJaKebhy8G7CX', - "m/44'/144'/2147483647'/0/0": 'rNTaWZQKmeLo8KxhWqigLLBucvk2ZCNvSj', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rGLN87wzj2czoGwaBXmEvn4C8a7XstWAF2", + "m/44'/144'/1'/0/0": "rssck8Gt5VXixq68GtaMrkoaaaCnAPLnYa", + "m/44'/144'/21234567'/0/0": "rEFKypmMmGYrPJoXsdgWttSzwMwCK39xbj", + "m/44'/144'/2147483646'/0/0": "rJ1p2GHxqddEfsJbcKTxJpJaKebhy8G7CX", + "m/44'/144'/2147483647'/0/0": "rNTaWZQKmeLo8KxhWqigLLBucvk2ZCNvSj" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01787d06fba3097c19ad84e43d37396fb8cdca91', - "m/44'/541'/1'/0/0": '1S012a84ab01c2389358dfb6f0621e70fa8e8d1d21', - "m/44'/541'/21234567'/0/0": '1S018609a9f56b2ff360993e694c6178dda2976081', - "m/44'/541'/2147483646'/0/0": '1S01b2464f7c291f8e019f0ec13cbf83ae947992d1', - "m/44'/541'/2147483647'/0/0": '1S010fbf9e9be4b06f57b51b944dae73f78eb3f6c1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01787d06fba3097c19ad84e43d37396fb8cdca91", + "m/44'/541'/1'/0/0": "1S012a84ab01c2389358dfb6f0621e70fa8e8d1d21", + "m/44'/541'/21234567'/0/0": "1S018609a9f56b2ff360993e694c6178dda2976081", + "m/44'/541'/2147483646'/0/0": "1S01b2464f7c291f8e019f0ec13cbf83ae947992d1", + "m/44'/541'/2147483647'/0/0": "1S010fbf9e9be4b06f57b51b944dae73f78eb3f6c1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_empty.ts index c1d3ecd72..7bb488b88 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_one/passphrase_empty.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_one_passphrase_empty', - name: 'count20_one_passphrase_empty', - description: '1-of-1 (20 words) + passphrase_empty', - passphrase: '', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_empty", + "name": "count20_one_passphrase_empty", + "description": "1-of-1 (20 words) + passphrase_empty", + "passphrase": "", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1E2ymXPaABRPPy84McDRxWhJ3qVU7hVW1x', - "m/44'/0'/1'/0/0": '1HFRCWfjTcuPSm1U656D61z5uXyPP9pbjp', - "m/44'/0'/21234567'/0/0": '1L7B35znryG7gaQjiNn5Cr6ha2jbrN4jyS', - "m/44'/0'/2147483646'/0/0": '18Mcy6hd14Lg3qQx2xbQes848DyrFa8M8', - "m/44'/0'/2147483647'/0/0": '171sSEnmQNAGWY4QexJ9WPucYEtpXmnhJa', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1E2ymXPaABRPPy84McDRxWhJ3qVU7hVW1x", + "m/44'/0'/1'/0/0": "1HFRCWfjTcuPSm1U656D61z5uXyPP9pbjp", + "m/44'/0'/21234567'/0/0": "1L7B35znryG7gaQjiNn5Cr6ha2jbrN4jyS", + "m/44'/0'/2147483646'/0/0": "18Mcy6hd14Lg3qQx2xbQes848DyrFa8M8", + "m/44'/0'/2147483647'/0/0": "171sSEnmQNAGWY4QexJ9WPucYEtpXmnhJa" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '36HRc53LTjz6nELk8mvyEYjed8dNBmFZFh', - "m/49'/0'/1'/0/0": '3AyGUoXttCrrYcZw7ArqAmKQiFiQ1gRf3m', - "m/49'/0'/21234567'/0/0": '3Po9qQaQWUV2hUo1FB2yWJXomLphVLay6j', - "m/49'/0'/2147483646'/0/0": '3HmS7UFtyiCZNZL91i5V75yeXyJb6mPB8w', - "m/49'/0'/2147483647'/0/0": '3EiLdx7Zqyi3vJ1K3zxQ5NLwPsV5LZaxMd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "36HRc53LTjz6nELk8mvyEYjed8dNBmFZFh", + "m/49'/0'/1'/0/0": "3AyGUoXttCrrYcZw7ArqAmKQiFiQ1gRf3m", + "m/49'/0'/21234567'/0/0": "3Po9qQaQWUV2hUo1FB2yWJXomLphVLay6j", + "m/49'/0'/2147483646'/0/0": "3HmS7UFtyiCZNZL91i5V75yeXyJb6mPB8w", + "m/49'/0'/2147483647'/0/0": "3EiLdx7Zqyi3vJ1K3zxQ5NLwPsV5LZaxMd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qxm5z86crrad57jtfkc4tn3kpvquhnyak4rnmdj', - "m/84'/0'/1'/0/0": 'bc1q4lqkk6f2zcaw65ukxrj2kdwwu92lhy4hpqarpa', - "m/84'/0'/21234567'/0/0": 'bc1q65v0ftz5xntmswn0gs33lqk6duhq8e4srswgty', - "m/84'/0'/2147483646'/0/0": 'bc1qznuruypc4xp89fm9dtspe50p9d79tcawr7t3km', - "m/84'/0'/2147483647'/0/0": 'bc1qz2c8565mztrnwcke4fltfqhzs3fn5puqvyn95m', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qxm5z86crrad57jtfkc4tn3kpvquhnyak4rnmdj", + "m/84'/0'/1'/0/0": "bc1q4lqkk6f2zcaw65ukxrj2kdwwu92lhy4hpqarpa", + "m/84'/0'/21234567'/0/0": "bc1q65v0ftz5xntmswn0gs33lqk6duhq8e4srswgty", + "m/84'/0'/2147483646'/0/0": "bc1qznuruypc4xp89fm9dtspe50p9d79tcawr7t3km", + "m/84'/0'/2147483647'/0/0": "bc1qz2c8565mztrnwcke4fltfqhzs3fn5puqvyn95m" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1p73eyp0qezuhn2aaytawenq9pdu9ygvgvtegrwnunpryruw28czjq3ma3nc', - "m/86'/0'/1'/0/0": 'bc1phfegeulnhg2zgr2tevg60gnjzge77fd386t6uhas3zxtewcpj6wsk7vu05', - "m/86'/0'/21234567'/0/0": 'bc1pxcpsjxfh8j02a6wmgc9m77lrhmw6rnuens052ne26vmf26q3kdqqke0cxu', - "m/86'/0'/2147483646'/0/0": - 'bc1phap3cms24p5449k49farmm8w2mapd5t49x2p6k4aewu0kgk0mhks6wgfw5', - "m/86'/0'/2147483647'/0/0": - 'bc1prvkj0xfzypvj49sx4rycc5crvfmfnh3m088vq3ft355zyu96qvesfdel4g', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1p73eyp0qezuhn2aaytawenq9pdu9ygvgvtegrwnunpryruw28czjq3ma3nc", + "m/86'/0'/1'/0/0": "bc1phfegeulnhg2zgr2tevg60gnjzge77fd386t6uhas3zxtewcpj6wsk7vu05", + "m/86'/0'/21234567'/0/0": "bc1pxcpsjxfh8j02a6wmgc9m77lrhmw6rnuens052ne26vmf26q3kdqqke0cxu", + "m/86'/0'/2147483646'/0/0": "bc1phap3cms24p5449k49farmm8w2mapd5t49x2p6k4aewu0kgk0mhks6wgfw5", + "m/86'/0'/2147483647'/0/0": "bc1prvkj0xfzypvj49sx4rycc5crvfmfnh3m088vq3ft355zyu96qvesfdel4g" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D9GoogTWg7zTNvYw4w2buedUN8U8uD1LQX', - "m/44'/3'/1'/0/0": 'DDbcWUwvNs2dgic8KtvnKskDTR9hfHZkCv', - "m/44'/3'/21234567'/0/0": 'DCSg3SLHZrR49pnccRp5JQm6VjM4zsnMQM', - "m/44'/3'/2147483646'/0/0": 'DJPo8FtKZer4zXtyQqNmiRXmwQJLUZFJPz', - "m/44'/3'/2147483647'/0/0": 'D9KvGSuEzLKFu3oRgYTsLWn8jm1frwCGvR', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D9GoogTWg7zTNvYw4w2buedUN8U8uD1LQX", + "m/44'/3'/1'/0/0": "DDbcWUwvNs2dgic8KtvnKskDTR9hfHZkCv", + "m/44'/3'/21234567'/0/0": "DCSg3SLHZrR49pnccRp5JQm6VjM4zsnMQM", + "m/44'/3'/2147483646'/0/0": "DJPo8FtKZer4zXtyQqNmiRXmwQJLUZFJPz", + "m/44'/3'/2147483647'/0/0": "D9KvGSuEzLKFu3oRgYTsLWn8jm1frwCGvR" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qqlyylpqmfy4wjrjukc3n0m4f864zkaum548da58d4', - "m/44'/145'/1'/0/0": 'bitcoincash:qplrr260znex4q9j99ch6ncsx004hnhxusse57z676', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qzjmyz08p4nn92gvapn3s4x2hf42eya05swpey26f8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qrngejl0hmyt5qn8nrvq65aph0sl4x5p8cgks6d8j3', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrs9ww5rgk8k5a07nzjplxcfnmkkuwc2gskky2k272', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qqlyylpqmfy4wjrjukc3n0m4f864zkaum548da58d4", + "m/44'/145'/1'/0/0": "bitcoincash:qplrr260znex4q9j99ch6ncsx004hnhxusse57z676", + "m/44'/145'/21234567'/0/0": "bitcoincash:qzjmyz08p4nn92gvapn3s4x2hf42eya05swpey26f8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qrngejl0hmyt5qn8nrvq65aph0sl4x5p8cgks6d8j3", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrs9ww5rgk8k5a07nzjplxcfnmkkuwc2gskky2k272" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LWrVYxFGxNBGjQ2yjucQZfNWXa9GLMaLX5', - "m/44'/2'/1'/0/0": 'LYDqZW8Ys7zAJiQorpZcmPZxxe43qxCbaH', - "m/44'/2'/21234567'/0/0": 'LZHPZVxJurQotfry2HeZTtiWbhv5QXPa9c', - "m/44'/2'/2147483646'/0/0": 'LgW4ZNwRZme1Hi452KZ4vupfGwRihkp8Gj', - "m/44'/2'/2147483647'/0/0": 'LaFJGRtWDN1wPG2P5wnbqWUdEAAfC5xvuh', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LWrVYxFGxNBGjQ2yjucQZfNWXa9GLMaLX5", + "m/44'/2'/1'/0/0": "LYDqZW8Ys7zAJiQorpZcmPZxxe43qxCbaH", + "m/44'/2'/21234567'/0/0": "LZHPZVxJurQotfry2HeZTtiWbhv5QXPa9c", + "m/44'/2'/2147483646'/0/0": "LgW4ZNwRZme1Hi452KZ4vupfGwRihkp8Gj", + "m/44'/2'/2147483647'/0/0": "LaFJGRtWDN1wPG2P5wnbqWUdEAAfC5xvuh" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MKGK4KJb6AqPgs32JayohX3a5gAVTLxw1j', - "m/49'/2'/1'/0/0": 'M8znzMFsLKXNihsXiUMshoSbNANZrGaxod', - "m/49'/2'/21234567'/0/0": 'MUvu2yhp2Tqc9kN7pwoxSbnR83LQbGkpvS', - "m/49'/2'/2147483646'/0/0": 'MHbxsvL4eZSjv6etT8cv1bTm7sib3BLFaw', - "m/49'/2'/2147483647'/0/0": 'MBT2igPbhapu4oZeMRiwSsjMFGc8cSCCMQ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MKGK4KJb6AqPgs32JayohX3a5gAVTLxw1j", + "m/49'/2'/1'/0/0": "M8znzMFsLKXNihsXiUMshoSbNANZrGaxod", + "m/49'/2'/21234567'/0/0": "MUvu2yhp2Tqc9kN7pwoxSbnR83LQbGkpvS", + "m/49'/2'/2147483646'/0/0": "MHbxsvL4eZSjv6etT8cv1bTm7sib3BLFaw", + "m/49'/2'/2147483647'/0/0": "MBT2igPbhapu4oZeMRiwSsjMFGc8cSCCMQ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qyw6nqgjg26mqdmpzcs2ns2z3a40acywe7ydcqy', - "m/84'/2'/1'/0/0": 'ltc1qdldpt3r38mg5ed70s8paml37tyvflawjqhjt3d', - "m/84'/2'/21234567'/0/0": 'ltc1qkspf8cy385ksqvah0th5ulvcad5a7v469f8cgh', - "m/84'/2'/2147483646'/0/0": 'ltc1qrh25cppd9l3fa5hdyw70n8jvcxh7s87kdfc2fd', - "m/84'/2'/2147483647'/0/0": 'ltc1qkx6pssft834axg68z3w2enq8l9nlvcku2gjkym', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qyw6nqgjg26mqdmpzcs2ns2z3a40acywe7ydcqy", + "m/84'/2'/1'/0/0": "ltc1qdldpt3r38mg5ed70s8paml37tyvflawjqhjt3d", + "m/84'/2'/21234567'/0/0": "ltc1qkspf8cy385ksqvah0th5ulvcad5a7v469f8cgh", + "m/84'/2'/2147483646'/0/0": "ltc1qrh25cppd9l3fa5hdyw70n8jvcxh7s87kdfc2fd", + "m/84'/2'/2147483647'/0/0": "ltc1qkx6pssft834axg68z3w2enq8l9nlvcku2gjkym" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NRcFZa2GzoF3M8igDM79GEVjeE2HdyT24H', - "m/44'/1900'/1'/0/0": 'NY6nNGexkGjoasD583yU4Skarj5BXPB92P', - "m/44'/1900'/21234567'/0/0": 'NduSo6qAWMwanYMiRrvQbjbUzb7Dcm8w59', - "m/44'/1900'/2147483646'/0/0": 'NXKDmwHztPUspaZ63SLzKr6rsGQiBvZJG1', - "m/44'/1900'/2147483647'/0/0": 'NVnTzG4bJuhpiqzQ2Shs38CUMPVaARDB8H', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NRcFZa2GzoF3M8igDM79GEVjeE2HdyT24H", + "m/44'/1900'/1'/0/0": "NY6nNGexkGjoasD583yU4Skarj5BXPB92P", + "m/44'/1900'/21234567'/0/0": "NduSo6qAWMwanYMiRrvQbjbUzb7Dcm8w59", + "m/44'/1900'/2147483646'/0/0": "NXKDmwHztPUspaZ63SLzKr6rsGQiBvZJG1", + "m/44'/1900'/2147483647'/0/0": "NVnTzG4bJuhpiqzQ2Shs38CUMPVaARDB8H" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x9176D80d064575875e242723F427e91DcADeFe26', - "m/44'/60'/1'/0/0": '0xEde7827e5bbecAF18e602714a15e58dbAf4883D5', - "m/44'/60'/21234567'/0/0": '0xfB7Ff45554Dc2493CbE3B192cACc240C0083d6dB', - "m/44'/60'/2147483646'/0/0": '0xADE6E74cfa00cA1bcE776C72B5aD5BF5fEEb551b', - "m/44'/60'/2147483647'/0/0": '0x99E19dB7196d67FC681DD38aF8447883EB56598d', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x9176D80d064575875e242723F427e91DcADeFe26", + "m/44'/60'/1'/0/0": "0xEde7827e5bbecAF18e602714a15e58dbAf4883D5", + "m/44'/60'/21234567'/0/0": "0xfB7Ff45554Dc2493CbE3B192cACc240C0083d6dB", + "m/44'/60'/2147483646'/0/0": "0xADE6E74cfa00cA1bcE776C72B5aD5BF5fEEb551b", + "m/44'/60'/2147483647'/0/0": "0x99E19dB7196d67FC681DD38aF8447883EB56598d" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xbA1f8e5Df9620a42e0C0D6a01aA2B9915B4A945a', - "m/44'/61'/1'/0/0": '0x211231B672b1D5D3b41a39C9b30b91a4bE719db2', - "m/44'/61'/21234567'/0/0": '0x0b8958B85CBBd929591903F8a29d3Cbb509423ad', - "m/44'/61'/2147483646'/0/0": '0x6DF7a10326EE07a022Fb60724D40510ee2E991FC', - "m/44'/61'/2147483647'/0/0": '0x15687755a2114702a201a808e73fb1aA305237ef', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xbA1f8e5Df9620a42e0C0D6a01aA2B9915B4A945a", + "m/44'/61'/1'/0/0": "0x211231B672b1D5D3b41a39C9b30b91a4bE719db2", + "m/44'/61'/21234567'/0/0": "0x0b8958B85CBBd929591903F8a29d3Cbb509423ad", + "m/44'/61'/2147483646'/0/0": "0x6DF7a10326EE07a022Fb60724D40510ee2E991FC", + "m/44'/61'/2147483647'/0/0": "0x15687755a2114702a201a808e73fb1aA305237ef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos15ngat80aqs2n8g5umpejvs0h0snpac9jt0ct5r', - "m/44'/118'/1'/0/0": 'cosmos1wtdd7cxy204gqede9jcat0evunq3hqlwf363me', - "m/44'/118'/21234567'/0/0": 'cosmos1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmvj9sl3', - "m/44'/118'/2147483646'/0/0": 'cosmos13js0cj3fazmnaqxrxn4cxda7ggcv8y6y95zfuj', - "m/44'/118'/2147483647'/0/0": 'cosmos1t7xe8g8lql8cs90x9qyx4sjvp6r50e34v2psg5', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos15ngat80aqs2n8g5umpejvs0h0snpac9jt0ct5r", + "m/44'/118'/1'/0/0": "cosmos1wtdd7cxy204gqede9jcat0evunq3hqlwf363me", + "m/44'/118'/21234567'/0/0": "cosmos1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmvj9sl3", + "m/44'/118'/2147483646'/0/0": "cosmos13js0cj3fazmnaqxrxn4cxda7ggcv8y6y95zfuj", + "m/44'/118'/2147483647'/0/0": "cosmos1t7xe8g8lql8cs90x9qyx4sjvp6r50e34v2psg5" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash15ngat80aqs2n8g5umpejvs0h0snpac9jx54vde', - "m/44'/118'/1'/0/0": 'akash1wtdd7cxy204gqede9jcat0evunq3hqlwy2hkzr', - "m/44'/118'/21234567'/0/0": 'akash1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmpfghxt', - "m/44'/118'/2147483646'/0/0": 'akash13js0cj3fazmnaqxrxn4cxda7ggcv8y6yg00w9g', - "m/44'/118'/2147483647'/0/0": 'akash1t7xe8g8lql8cs90x9qyx4sjvp6r50e34p3vh3w', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash15ngat80aqs2n8g5umpejvs0h0snpac9jx54vde", + "m/44'/118'/1'/0/0": "akash1wtdd7cxy204gqede9jcat0evunq3hqlwy2hkzr", + "m/44'/118'/21234567'/0/0": "akash1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmpfghxt", + "m/44'/118'/2147483646'/0/0": "akash13js0cj3fazmnaqxrxn4cxda7ggcv8y6yg00w9g", + "m/44'/118'/2147483647'/0/0": "akash1t7xe8g8lql8cs90x9qyx4sjvp6r50e34p3vh3w" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro15ngat80aqs2n8g5umpejvs0h0snpac9jn5sjgj', - "m/44'/118'/1'/0/0": 'cro1wtdd7cxy204gqede9jcat0evunq3hqlw32jg8g', - "m/44'/118'/21234567'/0/0": 'cro1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm5fdfrq', - "m/44'/118'/2147483646'/0/0": 'cro13js0cj3fazmnaqxrxn4cxda7ggcv8y6ya02sqr', - "m/44'/118'/2147483647'/0/0": 'cro1t7xe8g8lql8cs90x9qyx4sjvp6r50e3453ff59', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro15ngat80aqs2n8g5umpejvs0h0snpac9jn5sjgj", + "m/44'/118'/1'/0/0": "cro1wtdd7cxy204gqede9jcat0evunq3hqlw32jg8g", + "m/44'/118'/21234567'/0/0": "cro1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm5fdfrq", + "m/44'/118'/2147483646'/0/0": "cro13js0cj3fazmnaqxrxn4cxda7ggcv8y6ya02sqr", + "m/44'/118'/2147483647'/0/0": "cro1t7xe8g8lql8cs90x9qyx4sjvp6r50e3453ff59" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch15ngat80aqs2n8g5umpejvs0h0snpac9jcj30k5', - "m/44'/118'/1'/0/0": 'fetch1wtdd7cxy204gqede9jcat0evunq3hqlw6vn4ew', - "m/44'/118'/21234567'/0/0": 'fetch1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpml0v5ax', - "m/44'/118'/2147483646'/0/0": 'fetch13js0cj3fazmnaqxrxn4cxda7ggcv8y6ykftd79', - "m/44'/118'/2147483647'/0/0": 'fetch1t7xe8g8lql8cs90x9qyx4sjvp6r50e34lhg52r', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch15ngat80aqs2n8g5umpejvs0h0snpac9jcj30k5", + "m/44'/118'/1'/0/0": "fetch1wtdd7cxy204gqede9jcat0evunq3hqlw6vn4ew", + "m/44'/118'/21234567'/0/0": "fetch1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpml0v5ax", + "m/44'/118'/2147483646'/0/0": "fetch13js0cj3fazmnaqxrxn4cxda7ggcv8y6ykftd79", + "m/44'/118'/2147483647'/0/0": "fetch1t7xe8g8lql8cs90x9qyx4sjvp6r50e34lhg52r" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo15ngat80aqs2n8g5umpejvs0h0snpac9jr5tmz3', - "m/44'/118'/1'/0/0": 'osmo1wtdd7cxy204gqede9jcat0evunq3hqlwp2fpdt', - "m/44'/118'/21234567'/0/0": 'osmo1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmyfkqfr', - "m/44'/118'/2147483646'/0/0": 'osmo13js0cj3fazmnaqxrxn4cxda7ggcv8y6yd03e2q', - "m/44'/118'/2147483647'/0/0": 'osmo1t7xe8g8lql8cs90x9qyx4sjvp6r50e34y3jq7x', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo15ngat80aqs2n8g5umpejvs0h0snpac9jr5tmz3", + "m/44'/118'/1'/0/0": "osmo1wtdd7cxy204gqede9jcat0evunq3hqlwp2fpdt", + "m/44'/118'/21234567'/0/0": "osmo1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmyfkqfr", + "m/44'/118'/2147483646'/0/0": "osmo13js0cj3fazmnaqxrxn4cxda7ggcv8y6yd03e2q", + "m/44'/118'/2147483647'/0/0": "osmo1t7xe8g8lql8cs90x9qyx4sjvp6r50e34y3jq7x" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno15ngat80aqs2n8g5umpejvs0h0snpac9jaamsnl', - "m/44'/118'/1'/0/0": 'juno1wtdd7cxy204gqede9jcat0evunq3hqlwlre2u9', - "m/44'/118'/21234567'/0/0": 'juno1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm6qxtcd', - "m/44'/118'/2147483646'/0/0": 'juno13js0cj3fazmnaqxrxn4cxda7ggcv8y6ynxpjmw', - "m/44'/118'/2147483647'/0/0": 'juno1t7xe8g8lql8cs90x9qyx4sjvp6r50e346czt0g', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno15ngat80aqs2n8g5umpejvs0h0snpac9jaamsnl", + "m/44'/118'/1'/0/0": "juno1wtdd7cxy204gqede9jcat0evunq3hqlwlre2u9", + "m/44'/118'/21234567'/0/0": "juno1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm6qxtcd", + "m/44'/118'/2147483646'/0/0": "juno13js0cj3fazmnaqxrxn4cxda7ggcv8y6ynxpjmw", + "m/44'/118'/2147483647'/0/0": "juno1t7xe8g8lql8cs90x9qyx4sjvp6r50e346czt0g" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra15ngat80aqs2n8g5umpejvs0h0snpac9jdtztkr', - "m/44'/118'/1'/0/0": 'terra1wtdd7cxy204gqede9jcat0evunq3hqlw04q3ee', - "m/44'/118'/21234567'/0/0": 'terra1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm2klsa3', - "m/44'/118'/2147483646'/0/0": 'terra13js0cj3fazmnaqxrxn4cxda7ggcv8y6yrscf7j', - "m/44'/118'/2147483647'/0/0": 'terra1t7xe8g8lql8cs90x9qyx4sjvp6r50e342wms25', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra15ngat80aqs2n8g5umpejvs0h0snpac9jdtztkr", + "m/44'/118'/1'/0/0": "terra1wtdd7cxy204gqede9jcat0evunq3hqlw04q3ee", + "m/44'/118'/21234567'/0/0": "terra1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpm2klsa3", + "m/44'/118'/2147483646'/0/0": "terra13js0cj3fazmnaqxrxn4cxda7ggcv8y6yrscf7j", + "m/44'/118'/2147483647'/0/0": "terra1t7xe8g8lql8cs90x9qyx4sjvp6r50e342wms25" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret15ngat80aqs2n8g5umpejvs0h0snpac9jf2vzfl', - "m/44'/118'/1'/0/0": 'secret1wtdd7cxy204gqede9jcat0evunq3hqlwt5wcx9', - "m/44'/118'/21234567'/0/0": 'secret1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmwh3ezd', - "m/44'/118'/2147483646'/0/0": 'secret13js0cj3fazmnaqxrxn4cxda7ggcv8y6y83kqpw', - "m/44'/118'/2147483647'/0/0": 'secret1t7xe8g8lql8cs90x9qyx4sjvp6r50e34w04e4g', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret15ngat80aqs2n8g5umpejvs0h0snpac9jf2vzfl", + "m/44'/118'/1'/0/0": "secret1wtdd7cxy204gqede9jcat0evunq3hqlwt5wcx9", + "m/44'/118'/21234567'/0/0": "secret1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmwh3ezd", + "m/44'/118'/2147483646'/0/0": "secret13js0cj3fazmnaqxrxn4cxda7ggcv8y6y83kqpw", + "m/44'/118'/2147483647'/0/0": "secret1t7xe8g8lql8cs90x9qyx4sjvp6r50e34w04e4g" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia15ngat80aqs2n8g5umpejvs0h0snpac9j69fmww', - "m/44'/118'/1'/0/0": 'celestia1wtdd7cxy204gqede9jcat0evunq3hqlwcmtpp5', - "m/44'/118'/21234567'/0/0": 'celestia1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmac5q9u', - "m/44'/118'/2147483646'/0/0": 'celestia13js0cj3fazmnaqxrxn4cxda7ggcv8y6y57nexl', - "m/44'/118'/2147483647'/0/0": 'celestia1t7xe8g8lql8cs90x9qyx4sjvp6r50e34aqsqje', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia15ngat80aqs2n8g5umpejvs0h0snpac9j69fmww", + "m/44'/118'/1'/0/0": "celestia1wtdd7cxy204gqede9jcat0evunq3hqlwcmtpp5", + "m/44'/118'/21234567'/0/0": "celestia1l5a5kgpxtdhgxpdwf77c62s2hnlc5kpmac5q9u", + "m/44'/118'/2147483646'/0/0": "celestia13js0cj3fazmnaqxrxn4cxda7ggcv8y6y57nexl", + "m/44'/118'/2147483647'/0/0": "celestia1t7xe8g8lql8cs90x9qyx4sjvp6r50e34aqsqje" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x1800714ad662c8abc309d7419e469618106d1f86eef88b8e4f9f826039949318', - "m/44'/784'/1'/0'/0'": '0x9d5ab711e91ca8ad190693e25ae3cea84e6cf856bd51b3d2a786f8b6850fc0c0', - "m/44'/784'/21234567'/0'/0'": - '0x3d1bbea2eb35eac37ab4eee86992352e795428868a9f82af0d76653314b9b385', - "m/44'/784'/2147483646'/0'/0'": - '0x9b7a0dcd6e59bcfaf46c078c1ca2da50e74ce64c60d0ab63d223aa4ee19383ca', - "m/44'/784'/2147483647'/0'/0'": - '0x90d805b55fadc421378815d4ba7b293ebcd503e0e5d6ec0e06064c3addecbe45', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x1800714ad662c8abc309d7419e469618106d1f86eef88b8e4f9f826039949318", + "m/44'/784'/1'/0'/0'": "0x9d5ab711e91ca8ad190693e25ae3cea84e6cf856bd51b3d2a786f8b6850fc0c0", + "m/44'/784'/21234567'/0'/0'": "0x3d1bbea2eb35eac37ab4eee86992352e795428868a9f82af0d76653314b9b385", + "m/44'/784'/2147483646'/0'/0'": "0x9b7a0dcd6e59bcfaf46c078c1ca2da50e74ce64c60d0ab63d223aa4ee19383ca", + "m/44'/784'/2147483647'/0'/0'": "0x90d805b55fadc421378815d4ba7b293ebcd503e0e5d6ec0e06064c3addecbe45" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6', - "m/44'/144'/1'/0/0": 'rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J', - "m/44'/144'/21234567'/0/0": 'rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT', - "m/44'/144'/2147483646'/0/0": 'r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE', - "m/44'/144'/2147483647'/0/0": 'rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6", + "m/44'/144'/1'/0/0": "rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J", + "m/44'/144'/21234567'/0/0": "rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT", + "m/44'/144'/2147483646'/0/0": "r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE", + "m/44'/144'/2147483647'/0/0": "rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC750ef68c35006320666d9d52b36821f7738a537933e4bc029ce3c3a03f5c0d2b3948', - "m/44'/728'/1'/0'/0'": - 'BFCb0924e82d25eb944327f231683c04743e6d167fe1df39e9e34c44d3ca16bf67b11df', - "m/44'/728'/21234567'/0'/0'": - 'BFCacbcb3996a60324b2b0c7931afa743cf1685ab05e031d569236181b7aebf4111f2ac', - "m/44'/728'/2147483646'/0'/0'": - 'BFCb0f5d8d4735753a9367f31e1c680fe5bbe39401be27903255c0698504a20766c41fe', - "m/44'/728'/2147483647'/0'/0'": - 'BFC6765740e0ad86c689aa414b9331a2abdb574a62d530b904ac7f2ce5c807255987469', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC750ef68c35006320666d9d52b36821f7738a537933e4bc029ce3c3a03f5c0d2b3948", + "m/44'/728'/1'/0'/0'": "BFCb0924e82d25eb944327f231683c04743e6d167fe1df39e9e34c44d3ca16bf67b11df", + "m/44'/728'/21234567'/0'/0'": "BFCacbcb3996a60324b2b0c7931afa743cf1685ab05e031d569236181b7aebf4111f2ac", + "m/44'/728'/2147483646'/0'/0'": "BFCb0f5d8d4735753a9367f31e1c680fe5bbe39401be27903255c0698504a20766c41fe", + "m/44'/728'/2147483647'/0'/0'": "BFC6765740e0ad86c689aa414b9331a2abdb574a62d530b904ac7f2ce5c807255987469" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13RLNhuqPMZR4W44yxPTFmkpP6bexaBNE6bznePfECer8', - "m/44'/1234'/1'/0/0": '1HUiVEXoCSgwZr69xiryAvVBK45WEBQLhfnbeZP3HzjfA', - "m/44'/1234'/21234567'/0/0": '14R6EcSPyYCMQ4GEUmCbHe1G8t3jxrzPcokxESv8psN6Z', - "m/44'/1234'/2147483646'/0/0": '18y9AxjxfCSomrrGg338TLcQETt2X67BrDZ5mHvsgUP4Y', - "m/44'/1234'/2147483647'/0/0": '1DaJ5qpEuAL6nd3oxCK35VhVDjijLACd93XhZMdFUDnMs', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13RLNhuqPMZR4W44yxPTFmkpP6bexaBNE6bznePfECer8", + "m/44'/1234'/1'/0/0": "1HUiVEXoCSgwZr69xiryAvVBK45WEBQLhfnbeZP3HzjfA", + "m/44'/1234'/21234567'/0/0": "14R6EcSPyYCMQ4GEUmCbHe1G8t3jxrzPcokxESv8psN6Z", + "m/44'/1234'/2147483646'/0/0": "18y9AxjxfCSomrrGg338TLcQETt2X67BrDZ5mHvsgUP4Y", + "m/44'/1234'/2147483647'/0/0": "1DaJ5qpEuAL6nd3oxCK35VhVDjijLACd93XhZMdFUDnMs" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'SRMCYSF2DTCPOMUWDZ4DX4LTCB7UOIOQIP2NICABLG4O4LFR5MBZJBZB6Y', - "m/44'/283'/1'/0'/0'": 'NY76F5BCHRRQU43OHF5RYEPNN3FH5QP2GVPJHN7BUKBOG3LGNPRQNZQPYU', - "m/44'/283'/21234567'/0'/0'": 'IFRRZL7RY5YFHJ3BIO5GH6P3FL6ZO434ZQ2GKDDMVYCYNBM76BFWUYUSQ4', - "m/44'/283'/2147483646'/0'/0'": - 'NY6R3UFH63XS2NX5WXBIXGL2GGSZFR3VHUDIONQXYS5SGDIIZTJQOQLJ4Q', - "m/44'/283'/2147483647'/0'/0'": - 'SV4ATNTW532TP3WJE4C32DGAA57J7ANZ424NH6MQ6FPQUDIYO6Q5BR3ZSE', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "SRMCYSF2DTCPOMUWDZ4DX4LTCB7UOIOQIP2NICABLG4O4LFR5MBZJBZB6Y", + "m/44'/283'/1'/0'/0'": "NY76F5BCHRRQU43OHF5RYEPNN3FH5QP2GVPJHN7BUKBOG3LGNPRQNZQPYU", + "m/44'/283'/21234567'/0'/0'": "IFRRZL7RY5YFHJ3BIO5GH6P3FL6ZO434ZQ2GKDDMVYCYNBM76BFWUYUSQ4", + "m/44'/283'/2147483646'/0'/0'": "NY6R3UFH63XS2NX5WXBIXGL2GGSZFR3VHUDIONQXYS5SGDIIZTJQOQLJ4Q", + "m/44'/283'/2147483647'/0'/0'": "SV4ATNTW532TP3WJE4C32DGAA57J7ANZ424NH6MQ6FPQUDIYO6Q5BR3ZSE" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQA1cG0jIgoa0QoXhXMCdYV5aKK5CQ4kg8AfBIOUK7CjkK0A', - "m/44'/607'/1'": 'UQDtvzZfgnJeo7nvPTiABSiHxgWwBssWJsNCaD-VVxxhwgDx', - "m/44'/607'/21234567'": 'UQD3YW6XcyNIjfMf7HhUVRtW_zD1fCsbk8KGmMu8iUJO0nq-', - "m/44'/607'/2147483646'": 'UQB313Q75YjN_iBGtF_eRNtB-owlDVKrN63Rq-iIVnvrm1js', - "m/44'/607'/2147483647'": 'UQAPM18KfvrFeroExN3kAFfhxtfghCvrPZRdk3crpyJoKLXQ', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQA1cG0jIgoa0QoXhXMCdYV5aKK5CQ4kg8AfBIOUK7CjkK0A", + "m/44'/607'/1'": "UQDtvzZfgnJeo7nvPTiABSiHxgWwBssWJsNCaD-VVxxhwgDx", + "m/44'/607'/21234567'": "UQD3YW6XcyNIjfMf7HhUVRtW_zD1fCsbk8KGmMu8iUJO0nq-", + "m/44'/607'/2147483646'": "UQB313Q75YjN_iBGtF_eRNtB-owlDVKrN63Rq-iIVnvrm1js", + "m/44'/607'/2147483647'": "UQAPM18KfvrFeroExN3kAFfhxtfghCvrPZRdk3crpyJoKLXQ" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqzdtr8dglzrm5lx7utrcpvrf4wtsvd22xs8xtacl', - "m/44'/309'/1'/0/0": 'ckb1qyqqm48pugmrn453khxr0vcn7rht33zkq4es9enf0p', - "m/44'/309'/21234567'/0/0": 'ckb1qyqy32dy97eqtm6npezt6fhrl83kx3m76x2sjfrkvg', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqf8w7658e2tdevjp4vak2jdd5249v7qe5sy5asgn', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqfcfzavpvvmr906dghzwyah2tfr08nq7ws049tha', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqzdtr8dglzrm5lx7utrcpvrf4wtsvd22xs8xtacl", + "m/44'/309'/1'/0/0": "ckb1qyqqm48pugmrn453khxr0vcn7rht33zkq4es9enf0p", + "m/44'/309'/21234567'/0/0": "ckb1qyqy32dy97eqtm6npezt6fhrl83kx3m76x2sjfrkvg", + "m/44'/309'/2147483646'/0/0": "ckb1qyqf8w7658e2tdevjp4vak2jdd5249v7qe5sy5asgn", + "m/44'/309'/2147483647'/0/0": "ckb1qyqfcfzavpvvmr906dghzwyah2tfr08nq7ws049tha" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5mcs9yd26yy028032mf363g0cj2s7vtas4ce7ha2j', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5pmltxghefuhu0jt07605unjn4wht4wzmv4mrwqms', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5nqzsxngqs3s8zrstnaj2th3pwmuw95eatdm5eyml', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5mpqpdtz5v8mmc6qtlzxjea07rf9gddd96cmhadl5', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g58kmger26n3qayvfdwmxspl5fvgj0l2vpez2amh6v', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5mcs9yd26yy028032mf363g0cj2s7vtas4ce7ha2j", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5pmltxghefuhu0jt07605unjn4wht4wzmv4mrwqms", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5nqzsxngqs3s8zrstnaj2th3pwmuw95eatdm5eyml", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5mpqpdtz5v8mmc6qtlzxjea07rf9gddd96cmhadl5", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g58kmger26n3qayvfdwmxspl5fvgj0l2vpez2amh6v" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6', - "m/44'/144'/1'/0/0": 'rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J', - "m/44'/144'/21234567'/0/0": 'rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT', - "m/44'/144'/2147483646'/0/0": 'r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE', - "m/44'/144'/2147483647'/0/0": 'rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4d78ChYM9uqaX8ETar62FdcyhUkFgk1F6", + "m/44'/144'/1'/0/0": "rGbQYWs5WtKgBuD28jqCcwh5L2LNRPWb1J", + "m/44'/144'/21234567'/0/0": "rHZWXmDpg7iNnepQ6doq41XyzkCRgBsNBT", + "m/44'/144'/2147483646'/0/0": "r9yVncbHyfrodZ3ssVo5EQkjd5ocGHhgUE", + "m/44'/144'/2147483647'/0/0": "rnDEU9yvwP2yqbuBnkemy94itm2bq2CuwX" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S014b949e1afcf18c37db6a5b455de26ef617dc51', - "m/44'/541'/1'/0/0": '1S01bef934279a81837627d18009d0173d482626e1', - "m/44'/541'/21234567'/0/0": '1S01fd94730ef99038045800a6f3b387c8905cdb91', - "m/44'/541'/2147483646'/0/0": '1S019ce88e007fbb1e63743122b386c09710af3271', - "m/44'/541'/2147483647'/0/0": '1S015a65ce630ccbea1f3c91f5947dbe9e8de238b1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S014b949e1afcf18c37db6a5b455de26ef617dc51", + "m/44'/541'/1'/0/0": "1S01bef934279a81837627d18009d0173d482626e1", + "m/44'/541'/21234567'/0/0": "1S01fd94730ef99038045800a6f3b387c8905cdb91", + "m/44'/541'/2147483646'/0/0": "1S019ce88e007fbb1e63743122b386c09710af3271", + "m/44'/541'/2147483647'/0/0": "1S015a65ce630ccbea1f3c91f5947dbe9e8de238b1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/normal.ts index f14b78f45..8dd90cf36 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/normal.ts @@ -1,503 +1,491 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreeNormal: SLIP39TestCaseData = { - id: 'count20_three_normal', - name: 'count20_three_normal', - description: '16-of-16 (20 words each) + normal', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_normal", + "name": "count20_three_normal", + "description": "16-of-16 (20 words each) + normal", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '12c8HEzTch1nhyqXzd6eQtaHsLTW4hrLUK', - "m/44'/0'/1'/0/0": '1CtyRf2td3X9shqUMZQsaqWE7eQ7DBTWyx', - "m/44'/0'/21234567'/0/0": '12BxCq7UPHZ4tPHQZwYJWjgY7r7FDSN6W5', - "m/44'/0'/2147483646'/0/0": '1MmPUDEqpYCmEaQiZdqpR6Wq1qy1LaActL', - "m/44'/0'/2147483647'/0/0": '1MzGhadzLRKJJwJU1BrVd4N5rPxE9GPMZq', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "12c8HEzTch1nhyqXzd6eQtaHsLTW4hrLUK", + "m/44'/0'/1'/0/0": "1CtyRf2td3X9shqUMZQsaqWE7eQ7DBTWyx", + "m/44'/0'/21234567'/0/0": "12BxCq7UPHZ4tPHQZwYJWjgY7r7FDSN6W5", + "m/44'/0'/2147483646'/0/0": "1MmPUDEqpYCmEaQiZdqpR6Wq1qy1LaActL", + "m/44'/0'/2147483647'/0/0": "1MzGhadzLRKJJwJU1BrVd4N5rPxE9GPMZq" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3Gc3SXfcWB29MtyurLxUXYqE6Y5HTvGvhr', - "m/49'/0'/1'/0/0": '3H6yWJ7GznsevAS8ZUtwyeXBt5RnZdACK2', - "m/49'/0'/21234567'/0/0": '38CmgwAf56WcoR376fP7pkMYnFJqGrCE3M', - "m/49'/0'/2147483646'/0/0": '3QAMdejEYwTGUA5KCRvmZkFcjck2CkkNss', - "m/49'/0'/2147483647'/0/0": '3FL5LYkEt6pSQQ7ij4Cgr9x2E63AsHeKMy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3Gc3SXfcWB29MtyurLxUXYqE6Y5HTvGvhr", + "m/49'/0'/1'/0/0": "3H6yWJ7GznsevAS8ZUtwyeXBt5RnZdACK2", + "m/49'/0'/21234567'/0/0": "38CmgwAf56WcoR376fP7pkMYnFJqGrCE3M", + "m/49'/0'/2147483646'/0/0": "3QAMdejEYwTGUA5KCRvmZkFcjck2CkkNss", + "m/49'/0'/2147483647'/0/0": "3FL5LYkEt6pSQQ7ij4Cgr9x2E63AsHeKMy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qy7stxuz65ntwkr0dh8l0r3a3rhvychdrw7zjyu', - "m/84'/0'/1'/0/0": 'bc1q064k60x84af5j4qyt867p9csktzfudlw2vp9n9', - "m/84'/0'/21234567'/0/0": 'bc1qz9pr3qn230l9nej8367vdy8c0r2cg7pmsyhmnv', - "m/84'/0'/2147483646'/0/0": 'bc1qdcw6h99tg64gqd53wsc0vql7mgunqnhxq2pexy', - "m/84'/0'/2147483647'/0/0": 'bc1qxh0h04x4al6y9ege4scnkfk2rlzw55nyytxmse', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qy7stxuz65ntwkr0dh8l0r3a3rhvychdrw7zjyu", + "m/84'/0'/1'/0/0": "bc1q064k60x84af5j4qyt867p9csktzfudlw2vp9n9", + "m/84'/0'/21234567'/0/0": "bc1qz9pr3qn230l9nej8367vdy8c0r2cg7pmsyhmnv", + "m/84'/0'/2147483646'/0/0": "bc1qdcw6h99tg64gqd53wsc0vql7mgunqnhxq2pexy", + "m/84'/0'/2147483647'/0/0": "bc1qxh0h04x4al6y9ege4scnkfk2rlzw55nyytxmse" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pt6lgsducdr68xwsvm0mm8ff85ytuau2uu954f8pxv5my6ulh5ylqs08gmq', - "m/86'/0'/1'/0/0": 'bc1p5g0uh0r72m8s52apc37zln2w90an0xcyx7pvu7xrl2eptlarrynskcczqj', - "m/86'/0'/21234567'/0/0": 'bc1pe9wxfx4m6gd07wca3tgh9leemaefmha8x96a8dzg9hpnq9kl4xsqqljkdh', - "m/86'/0'/2147483646'/0/0": - 'bc1pdw8qyahanc7s5slv55klx9pewmqa55sa6qns2sw7qhku4kqc5ypqkcq5f4', - "m/86'/0'/2147483647'/0/0": - 'bc1ptt858mvzjahptdmmjqd9waf65p7mvh350ukrfzzdqeh0h4k4eqss6mdrlf', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pt6lgsducdr68xwsvm0mm8ff85ytuau2uu954f8pxv5my6ulh5ylqs08gmq", + "m/86'/0'/1'/0/0": "bc1p5g0uh0r72m8s52apc37zln2w90an0xcyx7pvu7xrl2eptlarrynskcczqj", + "m/86'/0'/21234567'/0/0": "bc1pe9wxfx4m6gd07wca3tgh9leemaefmha8x96a8dzg9hpnq9kl4xsqqljkdh", + "m/86'/0'/2147483646'/0/0": "bc1pdw8qyahanc7s5slv55klx9pewmqa55sa6qns2sw7qhku4kqc5ypqkcq5f4", + "m/86'/0'/2147483647'/0/0": "bc1ptt858mvzjahptdmmjqd9waf65p7mvh350ukrfzzdqeh0h4k4eqss6mdrlf" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DLUL7cSJwb2eNhoduwVukGPtR54pf2bBHW', - "m/44'/3'/1'/0/0": 'DC4yDLownHrfZbDRSe1wzQi8KrRVdiq1Vn', - "m/44'/3'/21234567'/0/0": 'DBV4wv1LyUq3sFyeF1G4eseiuXm7TLAptx', - "m/44'/3'/2147483646'/0/0": 'DK64BAn3CTg1y4PncEUbisTMzTg8kkpMPp', - "m/44'/3'/2147483647'/0/0": 'DCScXJF9PhH4EBubfSsuvrsBjrVMxpbcci', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DLUL7cSJwb2eNhoduwVukGPtR54pf2bBHW", + "m/44'/3'/1'/0/0": "DC4yDLownHrfZbDRSe1wzQi8KrRVdiq1Vn", + "m/44'/3'/21234567'/0/0": "DBV4wv1LyUq3sFyeF1G4eseiuXm7TLAptx", + "m/44'/3'/2147483646'/0/0": "DK64BAn3CTg1y4PncEUbisTMzTg8kkpMPp", + "m/44'/3'/2147483647'/0/0": "DCScXJF9PhH4EBubfSsuvrsBjrVMxpbcci" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qq7ucfdts2ca2tg40xc7n3q52hef273ug5emp2gkdx', - "m/44'/145'/1'/0/0": 'bitcoincash:qz9rw7upnfslmfjhks6ehyqlya04f7yzeqjy8lwh5q', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qpdnsn03ug4n6ze588z7x8scxx3fqpgqsc7f96uujd', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qqc0vagn6uaqjwxkkad6rmgnwpr2f7fq6slh8efhqs', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrex48lrf8ahp3d0gghpd7nhe6wupjhjkvfc0u77cd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qq7ucfdts2ca2tg40xc7n3q52hef273ug5emp2gkdx", + "m/44'/145'/1'/0/0": "bitcoincash:qz9rw7upnfslmfjhks6ehyqlya04f7yzeqjy8lwh5q", + "m/44'/145'/21234567'/0/0": "bitcoincash:qpdnsn03ug4n6ze588z7x8scxx3fqpgqsc7f96uujd", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qqc0vagn6uaqjwxkkad6rmgnwpr2f7fq6slh8efhqs", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrex48lrf8ahp3d0gghpd7nhe6wupjhjkvfc0u77cd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRgvex1g35EN8Efxj6cUS68XpWio3Y9wmt', - "m/44'/2'/1'/0/0": 'LYjc29pTfyBdEevLDVt5ZVsYfU7Gbmzc5b', - "m/44'/2'/21234567'/0/0": 'LMSrsCAiJXrZyjgKhjNHcMjJaD8rXvQuLR', - "m/44'/2'/2147483646'/0/0": 'LW1mFjKXpd4E4WKbmUtq1yw6oyrJ1GgLTY', - "m/44'/2'/2147483647'/0/0": 'LV2dVLJBU1r92ynBuAHvMUY8npGC7u7wZG', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRgvex1g35EN8Efxj6cUS68XpWio3Y9wmt", + "m/44'/2'/1'/0/0": "LYjc29pTfyBdEevLDVt5ZVsYfU7Gbmzc5b", + "m/44'/2'/21234567'/0/0": "LMSrsCAiJXrZyjgKhjNHcMjJaD8rXvQuLR", + "m/44'/2'/2147483646'/0/0": "LW1mFjKXpd4E4WKbmUtq1yw6oyrJ1GgLTY", + "m/44'/2'/2147483647'/0/0": "LV2dVLJBU1r92ynBuAHvMUY8npGC7u7wZG" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MFHrY3w365PU9GGmPQzwFe1E3NAxpTKHzE', - "m/49'/2'/1'/0/0": 'MQVGmHy7qyvXL9cAShojEUZkjX6PcCFUsd', - "m/49'/2'/21234567'/0/0": 'MQE8MLBAGgWXqUifTA5a6WixEaLneZBGZf', - "m/49'/2'/2147483646'/0/0": 'MTpo5LHjo9cApJEN329Xeh1ppUZt4VRFJX', - "m/49'/2'/2147483647'/0/0": 'MMK9KobSkbFJrtg9g7iZa1bThsfVAkoygd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MFHrY3w365PU9GGmPQzwFe1E3NAxpTKHzE", + "m/49'/2'/1'/0/0": "MQVGmHy7qyvXL9cAShojEUZkjX6PcCFUsd", + "m/49'/2'/21234567'/0/0": "MQE8MLBAGgWXqUifTA5a6WixEaLneZBGZf", + "m/49'/2'/2147483646'/0/0": "MTpo5LHjo9cApJEN329Xeh1ppUZt4VRFJX", + "m/49'/2'/2147483647'/0/0": "MMK9KobSkbFJrtg9g7iZa1bThsfVAkoygd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qru4567wpqezvksuhe9j53jwuysugft95l3a8tf', - "m/84'/2'/1'/0/0": 'ltc1qm2lhtzgt2mdkt6a334z24jjz8v4r86ye4gnwnx', - "m/84'/2'/21234567'/0/0": 'ltc1q676rnq8tgraxwc9uuv333kd8kkgu0hrawewerf', - "m/84'/2'/2147483646'/0/0": 'ltc1qgl4nrv9034fhpwcywj6mvxq8fw8v0sl6w3f2ft', - "m/84'/2'/2147483647'/0/0": 'ltc1q7mdwmdg9wmygn6tz5jnafhd6mtn0n4k00jaqgx', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qru4567wpqezvksuhe9j53jwuysugft95l3a8tf", + "m/84'/2'/1'/0/0": "ltc1qm2lhtzgt2mdkt6a334z24jjz8v4r86ye4gnwnx", + "m/84'/2'/21234567'/0/0": "ltc1q676rnq8tgraxwc9uuv333kd8kkgu0hrawewerf", + "m/84'/2'/2147483646'/0/0": "ltc1qgl4nrv9034fhpwcywj6mvxq8fw8v0sl6w3f2ft", + "m/84'/2'/2147483647'/0/0": "ltc1q7mdwmdg9wmygn6tz5jnafhd6mtn0n4k00jaqgx" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NLGZqPjpdkwGJfeGQuM64UYpQkYWX9BugJ', - "m/44'/1900'/1'/0/0": 'NRo8VXhtvu4dfe8Yf8UU7MU1qEYptM9m2T', - "m/44'/1900'/21234567'/0/0": 'NMwsWRpmPBPjsaVHHvCGnUnEqCgj9Lx8H5', - "m/44'/1900'/2147483646'/0/0": 'Nfxff7aUmsjZC4rspzP2jfk92QFgFe4mae', - "m/44'/1900'/2147483647'/0/0": 'NPf9x4dragNX5UAeehgFt5iP4d3pUetyw6', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NLGZqPjpdkwGJfeGQuM64UYpQkYWX9BugJ", + "m/44'/1900'/1'/0/0": "NRo8VXhtvu4dfe8Yf8UU7MU1qEYptM9m2T", + "m/44'/1900'/21234567'/0/0": "NMwsWRpmPBPjsaVHHvCGnUnEqCgj9Lx8H5", + "m/44'/1900'/2147483646'/0/0": "Nfxff7aUmsjZC4rspzP2jfk92QFgFe4mae", + "m/44'/1900'/2147483647'/0/0": "NPf9x4dragNX5UAeehgFt5iP4d3pUetyw6" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xdeFba6feb7F15fD66c464B74700AEdA9C31492AF', - "m/44'/60'/1'/0/0": '0xf81E6683C91648aF20b61b411b9A3d4bF25D6F95', - "m/44'/60'/21234567'/0/0": '0xdF45e9504Ef904A3c81339612deB7dFE4cD40291', - "m/44'/60'/2147483646'/0/0": '0x9345e540C3341785161CD65983DB447Dd26091E3', - "m/44'/60'/2147483647'/0/0": '0x0820d8554977fd780a5A66514Ee2b3185C260eC3', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xdeFba6feb7F15fD66c464B74700AEdA9C31492AF", + "m/44'/60'/1'/0/0": "0xf81E6683C91648aF20b61b411b9A3d4bF25D6F95", + "m/44'/60'/21234567'/0/0": "0xdF45e9504Ef904A3c81339612deB7dFE4cD40291", + "m/44'/60'/2147483646'/0/0": "0x9345e540C3341785161CD65983DB447Dd26091E3", + "m/44'/60'/2147483647'/0/0": "0x0820d8554977fd780a5A66514Ee2b3185C260eC3" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x320c06a1FD9FA7CBe546e40F5B25d49c30FD2adC', - "m/44'/61'/1'/0/0": '0x6c8377D82CbC6b22D1C63353883F11F7C5Aa96b7', - "m/44'/61'/21234567'/0/0": '0xC843408bF8F4AB170C003AfD890693EC278C2DA9', - "m/44'/61'/2147483646'/0/0": '0x2DD6bbF9F7924B362980bFfd31fF6322147C8623', - "m/44'/61'/2147483647'/0/0": '0x400EFCA57beD4a0396f257981294056dfF285D12', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x320c06a1FD9FA7CBe546e40F5B25d49c30FD2adC", + "m/44'/61'/1'/0/0": "0x6c8377D82CbC6b22D1C63353883F11F7C5Aa96b7", + "m/44'/61'/21234567'/0/0": "0xC843408bF8F4AB170C003AfD890693EC278C2DA9", + "m/44'/61'/2147483646'/0/0": "0x2DD6bbF9F7924B362980bFfd31fF6322147C8623", + "m/44'/61'/2147483647'/0/0": "0x400EFCA57beD4a0396f257981294056dfF285D12" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a7ga7c8', - "m/44'/118'/1'/0/0": 'cosmos1xzueyvhrt0efrtvtfphngdnaqn5rvc3n8qv6z4', - "m/44'/118'/21234567'/0/0": 'cosmos16z7lkyx9vk2cewwxlmtyehudlx9xhjdue0xqx8', - "m/44'/118'/2147483646'/0/0": 'cosmos130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9xvt40q', - "m/44'/118'/2147483647'/0/0": 'cosmos1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uxz392r', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a7ga7c8", + "m/44'/118'/1'/0/0": "cosmos1xzueyvhrt0efrtvtfphngdnaqn5rvc3n8qv6z4", + "m/44'/118'/21234567'/0/0": "cosmos16z7lkyx9vk2cewwxlmtyehudlx9xhjdue0xqx8", + "m/44'/118'/2147483646'/0/0": "cosmos130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9xvt40q", + "m/44'/118'/2147483647'/0/0": "cosmos1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uxz392r" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1vkxewp3p7hfnyzzs3q74gym7q7xt7r7annsepa', - "m/44'/118'/1'/0/0": 'akash1xzueyvhrt0efrtvtfphngdnaqn5rvc3n2mpam0', - "m/44'/118'/21234567'/0/0": 'akash16z7lkyx9vk2cewwxlmtyehudlx9xhjdu55t8la', - "m/44'/118'/2147483646'/0/0": 'akash130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9thxjk6', - "m/44'/118'/2147483647'/0/0": 'akash1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uteuzne', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1vkxewp3p7hfnyzzs3q74gym7q7xt7r7annsepa", + "m/44'/118'/1'/0/0": "akash1xzueyvhrt0efrtvtfphngdnaqn5rvc3n2mpam0", + "m/44'/118'/21234567'/0/0": "akash16z7lkyx9vk2cewwxlmtyehudlx9xhjdu55t8la", + "m/44'/118'/2147483646'/0/0": "akash130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9thxjk6", + "m/44'/118'/2147483647'/0/0": "akash1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uteuzne" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1vkxewp3p7hfnyzzs3q74gym7q7xt7r7axn48yk', - "m/44'/118'/1'/0/0": 'cro1xzueyvhrt0efrtvtfphngdnaqn5rvc3nlmyr7y', - "m/44'/118'/21234567'/0/0": 'cro16z7lkyx9vk2cewwxlmtyehudlx9xhjdup5we6k', - "m/44'/118'/2147483646'/0/0": 'cro130vs3v0kq2vx4wva6y3n7rxtrh3e2ek97hrvn3', - "m/44'/118'/2147483647'/0/0": 'cro1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u7eeukj', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1vkxewp3p7hfnyzzs3q74gym7q7xt7r7axn48yk", + "m/44'/118'/1'/0/0": "cro1xzueyvhrt0efrtvtfphngdnaqn5rvc3nlmyr7y", + "m/44'/118'/21234567'/0/0": "cro16z7lkyx9vk2cewwxlmtyehudlx9xhjdup5we6k", + "m/44'/118'/2147483646'/0/0": "cro130vs3v0kq2vx4wva6y3n7rxtrh3e2ek97hrvn3", + "m/44'/118'/2147483647'/0/0": "cro1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u7eeukj" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ad4566s', - "m/44'/118'/1'/0/0": 'fetch1xzueyvhrt0efrtvtfphngdnaqn5rvc3n5a97qz', - "m/44'/118'/21234567'/0/0": 'fetch16z7lkyx9vk2cewwxlmtyehudlx9xhjdu2j0yys', - "m/44'/118'/2147483646'/0/0": 'fetch130vs3v0kq2vx4wva6y3n7rxtrh3e2ek943z3dh', - "m/44'/118'/2147483647'/0/0": 'fetch1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u4lcpg5', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ad4566s", + "m/44'/118'/1'/0/0": "fetch1xzueyvhrt0efrtvtfphngdnaqn5rvc3n5a97qz", + "m/44'/118'/21234567'/0/0": "fetch16z7lkyx9vk2cewwxlmtyehudlx9xhjdu2j0yys", + "m/44'/118'/2147483646'/0/0": "fetch130vs3v0kq2vx4wva6y3n7rxtrh3e2ek943z3dh", + "m/44'/118'/2147483647'/0/0": "fetch1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u4lcpg5" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1vkxewp3p7hfnyzzs3q74gym7q7xt7r7aknwww4', - "m/44'/118'/1'/0/0": 'osmo1xzueyvhrt0efrtvtfphngdnaqn5rvc3n0ml258', - "m/44'/118'/21234567'/0/0": 'osmo16z7lkyx9vk2cewwxlmtyehudlx9xhjdu354ss4', - "m/44'/118'/2147483646'/0/0": 'osmo130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9whc9ej', - "m/44'/118'/2147483647'/0/0": 'osmo1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uwez4u3', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1vkxewp3p7hfnyzzs3q74gym7q7xt7r7aknwww4", + "m/44'/118'/1'/0/0": "osmo1xzueyvhrt0efrtvtfphngdnaqn5rvc3n0ml258", + "m/44'/118'/21234567'/0/0": "osmo16z7lkyx9vk2cewwxlmtyehudlx9xhjdu354ss4", + "m/44'/118'/2147483646'/0/0": "osmo130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9whc9ej", + "m/44'/118'/2147483647'/0/0": "osmo1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uwez4u3" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ag679lm', - "m/44'/118'/1'/0/0": 'juno1xzueyvhrt0efrtvtfphngdnaqn5rvc3n3j0p9f', - "m/44'/118'/21234567'/0/0": 'juno16z7lkyx9vk2cewwxlmtyehudlx9xhjdu0a9mpm', - "m/44'/118'/2147483646'/0/0": 'juno130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9s7gwgu', - "m/44'/118'/2147483647'/0/0": 'juno1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4ussj7dl', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ag679lm", + "m/44'/118'/1'/0/0": "juno1xzueyvhrt0efrtvtfphngdnaqn5rvc3n3j0p9f", + "m/44'/118'/21234567'/0/0": "juno16z7lkyx9vk2cewwxlmtyehudlx9xhjdu0a9mpm", + "m/44'/118'/2147483646'/0/0": "juno130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9s7gwgu", + "m/44'/118'/2147483647'/0/0": "juno1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4ussj7dl" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1vkxewp3p7hfnyzzs3q74gym7q7xt7r7acv8768', - "m/44'/118'/1'/0/0": 'terra1xzueyvhrt0efrtvtfphngdnaqn5rvc3npyk6q4', - "m/44'/118'/21234567'/0/0": 'terra16z7lkyx9vk2cewwxlmtyehudlx9xhjdultuqy8', - "m/44'/118'/2147483646'/0/0": 'terra130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9qg34dq', - "m/44'/118'/2147483647'/0/0": 'terra1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uqxt9gr', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1vkxewp3p7hfnyzzs3q74gym7q7xt7r7acv8768", + "m/44'/118'/1'/0/0": "terra1xzueyvhrt0efrtvtfphngdnaqn5rvc3npyk6q4", + "m/44'/118'/21234567'/0/0": "terra16z7lkyx9vk2cewwxlmtyehudlx9xhjdultuqy8", + "m/44'/118'/2147483646'/0/0": "terra130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9qg34dq", + "m/44'/118'/2147483647'/0/0": "terra1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uqxt9gr" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1vkxewp3p7hfnyzzs3q74gym7q7xt7r7audfh9m', - "m/44'/118'/1'/0/0": 'secret1xzueyvhrt0efrtvtfphngdnaqn5rvc3n99cnlf', - "m/44'/118'/21234567'/0/0": 'secret16z7lkyx9vk2cewwxlmtyehudlx9xhjdum2jfmm', - "m/44'/118'/2147483646'/0/0": 'secret130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9yfluju', - "m/44'/118'/2147483647'/0/0": 'secret1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uy89vhl', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1vkxewp3p7hfnyzzs3q74gym7q7xt7r7audfh9m", + "m/44'/118'/1'/0/0": "secret1xzueyvhrt0efrtvtfphngdnaqn5rvc3n99cnlf", + "m/44'/118'/21234567'/0/0": "secret16z7lkyx9vk2cewwxlmtyehudlx9xhjdum2jfmm", + "m/44'/118'/2147483646'/0/0": "secret130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9yfluju", + "m/44'/118'/2147483647'/0/0": "secret1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uy89vhl" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a0zvwz2', - "m/44'/118'/1'/0/0": 'celestia1xzueyvhrt0efrtvtfphngdnaqn5rvc3nk2a2cc', - "m/44'/118'/21234567'/0/0": 'celestia16z7lkyx9vk2cewwxlmtyehudlx9xhjdug9hsu2', - "m/44'/118'/2147483646'/0/0": 'celestia130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9hx694d', - "m/44'/118'/2147483647'/0/0": 'celestia1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uhgq4sw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a0zvwz2", + "m/44'/118'/1'/0/0": "celestia1xzueyvhrt0efrtvtfphngdnaqn5rvc3nk2a2cc", + "m/44'/118'/21234567'/0/0": "celestia16z7lkyx9vk2cewwxlmtyehudlx9xhjdug9hsu2", + "m/44'/118'/2147483646'/0/0": "celestia130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9hx694d", + "m/44'/118'/2147483647'/0/0": "celestia1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uhgq4sw" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0xeebb6cb4b8df26e8aa9cb5c1a5e8693812cdd98056f96150c91d4fd7165179af', - "m/44'/784'/1'/0'/0'": '0x1d79f0a88ef229fe3b2e5e11fe26648b7bba15bc6ddf99f8904f87f8085ea176', - "m/44'/784'/21234567'/0'/0'": - '0x0eca6b71e1cfe03b5e35ab7d31c6b0e69fce0a13b5407c1d1d68aad686d2a67e', - "m/44'/784'/2147483646'/0'/0'": - '0x35a94cd455d231b1144c50cf778f01e9866caec6d181afdebcd9fec2a6b4a66e', - "m/44'/784'/2147483647'/0'/0'": - '0xe75322c00c627addc2b8c5ed4b62d4ea98727a1dfefda5ce57d363ddb81bbee2', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0xeebb6cb4b8df26e8aa9cb5c1a5e8693812cdd98056f96150c91d4fd7165179af", + "m/44'/784'/1'/0'/0'": "0x1d79f0a88ef229fe3b2e5e11fe26648b7bba15bc6ddf99f8904f87f8085ea176", + "m/44'/784'/21234567'/0'/0'": "0x0eca6b71e1cfe03b5e35ab7d31c6b0e69fce0a13b5407c1d1d68aad686d2a67e", + "m/44'/784'/2147483646'/0'/0'": "0x35a94cd455d231b1144c50cf778f01e9866caec6d181afdebcd9fec2a6b4a66e", + "m/44'/784'/2147483647'/0'/0'": "0xe75322c00c627addc2b8c5ed4b62d4ea98727a1dfefda5ce57d363ddb81bbee2" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb', - "m/44'/144'/1'/0/0": 'rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek', - "m/44'/144'/21234567'/0/0": 'rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq', - "m/44'/144'/2147483646'/0/0": 'rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y', - "m/44'/144'/2147483647'/0/0": 'rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb", + "m/44'/144'/1'/0/0": "rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek", + "m/44'/144'/21234567'/0/0": "rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq", + "m/44'/144'/2147483646'/0/0": "rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y", + "m/44'/144'/2147483647'/0/0": "rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC984b0eeb7d229bef420edf562e25d192affd3a32060afe0ba693b10a598115afcb38', - "m/44'/728'/1'/0'/0'": - 'BFCa9c5249c0b581568461665ea837abafba4ae0173fcb1179ce3aa4fa6185177546d77', - "m/44'/728'/21234567'/0'/0'": - 'BFC657a1997596e4515761a115a376d37cba301f860cb5a731e166997754c42ef88b7bf', - "m/44'/728'/2147483646'/0'/0'": - 'BFC5c712e8c8bcd9dfa719e65342ab9fb7c8b717956e670f4779f4fa49fb897f13daa37', - "m/44'/728'/2147483647'/0'/0'": - 'BFCfbd17ff8dba77fccad1f724983144160685008f0bf60bfd80ab448f29074d8c97a4c', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC984b0eeb7d229bef420edf562e25d192affd3a32060afe0ba693b10a598115afcb38", + "m/44'/728'/1'/0'/0'": "BFCa9c5249c0b581568461665ea837abafba4ae0173fcb1179ce3aa4fa6185177546d77", + "m/44'/728'/21234567'/0'/0'": "BFC657a1997596e4515761a115a376d37cba301f860cb5a731e166997754c42ef88b7bf", + "m/44'/728'/2147483646'/0'/0'": "BFC5c712e8c8bcd9dfa719e65342ab9fb7c8b717956e670f4779f4fa49fb897f13daa37", + "m/44'/728'/2147483647'/0'/0'": "BFCfbd17ff8dba77fccad1f724983144160685008f0bf60bfd80ab448f29074d8c97a4c" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1FqPBhFxoKBQivdSCG5sAHoBsJVvxs3cPSusvnQjqoUJ9', - "m/44'/1234'/1'/0/0": '15Cn1advWcJNsZoCGvSQg9ZTiEuGLUFrdvLMv3iLHhsVK', - "m/44'/1234'/21234567'/0/0": '12JiPhgeSspsVxDpPySV6Z9BedDNqv4an685XGXVEXn9v', - "m/44'/1234'/2147483646'/0/0": '1DZVC8R6KKGa9vHmmnFqdT7M4KcNiWjVfPEp5oYdd7esm', - "m/44'/1234'/2147483647'/0/0": '1DDtrygDKzKLuPi3jetpDJZddgXpXKsnu396V7wf33RMr', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1FqPBhFxoKBQivdSCG5sAHoBsJVvxs3cPSusvnQjqoUJ9", + "m/44'/1234'/1'/0/0": "15Cn1advWcJNsZoCGvSQg9ZTiEuGLUFrdvLMv3iLHhsVK", + "m/44'/1234'/21234567'/0/0": "12JiPhgeSspsVxDpPySV6Z9BedDNqv4an685XGXVEXn9v", + "m/44'/1234'/2147483646'/0/0": "1DZVC8R6KKGa9vHmmnFqdT7M4KcNiWjVfPEp5oYdd7esm", + "m/44'/1234'/2147483647'/0/0": "1DDtrygDKzKLuPi3jetpDJZddgXpXKsnu396V7wf33RMr" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'SJYZIZGBOLB6ZXJLFMS4BTIYZTYQEAHG75TQQIKX42XWHXCNWQURRFQ4O4', - "m/44'/283'/1'/0'/0'": 'H4VRWXGNOGB4FSU57ADSL7JSU34O6GHIFKX6GWTIZSM6NVVFEMNUUYZKTM', - "m/44'/283'/21234567'/0'/0'": 'I3GQRVU6YGQ77HYZMESFO5WLF4RDWTVPTCG67IIQIU6BFMBAQ654S56HDQ', - "m/44'/283'/2147483646'/0'/0'": - 'YNYZOGGZLEPBDVY6H23Z3WYAZV3B7HWWEPHLBBVPUQXB4SSKKAXTQIRLKA', - "m/44'/283'/2147483647'/0'/0'": - '54ROSQKLFOBFSUHHUESXND7K3V66VQWH5WLWCWAYIGOTML5UJA35ZZG7SU', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "SJYZIZGBOLB6ZXJLFMS4BTIYZTYQEAHG75TQQIKX42XWHXCNWQURRFQ4O4", + "m/44'/283'/1'/0'/0'": "H4VRWXGNOGB4FSU57ADSL7JSU34O6GHIFKX6GWTIZSM6NVVFEMNUUYZKTM", + "m/44'/283'/21234567'/0'/0'": "I3GQRVU6YGQ77HYZMESFO5WLF4RDWTVPTCG67IIQIU6BFMBAQ654S56HDQ", + "m/44'/283'/2147483646'/0'/0'": "YNYZOGGZLEPBDVY6H23Z3WYAZV3B7HWWEPHLBBVPUQXB4SSKKAXTQIRLKA", + "m/44'/283'/2147483647'/0'/0'": "54ROSQKLFOBFSUHHUESXND7K3V66VQWH5WLWCWAYIGOTML5UJA35ZZG7SU" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQD4viGZDPMLAVcsbqFjNt17VnE__XjvjTHTUwhzW1Xs40Pe', - "m/44'/607'/1'": 'UQAWwO9Z2WeYgLyiqKq9olLR1HnhqopWk-F6b5aWMrshREm5', - "m/44'/607'/21234567'": 'UQD4Oyv3DCZ_6OrgaVccL0O2lzZw_orZiT5UiWVW_5psZJ4M', - "m/44'/607'/2147483646'": 'UQAuiIZ2Qa3lw68UKxJehRYhjZifpg5FrGAe6VPqC0v017ri', - "m/44'/607'/2147483647'": 'UQDvdifxncoweqDLnGWelByWAyGkHtkmRESzFjUot7p0defj', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQD4viGZDPMLAVcsbqFjNt17VnE__XjvjTHTUwhzW1Xs40Pe", + "m/44'/607'/1'": "UQAWwO9Z2WeYgLyiqKq9olLR1HnhqopWk-F6b5aWMrshREm5", + "m/44'/607'/21234567'": "UQD4Oyv3DCZ_6OrgaVccL0O2lzZw_orZiT5UiWVW_5psZJ4M", + "m/44'/607'/2147483646'": "UQAuiIZ2Qa3lw68UKxJehRYhjZifpg5FrGAe6VPqC0v017ri", + "m/44'/607'/2147483647'": "UQDvdifxncoweqDLnGWelByWAyGkHtkmRESzFjUot7p0defj" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyq0kkuzx2ant796l9uhypzclkena7gv0tnqkvm8p7', - "m/44'/309'/1'/0/0": 'ckb1qyqx2wupc6an35rkajfl6euu2zyn3j80shmqvvr6c8', - "m/44'/309'/21234567'/0/0": 'ckb1qyq046qgahnm70mh6qyc7ruz8zrg5jaqh0nq8aeurt', - "m/44'/309'/2147483646'/0/0": 'ckb1qyq8gl9wfnxk08ztwzsnwj07qk8clc6d7zcs4ckst6', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqthu9mlqt3dtfvvkyrstjvlm0pzcu3z3jsrz2sp3', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyq0kkuzx2ant796l9uhypzclkena7gv0tnqkvm8p7", + "m/44'/309'/1'/0/0": "ckb1qyqx2wupc6an35rkajfl6euu2zyn3j80shmqvvr6c8", + "m/44'/309'/21234567'/0/0": "ckb1qyq046qgahnm70mh6qyc7ruz8zrg5jaqh0nq8aeurt", + "m/44'/309'/2147483646'/0/0": "ckb1qyq8gl9wfnxk08ztwzsnwj07qk8clc6d7zcs4ckst6", + "m/44'/309'/2147483647'/0/0": "ckb1qyqthu9mlqt3dtfvvkyrstjvlm0pzcu3z3jsrz2sp3" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5j4sz6x995kqmasu3q553f35d9sg4xn04v6ph6d3v', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5lr0x3p6uaqz8azt8u926q4zzxyyppl9vtxh4tq5s', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5y6ws5fu58ydqkv4kfargg23es5wuz4putcwvwzdq', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5azx276sjm2pqpjf8vralq0r07ef5mzvx22yfjze0', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g562c4uqcpmkjp8pyquzl2vldfleutuqek7z8rdeyz', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5j4sz6x995kqmasu3q553f35d9sg4xn04v6ph6d3v", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5lr0x3p6uaqz8azt8u926q4zzxyyppl9vtxh4tq5s", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5y6ws5fu58ydqkv4kfargg23es5wuz4putcwvwzdq", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5azx276sjm2pqpjf8vralq0r07ef5mzvx22yfjze0", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g562c4uqcpmkjp8pyquzl2vldfleutuqek7z8rdeyz" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb', - "m/44'/144'/1'/0/0": 'rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek', - "m/44'/144'/21234567'/0/0": 'rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq', - "m/44'/144'/2147483646'/0/0": 'rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y', - "m/44'/144'/2147483647'/0/0": 'rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb", + "m/44'/144'/1'/0/0": "rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek", + "m/44'/144'/21234567'/0/0": "rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq", + "m/44'/144'/2147483646'/0/0": "rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y", + "m/44'/144'/2147483647'/0/0": "rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S013bfb161a7d49bc3a473d13b7a04474b4d088b1', - "m/44'/541'/1'/0/0": '1S0196e3033b96debdd33c515e0b9f5c300131e561', - "m/44'/541'/21234567'/0/0": '1S019737fdadd1491397db451f8b3e352aefb94a21', - "m/44'/541'/2147483646'/0/0": '1S01017cbdaecc7f5641f5dfe824390c81170011d1', - "m/44'/541'/2147483647'/0/0": '1S01735e6c0386d2962d5c7a165ffd9050f1600421', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S013bfb161a7d49bc3a473d13b7a04474b4d088b1", + "m/44'/541'/1'/0/0": "1S0196e3033b96debdd33c515e0b9f5c300131e561", + "m/44'/541'/21234567'/0/0": "1S019737fdadd1491397db451f8b3e352aefb94a21", + "m/44'/541'/2147483646'/0/0": "1S01017cbdaecc7f5641f5dfe824390c81170011d1", + "m/44'/541'/2147483647'/0/0": "1S01735e6c0386d2962d5c7a165ffd9050f1600421" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_1.ts index 6ae91efe5..77d705b27 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_1.ts @@ -1,504 +1,492 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphrase1: SLIP39TestCaseData = { - id: 'count20_three_passphrase_1', - name: 'count20_three_passphrase_1', - description: '16-of-16 (20 words each) + passphrase_1', - passphrase: '12345', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_1", + "name": "count20_three_passphrase_1", + "description": "16-of-16 (20 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1L6qT8uLdNWxnFdVtdMrsFEj5a9kTTawbt', - "m/44'/0'/1'/0/0": '138okb5TrcDnb6MdtFVUNfVLTVsTcVcfgH', - "m/44'/0'/21234567'/0/0": '17LuTxPnMaf8gLXX4UDNzUWcsoRUtiRLSR', - "m/44'/0'/2147483646'/0/0": '14Gc3rEcWTaH3RuAdaG1u9jUM6dJCeaABf', - "m/44'/0'/2147483647'/0/0": '15XfXisnLipciPzDDzANijCPhc1RznVTKd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1L6qT8uLdNWxnFdVtdMrsFEj5a9kTTawbt", + "m/44'/0'/1'/0/0": "138okb5TrcDnb6MdtFVUNfVLTVsTcVcfgH", + "m/44'/0'/21234567'/0/0": "17LuTxPnMaf8gLXX4UDNzUWcsoRUtiRLSR", + "m/44'/0'/2147483646'/0/0": "14Gc3rEcWTaH3RuAdaG1u9jUM6dJCeaABf", + "m/44'/0'/2147483647'/0/0": "15XfXisnLipciPzDDzANijCPhc1RznVTKd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '38Qjm6HeB6mJ5nkbxMc8q2bv4V96UWmB36', - "m/49'/0'/1'/0/0": '3PfPW3MKpwMyzH8Wru2oKvxHHuEEyRVz9x', - "m/49'/0'/21234567'/0/0": '3JfhM2aYpQsfSKfC3h7HFiWukMRzHJYwBq', - "m/49'/0'/2147483646'/0/0": '3PYvayd4qVRdiepuVt5WeBQgg5ESCFHgXy', - "m/49'/0'/2147483647'/0/0": '3N36SenH2KGjYAF3jVwStuY4BM5ox2kh7H', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "38Qjm6HeB6mJ5nkbxMc8q2bv4V96UWmB36", + "m/49'/0'/1'/0/0": "3PfPW3MKpwMyzH8Wru2oKvxHHuEEyRVz9x", + "m/49'/0'/21234567'/0/0": "3JfhM2aYpQsfSKfC3h7HFiWukMRzHJYwBq", + "m/49'/0'/2147483646'/0/0": "3PYvayd4qVRdiepuVt5WeBQgg5ESCFHgXy", + "m/49'/0'/2147483647'/0/0": "3N36SenH2KGjYAF3jVwStuY4BM5ox2kh7H" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q6y4nze9se48ksu8y5fvgy590jwmlj4fvlz4kev', - "m/84'/0'/1'/0/0": 'bc1qk2z7ewvaeatucmxcpdxv93m8uf5ktd5lptu2kv', - "m/84'/0'/21234567'/0/0": 'bc1q46ss2m50t2pg9tjtehv57mnxdprznvgn8whk2a', - "m/84'/0'/2147483646'/0/0": 'bc1qlhmku4veq28nrp8j76vx9mgag76muvqw33wxe3', - "m/84'/0'/2147483647'/0/0": 'bc1q0l8s6d76vqnxutr97edltn4c0pevp720w5246t', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q6y4nze9se48ksu8y5fvgy590jwmlj4fvlz4kev", + "m/84'/0'/1'/0/0": "bc1qk2z7ewvaeatucmxcpdxv93m8uf5ktd5lptu2kv", + "m/84'/0'/21234567'/0/0": "bc1q46ss2m50t2pg9tjtehv57mnxdprznvgn8whk2a", + "m/84'/0'/2147483646'/0/0": "bc1qlhmku4veq28nrp8j76vx9mgag76muvqw33wxe3", + "m/84'/0'/2147483647'/0/0": "bc1q0l8s6d76vqnxutr97edltn4c0pevp720w5246t" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pjn2k6v7sckhhax7xex0j2dpm9ugseqtqzcmdzlqu2ft92ue2jfast5cqcd', - "m/86'/0'/1'/0/0": 'bc1pnvl655k2r00vuu8x5h0q5a8xrn7gz72tgy5nhkmrqf0usch79kaslxdh6c', - "m/86'/0'/21234567'/0/0": 'bc1pj9p0gepprm3a6d8p3gmaf5thuzqt2x6v0qv3qwqnap756fg7xtcsm6jp8f', - "m/86'/0'/2147483646'/0/0": - 'bc1p7zcaktujyx0glpv27la0yru4je349qcpg0mge0q2rl0xt8dwljvq5k2csy', - "m/86'/0'/2147483647'/0/0": - 'bc1pymp07l03m26usrz5988hk562ag9r4j9qlhedf2u3acy8frz3epnqjagsgm', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pjn2k6v7sckhhax7xex0j2dpm9ugseqtqzcmdzlqu2ft92ue2jfast5cqcd", + "m/86'/0'/1'/0/0": "bc1pnvl655k2r00vuu8x5h0q5a8xrn7gz72tgy5nhkmrqf0usch79kaslxdh6c", + "m/86'/0'/21234567'/0/0": "bc1pj9p0gepprm3a6d8p3gmaf5thuzqt2x6v0qv3qwqnap756fg7xtcsm6jp8f", + "m/86'/0'/2147483646'/0/0": "bc1p7zcaktujyx0glpv27la0yru4je349qcpg0mge0q2rl0xt8dwljvq5k2csy", + "m/86'/0'/2147483647'/0/0": "bc1pymp07l03m26usrz5988hk562ag9r4j9qlhedf2u3acy8frz3epnqjagsgm" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DUDhYeVbne3drQHeRirpnYUMDQkXZTbkHh', - "m/44'/3'/1'/0/0": 'DSQ8Gdb1eUCEMPK58VuEmS1hLDxffscH5T', - "m/44'/3'/21234567'/0/0": 'DULtvpDy7AUvVgRmpxyZmvAqY7wwY5A6j6', - "m/44'/3'/2147483646'/0/0": 'DA5E2vy2eFRfFUUeQiprqHYJ7oimZpieoB', - "m/44'/3'/2147483647'/0/0": 'DLJAdteRppyw8YaUVbmpL3vjyekEzNQ5Wz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DUDhYeVbne3drQHeRirpnYUMDQkXZTbkHh", + "m/44'/3'/1'/0/0": "DSQ8Gdb1eUCEMPK58VuEmS1hLDxffscH5T", + "m/44'/3'/21234567'/0/0": "DULtvpDy7AUvVgRmpxyZmvAqY7wwY5A6j6", + "m/44'/3'/2147483646'/0/0": "DA5E2vy2eFRfFUUeQiprqHYJ7oimZpieoB", + "m/44'/3'/2147483647'/0/0": "DLJAdteRppyw8YaUVbmpL3vjyekEzNQ5Wz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qzyg93psh2f6nukngtz4es5zfd8drwrqkurg2v7338', - "m/44'/145'/1'/0/0": 'bitcoincash:qqqczn8sftegngj3nge6g807ps9s25egrsmvhae0r2', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qr303tzygq7jjzndxklqlghc2evvw7vk6uutxe2s62', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qrg4eczpqjtydxps7fdrer5n0x0v286m5vvryldyg4', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrr56592ceuczhrw2qe0tkk2qwdwcdhukge3987ndx', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qzyg93psh2f6nukngtz4es5zfd8drwrqkurg2v7338", + "m/44'/145'/1'/0/0": "bitcoincash:qqqczn8sftegngj3nge6g807ps9s25egrsmvhae0r2", + "m/44'/145'/21234567'/0/0": "bitcoincash:qr303tzygq7jjzndxklqlghc2evvw7vk6uutxe2s62", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qrg4eczpqjtydxps7fdrer5n0x0v286m5vvryldyg4", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrr56592ceuczhrw2qe0tkk2qwdwcdhukge3987ndx" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LhuGTVqtkuDtcm6DxoFbM3Rwa6qLe83e8e', - "m/44'/2'/1'/0/0": 'LdUXJvcBD3HC2pMbsMuPrX2yRUh7kW3nYS', - "m/44'/2'/21234567'/0/0": 'LU9YhB5j5GMM7GYJ2D8NWrmmWgBjCTWNvp', - "m/44'/2'/2147483646'/0/0": 'LW24TG29wN1m574Vmcu7RvxnB9WEHR4U1u', - "m/44'/2'/2147483647'/0/0": 'LU2jXbp2kG29L2nnAishKWMVnfN3T1rfv3', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LhuGTVqtkuDtcm6DxoFbM3Rwa6qLe83e8e", + "m/44'/2'/1'/0/0": "LdUXJvcBD3HC2pMbsMuPrX2yRUh7kW3nYS", + "m/44'/2'/21234567'/0/0": "LU9YhB5j5GMM7GYJ2D8NWrmmWgBjCTWNvp", + "m/44'/2'/2147483646'/0/0": "LW24TG29wN1m574Vmcu7RvxnB9WEHR4U1u", + "m/44'/2'/2147483647'/0/0": "LU2jXbp2kG29L2nnAishKWMVnfN3T1rfv3" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MC8eZTCih4Q1kTf1Fxt76t5e4NtQv7stqZ', - "m/49'/2'/1'/0/0": 'MEkP1RNxjQcQ9xKB6kpbf33MPXYNc1iWJE', - "m/49'/2'/21234567'/0/0": 'MEzh5gH2d2HfRnH9enaB4MzZXUCKjizpMC', - "m/49'/2'/2147483646'/0/0": 'MPKkQfS5Xt4PrnNdexHj5EVsQu9JerB4LA', - "m/49'/2'/2147483647'/0/0": 'MNcD7rNURB7tF8AeWLBdb9R7iheL5CRhQK', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MC8eZTCih4Q1kTf1Fxt76t5e4NtQv7stqZ", + "m/49'/2'/1'/0/0": "MEkP1RNxjQcQ9xKB6kpbf33MPXYNc1iWJE", + "m/49'/2'/21234567'/0/0": "MEzh5gH2d2HfRnH9enaB4MzZXUCKjizpMC", + "m/49'/2'/2147483646'/0/0": "MPKkQfS5Xt4PrnNdexHj5EVsQu9JerB4LA", + "m/49'/2'/2147483647'/0/0": "MNcD7rNURB7tF8AeWLBdb9R7iheL5CRhQK" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qehgr6ld2z963l8uquaervavv9uyk0hjscexsmd', - "m/84'/2'/1'/0/0": 'ltc1qr3w4uyvte2xwv9wy0nwmce5wlsdfj64z5j4cd6', - "m/84'/2'/21234567'/0/0": 'ltc1qhdj3h6yf5fts3r5htsme3e5pnfqyky6tjepjek', - "m/84'/2'/2147483646'/0/0": 'ltc1q6ghw325pqj6u24627zwlc7t58hghzzxucdaahz', - "m/84'/2'/2147483647'/0/0": 'ltc1q6c98rvfs6z3zkf4tzx9wkyf37xg7rxyz4emhuy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qehgr6ld2z963l8uquaervavv9uyk0hjscexsmd", + "m/84'/2'/1'/0/0": "ltc1qr3w4uyvte2xwv9wy0nwmce5wlsdfj64z5j4cd6", + "m/84'/2'/21234567'/0/0": "ltc1qhdj3h6yf5fts3r5htsme3e5pnfqyky6tjepjek", + "m/84'/2'/2147483646'/0/0": "ltc1q6ghw325pqj6u24627zwlc7t58hghzzxucdaahz", + "m/84'/2'/2147483647'/0/0": "ltc1q6c98rvfs6z3zkf4tzx9wkyf37xg7rxyz4emhuy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NPhTSAY2VjcjvWjYmFxrBTR3eifq6NKHzn', - "m/44'/1900'/1'/0/0": 'NVAXqJ9aUkhuwCrMEVVJz449JJzTA9Nevi', - "m/44'/1900'/21234567'/0/0": 'NitDpDaf7bL8fCaMw6wTYGvvh2vDgpHhgo', - "m/44'/1900'/2147483646'/0/0": 'NbB99RrdMrYhqUUwTBUbahaXECMiHrwH1a', - "m/44'/1900'/2147483647'/0/0": 'NZS9t6TchvCvzjudCGeFiVdZ6GKJbEaqcY', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NPhTSAY2VjcjvWjYmFxrBTR3eifq6NKHzn", + "m/44'/1900'/1'/0/0": "NVAXqJ9aUkhuwCrMEVVJz449JJzTA9Nevi", + "m/44'/1900'/21234567'/0/0": "NitDpDaf7bL8fCaMw6wTYGvvh2vDgpHhgo", + "m/44'/1900'/2147483646'/0/0": "NbB99RrdMrYhqUUwTBUbahaXECMiHrwH1a", + "m/44'/1900'/2147483647'/0/0": "NZS9t6TchvCvzjudCGeFiVdZ6GKJbEaqcY" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x86BD0D59f6dA7e07bBB6f72BCBe11Cdc7f395BDc', - "m/44'/60'/1'/0/0": '0x6c06c27fBC6d548F8485Da7b3EFEde94981b35f9', - "m/44'/60'/21234567'/0/0": '0xc273a7941b7670F3635532e3BCB23fdc82067af0', - "m/44'/60'/2147483646'/0/0": '0xFB7C6F167724397d83d13d774D1C0b61AD48353A', - "m/44'/60'/2147483647'/0/0": '0x09a07C427b57e8fE636737DB97334de53E8ba124', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x86BD0D59f6dA7e07bBB6f72BCBe11Cdc7f395BDc", + "m/44'/60'/1'/0/0": "0x6c06c27fBC6d548F8485Da7b3EFEde94981b35f9", + "m/44'/60'/21234567'/0/0": "0xc273a7941b7670F3635532e3BCB23fdc82067af0", + "m/44'/60'/2147483646'/0/0": "0xFB7C6F167724397d83d13d774D1C0b61AD48353A", + "m/44'/60'/2147483647'/0/0": "0x09a07C427b57e8fE636737DB97334de53E8ba124" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x4e2934286398E4e7BDD4D6696b0cBB1952029553', - "m/44'/61'/1'/0/0": '0xb0d86cc10685c2278931DBb8A8D56794FE6f7D17', - "m/44'/61'/21234567'/0/0": '0x8545b27EB6Ee96e89Fb1A7d231Dbb84E01615A8F', - "m/44'/61'/2147483646'/0/0": '0x93a29281423dAbe8D6834D7cE48f4d9199D93d77', - "m/44'/61'/2147483647'/0/0": '0x42Abd4984be9DefEC285C4c6EdEee8b34e543ca5', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x4e2934286398E4e7BDD4D6696b0cBB1952029553", + "m/44'/61'/1'/0/0": "0xb0d86cc10685c2278931DBb8A8D56794FE6f7D17", + "m/44'/61'/21234567'/0/0": "0x8545b27EB6Ee96e89Fb1A7d231Dbb84E01615A8F", + "m/44'/61'/2147483646'/0/0": "0x93a29281423dAbe8D6834D7cE48f4d9199D93d77", + "m/44'/61'/2147483647'/0/0": "0x42Abd4984be9DefEC285C4c6EdEee8b34e543ca5" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos137ge69zu4nsd5g7xveclflq36ptnwevvl7hkyp', - "m/44'/118'/1'/0/0": 'cosmos147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq8sf7st', - "m/44'/118'/21234567'/0/0": 'cosmos1uceyd8k5cnu2al7sz7g6zeperyu5gqh0mvsls2', - "m/44'/118'/2147483646'/0/0": 'cosmos1vnnva252t4metdj5a8t752h4mdazs6u9lqv9jf', - "m/44'/118'/2147483647'/0/0": 'cosmos1s95uy64km0ahz295c24unctulyd4tr4ffatsku', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos137ge69zu4nsd5g7xveclflq36ptnwevvl7hkyp", + "m/44'/118'/1'/0/0": "cosmos147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq8sf7st", + "m/44'/118'/21234567'/0/0": "cosmos1uceyd8k5cnu2al7sz7g6zeperyu5gqh0mvsls2", + "m/44'/118'/2147483646'/0/0": "cosmos1vnnva252t4metdj5a8t752h4mdazs6u9lqv9jf", + "m/44'/118'/2147483647'/0/0": "cosmos1s95uy64km0ahz295c24unctulyd4tr4ffatsku" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash137ge69zu4nsd5g7xveclflq36ptnwevvj963am', - "m/44'/118'/1'/0/0": 'akash147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq2tyef3', - "m/44'/118'/21234567'/0/0": 'akash1uceyd8k5cnu2al7sz7g6zeperyu5gqh0khacfs', - "m/44'/118'/2147483646'/0/0": 'akash1vnnva252t4metdj5a8t752h4mdazs6u9jmpztn', - "m/44'/118'/2147483647'/0/0": 'akash1s95uy64km0ahz295c24unctulyd4tr4fyxxh0x', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash137ge69zu4nsd5g7xveclflq36ptnwevvj963am", + "m/44'/118'/1'/0/0": "akash147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq2tyef3", + "m/44'/118'/21234567'/0/0": "akash1uceyd8k5cnu2al7sz7g6zeperyu5gqh0khacfs", + "m/44'/118'/2147483646'/0/0": "akash1vnnva252t4metdj5a8t752h4mdazs6u9jmpztn", + "m/44'/118'/2147483647'/0/0": "akash1s95uy64km0ahz295c24unctulyd4tr4fyxxh0x" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro137ge69zu4nsd5g7xveclflq36ptnwevv89l0cs', - "m/44'/118'/1'/0/0": 'cro147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqltp8v6', - "m/44'/118'/21234567'/0/0": 'cro1uceyd8k5cnu2al7sz7g6zeperyu5gqh0rhcxvm', - "m/44'/118'/2147483646'/0/0": 'cro1vnnva252t4metdj5a8t752h4mdazs6u98myuwc', - "m/44'/118'/2147483647'/0/0": 'cro1s95uy64km0ahz295c24unctulyd4tr4f3xrf2d', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro137ge69zu4nsd5g7xveclflq36ptnwevv89l0cs", + "m/44'/118'/1'/0/0": "cro147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqltp8v6", + "m/44'/118'/21234567'/0/0": "cro1uceyd8k5cnu2al7sz7g6zeperyu5gqh0rhcxvm", + "m/44'/118'/2147483646'/0/0": "cro1vnnva252t4metdj5a8t752h4mdazs6u98myuwc", + "m/44'/118'/2147483647'/0/0": "cro1s95uy64km0ahz295c24unctulyd4tr4f3xrf2d" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch137ge69zu4nsd5g7xveclflq36ptnwevvvr7jxk', - "m/44'/118'/1'/0/0": 'fetch147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq5dq6ju', - "m/44'/118'/21234567'/0/0": 'fetch1uceyd8k5cnu2al7sz7g6zeperyu5gqh0g3emja', - "m/44'/118'/2147483646'/0/0": 'fetch1vnnva252t4metdj5a8t752h4mdazs6u9va9ps7', - "m/44'/118'/2147483647'/0/0": 'fetch1s95uy64km0ahz295c24unctulyd4tr4f6qz55t', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch137ge69zu4nsd5g7xveclflq36ptnwevvvr7jxk", + "m/44'/118'/1'/0/0": "fetch147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq5dq6ju", + "m/44'/118'/21234567'/0/0": "fetch1uceyd8k5cnu2al7sz7g6zeperyu5gqh0g3emja", + "m/44'/118'/2147483646'/0/0": "fetch1vnnva252t4metdj5a8t752h4mdazs6u9va9ps7", + "m/44'/118'/2147483647'/0/0": "fetch1s95uy64km0ahz295c24unctulyd4tr4f6qz55t" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo137ge69zu4nsd5g7xveclflq36ptnwevvh9yxjn', - "m/44'/118'/1'/0/0": 'osmo147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq0t6wxe', - "m/44'/118'/21234567'/0/0": 'osmo1uceyd8k5cnu2al7sz7g6zeperyu5gqh0nhr0xc', - "m/44'/118'/2147483646'/0/0": 'osmo1vnnva252t4metdj5a8t752h4mdazs6u9hml4ym', - "m/44'/118'/2147483647'/0/0": 'osmo1s95uy64km0ahz295c24unctulyd4tr4fpxcqqw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo137ge69zu4nsd5g7xveclflq36ptnwevvh9yxjn", + "m/44'/118'/1'/0/0": "osmo147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq0t6wxe", + "m/44'/118'/21234567'/0/0": "osmo1uceyd8k5cnu2al7sz7g6zeperyu5gqh0nhr0xc", + "m/44'/118'/2147483646'/0/0": "osmo1vnnva252t4metdj5a8t752h4mdazs6u9hml4ym", + "m/44'/118'/2147483647'/0/0": "osmo1s95uy64km0ahz295c24unctulyd4tr4fpxcqqw" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno137ge69zu4nsd5g7xveclflq36ptnwevvfv5dra', - "m/44'/118'/1'/0/0": 'juno147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq3z29hh', - "m/44'/118'/21234567'/0/0": 'juno1uceyd8k5cnu2al7sz7g6zeperyu5gqh0d7nyhk', - "m/44'/118'/2147483646'/0/0": 'juno1vnnva252t4metdj5a8t752h4mdazs6u9fj0744', - "m/44'/118'/2147483647'/0/0": 'juno1s95uy64km0ahz295c24unctulyd4tr4fl0gt3q', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno137ge69zu4nsd5g7xveclflq36ptnwevvfv5dra", + "m/44'/118'/1'/0/0": "juno147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq3z29hh", + "m/44'/118'/21234567'/0/0": "juno1uceyd8k5cnu2al7sz7g6zeperyu5gqh0d7nyhk", + "m/44'/118'/2147483646'/0/0": "juno1vnnva252t4metdj5a8t752h4mdazs6u9fj0744", + "m/44'/118'/2147483647'/0/0": "juno1s95uy64km0ahz295c24unctulyd4tr4fl0gt3q" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra137ge69zu4nsd5g7xveclflq36ptnwevve6dkxp', - "m/44'/118'/1'/0/0": 'terra147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqp5n7jt', - "m/44'/118'/21234567'/0/0": 'terra1uceyd8k5cnu2al7sz7g6zeperyu5gqh0ag2lj2', - "m/44'/118'/2147483646'/0/0": 'terra1vnnva252t4metdj5a8t752h4mdazs6u9eyk9sf', - "m/44'/118'/2147483647'/0/0": 'terra1s95uy64km0ahz295c24unctulyd4tr4f0e3s5u', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra137ge69zu4nsd5g7xveclflq36ptnwevve6dkxp", + "m/44'/118'/1'/0/0": "terra147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqp5n7jt", + "m/44'/118'/21234567'/0/0": "terra1uceyd8k5cnu2al7sz7g6zeperyu5gqh0ag2lj2", + "m/44'/118'/2147483646'/0/0": "terra1vnnva252t4metdj5a8t752h4mdazs6u9eyk9sf", + "m/44'/118'/2147483647'/0/0": "terra1s95uy64km0ahz295c24unctulyd4tr4f0e3s5u" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret137ge69zu4nsd5g7xveclflq36ptnwevvamrlea', - "m/44'/118'/1'/0/0": 'secret147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq94ahdh', - "m/44'/118'/21234567'/0/0": 'secret1uceyd8k5cnu2al7sz7g6zeperyu5gqh0efykdk', - "m/44'/118'/2147483646'/0/0": 'secret1vnnva252t4metdj5a8t752h4mdazs6u9a9cv04', - "m/44'/118'/2147483647'/0/0": 'secret1s95uy64km0ahz295c24unctulyd4tr4ftcletq', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret137ge69zu4nsd5g7xveclflq36ptnwevvamrlea", + "m/44'/118'/1'/0/0": "secret147ln7mhcd3t9gewqyzfzqlcgpsv9ehwq94ahdh", + "m/44'/118'/21234567'/0/0": "secret1uceyd8k5cnu2al7sz7g6zeperyu5gqh0efykdk", + "m/44'/118'/2147483646'/0/0": "secret1vnnva252t4metdj5a8t752h4mdazs6u9a9cv04", + "m/44'/118'/2147483647'/0/0": "secret1s95uy64km0ahz295c24unctulyd4tr4ftcletq" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia137ge69zu4nsd5g7xveclflq36ptnwevvw5xx7v', - "m/44'/118'/1'/0/0": 'celestia147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqk6cw2x', - "m/44'/118'/21234567'/0/0": 'celestia1uceyd8k5cnu2al7sz7g6zeperyu5gqh02xp028', - "m/44'/118'/2147483646'/0/0": 'celestia1vnnva252t4metdj5a8t752h4mdazs6u9w2a4gy', - "m/44'/118'/2147483647'/0/0": 'celestia1s95uy64km0ahz295c24unctulyd4tr4fch6qv3', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia137ge69zu4nsd5g7xveclflq36ptnwevvw5xx7v", + "m/44'/118'/1'/0/0": "celestia147ln7mhcd3t9gewqyzfzqlcgpsv9ehwqk6cw2x", + "m/44'/118'/21234567'/0/0": "celestia1uceyd8k5cnu2al7sz7g6zeperyu5gqh02xp028", + "m/44'/118'/2147483646'/0/0": "celestia1vnnva252t4metdj5a8t752h4mdazs6u9w2a4gy", + "m/44'/118'/2147483647'/0/0": "celestia1s95uy64km0ahz295c24unctulyd4tr4fch6qv3" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0xd8ffd81f34a43dfcfbf49f392450715d60622e159a336d17ef79be410d880b8a', - "m/44'/784'/1'/0'/0'": '0x0e0bcbb3cb5802c599e408ac38b4b83105497e070dd008beac33d34d87fd1adb', - "m/44'/784'/21234567'/0'/0'": - '0x1b65cf924f1d88c01d9b8efb24f16f98517a1d1ebeeae46671851d976047c5e9', - "m/44'/784'/2147483646'/0'/0'": - '0xc2d167c9cf6cbff2e053907dd10817b4e1eb5b588a610a7abd8d1ce4fe42a0dc', - "m/44'/784'/2147483647'/0'/0'": - '0x1b9b1306f30380cb4cc2794923dd0089da5ee41385748470ebb6843d73826495', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0xd8ffd81f34a43dfcfbf49f392450715d60622e159a336d17ef79be410d880b8a", + "m/44'/784'/1'/0'/0'": "0x0e0bcbb3cb5802c599e408ac38b4b83105497e070dd008beac33d34d87fd1adb", + "m/44'/784'/21234567'/0'/0'": "0x1b65cf924f1d88c01d9b8efb24f16f98517a1d1ebeeae46671851d976047c5e9", + "m/44'/784'/2147483646'/0'/0'": "0xc2d167c9cf6cbff2e053907dd10817b4e1eb5b588a610a7abd8d1ce4fe42a0dc", + "m/44'/784'/2147483647'/0'/0'": "0x1b9b1306f30380cb4cc2794923dd0089da5ee41385748470ebb6843d73826495" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4LiUvC9xsrTkPemk1J67PZpJx4wzqGNrP', - "m/44'/144'/1'/0/0": 'rULrXxRCARz6s2FnaTczL5H6CiPsQJdohK', - "m/44'/144'/21234567'/0/0": 'rNz3RtFFjapAxdLSArnQQo1w9LBS5LQzgB', - "m/44'/144'/2147483646'/0/0": 'rLhEFuHitx6sGeJN4bP2H5esjw86WwFNuy', - "m/44'/144'/2147483647'/0/0": 'r4FJrLsA3EH6LvniRjKnuYd7XhidB4t5tN', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4LiUvC9xsrTkPemk1J67PZpJx4wzqGNrP", + "m/44'/144'/1'/0/0": "rULrXxRCARz6s2FnaTczL5H6CiPsQJdohK", + "m/44'/144'/21234567'/0/0": "rNz3RtFFjapAxdLSArnQQo1w9LBS5LQzgB", + "m/44'/144'/2147483646'/0/0": "rLhEFuHitx6sGeJN4bP2H5esjw86WwFNuy", + "m/44'/144'/2147483647'/0/0": "r4FJrLsA3EH6LvniRjKnuYd7XhidB4t5tN" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC0cdcd9a0604ea90008e21ba31f1b21fe060a87c91d4bd48748d8a36dfe17df79ff60', - "m/44'/728'/1'/0'/0'": - 'BFC6f76d68c2a04b94f1339693ab52d9f94720c6bc0c70bfa4a0b9db767077d9a2c9ef3', - "m/44'/728'/21234567'/0'/0'": - 'BFC124ee8a9ef34ef8bea75a1f7673c97a3e7e8d3b3b424fb9a048f78da213f9e30620c', - "m/44'/728'/2147483646'/0'/0'": - 'BFCbda28162bfea593359235d05c22313be8369e184762152cd95186f8726d7fa3ae014', - "m/44'/728'/2147483647'/0'/0'": - 'BFCcad522c83a67baf568021517088157bcb06662cd14c9284cbeeeff59eb643419d068', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC0cdcd9a0604ea90008e21ba31f1b21fe060a87c91d4bd48748d8a36dfe17df79ff60", + "m/44'/728'/1'/0'/0'": "BFC6f76d68c2a04b94f1339693ab52d9f94720c6bc0c70bfa4a0b9db767077d9a2c9ef3", + "m/44'/728'/21234567'/0'/0'": "BFC124ee8a9ef34ef8bea75a1f7673c97a3e7e8d3b3b424fb9a048f78da213f9e30620c", + "m/44'/728'/2147483646'/0'/0'": "BFCbda28162bfea593359235d05c22313be8369e184762152cd95186f8726d7fa3ae014", + "m/44'/728'/2147483647'/0'/0'": "BFCcad522c83a67baf568021517088157bcb06662cd14c9284cbeeeff59eb643419d068" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '15Wd1AjvvVCZ1g3EasdqVAMzxhzmyk96YpEs9CJJZpc3j', - "m/44'/1234'/1'/0/0": '14iYg2nfR4oKgJuzhgMGdg3TMaZ9bT222rscNJw6tXDYi', - "m/44'/1234'/21234567'/0/0": '16N9hfSNwAYZ5jVZgLRdVPhoGfTzTWD1k24byZDAk6JiC', - "m/44'/1234'/2147483646'/0/0": '1BXbLbwe2Dq7xEPFLJRHqCzHywcFRop5VadaHaAVRXrKy', - "m/44'/1234'/2147483647'/0/0": '1DgQLbqyf6pYCXvBPu79CibgpFtH41UgTS3dUkki68puL', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "15Wd1AjvvVCZ1g3EasdqVAMzxhzmyk96YpEs9CJJZpc3j", + "m/44'/1234'/1'/0/0": "14iYg2nfR4oKgJuzhgMGdg3TMaZ9bT222rscNJw6tXDYi", + "m/44'/1234'/21234567'/0/0": "16N9hfSNwAYZ5jVZgLRdVPhoGfTzTWD1k24byZDAk6JiC", + "m/44'/1234'/2147483646'/0/0": "1BXbLbwe2Dq7xEPFLJRHqCzHywcFRop5VadaHaAVRXrKy", + "m/44'/1234'/2147483647'/0/0": "1DgQLbqyf6pYCXvBPu79CibgpFtH41UgTS3dUkki68puL" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'GWUQZDKTDAFI4G7SEWY5TUSNWTAYSG43EOSHPNPMV4634SH7MGYV47IG6E', - "m/44'/283'/1'/0'/0'": 'N3S2CU5TZYUHFKYKIDLCBHEF3B4SSLASUDMGHMSIKWLGADJ2KHTZWCOHHA', - "m/44'/283'/21234567'/0'/0'": '22WOJMJDWWEWO4VCAVBRO5476EYIVAT2MM622ZJLSIBAVDU3Y6QCOLFCBI', - "m/44'/283'/2147483646'/0'/0'": - 'ULS6QCUSNAGKV2L6XHA7CQX2FJHSM5LWPKQS4ZIG436PKRABAMSJ7ETEJY', - "m/44'/283'/2147483647'/0'/0'": - 'RFWOJ3D7GFNZFZL7JBNOYXRYWXPSFE3DVKFJ6OA4SUGSU74HQ3DJYRKP2E', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "GWUQZDKTDAFI4G7SEWY5TUSNWTAYSG43EOSHPNPMV4634SH7MGYV47IG6E", + "m/44'/283'/1'/0'/0'": "N3S2CU5TZYUHFKYKIDLCBHEF3B4SSLASUDMGHMSIKWLGADJ2KHTZWCOHHA", + "m/44'/283'/21234567'/0'/0'": "22WOJMJDWWEWO4VCAVBRO5476EYIVAT2MM622ZJLSIBAVDU3Y6QCOLFCBI", + "m/44'/283'/2147483646'/0'/0'": "ULS6QCUSNAGKV2L6XHA7CQX2FJHSM5LWPKQS4ZIG436PKRABAMSJ7ETEJY", + "m/44'/283'/2147483647'/0'/0'": "RFWOJ3D7GFNZFZL7JBNOYXRYWXPSFE3DVKFJ6OA4SUGSU74HQ3DJYRKP2E" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQDM2ZjUSvBAWgvT3xD-2Yz6C9N1yDQPJwdFQdPMFv6uykNa', - "m/44'/607'/1'": 'UQADel9VBmMppufVZSygQllvSGza5Oq6Nwx9p_8K4OMrTjDK', - "m/44'/607'/21234567'": 'UQAO_eQ-RwX_O9q05Gq6zBfLRHtKL1HmWsn_VjnFCwscD2kQ', - "m/44'/607'/2147483646'": 'UQBQMpT1qfgCv0kY1X0Y-9NGkKPP7PkYrEPDHekK-60dEeBu', - "m/44'/607'/2147483647'": 'UQCrmINgi4mKm_kXY0NpMErui_V-OzpJqcJKIWCqPxxTMK26', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQDM2ZjUSvBAWgvT3xD-2Yz6C9N1yDQPJwdFQdPMFv6uykNa", + "m/44'/607'/1'": "UQADel9VBmMppufVZSygQllvSGza5Oq6Nwx9p_8K4OMrTjDK", + "m/44'/607'/21234567'": "UQAO_eQ-RwX_O9q05Gq6zBfLRHtKL1HmWsn_VjnFCwscD2kQ", + "m/44'/607'/2147483646'": "UQBQMpT1qfgCv0kY1X0Y-9NGkKPP7PkYrEPDHekK-60dEeBu", + "m/44'/607'/2147483647'": "UQCrmINgi4mKm_kXY0NpMErui_V-OzpJqcJKIWCqPxxTMK26" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqt3reax67g3v8wgrtulgdjjmg9m4kpmftq39aqk2', - "m/44'/309'/1'/0/0": 'ckb1qyq9ahdmy8vws3rpsk8acy9udzw4ph5e8lus89dyxj', - "m/44'/309'/21234567'/0/0": 'ckb1qyq89qckdvphkvwn26xtqxr9l8glvz3kzcyswhwmkw', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqzr9htxyg2ukzmgwxfsen669sp3pzx2shq2p06z2', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqd92yv862fuegpk835jwp35d38j3p3u53qnmmny3', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqt3reax67g3v8wgrtulgdjjmg9m4kpmftq39aqk2", + "m/44'/309'/1'/0/0": "ckb1qyq9ahdmy8vws3rpsk8acy9udzw4ph5e8lus89dyxj", + "m/44'/309'/21234567'/0/0": "ckb1qyq89qckdvphkvwn26xtqxr9l8glvz3kzcyswhwmkw", + "m/44'/309'/2147483646'/0/0": "ckb1qyqzr9htxyg2ukzmgwxfsen669sp3pzx2shq2p06z2", + "m/44'/309'/2147483647'/0/0": "ckb1qyqd92yv862fuegpk835jwp35d38j3p3u53qnmmny3" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5mv5e8fp5zzezyz73vjap05k3g7lmf26ra0g07c6r', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5mf5mgg5zwe5xgew9g4988vmf66cxc545eqy7vlw6', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5xe3097q5k4jlaf887ggafkx8dc5qpq8f7htd9tvc', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5vmarfmzt9jr0lpk7vvlzkjdyqdcrp0tj4lxunng2', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5guut062dpwq3qz9gm5ey73qppfdnk4xnmwvcf0vj', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5mv5e8fp5zzezyz73vjap05k3g7lmf26ra0g07c6r", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5mf5mgg5zwe5xgew9g4988vmf66cxc545eqy7vlw6", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5xe3097q5k4jlaf887ggafkx8dc5qpq8f7htd9tvc", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5vmarfmzt9jr0lpk7vvlzkjdyqdcrp0tj4lxunng2", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5guut062dpwq3qz9gm5ey73qppfdnk4xnmwvcf0vj" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r4LiUvC9xsrTkPemk1J67PZpJx4wzqGNrP', - "m/44'/144'/1'/0/0": 'rULrXxRCARz6s2FnaTczL5H6CiPsQJdohK', - "m/44'/144'/21234567'/0/0": 'rNz3RtFFjapAxdLSArnQQo1w9LBS5LQzgB', - "m/44'/144'/2147483646'/0/0": 'rLhEFuHitx6sGeJN4bP2H5esjw86WwFNuy', - "m/44'/144'/2147483647'/0/0": 'r4FJrLsA3EH6LvniRjKnuYd7XhidB4t5tN', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r4LiUvC9xsrTkPemk1J67PZpJx4wzqGNrP", + "m/44'/144'/1'/0/0": "rULrXxRCARz6s2FnaTczL5H6CiPsQJdohK", + "m/44'/144'/21234567'/0/0": "rNz3RtFFjapAxdLSArnQQo1w9LBS5LQzgB", + "m/44'/144'/2147483646'/0/0": "rLhEFuHitx6sGeJN4bP2H5esjw86WwFNuy", + "m/44'/144'/2147483647'/0/0": "r4FJrLsA3EH6LvniRjKnuYd7XhidB4t5tN" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01719142f8cda1396a004aad2cb6b0cd2a6e77d1', - "m/44'/541'/1'/0/0": '1S01a2cd0a1aa267d99ae89518908350966cf29e91', - "m/44'/541'/21234567'/0/0": '1S010642e173b434f590c4b7ddea164007775a6561', - "m/44'/541'/2147483646'/0/0": '1S01f6562cdb733f228143646ecb37aef1f0854ac1', - "m/44'/541'/2147483647'/0/0": '1S01605f456dd77689d9f5e0ace75763f3fd55edc1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01719142f8cda1396a004aad2cb6b0cd2a6e77d1", + "m/44'/541'/1'/0/0": "1S01a2cd0a1aa267d99ae89518908350966cf29e91", + "m/44'/541'/21234567'/0/0": "1S010642e173b434f590c4b7ddea164007775a6561", + "m/44'/541'/2147483646'/0/0": "1S01f6562cdb733f228143646ecb37aef1f0854ac1", + "m/44'/541'/2147483647'/0/0": "1S01605f456dd77689d9f5e0ace75763f3fd55edc1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_2.ts index 7b65f40e9..248b1ef0b 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_2.ts @@ -1,504 +1,492 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphrase2: SLIP39TestCaseData = { - id: 'count20_three_passphrase_2', - name: 'count20_three_passphrase_2', - description: '16-of-16 (20 words each) + passphrase_2', - passphrase: 'onekey', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_2", + "name": "count20_three_passphrase_2", + "description": "16-of-16 (20 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1LHdVcgcW3hWaRTaAg2zxUegt2M3AWPcbr', - "m/44'/0'/1'/0/0": '1JY5aMs7JrEQ6aXx3gokxYXeCxKKHtKpY9', - "m/44'/0'/21234567'/0/0": '1DD68tLG6kBxMiB6Ypn8pUenRofrdgfJg', - "m/44'/0'/2147483646'/0/0": '17Sz9j7YLkf2umW98oFzRRYQRGqodzptbA', - "m/44'/0'/2147483647'/0/0": '12TFLEqvtjcx3JBUf4WFADVzP5CBUuxHAd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1LHdVcgcW3hWaRTaAg2zxUegt2M3AWPcbr", + "m/44'/0'/1'/0/0": "1JY5aMs7JrEQ6aXx3gokxYXeCxKKHtKpY9", + "m/44'/0'/21234567'/0/0": "1DD68tLG6kBxMiB6Ypn8pUenRofrdgfJg", + "m/44'/0'/2147483646'/0/0": "17Sz9j7YLkf2umW98oFzRRYQRGqodzptbA", + "m/44'/0'/2147483647'/0/0": "12TFLEqvtjcx3JBUf4WFADVzP5CBUuxHAd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '34bJp2njvVsfTQqAB6Jy7QxYwegnqN2PdL', - "m/49'/0'/1'/0/0": '3NGYD3RY85bCS2pK3PZX3SyaKqHM4p2GpA', - "m/49'/0'/21234567'/0/0": '35uviZe1Tj4eBBUYEcSUR852nSh6s4rpb2', - "m/49'/0'/2147483646'/0/0": '3LeVHyxVjtBb9525xuLXLL9ThPH3xKkc3R', - "m/49'/0'/2147483647'/0/0": '3LCephiuE1KMZ5a7sxuGKECQiPrnGTHbPA', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "34bJp2njvVsfTQqAB6Jy7QxYwegnqN2PdL", + "m/49'/0'/1'/0/0": "3NGYD3RY85bCS2pK3PZX3SyaKqHM4p2GpA", + "m/49'/0'/21234567'/0/0": "35uviZe1Tj4eBBUYEcSUR852nSh6s4rpb2", + "m/49'/0'/2147483646'/0/0": "3LeVHyxVjtBb9525xuLXLL9ThPH3xKkc3R", + "m/49'/0'/2147483647'/0/0": "3LCephiuE1KMZ5a7sxuGKECQiPrnGTHbPA" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qp60vkmwfjqpguehaakxk7vvks38xmrm6ufv596', - "m/84'/0'/1'/0/0": 'bc1qhm3sugwc2j679e298fhs2g5ue9mnkrh9wj8jzr', - "m/84'/0'/21234567'/0/0": 'bc1q0fkvshkwx7wj8mskteh3zldn0nc4cehmtkdx5t', - "m/84'/0'/2147483646'/0/0": 'bc1qswce2n2aw0gepw43ca0xws45e7q732wxp042tj', - "m/84'/0'/2147483647'/0/0": 'bc1q0ledcv7zdqpf34z8q66gam9rs5t3v4c3u9fzyg', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qp60vkmwfjqpguehaakxk7vvks38xmrm6ufv596", + "m/84'/0'/1'/0/0": "bc1qhm3sugwc2j679e298fhs2g5ue9mnkrh9wj8jzr", + "m/84'/0'/21234567'/0/0": "bc1q0fkvshkwx7wj8mskteh3zldn0nc4cehmtkdx5t", + "m/84'/0'/2147483646'/0/0": "bc1qswce2n2aw0gepw43ca0xws45e7q732wxp042tj", + "m/84'/0'/2147483647'/0/0": "bc1q0ledcv7zdqpf34z8q66gam9rs5t3v4c3u9fzyg" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1p2m48mtglv6jl27qrmz4xegzxlnrzh3lv3q520qntwzywx59k3nkqkhtzmv', - "m/86'/0'/1'/0/0": 'bc1pfxnnvdpl9xer5sv08lvppqjd78j564xsd46f9r5gfgezgwjx50uqmact5q', - "m/86'/0'/21234567'/0/0": 'bc1p2g88fplpdukepmyfehwgyccq4yjateaguj3llzxm4rdtuvgn0q0qmnmzw9', - "m/86'/0'/2147483646'/0/0": - 'bc1py0kc6eukrtpnlx9nl99j8u2lhh8tsapvmrm4u5wssvyktgheqaqq4gu6f7', - "m/86'/0'/2147483647'/0/0": - 'bc1p3hrvuqhczp9paxytlqwmvkd9n2ha6j3nxnkx3wtjqqu7eaqe6s3q7xks0v', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1p2m48mtglv6jl27qrmz4xegzxlnrzh3lv3q520qntwzywx59k3nkqkhtzmv", + "m/86'/0'/1'/0/0": "bc1pfxnnvdpl9xer5sv08lvppqjd78j564xsd46f9r5gfgezgwjx50uqmact5q", + "m/86'/0'/21234567'/0/0": "bc1p2g88fplpdukepmyfehwgyccq4yjateaguj3llzxm4rdtuvgn0q0qmnmzw9", + "m/86'/0'/2147483646'/0/0": "bc1py0kc6eukrtpnlx9nl99j8u2lhh8tsapvmrm4u5wssvyktgheqaqq4gu6f7", + "m/86'/0'/2147483647'/0/0": "bc1p3hrvuqhczp9paxytlqwmvkd9n2ha6j3nxnkx3wtjqqu7eaqe6s3q7xks0v" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DEceNr93q8h55v8yrDDGFfPDnEQva34XTg', - "m/44'/3'/1'/0/0": 'DH4u4juNvj3zPFK2y4jTD9F81zz4om2eKU', - "m/44'/3'/21234567'/0/0": 'DE8dDcCfXYu9zVpafYc7hGBahD77rqTSwf', - "m/44'/3'/2147483646'/0/0": 'DPABRBQPUZB71zKDr5NQiniQudqDSZf8Mj', - "m/44'/3'/2147483647'/0/0": 'D6df1PJPJ9yjbLWy7yNgFQjEFJTP7RLw4M', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DEceNr93q8h55v8yrDDGFfPDnEQva34XTg", + "m/44'/3'/1'/0/0": "DH4u4juNvj3zPFK2y4jTD9F81zz4om2eKU", + "m/44'/3'/21234567'/0/0": "DE8dDcCfXYu9zVpafYc7hGBahD77rqTSwf", + "m/44'/3'/2147483646'/0/0": "DPABRBQPUZB71zKDr5NQiniQudqDSZf8Mj", + "m/44'/3'/2147483647'/0/0": "D6df1PJPJ9yjbLWy7yNgFQjEFJTP7RLw4M" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qz0pkdkq5zsprjqxvwmd7mgpjd9meqkwkgnk3xwrg3', - "m/44'/145'/1'/0/0": 'bitcoincash:qpntdfqw5wfcr8n8wlkv9dsfhn3xdf74wck993qqe7', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qrmpua796uhhyd6lmptvf76zrgzareefkqc56pefee', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq075uezvedsdfyj34yx6chzqutf5t96p5v26xmw9e', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qzvtu45v9m9tkpxleq2vuwhwzx4gp6tuwcgyf8krsv', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qz0pkdkq5zsprjqxvwmd7mgpjd9meqkwkgnk3xwrg3", + "m/44'/145'/1'/0/0": "bitcoincash:qpntdfqw5wfcr8n8wlkv9dsfhn3xdf74wck993qqe7", + "m/44'/145'/21234567'/0/0": "bitcoincash:qrmpua796uhhyd6lmptvf76zrgzareefkqc56pefee", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq075uezvedsdfyj34yx6chzqutf5t96p5v26xmw9e", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qzvtu45v9m9tkpxleq2vuwhwzx4gp6tuwcgyf8krsv" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'Lh8EqETSzVzjzDbZzcsCbNiUNsXLXeykeK', - "m/44'/2'/1'/0/0": 'LRPp2ksbgtpTJLW63LWDEdNDkw44aMvkCJ', - "m/44'/2'/21234567'/0/0": 'LTMxiEUcUxf7CMZ6ScMkxK1pDWDGhR6ZUS', - "m/44'/2'/2147483646'/0/0": 'LhhKnwWhkcLbAq2FrhjzHdvhtBUVCECUfs', - "m/44'/2'/2147483647'/0/0": 'LdYGjM8q7a12fkzuJGFbXyAycouUwbdRSt', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "Lh8EqETSzVzjzDbZzcsCbNiUNsXLXeykeK", + "m/44'/2'/1'/0/0": "LRPp2ksbgtpTJLW63LWDEdNDkw44aMvkCJ", + "m/44'/2'/21234567'/0/0": "LTMxiEUcUxf7CMZ6ScMkxK1pDWDGhR6ZUS", + "m/44'/2'/2147483646'/0/0": "LhhKnwWhkcLbAq2FrhjzHdvhtBUVCECUfs", + "m/44'/2'/2147483647'/0/0": "LdYGjM8q7a12fkzuJGFbXyAycouUwbdRSt" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MVKkx8uFNpLqpRaDrzC8j1aHQsPhP9kZJ2', - "m/49'/2'/1'/0/0": 'MCu2bQzXTtSCvyrnVmPEm9WfbVkA8R2QNS', - "m/49'/2'/21234567'/0/0": 'MMnTg8BRUqd6QsTCPwFkpKqTqBtKwKLQVt', - "m/49'/2'/2147483646'/0/0": 'MLDg8L8qNPLHjY4LM1oGfMySUAAu8bEjZq', - "m/49'/2'/2147483647'/0/0": 'MWEiRNruV2fsYt2zktjAQzznaQ9HBaSrpk', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MVKkx8uFNpLqpRaDrzC8j1aHQsPhP9kZJ2", + "m/49'/2'/1'/0/0": "MCu2bQzXTtSCvyrnVmPEm9WfbVkA8R2QNS", + "m/49'/2'/21234567'/0/0": "MMnTg8BRUqd6QsTCPwFkpKqTqBtKwKLQVt", + "m/49'/2'/2147483646'/0/0": "MLDg8L8qNPLHjY4LM1oGfMySUAAu8bEjZq", + "m/49'/2'/2147483647'/0/0": "MWEiRNruV2fsYt2zktjAQzznaQ9HBaSrpk" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qkath8805yrssk0eyql00c6vvl7z73y4s46hgq6', - "m/84'/2'/1'/0/0": 'ltc1qpwz9mvtkt3z8eyfpuc8rseerzmr8rmysgfmnwk', - "m/84'/2'/21234567'/0/0": 'ltc1qmszzdppqnj43c7p2kwn9xergq28wtzuuexzmz4', - "m/84'/2'/2147483646'/0/0": 'ltc1qdg64hn55cl6nda7nkyhqtczfm4ndfy6hznrds4', - "m/84'/2'/2147483647'/0/0": 'ltc1q97fl656389ual4msdvtv9jk5squjwjgj58c096', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qkath8805yrssk0eyql00c6vvl7z73y4s46hgq6", + "m/84'/2'/1'/0/0": "ltc1qpwz9mvtkt3z8eyfpuc8rseerzmr8rmysgfmnwk", + "m/84'/2'/21234567'/0/0": "ltc1qmszzdppqnj43c7p2kwn9xergq28wtzuuexzmz4", + "m/84'/2'/2147483646'/0/0": "ltc1qdg64hn55cl6nda7nkyhqtczfm4ndfy6hznrds4", + "m/84'/2'/2147483647'/0/0": "ltc1q97fl656389ual4msdvtv9jk5squjwjgj58c096" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NXW3Yi81fsjfVP2CY7LrNiKW7uaJVX7aWG', - "m/44'/1900'/1'/0/0": 'NaFn3T9Rgw8EdxSa1pRxVUd6PxaAseLmq4', - "m/44'/1900'/21234567'/0/0": 'Nbs1RPoznu7xWYz1udVMzfoS4AR65n9nGZ', - "m/44'/1900'/2147483646'/0/0": 'NiUkNm2Lrsr4RrFN1AMn7HRGBFUKj7gfnn', - "m/44'/1900'/2147483647'/0/0": 'NVczJfhvpTaUccapJSEWttG8N3n7BKkyK2', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NXW3Yi81fsjfVP2CY7LrNiKW7uaJVX7aWG", + "m/44'/1900'/1'/0/0": "NaFn3T9Rgw8EdxSa1pRxVUd6PxaAseLmq4", + "m/44'/1900'/21234567'/0/0": "Nbs1RPoznu7xWYz1udVMzfoS4AR65n9nGZ", + "m/44'/1900'/2147483646'/0/0": "NiUkNm2Lrsr4RrFN1AMn7HRGBFUKj7gfnn", + "m/44'/1900'/2147483647'/0/0": "NVczJfhvpTaUccapJSEWttG8N3n7BKkyK2" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xdd3B9c5f92C2D86aA1b0575409E141C8670aa3A8', - "m/44'/60'/1'/0/0": '0x0e8E658Cf1CFe5822f15D25572D6B97927f54272', - "m/44'/60'/21234567'/0/0": '0x6Ed04B935d104C2e23A8C03e67ee94A0e3e6860A', - "m/44'/60'/2147483646'/0/0": '0x36C7D52f3bE668E10469Cb3386Fe969c7686B4e6', - "m/44'/60'/2147483647'/0/0": '0xd73957780959480fb1FBa23018287e007eBa4a87', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xdd3B9c5f92C2D86aA1b0575409E141C8670aa3A8", + "m/44'/60'/1'/0/0": "0x0e8E658Cf1CFe5822f15D25572D6B97927f54272", + "m/44'/60'/21234567'/0/0": "0x6Ed04B935d104C2e23A8C03e67ee94A0e3e6860A", + "m/44'/60'/2147483646'/0/0": "0x36C7D52f3bE668E10469Cb3386Fe969c7686B4e6", + "m/44'/60'/2147483647'/0/0": "0xd73957780959480fb1FBa23018287e007eBa4a87" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xC818Aa3fD9e8A6BcfeA0e0A477374397Eb0294f5', - "m/44'/61'/1'/0/0": '0x372E2a08eA09fbF8f436300d34A8Adf64E5F1037', - "m/44'/61'/21234567'/0/0": '0x19E7cBD1091cF2601C2d89EE7BcD85826dF4302e', - "m/44'/61'/2147483646'/0/0": '0xDA3F262267c46b54782d86C85f87CF19a2C50163', - "m/44'/61'/2147483647'/0/0": '0x7C25F92A69ED12cb092274868FF057F7592cEa44', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xC818Aa3fD9e8A6BcfeA0e0A477374397Eb0294f5", + "m/44'/61'/1'/0/0": "0x372E2a08eA09fbF8f436300d34A8Adf64E5F1037", + "m/44'/61'/21234567'/0/0": "0x19E7cBD1091cF2601C2d89EE7BcD85826dF4302e", + "m/44'/61'/2147483646'/0/0": "0xDA3F262267c46b54782d86C85f87CF19a2C50163", + "m/44'/61'/2147483647'/0/0": "0x7C25F92A69ED12cb092274868FF057F7592cEa44" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1c8re46rcely9a62zrpmwr4x0wqg2ntgl4wtwh2', - "m/44'/118'/1'/0/0": 'cosmos1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwurdwzy', - "m/44'/118'/21234567'/0/0": 'cosmos1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vx6vnrw', - "m/44'/118'/2147483646'/0/0": 'cosmos1rqz9mxhkr990zet9v3nzr7rdngkpmvkgry3s08', - "m/44'/118'/2147483647'/0/0": 'cosmos12gsdkmxadlrudk3xajz24mr53602w4fvfugt44', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1c8re46rcely9a62zrpmwr4x0wqg2ntgl4wtwh2", + "m/44'/118'/1'/0/0": "cosmos1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwurdwzy", + "m/44'/118'/21234567'/0/0": "cosmos1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vx6vnrw", + "m/44'/118'/2147483646'/0/0": "cosmos1rqz9mxhkr990zet9v3nzr7rdngkpmvkgry3s08", + "m/44'/118'/2147483647'/0/0": "cosmos12gsdkmxadlrudk3xajz24mr53602w4fvfugt44" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1c8re46rcely9a62zrpmwr4x0wqg2ntglc4xfws', - "m/44'/118'/1'/0/0": 'akash1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw3cqfm7', - "m/44'/118'/21234567'/0/0": 'akash1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vtpp565', - "m/44'/118'/2147483646'/0/0": 'akash1rqz9mxhkr990zet9v3nzr7rdngkpmvkgwluhka', - "m/44'/118'/2147483647'/0/0": 'akash12gsdkmxadlrudk3xajz24mr53602w4fvy89vv0', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1c8re46rcely9a62zrpmwr4x0wqg2ntglc4xfws", + "m/44'/118'/1'/0/0": "akash1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw3cqfm7", + "m/44'/118'/21234567'/0/0": "akash1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vtpp565", + "m/44'/118'/2147483646'/0/0": "akash1rqz9mxhkr990zet9v3nzr7rdngkpmvkgwluhka", + "m/44'/118'/2147483647'/0/0": "akash12gsdkmxadlrudk3xajz24mr53602w4fvy89vv0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1c8re46rcely9a62zrpmwr4x0wqg2ntgld4rhtm', - "m/44'/118'/1'/0/0": 'cro1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwyc9h74', - "m/44'/118'/21234567'/0/0": 'cro1xjcz0arp2jfm02swxjx7h0u0q4ry7x7v7py2ll', - "m/44'/118'/2147483646'/0/0": 'cro1rqz9mxhkr990zet9v3nzr7rdngkpmvkgmlefnk', - "m/44'/118'/2147483647'/0/0": 'cro12gsdkmxadlrudk3xajz24mr53602w4fv38qjfy', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1c8re46rcely9a62zrpmwr4x0wqg2ntgld4rhtm", + "m/44'/118'/1'/0/0": "cro1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwyc9h74", + "m/44'/118'/21234567'/0/0": "cro1xjcz0arp2jfm02swxjx7h0u0q4ry7x7v7py2ll", + "m/44'/118'/2147483646'/0/0": "cro1rqz9mxhkr990zet9v3nzr7rdngkpmvkgmlefnk", + "m/44'/118'/2147483647'/0/0": "cro12gsdkmxadlrudk3xajz24mr53602w4fv38qjfy" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1c8re46rcely9a62zrpmwr4x0wqg2ntglxnz24a', - "m/44'/118'/1'/0/0": 'fetch1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw07y2qn', - "m/44'/118'/21234567'/0/0": 'fetch1xjcz0arp2jfm02swxjx7h0u0q4ry7x7v489hpe', - "m/44'/118'/2147483646'/0/0": 'fetch1rqz9mxhkr990zet9v3nzr7rdngkpmvkgsec5ds', - "m/44'/118'/2147483647'/0/0": 'fetch12gsdkmxadlrudk3xajz24mr53602w4fv6pp0hz', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1c8re46rcely9a62zrpmwr4x0wqg2ntglxnz24a", + "m/44'/118'/1'/0/0": "fetch1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw07y2qn", + "m/44'/118'/21234567'/0/0": "fetch1xjcz0arp2jfm02swxjx7h0u0q4ry7x7v489hpe", + "m/44'/118'/2147483646'/0/0": "fetch1rqz9mxhkr990zet9v3nzr7rdngkpmvkgsec5ds", + "m/44'/118'/2147483647'/0/0": "fetch12gsdkmxadlrudk3xajz24mr53602w4fv6pp0hz" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1c8re46rcely9a62zrpmwr4x0wqg2ntgla4c7pc', - "m/44'/118'/1'/0/0": 'osmo1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw5c775k', - "m/44'/118'/21234567'/0/0": 'osmo1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vwplr4u', - "m/44'/118'/2147483646'/0/0": 'osmo1rqz9mxhkr990zet9v3nzr7rdngkpmvkgtlzqe4', - "m/44'/118'/2147483647'/0/0": 'osmo12gsdkmxadlrudk3xajz24mr53602w4fvp8mmr8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1c8re46rcely9a62zrpmwr4x0wqg2ntgla4c7pc", + "m/44'/118'/1'/0/0": "osmo1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw5c775k", + "m/44'/118'/21234567'/0/0": "osmo1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vwplr4u", + "m/44'/118'/2147483646'/0/0": "osmo1rqz9mxhkr990zet9v3nzr7rdngkpmvkgtlzqe4", + "m/44'/118'/2147483647'/0/0": "osmo12gsdkmxadlrudk3xajz24mr53602w4fvp8mmr8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1c8re46rcely9a62zrpmwr4x0wqg2ntglrug4sk', - "m/44'/118'/1'/0/0": 'juno1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw23w49c', - "m/44'/118'/21234567'/0/0": 'juno1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vsg0gyj', - "m/44'/118'/2147483646'/0/0": 'juno1rqz9mxhkr990zet9v3nzr7rdngkpmvkg4kjtgm', - "m/44'/118'/2147483647'/0/0": 'juno12gsdkmxadlrudk3xajz24mr53602w4fvlwtsjf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1c8re46rcely9a62zrpmwr4x0wqg2ntglrug4sk", + "m/44'/118'/1'/0/0": "juno1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw23w49c", + "m/44'/118'/21234567'/0/0": "juno1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vsg0gyj", + "m/44'/118'/2147483646'/0/0": "juno1rqz9mxhkr990zet9v3nzr7rdngkpmvkg4kjtgm", + "m/44'/118'/2147483647'/0/0": "juno12gsdkmxadlrudk3xajz24mr53602w4fvlwtsjf" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1c8re46rcely9a62zrpmwr4x0wqg2ntgln23w42', - "m/44'/118'/1'/0/0": 'terra1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw68hwqy', - "m/44'/118'/21234567'/0/0": 'terra1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vq7knpw', - "m/44'/118'/2147483646'/0/0": 'terra1rqz9mxhkr990zet9v3nzr7rdngkpmvkg9qtsd8', - "m/44'/118'/2147483647'/0/0": 'terra12gsdkmxadlrudk3xajz24mr53602w4fv0cjth4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1c8re46rcely9a62zrpmwr4x0wqg2ntgln23w42", + "m/44'/118'/1'/0/0": "terra1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw68hwqy", + "m/44'/118'/21234567'/0/0": "terra1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vq7knpw", + "m/44'/118'/2147483646'/0/0": "terra1rqz9mxhkr990zet9v3nzr7rdngkpmvkg9qtsd8", + "m/44'/118'/2147483647'/0/0": "terra12gsdkmxadlrudk3xajz24mr53602w4fv0cjth4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1c8re46rcely9a62zrpmwr4x0wqg2ntglhtl82k', - "m/44'/118'/1'/0/0": 'secret1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw7xe8lc', - "m/44'/118'/21234567'/0/0": 'secret1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vylc67j', - "m/44'/118'/2147483646'/0/0": 'secret1rqz9mxhkr990zet9v3nzr7rdngkpmvkgpp9ejm', - "m/44'/118'/2147483647'/0/0": 'secret12gsdkmxadlrudk3xajz24mr53602w4fvteuzgf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1c8re46rcely9a62zrpmwr4x0wqg2ntglhtl82k", + "m/44'/118'/1'/0/0": "secret1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jw7xe8lc", + "m/44'/118'/21234567'/0/0": "secret1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vylc67j", + "m/44'/118'/2147483646'/0/0": "secret1rqz9mxhkr990zet9v3nzr7rdngkpmvkgpp9ejm", + "m/44'/118'/2147483647'/0/0": "secret12gsdkmxadlrudk3xajz24mr53602w4fvteuzgf" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1c8re46rcely9a62zrpmwr4x0wqg2ntglyy67d8', - "m/44'/118'/1'/0/0": 'celestia1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwdfu7cf', - "m/44'/118'/21234567'/0/0": 'celestia1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vhsarer', - "m/44'/118'/2147483646'/0/0": 'celestia1rqz9mxhkr990zet9v3nzr7rdngkpmvkgjwqq42', - "m/44'/118'/2147483647'/0/0": 'celestia12gsdkmxadlrudk3xajz24mr53602w4fvckem0c', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1c8re46rcely9a62zrpmwr4x0wqg2ntglyy67d8", + "m/44'/118'/1'/0/0": "celestia1mh4y0llnnyfgt2ccdhafqwv7gxnhl4jwdfu7cf", + "m/44'/118'/21234567'/0/0": "celestia1xjcz0arp2jfm02swxjx7h0u0q4ry7x7vhsarer", + "m/44'/118'/2147483646'/0/0": "celestia1rqz9mxhkr990zet9v3nzr7rdngkpmvkgjwqq42", + "m/44'/118'/2147483647'/0/0": "celestia12gsdkmxadlrudk3xajz24mr53602w4fvckem0c" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x52ecdffbd1fbf50642be929597b16ab5fb4f610ba60ffdadcfca6c97f2d6e00e', - "m/44'/784'/1'/0'/0'": '0xb2c91688bd2ca257482949b6b1841f1ba431f535749ac63338567b0e78c5ec3d', - "m/44'/784'/21234567'/0'/0'": - '0x1e024b321d5cc6cf1f19fd62b2f4a7a6ea05ea8b864dd77d7366ed2849d8cc5c', - "m/44'/784'/2147483646'/0'/0'": - '0x7cfc40b0267de889770b8927e4bd79d9263393a1bd7e5f2ed28829342130aad1', - "m/44'/784'/2147483647'/0'/0'": - '0xa2a4d9b9c22156b4cf064ba4e623abf95b3cfc8ad7ffdbc3518b285e284efd43', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x52ecdffbd1fbf50642be929597b16ab5fb4f610ba60ffdadcfca6c97f2d6e00e", + "m/44'/784'/1'/0'/0'": "0xb2c91688bd2ca257482949b6b1841f1ba431f535749ac63338567b0e78c5ec3d", + "m/44'/784'/21234567'/0'/0'": "0x1e024b321d5cc6cf1f19fd62b2f4a7a6ea05ea8b864dd77d7366ed2849d8cc5c", + "m/44'/784'/2147483646'/0'/0'": "0x7cfc40b0267de889770b8927e4bd79d9263393a1bd7e5f2ed28829342130aad1", + "m/44'/784'/2147483647'/0'/0'": "0xa2a4d9b9c22156b4cf064ba4e623abf95b3cfc8ad7ffdbc3518b285e284efd43" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rGyLvBkJafgH3FRSvajqZJnX8ekbVJ5Kzh', - "m/44'/144'/1'/0/0": 'rBfgv5nESDHPnoTdJa8c4nSxitxXjwF5JP', - "m/44'/144'/21234567'/0/0": 'rNuemXeHJdRhhDW6ddZEPGqerTDBEt6m4E', - "m/44'/144'/2147483646'/0/0": 'rUpiHJbtCcteRK84yYwCyNDnernsQnXmM5', - "m/44'/144'/2147483647'/0/0": 'rJyRRWV1ratQ5UaqkipUdVkG8TsPcg2PKJ', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rGyLvBkJafgH3FRSvajqZJnX8ekbVJ5Kzh", + "m/44'/144'/1'/0/0": "rBfgv5nESDHPnoTdJa8c4nSxitxXjwF5JP", + "m/44'/144'/21234567'/0/0": "rNuemXeHJdRhhDW6ddZEPGqerTDBEt6m4E", + "m/44'/144'/2147483646'/0/0": "rUpiHJbtCcteRK84yYwCyNDnernsQnXmM5", + "m/44'/144'/2147483647'/0/0": "rJyRRWV1ratQ5UaqkipUdVkG8TsPcg2PKJ" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC1740e2d478a3ced3e1fc0b89fa28029026a376ce0b2897bd90b9dc2bbdac464f5231', - "m/44'/728'/1'/0'/0'": - 'BFC0792edc493fd5ce719a55b91f92df14070c784e597d2c6326e6d810742f3cf6dfb6e', - "m/44'/728'/21234567'/0'/0'": - 'BFCa1de0bc895dccac8afb94e1caef958926f022bc1f4e5f510d2daae95257b7fea9151', - "m/44'/728'/2147483646'/0'/0'": - 'BFCf2241d38497011951a53c40115d4a611cc02cf458290fb531e2c6d846a51b91a2122', - "m/44'/728'/2147483647'/0'/0'": - 'BFC456890724f4bdd212cd71eaa5187fca342a852749b45516935236e2193411ba4d9db', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC1740e2d478a3ced3e1fc0b89fa28029026a376ce0b2897bd90b9dc2bbdac464f5231", + "m/44'/728'/1'/0'/0'": "BFC0792edc493fd5ce719a55b91f92df14070c784e597d2c6326e6d810742f3cf6dfb6e", + "m/44'/728'/21234567'/0'/0'": "BFCa1de0bc895dccac8afb94e1caef958926f022bc1f4e5f510d2daae95257b7fea9151", + "m/44'/728'/2147483646'/0'/0'": "BFCf2241d38497011951a53c40115d4a611cc02cf458290fb531e2c6d846a51b91a2122", + "m/44'/728'/2147483647'/0'/0'": "BFC456890724f4bdd212cd71eaa5187fca342a852749b45516935236e2193411ba4d9db" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1DSfkGfAVLB4H9SNFoqPmndRDtViB4bjDCfg44ZnaPJSG', - "m/44'/1234'/1'/0/0": '1HDZbdZNUSDDDR2PJgsF2ruuAXmnkTmNjxdsJvRkxVog2', - "m/44'/1234'/21234567'/0/0": '1BmpfTPWamF5KcVfkVcXK6qVvmTYFWXGDHqkCRnecSv1x', - "m/44'/1234'/2147483646'/0/0": '1B5qhdawEg3Eu36C4MonjkZpHJgbbeMTbfDs6EKaWJEk7', - "m/44'/1234'/2147483647'/0/0": '159GhjnqviuMQ89Zj8LU2UxAEucwHvEyFc7LtBYJ4sURK', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1DSfkGfAVLB4H9SNFoqPmndRDtViB4bjDCfg44ZnaPJSG", + "m/44'/1234'/1'/0/0": "1HDZbdZNUSDDDR2PJgsF2ruuAXmnkTmNjxdsJvRkxVog2", + "m/44'/1234'/21234567'/0/0": "1BmpfTPWamF5KcVfkVcXK6qVvmTYFWXGDHqkCRnecSv1x", + "m/44'/1234'/2147483646'/0/0": "1B5qhdawEg3Eu36C4MonjkZpHJgbbeMTbfDs6EKaWJEk7", + "m/44'/1234'/2147483647'/0/0": "159GhjnqviuMQ89Zj8LU2UxAEucwHvEyFc7LtBYJ4sURK" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'QN7TQHNLRZVYKXGQUE3WNT2E3XBLWM6LSGVFOCABZQWEGPQOKHNT2TMCJA', - "m/44'/283'/1'/0'/0'": 'ZEAOIZ7DF74IER5DMLSHVQQVXIDIBATADOYAT3UEVMJVGJ3YC2Z4FRRK6Q', - "m/44'/283'/21234567'/0'/0'": 'AVHN4RYIKFLXAHQEX5DTXUA7QABUOAIXNJ2CMWHVMPCEF37FMGDVTXH7P4', - "m/44'/283'/2147483646'/0'/0'": - 'Z43BFJ3LU6IJ3R3EZDEK7LHCZJK7MOHKRF7CW7AGPBWT3HPSWQY76LMJ7I', - "m/44'/283'/2147483647'/0'/0'": - 'ERPJIID6OTDE45VMDW74MEOOP2DWVVBK3EX4K6KRJW6LZ64JPFYUEHLUQI', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "QN7TQHNLRZVYKXGQUE3WNT2E3XBLWM6LSGVFOCABZQWEGPQOKHNT2TMCJA", + "m/44'/283'/1'/0'/0'": "ZEAOIZ7DF74IER5DMLSHVQQVXIDIBATADOYAT3UEVMJVGJ3YC2Z4FRRK6Q", + "m/44'/283'/21234567'/0'/0'": "AVHN4RYIKFLXAHQEX5DTXUA7QABUOAIXNJ2CMWHVMPCEF37FMGDVTXH7P4", + "m/44'/283'/2147483646'/0'/0'": "Z43BFJ3LU6IJ3R3EZDEK7LHCZJK7MOHKRF7CW7AGPBWT3HPSWQY76LMJ7I", + "m/44'/283'/2147483647'/0'/0'": "ERPJIID6OTDE45VMDW74MEOOP2DWVVBK3EX4K6KRJW6LZ64JPFYUEHLUQI" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQCOl-V4mboi81YysUx-WVmPCuo-BuFOpUDNUhax2jju28YE', - "m/44'/607'/1'": 'UQBjktWPwMjCLACYpNqYq3lxQNsRj3ttOsdaqu1YH4yn8VDr', - "m/44'/607'/21234567'": 'UQBqGUxdRdpdGGtmBwIZJRSid_YgbxmrjQe1pm-_TTMiKANo', - "m/44'/607'/2147483646'": 'UQBS2-BGcZN5G27g8B9Ji01aqJx0W_fXRwTEJGKlBvQiTinV', - "m/44'/607'/2147483647'": 'UQBc7_JJAMGJlWcixb6E3R0lIsVzDQxhnpo1HUGoWRf097Wp', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQCOl-V4mboi81YysUx-WVmPCuo-BuFOpUDNUhax2jju28YE", + "m/44'/607'/1'": "UQBjktWPwMjCLACYpNqYq3lxQNsRj3ttOsdaqu1YH4yn8VDr", + "m/44'/607'/21234567'": "UQBqGUxdRdpdGGtmBwIZJRSid_YgbxmrjQe1pm-_TTMiKANo", + "m/44'/607'/2147483646'": "UQBS2-BGcZN5G27g8B9Ji01aqJx0W_fXRwTEJGKlBvQiTinV", + "m/44'/607'/2147483647'": "UQBc7_JJAMGJlWcixb6E3R0lIsVzDQxhnpo1HUGoWRf097Wp" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqfw3k6a22fdjdya66whn8ag64twkuw0txsqpkr38', - "m/44'/309'/1'/0/0": 'ckb1qyq07mh5shheefxxgd9jtgvvavl8lrzv8ryqtzkz9f', - "m/44'/309'/21234567'/0/0": 'ckb1qyqz3y77wdak0z9s0g47fue2y0228a4v623skj7daa', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqpvp79drh00c47ykmar9qeqcclwvxfm7lq4v58e3', - "m/44'/309'/2147483647'/0/0": 'ckb1qyq0tqeh0pp5gznjge9l3zslhu8a083gdmgsjs2n5x', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqfw3k6a22fdjdya66whn8ag64twkuw0txsqpkr38", + "m/44'/309'/1'/0/0": "ckb1qyq07mh5shheefxxgd9jtgvvavl8lrzv8ryqtzkz9f", + "m/44'/309'/21234567'/0/0": "ckb1qyqz3y77wdak0z9s0g47fue2y0228a4v623skj7daa", + "m/44'/309'/2147483646'/0/0": "ckb1qyqpvp79drh00c47ykmar9qeqcclwvxfm7lq4v58e3", + "m/44'/309'/2147483647'/0/0": "ckb1qyq0tqeh0pp5gznjge9l3zslhu8a083gdmgsjs2n5x" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5ctt2kwnz59snrg8edvydjs8vza4tk0xhrdwfsjee', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g52q07p08zjt8k8md7wuu3a34lhy349uce53w4py82', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5d9ek3l3gehp0906ysdzhyd0zcfc5xspuue9fl2jg', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5ks6p9wkcs7zu2yazy04tltmzq84assfdcm3mzf2d', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5hwhxs6r8ja89d04s64xkfdytwn5z43xnne6pujy8', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5ctt2kwnz59snrg8edvydjs8vza4tk0xhrdwfsjee", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g52q07p08zjt8k8md7wuu3a34lhy349uce53w4py82", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5d9ek3l3gehp0906ysdzhyd0zcfc5xspuue9fl2jg", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5ks6p9wkcs7zu2yazy04tltmzq84assfdcm3mzf2d", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5hwhxs6r8ja89d04s64xkfdytwn5z43xnne6pujy8" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rGyLvBkJafgH3FRSvajqZJnX8ekbVJ5Kzh', - "m/44'/144'/1'/0/0": 'rBfgv5nESDHPnoTdJa8c4nSxitxXjwF5JP', - "m/44'/144'/21234567'/0/0": 'rNuemXeHJdRhhDW6ddZEPGqerTDBEt6m4E', - "m/44'/144'/2147483646'/0/0": 'rUpiHJbtCcteRK84yYwCyNDnernsQnXmM5', - "m/44'/144'/2147483647'/0/0": 'rJyRRWV1ratQ5UaqkipUdVkG8TsPcg2PKJ', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rGyLvBkJafgH3FRSvajqZJnX8ekbVJ5Kzh", + "m/44'/144'/1'/0/0": "rBfgv5nESDHPnoTdJa8c4nSxitxXjwF5JP", + "m/44'/144'/21234567'/0/0": "rNuemXeHJdRhhDW6ddZEPGqerTDBEt6m4E", + "m/44'/144'/2147483646'/0/0": "rUpiHJbtCcteRK84yYwCyNDnernsQnXmM5", + "m/44'/144'/2147483647'/0/0": "rJyRRWV1ratQ5UaqkipUdVkG8TsPcg2PKJ" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S0111cd31be56bfaa5b6d3616e71b7c0c18dafed1', - "m/44'/541'/1'/0/0": '1S01788f4b8583a31eb3affb51449a8d22fc0ec591', - "m/44'/541'/21234567'/0/0": '1S01a9b34d6faea5b047d908bf6ce5a8bf3492b1c1', - "m/44'/541'/2147483646'/0/0": '1S017b5729e6a6b2789246e14dd2a26cfc336ecdc1', - "m/44'/541'/2147483647'/0/0": '1S01fef8e293c135ad447b9db81981668cf9c21f71', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S0111cd31be56bfaa5b6d3616e71b7c0c18dafed1", + "m/44'/541'/1'/0/0": "1S01788f4b8583a31eb3affb51449a8d22fc0ec591", + "m/44'/541'/21234567'/0/0": "1S01a9b34d6faea5b047d908bf6ce5a8bf3492b1c1", + "m/44'/541'/2147483646'/0/0": "1S017b5729e6a6b2789246e14dd2a26cfc336ecdc1", + "m/44'/541'/2147483647'/0/0": "1S01fef8e293c135ad447b9db81981668cf9c21f71" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_empty.ts index 3f635556a..da5af80d9 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_three/passphrase_empty.ts @@ -1,504 +1,492 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_three_passphrase_empty', - name: 'count20_three_passphrase_empty', - description: '16-of-16 (20 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_empty", + "name": "count20_three_passphrase_empty", + "description": "16-of-16 (20 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '12c8HEzTch1nhyqXzd6eQtaHsLTW4hrLUK', - "m/44'/0'/1'/0/0": '1CtyRf2td3X9shqUMZQsaqWE7eQ7DBTWyx', - "m/44'/0'/21234567'/0/0": '12BxCq7UPHZ4tPHQZwYJWjgY7r7FDSN6W5', - "m/44'/0'/2147483646'/0/0": '1MmPUDEqpYCmEaQiZdqpR6Wq1qy1LaActL', - "m/44'/0'/2147483647'/0/0": '1MzGhadzLRKJJwJU1BrVd4N5rPxE9GPMZq', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "12c8HEzTch1nhyqXzd6eQtaHsLTW4hrLUK", + "m/44'/0'/1'/0/0": "1CtyRf2td3X9shqUMZQsaqWE7eQ7DBTWyx", + "m/44'/0'/21234567'/0/0": "12BxCq7UPHZ4tPHQZwYJWjgY7r7FDSN6W5", + "m/44'/0'/2147483646'/0/0": "1MmPUDEqpYCmEaQiZdqpR6Wq1qy1LaActL", + "m/44'/0'/2147483647'/0/0": "1MzGhadzLRKJJwJU1BrVd4N5rPxE9GPMZq" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3Gc3SXfcWB29MtyurLxUXYqE6Y5HTvGvhr', - "m/49'/0'/1'/0/0": '3H6yWJ7GznsevAS8ZUtwyeXBt5RnZdACK2', - "m/49'/0'/21234567'/0/0": '38CmgwAf56WcoR376fP7pkMYnFJqGrCE3M', - "m/49'/0'/2147483646'/0/0": '3QAMdejEYwTGUA5KCRvmZkFcjck2CkkNss', - "m/49'/0'/2147483647'/0/0": '3FL5LYkEt6pSQQ7ij4Cgr9x2E63AsHeKMy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3Gc3SXfcWB29MtyurLxUXYqE6Y5HTvGvhr", + "m/49'/0'/1'/0/0": "3H6yWJ7GznsevAS8ZUtwyeXBt5RnZdACK2", + "m/49'/0'/21234567'/0/0": "38CmgwAf56WcoR376fP7pkMYnFJqGrCE3M", + "m/49'/0'/2147483646'/0/0": "3QAMdejEYwTGUA5KCRvmZkFcjck2CkkNss", + "m/49'/0'/2147483647'/0/0": "3FL5LYkEt6pSQQ7ij4Cgr9x2E63AsHeKMy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qy7stxuz65ntwkr0dh8l0r3a3rhvychdrw7zjyu', - "m/84'/0'/1'/0/0": 'bc1q064k60x84af5j4qyt867p9csktzfudlw2vp9n9', - "m/84'/0'/21234567'/0/0": 'bc1qz9pr3qn230l9nej8367vdy8c0r2cg7pmsyhmnv', - "m/84'/0'/2147483646'/0/0": 'bc1qdcw6h99tg64gqd53wsc0vql7mgunqnhxq2pexy', - "m/84'/0'/2147483647'/0/0": 'bc1qxh0h04x4al6y9ege4scnkfk2rlzw55nyytxmse', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qy7stxuz65ntwkr0dh8l0r3a3rhvychdrw7zjyu", + "m/84'/0'/1'/0/0": "bc1q064k60x84af5j4qyt867p9csktzfudlw2vp9n9", + "m/84'/0'/21234567'/0/0": "bc1qz9pr3qn230l9nej8367vdy8c0r2cg7pmsyhmnv", + "m/84'/0'/2147483646'/0/0": "bc1qdcw6h99tg64gqd53wsc0vql7mgunqnhxq2pexy", + "m/84'/0'/2147483647'/0/0": "bc1qxh0h04x4al6y9ege4scnkfk2rlzw55nyytxmse" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pt6lgsducdr68xwsvm0mm8ff85ytuau2uu954f8pxv5my6ulh5ylqs08gmq', - "m/86'/0'/1'/0/0": 'bc1p5g0uh0r72m8s52apc37zln2w90an0xcyx7pvu7xrl2eptlarrynskcczqj', - "m/86'/0'/21234567'/0/0": 'bc1pe9wxfx4m6gd07wca3tgh9leemaefmha8x96a8dzg9hpnq9kl4xsqqljkdh', - "m/86'/0'/2147483646'/0/0": - 'bc1pdw8qyahanc7s5slv55klx9pewmqa55sa6qns2sw7qhku4kqc5ypqkcq5f4', - "m/86'/0'/2147483647'/0/0": - 'bc1ptt858mvzjahptdmmjqd9waf65p7mvh350ukrfzzdqeh0h4k4eqss6mdrlf', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pt6lgsducdr68xwsvm0mm8ff85ytuau2uu954f8pxv5my6ulh5ylqs08gmq", + "m/86'/0'/1'/0/0": "bc1p5g0uh0r72m8s52apc37zln2w90an0xcyx7pvu7xrl2eptlarrynskcczqj", + "m/86'/0'/21234567'/0/0": "bc1pe9wxfx4m6gd07wca3tgh9leemaefmha8x96a8dzg9hpnq9kl4xsqqljkdh", + "m/86'/0'/2147483646'/0/0": "bc1pdw8qyahanc7s5slv55klx9pewmqa55sa6qns2sw7qhku4kqc5ypqkcq5f4", + "m/86'/0'/2147483647'/0/0": "bc1ptt858mvzjahptdmmjqd9waf65p7mvh350ukrfzzdqeh0h4k4eqss6mdrlf" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DLUL7cSJwb2eNhoduwVukGPtR54pf2bBHW', - "m/44'/3'/1'/0/0": 'DC4yDLownHrfZbDRSe1wzQi8KrRVdiq1Vn', - "m/44'/3'/21234567'/0/0": 'DBV4wv1LyUq3sFyeF1G4eseiuXm7TLAptx', - "m/44'/3'/2147483646'/0/0": 'DK64BAn3CTg1y4PncEUbisTMzTg8kkpMPp', - "m/44'/3'/2147483647'/0/0": 'DCScXJF9PhH4EBubfSsuvrsBjrVMxpbcci', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DLUL7cSJwb2eNhoduwVukGPtR54pf2bBHW", + "m/44'/3'/1'/0/0": "DC4yDLownHrfZbDRSe1wzQi8KrRVdiq1Vn", + "m/44'/3'/21234567'/0/0": "DBV4wv1LyUq3sFyeF1G4eseiuXm7TLAptx", + "m/44'/3'/2147483646'/0/0": "DK64BAn3CTg1y4PncEUbisTMzTg8kkpMPp", + "m/44'/3'/2147483647'/0/0": "DCScXJF9PhH4EBubfSsuvrsBjrVMxpbcci" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qq7ucfdts2ca2tg40xc7n3q52hef273ug5emp2gkdx', - "m/44'/145'/1'/0/0": 'bitcoincash:qz9rw7upnfslmfjhks6ehyqlya04f7yzeqjy8lwh5q', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qpdnsn03ug4n6ze588z7x8scxx3fqpgqsc7f96uujd', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qqc0vagn6uaqjwxkkad6rmgnwpr2f7fq6slh8efhqs', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qrex48lrf8ahp3d0gghpd7nhe6wupjhjkvfc0u77cd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qq7ucfdts2ca2tg40xc7n3q52hef273ug5emp2gkdx", + "m/44'/145'/1'/0/0": "bitcoincash:qz9rw7upnfslmfjhks6ehyqlya04f7yzeqjy8lwh5q", + "m/44'/145'/21234567'/0/0": "bitcoincash:qpdnsn03ug4n6ze588z7x8scxx3fqpgqsc7f96uujd", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qqc0vagn6uaqjwxkkad6rmgnwpr2f7fq6slh8efhqs", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qrex48lrf8ahp3d0gghpd7nhe6wupjhjkvfc0u77cd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRgvex1g35EN8Efxj6cUS68XpWio3Y9wmt', - "m/44'/2'/1'/0/0": 'LYjc29pTfyBdEevLDVt5ZVsYfU7Gbmzc5b', - "m/44'/2'/21234567'/0/0": 'LMSrsCAiJXrZyjgKhjNHcMjJaD8rXvQuLR', - "m/44'/2'/2147483646'/0/0": 'LW1mFjKXpd4E4WKbmUtq1yw6oyrJ1GgLTY', - "m/44'/2'/2147483647'/0/0": 'LV2dVLJBU1r92ynBuAHvMUY8npGC7u7wZG', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRgvex1g35EN8Efxj6cUS68XpWio3Y9wmt", + "m/44'/2'/1'/0/0": "LYjc29pTfyBdEevLDVt5ZVsYfU7Gbmzc5b", + "m/44'/2'/21234567'/0/0": "LMSrsCAiJXrZyjgKhjNHcMjJaD8rXvQuLR", + "m/44'/2'/2147483646'/0/0": "LW1mFjKXpd4E4WKbmUtq1yw6oyrJ1GgLTY", + "m/44'/2'/2147483647'/0/0": "LV2dVLJBU1r92ynBuAHvMUY8npGC7u7wZG" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MFHrY3w365PU9GGmPQzwFe1E3NAxpTKHzE', - "m/49'/2'/1'/0/0": 'MQVGmHy7qyvXL9cAShojEUZkjX6PcCFUsd', - "m/49'/2'/21234567'/0/0": 'MQE8MLBAGgWXqUifTA5a6WixEaLneZBGZf', - "m/49'/2'/2147483646'/0/0": 'MTpo5LHjo9cApJEN329Xeh1ppUZt4VRFJX', - "m/49'/2'/2147483647'/0/0": 'MMK9KobSkbFJrtg9g7iZa1bThsfVAkoygd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MFHrY3w365PU9GGmPQzwFe1E3NAxpTKHzE", + "m/49'/2'/1'/0/0": "MQVGmHy7qyvXL9cAShojEUZkjX6PcCFUsd", + "m/49'/2'/21234567'/0/0": "MQE8MLBAGgWXqUifTA5a6WixEaLneZBGZf", + "m/49'/2'/2147483646'/0/0": "MTpo5LHjo9cApJEN329Xeh1ppUZt4VRFJX", + "m/49'/2'/2147483647'/0/0": "MMK9KobSkbFJrtg9g7iZa1bThsfVAkoygd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qru4567wpqezvksuhe9j53jwuysugft95l3a8tf', - "m/84'/2'/1'/0/0": 'ltc1qm2lhtzgt2mdkt6a334z24jjz8v4r86ye4gnwnx', - "m/84'/2'/21234567'/0/0": 'ltc1q676rnq8tgraxwc9uuv333kd8kkgu0hrawewerf', - "m/84'/2'/2147483646'/0/0": 'ltc1qgl4nrv9034fhpwcywj6mvxq8fw8v0sl6w3f2ft', - "m/84'/2'/2147483647'/0/0": 'ltc1q7mdwmdg9wmygn6tz5jnafhd6mtn0n4k00jaqgx', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qru4567wpqezvksuhe9j53jwuysugft95l3a8tf", + "m/84'/2'/1'/0/0": "ltc1qm2lhtzgt2mdkt6a334z24jjz8v4r86ye4gnwnx", + "m/84'/2'/21234567'/0/0": "ltc1q676rnq8tgraxwc9uuv333kd8kkgu0hrawewerf", + "m/84'/2'/2147483646'/0/0": "ltc1qgl4nrv9034fhpwcywj6mvxq8fw8v0sl6w3f2ft", + "m/84'/2'/2147483647'/0/0": "ltc1q7mdwmdg9wmygn6tz5jnafhd6mtn0n4k00jaqgx" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NLGZqPjpdkwGJfeGQuM64UYpQkYWX9BugJ', - "m/44'/1900'/1'/0/0": 'NRo8VXhtvu4dfe8Yf8UU7MU1qEYptM9m2T', - "m/44'/1900'/21234567'/0/0": 'NMwsWRpmPBPjsaVHHvCGnUnEqCgj9Lx8H5', - "m/44'/1900'/2147483646'/0/0": 'Nfxff7aUmsjZC4rspzP2jfk92QFgFe4mae', - "m/44'/1900'/2147483647'/0/0": 'NPf9x4dragNX5UAeehgFt5iP4d3pUetyw6', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NLGZqPjpdkwGJfeGQuM64UYpQkYWX9BugJ", + "m/44'/1900'/1'/0/0": "NRo8VXhtvu4dfe8Yf8UU7MU1qEYptM9m2T", + "m/44'/1900'/21234567'/0/0": "NMwsWRpmPBPjsaVHHvCGnUnEqCgj9Lx8H5", + "m/44'/1900'/2147483646'/0/0": "Nfxff7aUmsjZC4rspzP2jfk92QFgFe4mae", + "m/44'/1900'/2147483647'/0/0": "NPf9x4dragNX5UAeehgFt5iP4d3pUetyw6" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xdeFba6feb7F15fD66c464B74700AEdA9C31492AF', - "m/44'/60'/1'/0/0": '0xf81E6683C91648aF20b61b411b9A3d4bF25D6F95', - "m/44'/60'/21234567'/0/0": '0xdF45e9504Ef904A3c81339612deB7dFE4cD40291', - "m/44'/60'/2147483646'/0/0": '0x9345e540C3341785161CD65983DB447Dd26091E3', - "m/44'/60'/2147483647'/0/0": '0x0820d8554977fd780a5A66514Ee2b3185C260eC3', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xdeFba6feb7F15fD66c464B74700AEdA9C31492AF", + "m/44'/60'/1'/0/0": "0xf81E6683C91648aF20b61b411b9A3d4bF25D6F95", + "m/44'/60'/21234567'/0/0": "0xdF45e9504Ef904A3c81339612deB7dFE4cD40291", + "m/44'/60'/2147483646'/0/0": "0x9345e540C3341785161CD65983DB447Dd26091E3", + "m/44'/60'/2147483647'/0/0": "0x0820d8554977fd780a5A66514Ee2b3185C260eC3" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x320c06a1FD9FA7CBe546e40F5B25d49c30FD2adC', - "m/44'/61'/1'/0/0": '0x6c8377D82CbC6b22D1C63353883F11F7C5Aa96b7', - "m/44'/61'/21234567'/0/0": '0xC843408bF8F4AB170C003AfD890693EC278C2DA9', - "m/44'/61'/2147483646'/0/0": '0x2DD6bbF9F7924B362980bFfd31fF6322147C8623', - "m/44'/61'/2147483647'/0/0": '0x400EFCA57beD4a0396f257981294056dfF285D12', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x320c06a1FD9FA7CBe546e40F5B25d49c30FD2adC", + "m/44'/61'/1'/0/0": "0x6c8377D82CbC6b22D1C63353883F11F7C5Aa96b7", + "m/44'/61'/21234567'/0/0": "0xC843408bF8F4AB170C003AfD890693EC278C2DA9", + "m/44'/61'/2147483646'/0/0": "0x2DD6bbF9F7924B362980bFfd31fF6322147C8623", + "m/44'/61'/2147483647'/0/0": "0x400EFCA57beD4a0396f257981294056dfF285D12" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a7ga7c8', - "m/44'/118'/1'/0/0": 'cosmos1xzueyvhrt0efrtvtfphngdnaqn5rvc3n8qv6z4', - "m/44'/118'/21234567'/0/0": 'cosmos16z7lkyx9vk2cewwxlmtyehudlx9xhjdue0xqx8', - "m/44'/118'/2147483646'/0/0": 'cosmos130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9xvt40q', - "m/44'/118'/2147483647'/0/0": 'cosmos1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uxz392r', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a7ga7c8", + "m/44'/118'/1'/0/0": "cosmos1xzueyvhrt0efrtvtfphngdnaqn5rvc3n8qv6z4", + "m/44'/118'/21234567'/0/0": "cosmos16z7lkyx9vk2cewwxlmtyehudlx9xhjdue0xqx8", + "m/44'/118'/2147483646'/0/0": "cosmos130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9xvt40q", + "m/44'/118'/2147483647'/0/0": "cosmos1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uxz392r" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1vkxewp3p7hfnyzzs3q74gym7q7xt7r7annsepa', - "m/44'/118'/1'/0/0": 'akash1xzueyvhrt0efrtvtfphngdnaqn5rvc3n2mpam0', - "m/44'/118'/21234567'/0/0": 'akash16z7lkyx9vk2cewwxlmtyehudlx9xhjdu55t8la', - "m/44'/118'/2147483646'/0/0": 'akash130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9thxjk6', - "m/44'/118'/2147483647'/0/0": 'akash1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uteuzne', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1vkxewp3p7hfnyzzs3q74gym7q7xt7r7annsepa", + "m/44'/118'/1'/0/0": "akash1xzueyvhrt0efrtvtfphngdnaqn5rvc3n2mpam0", + "m/44'/118'/21234567'/0/0": "akash16z7lkyx9vk2cewwxlmtyehudlx9xhjdu55t8la", + "m/44'/118'/2147483646'/0/0": "akash130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9thxjk6", + "m/44'/118'/2147483647'/0/0": "akash1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uteuzne" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1vkxewp3p7hfnyzzs3q74gym7q7xt7r7axn48yk', - "m/44'/118'/1'/0/0": 'cro1xzueyvhrt0efrtvtfphngdnaqn5rvc3nlmyr7y', - "m/44'/118'/21234567'/0/0": 'cro16z7lkyx9vk2cewwxlmtyehudlx9xhjdup5we6k', - "m/44'/118'/2147483646'/0/0": 'cro130vs3v0kq2vx4wva6y3n7rxtrh3e2ek97hrvn3', - "m/44'/118'/2147483647'/0/0": 'cro1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u7eeukj', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1vkxewp3p7hfnyzzs3q74gym7q7xt7r7axn48yk", + "m/44'/118'/1'/0/0": "cro1xzueyvhrt0efrtvtfphngdnaqn5rvc3nlmyr7y", + "m/44'/118'/21234567'/0/0": "cro16z7lkyx9vk2cewwxlmtyehudlx9xhjdup5we6k", + "m/44'/118'/2147483646'/0/0": "cro130vs3v0kq2vx4wva6y3n7rxtrh3e2ek97hrvn3", + "m/44'/118'/2147483647'/0/0": "cro1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u7eeukj" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ad4566s', - "m/44'/118'/1'/0/0": 'fetch1xzueyvhrt0efrtvtfphngdnaqn5rvc3n5a97qz', - "m/44'/118'/21234567'/0/0": 'fetch16z7lkyx9vk2cewwxlmtyehudlx9xhjdu2j0yys', - "m/44'/118'/2147483646'/0/0": 'fetch130vs3v0kq2vx4wva6y3n7rxtrh3e2ek943z3dh', - "m/44'/118'/2147483647'/0/0": 'fetch1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u4lcpg5', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ad4566s", + "m/44'/118'/1'/0/0": "fetch1xzueyvhrt0efrtvtfphngdnaqn5rvc3n5a97qz", + "m/44'/118'/21234567'/0/0": "fetch16z7lkyx9vk2cewwxlmtyehudlx9xhjdu2j0yys", + "m/44'/118'/2147483646'/0/0": "fetch130vs3v0kq2vx4wva6y3n7rxtrh3e2ek943z3dh", + "m/44'/118'/2147483647'/0/0": "fetch1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4u4lcpg5" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1vkxewp3p7hfnyzzs3q74gym7q7xt7r7aknwww4', - "m/44'/118'/1'/0/0": 'osmo1xzueyvhrt0efrtvtfphngdnaqn5rvc3n0ml258', - "m/44'/118'/21234567'/0/0": 'osmo16z7lkyx9vk2cewwxlmtyehudlx9xhjdu354ss4', - "m/44'/118'/2147483646'/0/0": 'osmo130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9whc9ej', - "m/44'/118'/2147483647'/0/0": 'osmo1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uwez4u3', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1vkxewp3p7hfnyzzs3q74gym7q7xt7r7aknwww4", + "m/44'/118'/1'/0/0": "osmo1xzueyvhrt0efrtvtfphngdnaqn5rvc3n0ml258", + "m/44'/118'/21234567'/0/0": "osmo16z7lkyx9vk2cewwxlmtyehudlx9xhjdu354ss4", + "m/44'/118'/2147483646'/0/0": "osmo130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9whc9ej", + "m/44'/118'/2147483647'/0/0": "osmo1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uwez4u3" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ag679lm', - "m/44'/118'/1'/0/0": 'juno1xzueyvhrt0efrtvtfphngdnaqn5rvc3n3j0p9f', - "m/44'/118'/21234567'/0/0": 'juno16z7lkyx9vk2cewwxlmtyehudlx9xhjdu0a9mpm', - "m/44'/118'/2147483646'/0/0": 'juno130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9s7gwgu', - "m/44'/118'/2147483647'/0/0": 'juno1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4ussj7dl', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1vkxewp3p7hfnyzzs3q74gym7q7xt7r7ag679lm", + "m/44'/118'/1'/0/0": "juno1xzueyvhrt0efrtvtfphngdnaqn5rvc3n3j0p9f", + "m/44'/118'/21234567'/0/0": "juno16z7lkyx9vk2cewwxlmtyehudlx9xhjdu0a9mpm", + "m/44'/118'/2147483646'/0/0": "juno130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9s7gwgu", + "m/44'/118'/2147483647'/0/0": "juno1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4ussj7dl" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1vkxewp3p7hfnyzzs3q74gym7q7xt7r7acv8768', - "m/44'/118'/1'/0/0": 'terra1xzueyvhrt0efrtvtfphngdnaqn5rvc3npyk6q4', - "m/44'/118'/21234567'/0/0": 'terra16z7lkyx9vk2cewwxlmtyehudlx9xhjdultuqy8', - "m/44'/118'/2147483646'/0/0": 'terra130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9qg34dq', - "m/44'/118'/2147483647'/0/0": 'terra1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uqxt9gr', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1vkxewp3p7hfnyzzs3q74gym7q7xt7r7acv8768", + "m/44'/118'/1'/0/0": "terra1xzueyvhrt0efrtvtfphngdnaqn5rvc3npyk6q4", + "m/44'/118'/21234567'/0/0": "terra16z7lkyx9vk2cewwxlmtyehudlx9xhjdultuqy8", + "m/44'/118'/2147483646'/0/0": "terra130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9qg34dq", + "m/44'/118'/2147483647'/0/0": "terra1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uqxt9gr" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1vkxewp3p7hfnyzzs3q74gym7q7xt7r7audfh9m', - "m/44'/118'/1'/0/0": 'secret1xzueyvhrt0efrtvtfphngdnaqn5rvc3n99cnlf', - "m/44'/118'/21234567'/0/0": 'secret16z7lkyx9vk2cewwxlmtyehudlx9xhjdum2jfmm', - "m/44'/118'/2147483646'/0/0": 'secret130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9yfluju', - "m/44'/118'/2147483647'/0/0": 'secret1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uy89vhl', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1vkxewp3p7hfnyzzs3q74gym7q7xt7r7audfh9m", + "m/44'/118'/1'/0/0": "secret1xzueyvhrt0efrtvtfphngdnaqn5rvc3n99cnlf", + "m/44'/118'/21234567'/0/0": "secret16z7lkyx9vk2cewwxlmtyehudlx9xhjdum2jfmm", + "m/44'/118'/2147483646'/0/0": "secret130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9yfluju", + "m/44'/118'/2147483647'/0/0": "secret1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uy89vhl" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a0zvwz2', - "m/44'/118'/1'/0/0": 'celestia1xzueyvhrt0efrtvtfphngdnaqn5rvc3nk2a2cc', - "m/44'/118'/21234567'/0/0": 'celestia16z7lkyx9vk2cewwxlmtyehudlx9xhjdug9hsu2', - "m/44'/118'/2147483646'/0/0": 'celestia130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9hx694d', - "m/44'/118'/2147483647'/0/0": 'celestia1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uhgq4sw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1vkxewp3p7hfnyzzs3q74gym7q7xt7r7a0zvwz2", + "m/44'/118'/1'/0/0": "celestia1xzueyvhrt0efrtvtfphngdnaqn5rvc3nk2a2cc", + "m/44'/118'/21234567'/0/0": "celestia16z7lkyx9vk2cewwxlmtyehudlx9xhjdug9hsu2", + "m/44'/118'/2147483646'/0/0": "celestia130vs3v0kq2vx4wva6y3n7rxtrh3e2ek9hx694d", + "m/44'/118'/2147483647'/0/0": "celestia1dp5t6hqrkf6vfcmcxp07y75ezmmkvs4uhgq4sw" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0xeebb6cb4b8df26e8aa9cb5c1a5e8693812cdd98056f96150c91d4fd7165179af', - "m/44'/784'/1'/0'/0'": '0x1d79f0a88ef229fe3b2e5e11fe26648b7bba15bc6ddf99f8904f87f8085ea176', - "m/44'/784'/21234567'/0'/0'": - '0x0eca6b71e1cfe03b5e35ab7d31c6b0e69fce0a13b5407c1d1d68aad686d2a67e', - "m/44'/784'/2147483646'/0'/0'": - '0x35a94cd455d231b1144c50cf778f01e9866caec6d181afdebcd9fec2a6b4a66e', - "m/44'/784'/2147483647'/0'/0'": - '0xe75322c00c627addc2b8c5ed4b62d4ea98727a1dfefda5ce57d363ddb81bbee2', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0xeebb6cb4b8df26e8aa9cb5c1a5e8693812cdd98056f96150c91d4fd7165179af", + "m/44'/784'/1'/0'/0'": "0x1d79f0a88ef229fe3b2e5e11fe26648b7bba15bc6ddf99f8904f87f8085ea176", + "m/44'/784'/21234567'/0'/0'": "0x0eca6b71e1cfe03b5e35ab7d31c6b0e69fce0a13b5407c1d1d68aad686d2a67e", + "m/44'/784'/2147483646'/0'/0'": "0x35a94cd455d231b1144c50cf778f01e9866caec6d181afdebcd9fec2a6b4a66e", + "m/44'/784'/2147483647'/0'/0'": "0xe75322c00c627addc2b8c5ed4b62d4ea98727a1dfefda5ce57d363ddb81bbee2" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb', - "m/44'/144'/1'/0/0": 'rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek', - "m/44'/144'/21234567'/0/0": 'rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq', - "m/44'/144'/2147483646'/0/0": 'rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y', - "m/44'/144'/2147483647'/0/0": 'rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb", + "m/44'/144'/1'/0/0": "rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek", + "m/44'/144'/21234567'/0/0": "rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq", + "m/44'/144'/2147483646'/0/0": "rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y", + "m/44'/144'/2147483647'/0/0": "rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC984b0eeb7d229bef420edf562e25d192affd3a32060afe0ba693b10a598115afcb38', - "m/44'/728'/1'/0'/0'": - 'BFCa9c5249c0b581568461665ea837abafba4ae0173fcb1179ce3aa4fa6185177546d77', - "m/44'/728'/21234567'/0'/0'": - 'BFC657a1997596e4515761a115a376d37cba301f860cb5a731e166997754c42ef88b7bf', - "m/44'/728'/2147483646'/0'/0'": - 'BFC5c712e8c8bcd9dfa719e65342ab9fb7c8b717956e670f4779f4fa49fb897f13daa37', - "m/44'/728'/2147483647'/0'/0'": - 'BFCfbd17ff8dba77fccad1f724983144160685008f0bf60bfd80ab448f29074d8c97a4c', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC984b0eeb7d229bef420edf562e25d192affd3a32060afe0ba693b10a598115afcb38", + "m/44'/728'/1'/0'/0'": "BFCa9c5249c0b581568461665ea837abafba4ae0173fcb1179ce3aa4fa6185177546d77", + "m/44'/728'/21234567'/0'/0'": "BFC657a1997596e4515761a115a376d37cba301f860cb5a731e166997754c42ef88b7bf", + "m/44'/728'/2147483646'/0'/0'": "BFC5c712e8c8bcd9dfa719e65342ab9fb7c8b717956e670f4779f4fa49fb897f13daa37", + "m/44'/728'/2147483647'/0'/0'": "BFCfbd17ff8dba77fccad1f724983144160685008f0bf60bfd80ab448f29074d8c97a4c" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1FqPBhFxoKBQivdSCG5sAHoBsJVvxs3cPSusvnQjqoUJ9', - "m/44'/1234'/1'/0/0": '15Cn1advWcJNsZoCGvSQg9ZTiEuGLUFrdvLMv3iLHhsVK', - "m/44'/1234'/21234567'/0/0": '12JiPhgeSspsVxDpPySV6Z9BedDNqv4an685XGXVEXn9v', - "m/44'/1234'/2147483646'/0/0": '1DZVC8R6KKGa9vHmmnFqdT7M4KcNiWjVfPEp5oYdd7esm', - "m/44'/1234'/2147483647'/0/0": '1DDtrygDKzKLuPi3jetpDJZddgXpXKsnu396V7wf33RMr', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1FqPBhFxoKBQivdSCG5sAHoBsJVvxs3cPSusvnQjqoUJ9", + "m/44'/1234'/1'/0/0": "15Cn1advWcJNsZoCGvSQg9ZTiEuGLUFrdvLMv3iLHhsVK", + "m/44'/1234'/21234567'/0/0": "12JiPhgeSspsVxDpPySV6Z9BedDNqv4an685XGXVEXn9v", + "m/44'/1234'/2147483646'/0/0": "1DZVC8R6KKGa9vHmmnFqdT7M4KcNiWjVfPEp5oYdd7esm", + "m/44'/1234'/2147483647'/0/0": "1DDtrygDKzKLuPi3jetpDJZddgXpXKsnu396V7wf33RMr" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'SJYZIZGBOLB6ZXJLFMS4BTIYZTYQEAHG75TQQIKX42XWHXCNWQURRFQ4O4', - "m/44'/283'/1'/0'/0'": 'H4VRWXGNOGB4FSU57ADSL7JSU34O6GHIFKX6GWTIZSM6NVVFEMNUUYZKTM', - "m/44'/283'/21234567'/0'/0'": 'I3GQRVU6YGQ77HYZMESFO5WLF4RDWTVPTCG67IIQIU6BFMBAQ654S56HDQ', - "m/44'/283'/2147483646'/0'/0'": - 'YNYZOGGZLEPBDVY6H23Z3WYAZV3B7HWWEPHLBBVPUQXB4SSKKAXTQIRLKA', - "m/44'/283'/2147483647'/0'/0'": - '54ROSQKLFOBFSUHHUESXND7K3V66VQWH5WLWCWAYIGOTML5UJA35ZZG7SU', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "SJYZIZGBOLB6ZXJLFMS4BTIYZTYQEAHG75TQQIKX42XWHXCNWQURRFQ4O4", + "m/44'/283'/1'/0'/0'": "H4VRWXGNOGB4FSU57ADSL7JSU34O6GHIFKX6GWTIZSM6NVVFEMNUUYZKTM", + "m/44'/283'/21234567'/0'/0'": "I3GQRVU6YGQ77HYZMESFO5WLF4RDWTVPTCG67IIQIU6BFMBAQ654S56HDQ", + "m/44'/283'/2147483646'/0'/0'": "YNYZOGGZLEPBDVY6H23Z3WYAZV3B7HWWEPHLBBVPUQXB4SSKKAXTQIRLKA", + "m/44'/283'/2147483647'/0'/0'": "54ROSQKLFOBFSUHHUESXND7K3V66VQWH5WLWCWAYIGOTML5UJA35ZZG7SU" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQD4viGZDPMLAVcsbqFjNt17VnE__XjvjTHTUwhzW1Xs40Pe', - "m/44'/607'/1'": 'UQAWwO9Z2WeYgLyiqKq9olLR1HnhqopWk-F6b5aWMrshREm5', - "m/44'/607'/21234567'": 'UQD4Oyv3DCZ_6OrgaVccL0O2lzZw_orZiT5UiWVW_5psZJ4M', - "m/44'/607'/2147483646'": 'UQAuiIZ2Qa3lw68UKxJehRYhjZifpg5FrGAe6VPqC0v017ri', - "m/44'/607'/2147483647'": 'UQDvdifxncoweqDLnGWelByWAyGkHtkmRESzFjUot7p0defj', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQD4viGZDPMLAVcsbqFjNt17VnE__XjvjTHTUwhzW1Xs40Pe", + "m/44'/607'/1'": "UQAWwO9Z2WeYgLyiqKq9olLR1HnhqopWk-F6b5aWMrshREm5", + "m/44'/607'/21234567'": "UQD4Oyv3DCZ_6OrgaVccL0O2lzZw_orZiT5UiWVW_5psZJ4M", + "m/44'/607'/2147483646'": "UQAuiIZ2Qa3lw68UKxJehRYhjZifpg5FrGAe6VPqC0v017ri", + "m/44'/607'/2147483647'": "UQDvdifxncoweqDLnGWelByWAyGkHtkmRESzFjUot7p0defj" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyq0kkuzx2ant796l9uhypzclkena7gv0tnqkvm8p7', - "m/44'/309'/1'/0/0": 'ckb1qyqx2wupc6an35rkajfl6euu2zyn3j80shmqvvr6c8', - "m/44'/309'/21234567'/0/0": 'ckb1qyq046qgahnm70mh6qyc7ruz8zrg5jaqh0nq8aeurt', - "m/44'/309'/2147483646'/0/0": 'ckb1qyq8gl9wfnxk08ztwzsnwj07qk8clc6d7zcs4ckst6', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqthu9mlqt3dtfvvkyrstjvlm0pzcu3z3jsrz2sp3', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyq0kkuzx2ant796l9uhypzclkena7gv0tnqkvm8p7", + "m/44'/309'/1'/0/0": "ckb1qyqx2wupc6an35rkajfl6euu2zyn3j80shmqvvr6c8", + "m/44'/309'/21234567'/0/0": "ckb1qyq046qgahnm70mh6qyc7ruz8zrg5jaqh0nq8aeurt", + "m/44'/309'/2147483646'/0/0": "ckb1qyq8gl9wfnxk08ztwzsnwj07qk8clc6d7zcs4ckst6", + "m/44'/309'/2147483647'/0/0": "ckb1qyqthu9mlqt3dtfvvkyrstjvlm0pzcu3z3jsrz2sp3" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5j4sz6x995kqmasu3q553f35d9sg4xn04v6ph6d3v', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5lr0x3p6uaqz8azt8u926q4zzxyyppl9vtxh4tq5s', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5y6ws5fu58ydqkv4kfargg23es5wuz4putcwvwzdq', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5azx276sjm2pqpjf8vralq0r07ef5mzvx22yfjze0', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g562c4uqcpmkjp8pyquzl2vldfleutuqek7z8rdeyz', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5j4sz6x995kqmasu3q553f35d9sg4xn04v6ph6d3v", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5lr0x3p6uaqz8azt8u926q4zzxyyppl9vtxh4tq5s", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5y6ws5fu58ydqkv4kfargg23es5wuz4putcwvwzdq", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5azx276sjm2pqpjf8vralq0r07ef5mzvx22yfjze0", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g562c4uqcpmkjp8pyquzl2vldfleutuqek7z8rdeyz" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb', - "m/44'/144'/1'/0/0": 'rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek', - "m/44'/144'/21234567'/0/0": 'rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq', - "m/44'/144'/2147483646'/0/0": 'rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y', - "m/44'/144'/2147483647'/0/0": 'rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rLScVBmRTghjWoL99VJwKt5pnRfn7baKfb", + "m/44'/144'/1'/0/0": "rMAZFUcJQcZFTrWhjS7mEbcfudrDEYYWek", + "m/44'/144'/21234567'/0/0": "rEvKgTYJfLuaSzjvQhmFawacWzsKYghRDq", + "m/44'/144'/2147483646'/0/0": "rfKeVS3WPMgfQScrYZigKeWvavrzeuAd7y", + "m/44'/144'/2147483647'/0/0": "rGwiaRLNKWgw2oTzvcoDxrBvLeGim7uHL8" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S013bfb161a7d49bc3a473d13b7a04474b4d088b1', - "m/44'/541'/1'/0/0": '1S0196e3033b96debdd33c515e0b9f5c300131e561', - "m/44'/541'/21234567'/0/0": '1S019737fdadd1491397db451f8b3e352aefb94a21', - "m/44'/541'/2147483646'/0/0": '1S01017cbdaecc7f5641f5dfe824390c81170011d1', - "m/44'/541'/2147483647'/0/0": '1S01735e6c0386d2962d5c7a165ffd9050f1600421', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S013bfb161a7d49bc3a473d13b7a04474b4d088b1", + "m/44'/541'/1'/0/0": "1S0196e3033b96debdd33c515e0b9f5c300131e561", + "m/44'/541'/21234567'/0/0": "1S019737fdadd1491397db451f8b3e352aefb94a21", + "m/44'/541'/2147483646'/0/0": "1S01017cbdaecc7f5641f5dfe824390c81170011d1", + "m/44'/541'/2147483647'/0/0": "1S01735e6c0386d2962d5c7a165ffd9050f1600421" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/normal.ts index 71b1ea384..c1d8aa24c 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/normal.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoNormal: SLIP39TestCaseData = { - id: 'count20_two_normal', - name: 'count20_two_normal', - description: '2-of-3 (20 words each) + normal', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_normal", + "name": "count20_two_normal", + "description": "2-of-3 (20 words each) + normal", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '14X9zG8nvzgxugBzqBt9f13vDtCFLdbTMm', - "m/44'/0'/1'/0/0": '12P7d2ciP514Lo6kztqKJ2YCTxXwirVdsk', - "m/44'/0'/21234567'/0/0": '1Kqsi3vTDjp18rCZUb2F595uNUFuXWkDua', - "m/44'/0'/2147483646'/0/0": '1BrJcPCCgoYWtoGHFVhkLqyz5fdiJSrrt6', - "m/44'/0'/2147483647'/0/0": '1MfgbYLv2w794NQGsc45s28TdnmFDsVc7s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "14X9zG8nvzgxugBzqBt9f13vDtCFLdbTMm", + "m/44'/0'/1'/0/0": "12P7d2ciP514Lo6kztqKJ2YCTxXwirVdsk", + "m/44'/0'/21234567'/0/0": "1Kqsi3vTDjp18rCZUb2F595uNUFuXWkDua", + "m/44'/0'/2147483646'/0/0": "1BrJcPCCgoYWtoGHFVhkLqyz5fdiJSrrt6", + "m/44'/0'/2147483647'/0/0": "1MfgbYLv2w794NQGsc45s28TdnmFDsVc7s" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CWC8JjzC1SLtVf43XCHRTBJPwK65v3dqN', - "m/49'/0'/1'/0/0": '32qATyAA18EDSEPUCMxvUkbU87kdW9bYWu', - "m/49'/0'/21234567'/0/0": '3NLMhxZqV5tdgroBFWny9XfszQqJ6PbCxx', - "m/49'/0'/2147483646'/0/0": '3HeVxgJ3uPEwSowUBQXQHCLggubUW8Mq9B', - "m/49'/0'/2147483647'/0/0": '3DLXSNXXSq1HpGqNbZNm9wADs3z61m9KCt', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CWC8JjzC1SLtVf43XCHRTBJPwK65v3dqN", + "m/49'/0'/1'/0/0": "32qATyAA18EDSEPUCMxvUkbU87kdW9bYWu", + "m/49'/0'/21234567'/0/0": "3NLMhxZqV5tdgroBFWny9XfszQqJ6PbCxx", + "m/49'/0'/2147483646'/0/0": "3HeVxgJ3uPEwSowUBQXQHCLggubUW8Mq9B", + "m/49'/0'/2147483647'/0/0": "3DLXSNXXSq1HpGqNbZNm9wADs3z61m9KCt" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q2duevw8dps5p9yf8hmuxaace9xlzz9qk7tcw9e', - "m/84'/0'/1'/0/0": 'bc1q06g2spsrdze5eaaf366f6vyf7r77ykcgfvj4wk', - "m/84'/0'/21234567'/0/0": 'bc1q2wa74l33nsm2eqtaa4jcq258zss07wjmh5qefx', - "m/84'/0'/2147483646'/0/0": 'bc1qqt4dcu0k3uysrtkevhk6mha59eumcxjygwxu2r', - "m/84'/0'/2147483647'/0/0": 'bc1qtyxxntc9hxzsvxzx72xguds840vxvyp0m0wta9', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q2duevw8dps5p9yf8hmuxaace9xlzz9qk7tcw9e", + "m/84'/0'/1'/0/0": "bc1q06g2spsrdze5eaaf366f6vyf7r77ykcgfvj4wk", + "m/84'/0'/21234567'/0/0": "bc1q2wa74l33nsm2eqtaa4jcq258zss07wjmh5qefx", + "m/84'/0'/2147483646'/0/0": "bc1qqt4dcu0k3uysrtkevhk6mha59eumcxjygwxu2r", + "m/84'/0'/2147483647'/0/0": "bc1qtyxxntc9hxzsvxzx72xguds840vxvyp0m0wta9" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pxc8x020txshxjnklnq33ftsjzcflp3d508ceyluk5tysw6jqsszq8g7hxl', - "m/86'/0'/1'/0/0": 'bc1pxy83s4xtt8006x5ptg669av6xs9fs9ac63zkurqr3hsrmcdlm53q44nqc0', - "m/86'/0'/21234567'/0/0": 'bc1pl0mcccmtrg8rhpggyel4zw4cjsgvnpxudlksavfsflmzrg33autsrdfk8c', - "m/86'/0'/2147483646'/0/0": - 'bc1pkqlssuvf44u3r83q93746nrf6slw4sksx2r722743xvj72jstghsc3nh4m', - "m/86'/0'/2147483647'/0/0": - 'bc1ps34hegykjqmr7gypd2u0tqwa8p76fns6veprjnrwlveq6rv45ehsvr9nt8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pxc8x020txshxjnklnq33ftsjzcflp3d508ceyluk5tysw6jqsszq8g7hxl", + "m/86'/0'/1'/0/0": "bc1pxy83s4xtt8006x5ptg669av6xs9fs9ac63zkurqr3hsrmcdlm53q44nqc0", + "m/86'/0'/21234567'/0/0": "bc1pl0mcccmtrg8rhpggyel4zw4cjsgvnpxudlksavfsflmzrg33autsrdfk8c", + "m/86'/0'/2147483646'/0/0": "bc1pkqlssuvf44u3r83q93746nrf6slw4sksx2r722743xvj72jstghsc3nh4m", + "m/86'/0'/2147483647'/0/0": "bc1ps34hegykjqmr7gypd2u0tqwa8p76fns6veprjnrwlveq6rv45ehsvr9nt8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DTKToV4b3qzL6Dtm2K9pj2e31V9gXgF6u1', - "m/44'/3'/1'/0/0": 'DKWBgWPtLpfqtS9Eu3fZXaN8FfxbYFinbX', - "m/44'/3'/21234567'/0/0": 'DD3pAtDEwLtNkVtqCoMAEJrUUzL8StnTcp', - "m/44'/3'/2147483646'/0/0": 'DHnkyVdUKCg9PoZsip3Ua9tZC8K2B9JHkf', - "m/44'/3'/2147483647'/0/0": 'D7vBb9X9Q4qbMMLDVQ9Rw2XLQdDGiG5BVA', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DTKToV4b3qzL6Dtm2K9pj2e31V9gXgF6u1", + "m/44'/3'/1'/0/0": "DKWBgWPtLpfqtS9Eu3fZXaN8FfxbYFinbX", + "m/44'/3'/21234567'/0/0": "DD3pAtDEwLtNkVtqCoMAEJrUUzL8StnTcp", + "m/44'/3'/2147483646'/0/0": "DHnkyVdUKCg9PoZsip3Ua9tZC8K2B9JHkf", + "m/44'/3'/2147483647'/0/0": "D7vBb9X9Q4qbMMLDVQ9Rw2XLQdDGiG5BVA" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qqceuerman7hwyptcmftm94cffu5682qwg40mfw43f', - "m/44'/145'/1'/0/0": 'bitcoincash:qz9n8n0k76y2apgucu9cw22n0ag87ax89c6ag3mttx', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qrt59hpdq57904qksydgvu8dvmx9gafkjyych05c5h', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq3psxz0jzmf42h7h579rk8m52x5smhpqv8y3t4awu', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qqj5w8ekkdvl8334lt3cp05t7gme67cmuu2dpwweu4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qqceuerman7hwyptcmftm94cffu5682qwg40mfw43f", + "m/44'/145'/1'/0/0": "bitcoincash:qz9n8n0k76y2apgucu9cw22n0ag87ax89c6ag3mttx", + "m/44'/145'/21234567'/0/0": "bitcoincash:qrt59hpdq57904qksydgvu8dvmx9gafkjyych05c5h", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq3psxz0jzmf42h7h579rk8m52x5smhpqv8y3t4awu", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qqj5w8ekkdvl8334lt3cp05t7gme67cmuu2dpwweu4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LZUPvah5jvmQFUhAFZbHxtbwuFFxhBXe6L', - "m/44'/2'/1'/0/0": 'LdPABFmLEgp7deqjcQ1aeTuyhuQC3y9xRj', - "m/44'/2'/21234567'/0/0": 'LU6DfZDmXmeRLr7AghNLEKeHTjMR2jqmbB', - "m/44'/2'/2147483646'/0/0": 'LfvKFgPqEGfMWFzkExDe62eaZKhBqwzNw7', - "m/44'/2'/2147483647'/0/0": 'LgXr25WGDtxsDYHTwhyBqtHYrDm61coDiQ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LZUPvah5jvmQFUhAFZbHxtbwuFFxhBXe6L", + "m/44'/2'/1'/0/0": "LdPABFmLEgp7deqjcQ1aeTuyhuQC3y9xRj", + "m/44'/2'/21234567'/0/0": "LU6DfZDmXmeRLr7AghNLEKeHTjMR2jqmbB", + "m/44'/2'/2147483646'/0/0": "LfvKFgPqEGfMWFzkExDe62eaZKhBqwzNw7", + "m/44'/2'/2147483647'/0/0": "LgXr25WGDtxsDYHTwhyBqtHYrDm61coDiQ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MLKkY33LYWJk1py1efvPWqPJqhHDhGygVQ', - "m/49'/2'/1'/0/0": 'MQKyT6bUga1PkZCKkxd4kPhkWmoa1Q4KqQ', - "m/49'/2'/21234567'/0/0": 'MHxAr6WPxFX9he5bLHZpY2mKfKgmbgp34M', - "m/49'/2'/2147483646'/0/0": 'MBmLQ6Gv2zYhQqcUtduzPN7fbKK1p1GQeX', - "m/49'/2'/2147483647'/0/0": 'MXEA9EQ8PDMFYaLakfMn52xJyFFFHqh5UB', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MLKkY33LYWJk1py1efvPWqPJqhHDhGygVQ", + "m/49'/2'/1'/0/0": "MQKyT6bUga1PkZCKkxd4kPhkWmoa1Q4KqQ", + "m/49'/2'/21234567'/0/0": "MHxAr6WPxFX9he5bLHZpY2mKfKgmbgp34M", + "m/49'/2'/2147483646'/0/0": "MBmLQ6Gv2zYhQqcUtduzPN7fbKK1p1GQeX", + "m/49'/2'/2147483647'/0/0": "MXEA9EQ8PDMFYaLakfMn52xJyFFFHqh5UB" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q9g356d0h5ty0cxz6qe0men3s0xwqfcrvxwc66d', - "m/84'/2'/1'/0/0": 'ltc1qtqzcyvn760ylv69nclvdcq0wwvta2qkm33waph', - "m/84'/2'/21234567'/0/0": 'ltc1q8kut4cx5x8aedvw05f8kq5g89u5z3hjmg4q66t', - "m/84'/2'/2147483646'/0/0": 'ltc1qq4eh5jpkhmmlkg5rda0kulm2k87mvxrx69kz7e', - "m/84'/2'/2147483647'/0/0": 'ltc1qwy90trh2jmm2uc4cmrzx7fs5gr5fpde5rqyqch', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q9g356d0h5ty0cxz6qe0men3s0xwqfcrvxwc66d", + "m/84'/2'/1'/0/0": "ltc1qtqzcyvn760ylv69nclvdcq0wwvta2qkm33waph", + "m/84'/2'/21234567'/0/0": "ltc1q8kut4cx5x8aedvw05f8kq5g89u5z3hjmg4q66t", + "m/84'/2'/2147483646'/0/0": "ltc1qq4eh5jpkhmmlkg5rda0kulm2k87mvxrx69kz7e", + "m/84'/2'/2147483647'/0/0": "ltc1qwy90trh2jmm2uc4cmrzx7fs5gr5fpde5rqyqch" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NZvn7YxfMUTMZvacd6XLs2EBdJiQGTjf1m', - "m/44'/1900'/1'/0/0": 'Ne5fCeQzwscnn18tP22BDLhrNmtVMV3fo6', - "m/44'/1900'/21234567'/0/0": 'NNVGDPvqyCCPcUE6vHEL1yQeVCWfQ2YLFe', - "m/44'/1900'/2147483646'/0/0": 'Niqi9MLo4ogHZGSHZpuhELrV4HHk48skdJ', - "m/44'/1900'/2147483647'/0/0": 'NdstUwksNiDmAhfD5rmGTnjXv2gX956MkA', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NZvn7YxfMUTMZvacd6XLs2EBdJiQGTjf1m", + "m/44'/1900'/1'/0/0": "Ne5fCeQzwscnn18tP22BDLhrNmtVMV3fo6", + "m/44'/1900'/21234567'/0/0": "NNVGDPvqyCCPcUE6vHEL1yQeVCWfQ2YLFe", + "m/44'/1900'/2147483646'/0/0": "Niqi9MLo4ogHZGSHZpuhELrV4HHk48skdJ", + "m/44'/1900'/2147483647'/0/0": "NdstUwksNiDmAhfD5rmGTnjXv2gX956MkA" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x10B9B06FE61d9D5Dd78A1352FC277420cC8e38cC', - "m/44'/60'/1'/0/0": '0x434bE59Fcdf79BfDfA882C56A53dD8800ad83C97', - "m/44'/60'/21234567'/0/0": '0x3544DeA84245194484ed4dEAB096dCB22A5977F5', - "m/44'/60'/2147483646'/0/0": '0xA1a56f752870A1f459a2664265EC311F59961004', - "m/44'/60'/2147483647'/0/0": '0x5aFAD49F56cF63FBA76999699A401cd0C532a90D', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x10B9B06FE61d9D5Dd78A1352FC277420cC8e38cC", + "m/44'/60'/1'/0/0": "0x434bE59Fcdf79BfDfA882C56A53dD8800ad83C97", + "m/44'/60'/21234567'/0/0": "0x3544DeA84245194484ed4dEAB096dCB22A5977F5", + "m/44'/60'/2147483646'/0/0": "0xA1a56f752870A1f459a2664265EC311F59961004", + "m/44'/60'/2147483647'/0/0": "0x5aFAD49F56cF63FBA76999699A401cd0C532a90D" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x712fd85377c6bdD1A42ed4406948E3c9f15d285d', - "m/44'/61'/1'/0/0": '0x7E65F236b88793fe513607d28E7307CCeE05D2c4', - "m/44'/61'/21234567'/0/0": '0x919A8f38D260A05c3E4898902116e5ED7a01B835', - "m/44'/61'/2147483646'/0/0": '0x8b0F5fBedBf93b76335a6038384437E40f562F6a', - "m/44'/61'/2147483647'/0/0": '0xa47E9C23EA071F9523c4fc2125b719D61d3E46Ef', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x712fd85377c6bdD1A42ed4406948E3c9f15d285d", + "m/44'/61'/1'/0/0": "0x7E65F236b88793fe513607d28E7307CCeE05D2c4", + "m/44'/61'/21234567'/0/0": "0x919A8f38D260A05c3E4898902116e5ED7a01B835", + "m/44'/61'/2147483646'/0/0": "0x8b0F5fBedBf93b76335a6038384437E40f562F6a", + "m/44'/61'/2147483647'/0/0": "0xa47E9C23EA071F9523c4fc2125b719D61d3E46Ef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1npt5apg6v4eh7nk4hu7442dkzkm7uk03p6nczd', - "m/44'/118'/1'/0/0": 'cosmos1m5kztl9hxr7fqvdltsdkas3jgs5s7a2etp82lx', - "m/44'/118'/21234567'/0/0": 'cosmos1uez8x4sgpeqe45e90e4kkhc29dcltd4spayy7t', - "m/44'/118'/2147483646'/0/0": 'cosmos19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3elmdcf', - "m/44'/118'/2147483647'/0/0": 'cosmos1dk5l3aelqpq09mhxtpwk6wraptken7kqfx7cqn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1npt5apg6v4eh7nk4hu7442dkzkm7uk03p6nczd", + "m/44'/118'/1'/0/0": "cosmos1m5kztl9hxr7fqvdltsdkas3jgs5s7a2etp82lx", + "m/44'/118'/21234567'/0/0": "cosmos1uez8x4sgpeqe45e90e4kkhc29dcltd4spayy7t", + "m/44'/118'/2147483646'/0/0": "cosmos19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3elmdcf", + "m/44'/118'/2147483647'/0/0": "cosmos1dk5l3aelqpq09mhxtpwk6wraptken7kqfx7cqn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1npt5apg6v4eh7nk4hu7442dkzkm7uk03vp7lmh', - "m/44'/118'/1'/0/0": 'akash1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ex62dxu', - "m/44'/118'/21234567'/0/0": 'akash1uez8x4sgpeqe45e90e4kkhc29dcltd4svxfr83', - "m/44'/118'/2147483646'/0/0": 'akash19e7z0kafw7wjtmdzw9hzeltgh9vr3mt35yk2pn', - "m/44'/118'/2147483647'/0/0": 'akash1dk5l3aelqpq09mhxtpwk6wraptken7kqyanlef', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1npt5apg6v4eh7nk4hu7442dkzkm7uk03vp7lmh", + "m/44'/118'/1'/0/0": "akash1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ex62dxu", + "m/44'/118'/21234567'/0/0": "akash1uez8x4sgpeqe45e90e4kkhc29dcltd4svxfr83", + "m/44'/118'/2147483646'/0/0": "akash19e7z0kafw7wjtmdzw9hzeltgh9vr3mt35yk2pn", + "m/44'/118'/2147483647'/0/0": "akash1dk5l3aelqpq09mhxtpwk6wraptken7kqyanlef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1npt5apg6v4eh7nk4hu7442dkzkm7uk03epmp7u', - "m/44'/118'/1'/0/0": 'cro1m5kztl9hxr7fqvdltsdkas3jgs5s7a2en60nrh', - "m/44'/118'/21234567'/0/0": 'cro1uez8x4sgpeqe45e90e4kkhc29dcltd4sexvaz6', - "m/44'/118'/2147483646'/0/0": 'cro19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3pyn5yc', - "m/44'/118'/2147483647'/0/0": 'cro1dk5l3aelqpq09mhxtpwk6wraptken7kq3akpuz', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1npt5apg6v4eh7nk4hu7442dkzkm7uk03epmp7u", + "m/44'/118'/1'/0/0": "cro1m5kztl9hxr7fqvdltsdkas3jgs5s7a2en60nrh", + "m/44'/118'/21234567'/0/0": "cro1uez8x4sgpeqe45e90e4kkhc29dcltd4sexvaz6", + "m/44'/118'/2147483646'/0/0": "cro19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3pyn5yc", + "m/44'/118'/2147483647'/0/0": "cro1dk5l3aelqpq09mhxtpwk6wraptken7kq3akpuz" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1npt5apg6v4eh7nk4hu7442dkzkm7uk03j86uq6', - "m/44'/118'/1'/0/0": 'fetch1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ecuwwa3', - "m/44'/118'/21234567'/0/0": 'fetch1uez8x4sgpeqe45e90e4kkhc29dcltd4sjqdquu', - "m/44'/118'/2147483646'/0/0": 'fetch19e7z0kafw7wjtmdzw9hzeltgh9vr3mt32zjf67', - "m/44'/118'/2147483647'/0/0": 'fetch1dk5l3aelqpq09mhxtpwk6wraptken7kq6mhuzy', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1npt5apg6v4eh7nk4hu7442dkzkm7uk03j86uq6", + "m/44'/118'/1'/0/0": "fetch1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ecuwwa3", + "m/44'/118'/21234567'/0/0": "fetch1uez8x4sgpeqe45e90e4kkhc29dcltd4sjqdquu", + "m/44'/118'/2147483646'/0/0": "fetch19e7z0kafw7wjtmdzw9hzeltgh9vr3mt32zjf67", + "m/44'/118'/2147483647'/0/0": "fetch1dk5l3aelqpq09mhxtpwk6wraptken7kq6mhuzy" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1npt5apg6v4eh7nk4hu7442dkzkm7uk03fpqg5l', - "m/44'/118'/1'/0/0": 'osmo1m5kztl9hxr7fqvdltsdkas3jgs5s7a2er656f5', - "m/44'/118'/21234567'/0/0": 'osmo1uez8x4sgpeqe45e90e4kkhc29dcltd4sfxh5ge', - "m/44'/118'/2147483646'/0/0": 'osmo19e7z0kafw7wjtmdzw9hzeltgh9vr3mt33ygawm', - "m/44'/118'/2147483647'/0/0": 'osmo1dk5l3aelqpq09mhxtpwk6wraptken7kqpadgkp', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1npt5apg6v4eh7nk4hu7442dkzkm7uk03fpqg5l", + "m/44'/118'/1'/0/0": "osmo1m5kztl9hxr7fqvdltsdkas3jgs5s7a2er656f5", + "m/44'/118'/21234567'/0/0": "osmo1uez8x4sgpeqe45e90e4kkhc29dcltd4sfxh5ge", + "m/44'/118'/2147483646'/0/0": "osmo19e7z0kafw7wjtmdzw9hzeltgh9vr3mt33ygawm", + "m/44'/118'/2147483647'/0/0": "osmo1dk5l3aelqpq09mhxtpwk6wraptken7kqpadgkp" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1npt5apg6v4eh7nk4hu7442dkzkm7uk03hgsr93', - "m/44'/118'/1'/0/0": 'juno1m5kztl9hxr7fqvdltsdkas3jgs5s7a2eany3c6', - "m/44'/118'/21234567'/0/0": 'juno1uez8x4sgpeqe45e90e4kkhc29dcltd4sh08leh', - "m/44'/118'/2147483646'/0/0": 'juno19e7z0kafw7wjtmdzw9hzeltgh9vr3mt30dckl4', - "m/44'/118'/2147483647'/0/0": 'juno1dk5l3aelqpq09mhxtpwk6wraptken7kql5ar80', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1npt5apg6v4eh7nk4hu7442dkzkm7uk03hgsr93", + "m/44'/118'/1'/0/0": "juno1m5kztl9hxr7fqvdltsdkas3jgs5s7a2eany3c6", + "m/44'/118'/21234567'/0/0": "juno1uez8x4sgpeqe45e90e4kkhc29dcltd4sh08leh", + "m/44'/118'/2147483646'/0/0": "juno19e7z0kafw7wjtmdzw9hzeltgh9vr3mt30dckl4", + "m/44'/118'/2147483647'/0/0": "juno1dk5l3aelqpq09mhxtpwk6wraptken7kql5ar80" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1npt5apg6v4eh7nk4hu7442dkzkm7uk0387fcqd', - "m/44'/118'/1'/0/0": 'terra1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ed9a2ax', - "m/44'/118'/21234567'/0/0": 'terra1uez8x4sgpeqe45e90e4kkhc29dcltd4s8e7yut', - "m/44'/118'/2147483646'/0/0": 'terra19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3lmpd6f', - "m/44'/118'/2147483647'/0/0": 'terra1dk5l3aelqpq09mhxtpwk6wraptken7kq0zyczn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1npt5apg6v4eh7nk4hu7442dkzkm7uk0387fcqd", + "m/44'/118'/1'/0/0": "terra1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ed9a2ax", + "m/44'/118'/21234567'/0/0": "terra1uez8x4sgpeqe45e90e4kkhc29dcltd4s8e7yut", + "m/44'/118'/2147483646'/0/0": "terra19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3lmpd6f", + "m/44'/118'/2147483647'/0/0": "terra1dk5l3aelqpq09mhxtpwk6wraptken7kq0zyczn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1npt5apg6v4eh7nk4hu7442dkzkm7uk03rl83l3', - "m/44'/118'/1'/0/0": 'secret1m5kztl9hxr7fqvdltsdkas3jgs5s7a2efynrz6', - "m/44'/118'/21234567'/0/0": 'secret1uez8x4sgpeqe45e90e4kkhc29dcltd4srcsdrh', - "m/44'/118'/2147483646'/0/0": 'secret19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3m60y94', - "m/44'/118'/2147483647'/0/0": 'secret1dk5l3aelqpq09mhxtpwk6wraptken7kqtr23a0', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1npt5apg6v4eh7nk4hu7442dkzkm7uk03rl83l3", + "m/44'/118'/1'/0/0": "secret1m5kztl9hxr7fqvdltsdkas3jgs5s7a2efynrz6", + "m/44'/118'/21234567'/0/0": "secret1uez8x4sgpeqe45e90e4kkhc29dcltd4srcsdrh", + "m/44'/118'/2147483646'/0/0": "secret19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3m60y94", + "m/44'/118'/2147483647'/0/0": "secret1dk5l3aelqpq09mhxtpwk6wraptken7kqtr23a0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1npt5apg6v4eh7nk4hu7442dkzkm7uk03sszgcq', - "m/44'/118'/1'/0/0": 'celestia1m5kztl9hxr7fqvdltsdkas3jgs5s7a2e6tk69t', - "m/44'/118'/21234567'/0/0": 'celestia1uez8x4sgpeqe45e90e4kkhc29dcltd4ssh45yx', - "m/44'/118'/2147483646'/0/0": 'celestia19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3g42azy', - "m/44'/118'/2147483647'/0/0": 'celestia1dk5l3aelqpq09mhxtpwk6wraptken7kqcv0g67', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1npt5apg6v4eh7nk4hu7442dkzkm7uk03sszgcq", + "m/44'/118'/1'/0/0": "celestia1m5kztl9hxr7fqvdltsdkas3jgs5s7a2e6tk69t", + "m/44'/118'/21234567'/0/0": "celestia1uez8x4sgpeqe45e90e4kkhc29dcltd4ssh45yx", + "m/44'/118'/2147483646'/0/0": "celestia19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3g42azy", + "m/44'/118'/2147483647'/0/0": "celestia1dk5l3aelqpq09mhxtpwk6wraptken7kqcv0g67" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x84088f78448db43e9d2d25461baca28a7506895d1fb092d0f60774c6ec8c7752', - "m/44'/784'/1'/0'/0'": '0xf31fc42ec03a5eacc21b74646d1198b09734583cda1282ffea1ea4e395e736b7', - "m/44'/784'/21234567'/0'/0'": - '0x6165572f86e6b8bada59e6292ea15a55f637e4196d8ad3f11ef664e0a2b41457', - "m/44'/784'/2147483646'/0'/0'": - '0x5c3c6b049f825cc5f87a3ad629170729a97b40a411c3c9c1a85a23ab74b4e922', - "m/44'/784'/2147483647'/0'/0'": - '0xb7f62b10f0860712e73057d5e14565e578cc5e1db0c35d27eea7c5a9ee0aa523', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x84088f78448db43e9d2d25461baca28a7506895d1fb092d0f60774c6ec8c7752", + "m/44'/784'/1'/0'/0'": "0xf31fc42ec03a5eacc21b74646d1198b09734583cda1282ffea1ea4e395e736b7", + "m/44'/784'/21234567'/0'/0'": "0x6165572f86e6b8bada59e6292ea15a55f637e4196d8ad3f11ef664e0a2b41457", + "m/44'/784'/2147483646'/0'/0'": "0x5c3c6b049f825cc5f87a3ad629170729a97b40a411c3c9c1a85a23ab74b4e922", + "m/44'/784'/2147483647'/0'/0'": "0xb7f62b10f0860712e73057d5e14565e578cc5e1db0c35d27eea7c5a9ee0aa523" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY', - "m/44'/144'/1'/0/0": 'rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n', - "m/44'/144'/21234567'/0/0": 'rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8', - "m/44'/144'/2147483646'/0/0": 'rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n', - "m/44'/144'/2147483647'/0/0": 'rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY", + "m/44'/144'/1'/0/0": "rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n", + "m/44'/144'/21234567'/0/0": "rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8", + "m/44'/144'/2147483646'/0/0": "rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n", + "m/44'/144'/2147483647'/0/0": "rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCfc2e5f8b1ed2c10a1d88d9c1c4a481343c4259176e0664fad2606c31f092c2dcc338', - "m/44'/728'/1'/0'/0'": - 'BFC60dd603652e29cd4b78c12acc7f18f20d1ab1005c8cd5c661f2ef5ed10b38156a13a', - "m/44'/728'/21234567'/0'/0'": - 'BFC1c60e9eecad319d1ef5dea9e91bf7aae09f8338af93f972ad80e5996e76c3f1b6c41', - "m/44'/728'/2147483646'/0'/0'": - 'BFC574e4390373f59710cfa273d4af6027ef7e529158668941ad179dd1c988fb68241e8', - "m/44'/728'/2147483647'/0'/0'": - 'BFCa06fb5bb90ad02d6264a242101eba1bc509a8a40c0e4841139cc1ad6c2b279a48c2e', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCfc2e5f8b1ed2c10a1d88d9c1c4a481343c4259176e0664fad2606c31f092c2dcc338", + "m/44'/728'/1'/0'/0'": "BFC60dd603652e29cd4b78c12acc7f18f20d1ab1005c8cd5c661f2ef5ed10b38156a13a", + "m/44'/728'/21234567'/0'/0'": "BFC1c60e9eecad319d1ef5dea9e91bf7aae09f8338af93f972ad80e5996e76c3f1b6c41", + "m/44'/728'/2147483646'/0'/0'": "BFC574e4390373f59710cfa273d4af6027ef7e529158668941ad179dd1c988fb68241e8", + "m/44'/728'/2147483647'/0'/0'": "BFCa06fb5bb90ad02d6264a242101eba1bc509a8a40c0e4841139cc1ad6c2b279a48c2e" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '19j34SyArz3vn6gsTe7SKB7jgmiNEDzixex7i3Py25heb', - "m/44'/1234'/1'/0/0": '15QyaNAK6kKudLUTZdtTfStghahBknJkz5cDpXJppDfKu', - "m/44'/1234'/21234567'/0/0": '15bSeJvHWaggpTSqMhbtNDDESJMcswVGHg4UGnAjzsLJ1', - "m/44'/1234'/2147483646'/0/0": '15vUYAToEiWPDoRtBqXRJCPyLRgWQC8iCtK2gbbeyEZUc', - "m/44'/1234'/2147483647'/0/0": '18Faz6rN3f4iozk5W9zQVCiTgEHoLx7G7rhPwjnmSyqRa', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "19j34SyArz3vn6gsTe7SKB7jgmiNEDzixex7i3Py25heb", + "m/44'/1234'/1'/0/0": "15QyaNAK6kKudLUTZdtTfStghahBknJkz5cDpXJppDfKu", + "m/44'/1234'/21234567'/0/0": "15bSeJvHWaggpTSqMhbtNDDESJMcswVGHg4UGnAjzsLJ1", + "m/44'/1234'/2147483646'/0/0": "15vUYAToEiWPDoRtBqXRJCPyLRgWQC8iCtK2gbbeyEZUc", + "m/44'/1234'/2147483647'/0/0": "18Faz6rN3f4iozk5W9zQVCiTgEHoLx7G7rhPwjnmSyqRa" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'PUNO62CHY36TT77F3GUOG2SPS4AQQXCVQDCGWW2TMMM4WZ5C32N4YQEXAM', - "m/44'/283'/1'/0'/0'": 'NR3O5ZO7YZK62GNF3BXY47VWWZORCJUPZRZ7F5CVMCNX6EMOSOUXS5VFFQ', - "m/44'/283'/21234567'/0'/0'": 'IMXOAXZZDJOGEOYPUZJYAMT74CSLAZMVOILAPO2B67KAEVLSD3DQXA2SCA', - "m/44'/283'/2147483646'/0'/0'": - 'ANE2DGOPKYAFBTL6J2CZOSNZ5OYOJYHW7IJNNTVAYIR2NKXXJBXKUWYIXU', - "m/44'/283'/2147483647'/0'/0'": - 'IMXMBHROZDKQ623DUAEXMEHASCCPWNFJXN2JQWKLZE4OEZVOSWUFOTSY4E', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "PUNO62CHY36TT77F3GUOG2SPS4AQQXCVQDCGWW2TMMM4WZ5C32N4YQEXAM", + "m/44'/283'/1'/0'/0'": "NR3O5ZO7YZK62GNF3BXY47VWWZORCJUPZRZ7F5CVMCNX6EMOSOUXS5VFFQ", + "m/44'/283'/21234567'/0'/0'": "IMXOAXZZDJOGEOYPUZJYAMT74CSLAZMVOILAPO2B67KAEVLSD3DQXA2SCA", + "m/44'/283'/2147483646'/0'/0'": "ANE2DGOPKYAFBTL6J2CZOSNZ5OYOJYHW7IJNNTVAYIR2NKXXJBXKUWYIXU", + "m/44'/283'/2147483647'/0'/0'": "IMXMBHROZDKQ623DUAEXMEHASCCPWNFJXN2JQWKLZE4OEZVOSWUFOTSY4E" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQCgCbdfEC9Gmpvso-Y_fp7WLlzW0_hAFkBWacUXgjo091V8', - "m/44'/607'/1'": 'UQDiJuwTMx7uJcbMr3ZYKwtpvpFzOjxIPlkpOc3r1VSPSUUM', - "m/44'/607'/21234567'": 'UQC4yFdjKqnOlxvqKZ8CHyT4loN7d8_40FA0p2KgEHHOgXku', - "m/44'/607'/2147483646'": 'UQD-KF6TuvGA4IBdzwFsl5nATcwZiNMWyhZCua2LH2H2_OZE', - "m/44'/607'/2147483647'": 'UQAR6dfIzYVDecTg1ViUWJYHfkM1qcFv9b8-4Xwybw1-ii3F', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQCgCbdfEC9Gmpvso-Y_fp7WLlzW0_hAFkBWacUXgjo091V8", + "m/44'/607'/1'": "UQDiJuwTMx7uJcbMr3ZYKwtpvpFzOjxIPlkpOc3r1VSPSUUM", + "m/44'/607'/21234567'": "UQC4yFdjKqnOlxvqKZ8CHyT4loN7d8_40FA0p2KgEHHOgXku", + "m/44'/607'/2147483646'": "UQD-KF6TuvGA4IBdzwFsl5nATcwZiNMWyhZCua2LH2H2_OZE", + "m/44'/607'/2147483647'": "UQAR6dfIzYVDecTg1ViUWJYHfkM1qcFv9b8-4Xwybw1-ii3F" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqdunhneuelg7s3nt9zkvpux5703w5mulaq3hsegj', - "m/44'/309'/1'/0/0": 'ckb1qyqzkh9jj3sm3daxvqe8d0sm778q99zrpnnq4mpqqf', - "m/44'/309'/21234567'/0/0": 'ckb1qyqv3lm65h8mftma6r7z6gjt6qf3r0xgkhesadsam6', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqvw7w2tavmal8l4gqlak8da0pczx4x4zesj02nh2', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqgw3dgglla5k7aca6jhvpmkpthux2nez6su095pr', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqdunhneuelg7s3nt9zkvpux5703w5mulaq3hsegj", + "m/44'/309'/1'/0/0": "ckb1qyqzkh9jj3sm3daxvqe8d0sm778q99zrpnnq4mpqqf", + "m/44'/309'/21234567'/0/0": "ckb1qyqv3lm65h8mftma6r7z6gjt6qf3r0xgkhesadsam6", + "m/44'/309'/2147483646'/0/0": "ckb1qyqvw7w2tavmal8l4gqlak8da0pczx4x4zesj02nh2", + "m/44'/309'/2147483647'/0/0": "ckb1qyqgw3dgglla5k7aca6jhvpmkpthux2nez6su095pr" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5s8lzs8lhjsw84c42l5snquxm5hpny8q9dstnp3s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5fequq668s850hlntkmwwhxz46ktpt725g2hqtu9r', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5653ua95lv5ldj0gpjnvwhpc0d2l9hvxdexz8suyj', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5g5xpsm6gr923h4wsz5ha36575w565gvsxw7y9w67', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g57zxf75dy2eduh746j8ncrupdh4cu9ykjdssvh8x9', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5s8lzs8lhjsw84c42l5snquxm5hpny8q9dstnp3s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5fequq668s850hlntkmwwhxz46ktpt725g2hqtu9r", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5653ua95lv5ldj0gpjnvwhpc0d2l9hvxdexz8suyj", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5g5xpsm6gr923h4wsz5ha36575w565gvsxw7y9w67", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g57zxf75dy2eduh746j8ncrupdh4cu9ykjdssvh8x9" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY', - "m/44'/144'/1'/0/0": 'rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n', - "m/44'/144'/21234567'/0/0": 'rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8', - "m/44'/144'/2147483646'/0/0": 'rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n', - "m/44'/144'/2147483647'/0/0": 'rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY", + "m/44'/144'/1'/0/0": "rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n", + "m/44'/144'/21234567'/0/0": "rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8", + "m/44'/144'/2147483646'/0/0": "rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n", + "m/44'/144'/2147483647'/0/0": "rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b3fe46c1bbeeceae60bc15a3c6f359a89a6551', - "m/44'/541'/1'/0/0": '1S01a6c3b3a149b6486c96d525e5b49776c7563e61', - "m/44'/541'/21234567'/0/0": '1S017885a304591f5e285c130801cb2cc04ed4baa1', - "m/44'/541'/2147483646'/0/0": '1S01a34d7a44b6d993c19a1d9c1ceddbf651ac4911', - "m/44'/541'/2147483647'/0/0": '1S013a1e747e2eb32915db02557e4fdf3a5cc77e71', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b3fe46c1bbeeceae60bc15a3c6f359a89a6551", + "m/44'/541'/1'/0/0": "1S01a6c3b3a149b6486c96d525e5b49776c7563e61", + "m/44'/541'/21234567'/0/0": "1S017885a304591f5e285c130801cb2cc04ed4baa1", + "m/44'/541'/2147483646'/0/0": "1S01a34d7a44b6d993c19a1d9c1ceddbf651ac4911", + "m/44'/541'/2147483647'/0/0": "1S013a1e747e2eb32915db02557e4fdf3a5cc77e71" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_1.ts index b8e928d40..6da0575c0 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_1.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphrase1: SLIP39TestCaseData = { - id: 'count20_two_passphrase_1', - name: 'count20_two_passphrase_1', - description: '2-of-3 (20 words each) + passphrase_1', - passphrase: '12345', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_1", + "name": "count20_two_passphrase_1", + "description": "2-of-3 (20 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '14SGE6NHJduhFW38GwKADNSdQLYZW5zwzR', - "m/44'/0'/1'/0/0": '1Mgp4rmsiQwkFakHpQA6gXRRjoRu6LBVQi', - "m/44'/0'/21234567'/0/0": '1N9bCmD3i63vuNWNd5ox4ZakgkjHY9SdFP', - "m/44'/0'/2147483646'/0/0": '1317d6Eh9ibNNUWvNTN2xjmNPLW99pf3ER', - "m/44'/0'/2147483647'/0/0": '16ZSqJdoHoSoahQfdUmnkoCEEKn6LgBUa5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "14SGE6NHJduhFW38GwKADNSdQLYZW5zwzR", + "m/44'/0'/1'/0/0": "1Mgp4rmsiQwkFakHpQA6gXRRjoRu6LBVQi", + "m/44'/0'/21234567'/0/0": "1N9bCmD3i63vuNWNd5ox4ZakgkjHY9SdFP", + "m/44'/0'/2147483646'/0/0": "1317d6Eh9ibNNUWvNTN2xjmNPLW99pf3ER", + "m/44'/0'/2147483647'/0/0": "16ZSqJdoHoSoahQfdUmnkoCEEKn6LgBUa5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3MpmqkihxmCWuMuuyJNgTs1qEs5wzZw2cw', - "m/49'/0'/1'/0/0": '39x7o2F7okMdEBPKsUATLJwPNfeMFwfeUF', - "m/49'/0'/21234567'/0/0": '3HtGgtjaLQeAEQ1E3qUxBpNmmnSMa7yKez', - "m/49'/0'/2147483646'/0/0": '3FwG29UC4S3CDSVabjmpYFFkbTMoseodse', - "m/49'/0'/2147483647'/0/0": '3KNgMrHEfGqd6zs5g4L4YtmZpFpCmKYL8c', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3MpmqkihxmCWuMuuyJNgTs1qEs5wzZw2cw", + "m/49'/0'/1'/0/0": "39x7o2F7okMdEBPKsUATLJwPNfeMFwfeUF", + "m/49'/0'/21234567'/0/0": "3HtGgtjaLQeAEQ1E3qUxBpNmmnSMa7yKez", + "m/49'/0'/2147483646'/0/0": "3FwG29UC4S3CDSVabjmpYFFkbTMoseodse", + "m/49'/0'/2147483647'/0/0": "3KNgMrHEfGqd6zs5g4L4YtmZpFpCmKYL8c" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q42thauv4skl3ytgn7zzh0f6q7wjplct6pcn2s2', - "m/84'/0'/1'/0/0": 'bc1quejcy6asmmelgc7273fga8ngxvsajyjrp5q278', - "m/84'/0'/21234567'/0/0": 'bc1qwdqljx6msxuuh2rtn3n8am4vsnfppaxylkd0gw', - "m/84'/0'/2147483646'/0/0": 'bc1qnk0hkk88rmsqpg5k8zwlw4el3ynkgv82l09394', - "m/84'/0'/2147483647'/0/0": 'bc1qlq6t306gyeu4dkjswrns2ltkf7grzjhyw2m6kc', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q42thauv4skl3ytgn7zzh0f6q7wjplct6pcn2s2", + "m/84'/0'/1'/0/0": "bc1quejcy6asmmelgc7273fga8ngxvsajyjrp5q278", + "m/84'/0'/21234567'/0/0": "bc1qwdqljx6msxuuh2rtn3n8am4vsnfppaxylkd0gw", + "m/84'/0'/2147483646'/0/0": "bc1qnk0hkk88rmsqpg5k8zwlw4el3ynkgv82l09394", + "m/84'/0'/2147483647'/0/0": "bc1qlq6t306gyeu4dkjswrns2ltkf7grzjhyw2m6kc" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1p8kmsc3punuth88cnetfgzkys95hqdulmn4wms3wq3t27xpn6paksv9sfu6', - "m/86'/0'/1'/0/0": 'bc1pvz0rykaww642uyf8hmht6vlfpashj4k0e69gqass90m295ac7jmqe9fhp7', - "m/86'/0'/21234567'/0/0": 'bc1pwcce8afgz7sxq96m2x9na9xg3uqeknhh44qfs5m7aesv5eg5tvkq2hckru', - "m/86'/0'/2147483646'/0/0": - 'bc1pryyf7q4wjm7eted2ssqxvnjz8tg7az0dt9jqvc2a87h80ttc3hcsw9rlyk', - "m/86'/0'/2147483647'/0/0": - 'bc1ptz3f6rjgmahheaesfqd5ytxj7870ky5psjas27pwa0ej6pay3sjqrh7ejy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1p8kmsc3punuth88cnetfgzkys95hqdulmn4wms3wq3t27xpn6paksv9sfu6", + "m/86'/0'/1'/0/0": "bc1pvz0rykaww642uyf8hmht6vlfpashj4k0e69gqass90m295ac7jmqe9fhp7", + "m/86'/0'/21234567'/0/0": "bc1pwcce8afgz7sxq96m2x9na9xg3uqeknhh44qfs5m7aesv5eg5tvkq2hckru", + "m/86'/0'/2147483646'/0/0": "bc1pryyf7q4wjm7eted2ssqxvnjz8tg7az0dt9jqvc2a87h80ttc3hcsw9rlyk", + "m/86'/0'/2147483647'/0/0": "bc1ptz3f6rjgmahheaesfqd5ytxj7870ky5psjas27pwa0ej6pay3sjqrh7ejy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D7nz1f8PXMkws2R69fsn85EuuoEKUg8JRo', - "m/44'/3'/1'/0/0": 'D868AAVsNtvXSAFiCHJgyEp5VMJYHjg1Mt', - "m/44'/3'/21234567'/0/0": 'DJD1bsiG5nM7SCePXywESnnnhCExQGVTQN', - "m/44'/3'/2147483646'/0/0": 'DAcoWiYAiS8TBa3aobM1xtYbVUaHoTFk3r', - "m/44'/3'/2147483647'/0/0": 'DE2Vd9qugaoa8izqVm2pKD6dgZdw87PczR', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D7nz1f8PXMkws2R69fsn85EuuoEKUg8JRo", + "m/44'/3'/1'/0/0": "D868AAVsNtvXSAFiCHJgyEp5VMJYHjg1Mt", + "m/44'/3'/21234567'/0/0": "DJD1bsiG5nM7SCePXywESnnnhCExQGVTQN", + "m/44'/3'/2147483646'/0/0": "DAcoWiYAiS8TBa3aobM1xtYbVUaHoTFk3r", + "m/44'/3'/2147483647'/0/0": "DE2Vd9qugaoa8izqVm2pKD6dgZdw87PczR" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qrtcuqwz2232q8nrc22e03l5grfsp5wspvfhctt3jl', - "m/44'/145'/1'/0/0": 'bitcoincash:qrak2trpj5n3xmy8y97ud4vz5yvjtq0qxckr3pu3kf', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qq06w20pcev8vapcg6yppgwtasnlv4tjqg9vraqnp0', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qr3n8mg0kjmmeuh8hsx7h9w5ymswfc8kjvvma7njr4', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qz0evpl02ux5qjaegv8fstrfzxdu43cmfq700aam6f', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qrtcuqwz2232q8nrc22e03l5grfsp5wspvfhctt3jl", + "m/44'/145'/1'/0/0": "bitcoincash:qrak2trpj5n3xmy8y97ud4vz5yvjtq0qxckr3pu3kf", + "m/44'/145'/21234567'/0/0": "bitcoincash:qq06w20pcev8vapcg6yppgwtasnlv4tjqg9vraqnp0", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qr3n8mg0kjmmeuh8hsx7h9w5ymswfc8kjvvma7njr4", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qz0evpl02ux5qjaegv8fstrfzxdu43cmfq700aam6f" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LUXqWLPXZbkxXoCPpt9RxLt3HrG37Wmwt9', - "m/44'/2'/1'/0/0": 'LaPJ7JrUAyy2sjWmgm1LdqZEbhqZoY1N2d', - "m/44'/2'/21234567'/0/0": 'LaUjcdCf7arTYGTPNowvn8HQEjHJzX7xH8', - "m/44'/2'/2147483646'/0/0": 'LhHb24GH3AijunAT1GPY4vxQ7k57rxcmFo', - "m/44'/2'/2147483647'/0/0": 'LLFxubxe76nJ9Zi2xT7Ajo3uFxxQbbQN9U', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LUXqWLPXZbkxXoCPpt9RxLt3HrG37Wmwt9", + "m/44'/2'/1'/0/0": "LaPJ7JrUAyy2sjWmgm1LdqZEbhqZoY1N2d", + "m/44'/2'/21234567'/0/0": "LaUjcdCf7arTYGTPNowvn8HQEjHJzX7xH8", + "m/44'/2'/2147483646'/0/0": "LhHb24GH3AijunAT1GPY4vxQ7k57rxcmFo", + "m/44'/2'/2147483647'/0/0": "LLFxubxe76nJ9Zi2xT7Ajo3uFxxQbbQN9U" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'M8A1dzHZT4VETg8REhSsSpn2oaaqPGNw63', - "m/49'/2'/1'/0/0": 'MBoSqYYVU5vRy4NqrsWMouAngajbJqTVVs', - "m/49'/2'/21234567'/0/0": 'MTdK3FzDqEz5Sn18ms8f1oskoaLnDLQzXM', - "m/49'/2'/2147483646'/0/0": 'MAXiFH3oXkmbzwKTG2GavNqnDT847pEfdQ', - "m/49'/2'/2147483647'/0/0": 'MP2LzfwUYuqHWBmXZVJvhcZSGjCZmguEs7', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "M8A1dzHZT4VETg8REhSsSpn2oaaqPGNw63", + "m/49'/2'/1'/0/0": "MBoSqYYVU5vRy4NqrsWMouAngajbJqTVVs", + "m/49'/2'/21234567'/0/0": "MTdK3FzDqEz5Sn18ms8f1oskoaLnDLQzXM", + "m/49'/2'/2147483646'/0/0": "MAXiFH3oXkmbzwKTG2GavNqnDT847pEfdQ", + "m/49'/2'/2147483647'/0/0": "MP2LzfwUYuqHWBmXZVJvhcZSGjCZmguEs7" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qgawguz3hlx47yttwp9fnt8zuhy2tyklp7afxnt', - "m/84'/2'/1'/0/0": 'ltc1qkzydy9s4nas338efu2tplwqa972mh5hzv38z6f', - "m/84'/2'/21234567'/0/0": 'ltc1qh4ynedut83fyy6uyxlg0zk3uwpgph9su892nr0', - "m/84'/2'/2147483646'/0/0": 'ltc1qwh68yjk5xak6sp73k273smsr04sgjacdqnqdns', - "m/84'/2'/2147483647'/0/0": 'ltc1qe25y9stl87pq2wrygl9l06rxf4wh6cy3r5sjed', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qgawguz3hlx47yttwp9fnt8zuhy2tyklp7afxnt", + "m/84'/2'/1'/0/0": "ltc1qkzydy9s4nas338efu2tplwqa972mh5hzv38z6f", + "m/84'/2'/21234567'/0/0": "ltc1qh4ynedut83fyy6uyxlg0zk3uwpgph9su892nr0", + "m/84'/2'/2147483646'/0/0": "ltc1qwh68yjk5xak6sp73k273smsr04sgjacdqnqdns", + "m/84'/2'/2147483647'/0/0": "ltc1qe25y9stl87pq2wrygl9l06rxf4wh6cy3r5sjed" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NQoxqRKc3yLYkGcz4jaZ6yAzkQxD2NR7Uc', - "m/44'/1900'/1'/0/0": 'NizB9U3zckgPQyAiioc86L9Lgjm1QPeMtR', - "m/44'/1900'/21234567'/0/0": 'NiZvdDrU6Zbz9qJFwemKbjF2FvivSPjAy4', - "m/44'/1900'/2147483646'/0/0": 'NgZYxgHGtqpYTpGA7kysAdnVroGvCdfWNX', - "m/44'/1900'/2147483647'/0/0": 'NUiFVF8dRPLaxehSxi5PhEjBjqp1BE21na', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NQoxqRKc3yLYkGcz4jaZ6yAzkQxD2NR7Uc", + "m/44'/1900'/1'/0/0": "NizB9U3zckgPQyAiioc86L9Lgjm1QPeMtR", + "m/44'/1900'/21234567'/0/0": "NiZvdDrU6Zbz9qJFwemKbjF2FvivSPjAy4", + "m/44'/1900'/2147483646'/0/0": "NgZYxgHGtqpYTpGA7kysAdnVroGvCdfWNX", + "m/44'/1900'/2147483647'/0/0": "NUiFVF8dRPLaxehSxi5PhEjBjqp1BE21na" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x436fFFa927139a3e06226b01127E040706ae89E9', - "m/44'/60'/1'/0/0": '0x9F683AD921Aee885A2E76c2dE990F434084e2E4A', - "m/44'/60'/21234567'/0/0": '0x1c825B7beDd1a2fb5ED981d1c01eB67c468Cf1e0', - "m/44'/60'/2147483646'/0/0": '0x5913fB1051667C2f8dbFeA77545222a63CEC04e8', - "m/44'/60'/2147483647'/0/0": '0x52Cfc2DA82d3853E55Df7dA4587e349A0C53360B', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x436fFFa927139a3e06226b01127E040706ae89E9", + "m/44'/60'/1'/0/0": "0x9F683AD921Aee885A2E76c2dE990F434084e2E4A", + "m/44'/60'/21234567'/0/0": "0x1c825B7beDd1a2fb5ED981d1c01eB67c468Cf1e0", + "m/44'/60'/2147483646'/0/0": "0x5913fB1051667C2f8dbFeA77545222a63CEC04e8", + "m/44'/60'/2147483647'/0/0": "0x52Cfc2DA82d3853E55Df7dA4587e349A0C53360B" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xA56653cb2C51bcddBac7435A7E2Fb8ff9bB6Ab99', - "m/44'/61'/1'/0/0": '0x8313fB1FC88F2aEA1154503E895b3d203827B7B7', - "m/44'/61'/21234567'/0/0": '0xD86B3002c491eD4Fa4c06fA25E68379F8c632AEe', - "m/44'/61'/2147483646'/0/0": '0x2924176453d69CecBDA7e166B4A018fb12300C0b', - "m/44'/61'/2147483647'/0/0": '0xa88bA0C50B3b5550015970d355eB48A79CCAaBA8', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xA56653cb2C51bcddBac7435A7E2Fb8ff9bB6Ab99", + "m/44'/61'/1'/0/0": "0x8313fB1FC88F2aEA1154503E895b3d203827B7B7", + "m/44'/61'/21234567'/0/0": "0xD86B3002c491eD4Fa4c06fA25E68379F8c632AEe", + "m/44'/61'/2147483646'/0/0": "0x2924176453d69CecBDA7e166B4A018fb12300C0b", + "m/44'/61'/2147483647'/0/0": "0xa88bA0C50B3b5550015970d355eB48A79CCAaBA8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos12anjq2yc76qhfgq9wavuqjce2zhfyj0t7dqrxz', - "m/44'/118'/1'/0/0": 'cosmos1he9xm88jg7l53x4n9cj3yxaxmwwjhv2l6dqdrn', - "m/44'/118'/21234567'/0/0": 'cosmos1cutmtwjrc9mmrs9gzalxpm7qjnn243qs7pyxju', - "m/44'/118'/2147483646'/0/0": 'cosmos1puqtd64ms9r6ekslx9cz5wgfucef3cm8vqzr6z', - "m/44'/118'/2147483647'/0/0": 'cosmos1vmtll2ye4llnr7ydkmxscg7pa928kr3k6a48wf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos12anjq2yc76qhfgq9wavuqjce2zhfyj0t7dqrxz", + "m/44'/118'/1'/0/0": "cosmos1he9xm88jg7l53x4n9cj3yxaxmwwjhv2l6dqdrn", + "m/44'/118'/21234567'/0/0": "cosmos1cutmtwjrc9mmrs9gzalxpm7qjnn243qs7pyxju", + "m/44'/118'/2147483646'/0/0": "cosmos1puqtd64ms9r6ekslx9cz5wgfucef3cm8vqzr6z", + "m/44'/118'/2147483647'/0/0": "cosmos1vmtll2ye4llnr7ydkmxscg7pa928kr3k6a48wf" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash12anjq2yc76qhfgq9wavuqjce2zhfyj0tnkdylc', - "m/44'/118'/1'/0/0": 'akash1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lhkd26f', - "m/44'/118'/21234567'/0/0": 'akash1cutmtwjrc9mmrs9gzalxpm7qjnn243qsn6fptx', - "m/44'/118'/2147483646'/0/0": 'akash1puqtd64ms9r6ekslx9cz5wgfucef3cm8pm0yrc', - "m/44'/118'/2147483647'/0/0": 'akash1vmtll2ye4llnr7ydkmxscg7pa928kr3khxcqhn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash12anjq2yc76qhfgq9wavuqjce2zhfyj0tnkdylc", + "m/44'/118'/1'/0/0": "akash1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lhkd26f", + "m/44'/118'/21234567'/0/0": "akash1cutmtwjrc9mmrs9gzalxpm7qjnn243qsn6fptx", + "m/44'/118'/2147483646'/0/0": "akash1puqtd64ms9r6ekslx9cz5wgfucef3cm8pm0yrc", + "m/44'/118'/2147483647'/0/0": "akash1vmtll2ye4llnr7ydkmxscg7pa928kr3khxcqhn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro12anjq2yc76qhfgq9wavuqjce2zhfyj0txkg66n', - "m/44'/118'/1'/0/0": 'cro1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lzkg5lz', - "m/44'/118'/21234567'/0/0": 'cro1cutmtwjrc9mmrs9gzalxpm7qjnn243qsx6vlwd', - "m/44'/118'/2147483646'/0/0": 'cro1puqtd64ms9r6ekslx9cz5wgfucef3cm85m26xn', - "m/44'/118'/2147483647'/0/0": 'cro1vmtll2ye4llnr7ydkmxscg7pa928kr3kzxa7jc', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro12anjq2yc76qhfgq9wavuqjce2zhfyj0txkg66n", + "m/44'/118'/1'/0/0": "cro1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lzkg5lz", + "m/44'/118'/21234567'/0/0": "cro1cutmtwjrc9mmrs9gzalxpm7qjnn243qsx6vlwd", + "m/44'/118'/2147483646'/0/0": "cro1puqtd64ms9r6ekslx9cz5wgfucef3cm85m26xn", + "m/44'/118'/2147483647'/0/0": "cro1vmtll2ye4llnr7ydkmxscg7pa928kr3kzxa7jc" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch12anjq2yc76qhfgq9wavuqjce2zhfyj0tdsf8y4', - "m/44'/118'/1'/0/0": 'fetch1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lfsffpy', - "m/44'/118'/21234567'/0/0": 'fetch1cutmtwjrc9mmrs9gzalxpm7qjnn243qsdudzst', - "m/44'/118'/2147483646'/0/0": 'fetch1puqtd64ms9r6ekslx9cz5wgfucef3cm8lat8c4', - "m/44'/118'/2147483647'/0/0": 'fetch1vmtll2ye4llnr7ydkmxscg7pa928kr3kfqurv7', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch12anjq2yc76qhfgq9wavuqjce2zhfyj0tdsf8y4", + "m/44'/118'/1'/0/0": "fetch1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lfsffpy", + "m/44'/118'/21234567'/0/0": "fetch1cutmtwjrc9mmrs9gzalxpm7qjnn243qsdudzst", + "m/44'/118'/2147483646'/0/0": "fetch1puqtd64ms9r6ekslx9cz5wgfucef3cm8lat8c4", + "m/44'/118'/2147483647'/0/0": "fetch1vmtll2ye4llnr7ydkmxscg7pa928kr3kfqurv7" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo12anjq2yc76qhfgq9wavuqjce2zhfyj0tkknnss', - "m/44'/118'/1'/0/0": 'osmo1he9xm88jg7l53x4n9cj3yxaxmwwjhv2ljkna4p', - "m/44'/118'/21234567'/0/0": 'osmo1cutmtwjrc9mmrs9gzalxpm7qjnn243qsk6hkyw', - "m/44'/118'/2147483646'/0/0": 'osmo1puqtd64ms9r6ekslx9cz5wgfucef3cm8ym3nvs', - "m/44'/118'/2147483647'/0/0": 'osmo1vmtll2ye4llnr7ydkmxscg7pa928kr3kjxxhcm', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo12anjq2yc76qhfgq9wavuqjce2zhfyj0tkknnss", + "m/44'/118'/1'/0/0": "osmo1he9xm88jg7l53x4n9cj3yxaxmwwjhv2ljkna4p", + "m/44'/118'/21234567'/0/0": "osmo1cutmtwjrc9mmrs9gzalxpm7qjnn243qsk6hkyw", + "m/44'/118'/2147483646'/0/0": "osmo1puqtd64ms9r6ekslx9cz5wgfucef3cm8ym3nvs", + "m/44'/118'/2147483647'/0/0": "osmo1vmtll2ye4llnr7ydkmxscg7pa928kr3kjxxhcm" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno12anjq2yc76qhfgq9wavuqjce2zhfyj0tglrcp7', - "m/44'/118'/1'/0/0": 'juno1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lvlrky0', - "m/44'/118'/21234567'/0/0": 'juno1cutmtwjrc9mmrs9gzalxpm7qjnn243qsgn8a4q', - "m/44'/118'/2147483646'/0/0": 'juno1puqtd64ms9r6ekslx9cz5wgfucef3cm86jpca7', - "m/44'/118'/2147483647'/0/0": 'juno1vmtll2ye4llnr7ydkmxscg7pa928kr3kv0kuf4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno12anjq2yc76qhfgq9wavuqjce2zhfyj0tglrcp7", + "m/44'/118'/1'/0/0": "juno1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lvlrky0", + "m/44'/118'/21234567'/0/0": "juno1cutmtwjrc9mmrs9gzalxpm7qjnn243qsgn8a4q", + "m/44'/118'/2147483646'/0/0": "juno1puqtd64ms9r6ekslx9cz5wgfucef3cm86jpca7", + "m/44'/118'/2147483647'/0/0": "juno1vmtll2ye4llnr7ydkmxscg7pa928kr3kv0kuf4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra12anjq2yc76qhfgq9wavuqjce2zhfyj0tcf6ryz', - "m/44'/118'/1'/0/0": 'terra1he9xm88jg7l53x4n9cj3yxaxmwwjhv2luf6dpn', - "m/44'/118'/21234567'/0/0": 'terra1cutmtwjrc9mmrs9gzalxpm7qjnn243qsc97xsu', - "m/44'/118'/2147483646'/0/0": 'terra1puqtd64ms9r6ekslx9cz5wgfucef3cm82ycrcz', - "m/44'/118'/2147483647'/0/0": 'terra1vmtll2ye4llnr7ydkmxscg7pa928kr3kue08vf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra12anjq2yc76qhfgq9wavuqjce2zhfyj0tcf6ryz", + "m/44'/118'/1'/0/0": "terra1he9xm88jg7l53x4n9cj3yxaxmwwjhv2luf6dpn", + "m/44'/118'/21234567'/0/0": "terra1cutmtwjrc9mmrs9gzalxpm7qjnn243qsc97xsu", + "m/44'/118'/2147483646'/0/0": "terra1puqtd64ms9r6ekslx9cz5wgfucef3cm82ycrcz", + "m/44'/118'/2147483647'/0/0": "terra1vmtll2ye4llnr7ydkmxscg7pa928kr3kue08vf" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret12anjq2yc76qhfgq9wavuqjce2zhfyj0tug52m7', - "m/44'/118'/1'/0/0": 'secret1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lcg5y70', - "m/44'/118'/21234567'/0/0": 'secret1cutmtwjrc9mmrs9gzalxpm7qjnn243qsuys00q', - "m/44'/118'/2147483646'/0/0": 'secret1puqtd64ms9r6ekslx9cz5wgfucef3cm8w9k287', - "m/44'/118'/2147483647'/0/0": 'secret1vmtll2ye4llnr7ydkmxscg7pa928kr3kccpwn4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret12anjq2yc76qhfgq9wavuqjce2zhfyj0tug52m7", + "m/44'/118'/1'/0/0": "secret1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lcg5y70", + "m/44'/118'/21234567'/0/0": "secret1cutmtwjrc9mmrs9gzalxpm7qjnn243qsuys00q", + "m/44'/118'/2147483646'/0/0": "secret1puqtd64ms9r6ekslx9cz5wgfucef3cm8w9k287", + "m/44'/118'/2147483647'/0/0": "secret1vmtll2ye4llnr7ydkmxscg7pa928kr3kccpwn4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia12anjq2yc76qhfgq9wavuqjce2zhfyj0t083nu0', - "m/44'/118'/1'/0/0": 'celestia1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lt83ae7', - "m/44'/118'/21234567'/0/0": 'celestia1cutmtwjrc9mmrs9gzalxpm7qjnn243qs0t4kg3', - "m/44'/118'/2147483646'/0/0": 'celestia1puqtd64ms9r6ekslx9cz5wgfucef3cm8a2nnq0', - "m/44'/118'/2147483647'/0/0": 'celestia1vmtll2ye4llnr7ydkmxscg7pa928kr3kthyh5y', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia12anjq2yc76qhfgq9wavuqjce2zhfyj0t083nu0", + "m/44'/118'/1'/0/0": "celestia1he9xm88jg7l53x4n9cj3yxaxmwwjhv2lt83ae7", + "m/44'/118'/21234567'/0/0": "celestia1cutmtwjrc9mmrs9gzalxpm7qjnn243qs0t4kg3", + "m/44'/118'/2147483646'/0/0": "celestia1puqtd64ms9r6ekslx9cz5wgfucef3cm8a2nnq0", + "m/44'/118'/2147483647'/0/0": "celestia1vmtll2ye4llnr7ydkmxscg7pa928kr3kthyh5y" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x833f4157c176981083ac0e83e563addcb931f2a33c6ec2bced499671e329bde4', - "m/44'/784'/1'/0'/0'": '0xa1891583027be6d9dcbe4031a8723a7b8db036634844e926c31f9bff4cffb224', - "m/44'/784'/21234567'/0'/0'": - '0xc90707d4e88bb43c9b9599f4892caf9d42590c24f5d5dd06874d5dd104023fcc', - "m/44'/784'/2147483646'/0'/0'": - '0xdfac543758bc6ea2f7601498ac614f14feeb2b5aa172b50a1f61ed562d7f604c', - "m/44'/784'/2147483647'/0'/0'": - '0x6f69225f39a9ffd483a12ba0ee4ed4518872d14061ed4bea9cc499a2323a232a', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x833f4157c176981083ac0e83e563addcb931f2a33c6ec2bced499671e329bde4", + "m/44'/784'/1'/0'/0'": "0xa1891583027be6d9dcbe4031a8723a7b8db036634844e926c31f9bff4cffb224", + "m/44'/784'/21234567'/0'/0'": "0xc90707d4e88bb43c9b9599f4892caf9d42590c24f5d5dd06874d5dd104023fcc", + "m/44'/784'/2147483646'/0'/0'": "0xdfac543758bc6ea2f7601498ac614f14feeb2b5aa172b50a1f61ed562d7f604c", + "m/44'/784'/2147483647'/0'/0'": "0x6f69225f39a9ffd483a12ba0ee4ed4518872d14061ed4bea9cc499a2323a232a" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHiYRUQhjox9unEQaVyvdMMBUQ8qLzwnx5', - "m/44'/144'/1'/0/0": 'rKpgNySCeKxceS5vcZNcibVuk2K5huKHZY', - "m/44'/144'/21234567'/0/0": 'rQhw4nf1AGR4gZux97eD63N9YqaD3otHkg', - "m/44'/144'/2147483646'/0/0": 'rwTH8My7ZYveBodHH9jWwZX7XJsoR5EAYF', - "m/44'/144'/2147483647'/0/0": 'rLmKhJcQfp6s4KrgwsdNWdVTSUB2wwCACx', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHiYRUQhjox9unEQaVyvdMMBUQ8qLzwnx5", + "m/44'/144'/1'/0/0": "rKpgNySCeKxceS5vcZNcibVuk2K5huKHZY", + "m/44'/144'/21234567'/0/0": "rQhw4nf1AGR4gZux97eD63N9YqaD3otHkg", + "m/44'/144'/2147483646'/0/0": "rwTH8My7ZYveBodHH9jWwZX7XJsoR5EAYF", + "m/44'/144'/2147483647'/0/0": "rLmKhJcQfp6s4KrgwsdNWdVTSUB2wwCACx" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC521d631543a937cf3be6c6087076be8403a14aa7e6c10a82e8bd24842ef8cef98771', - "m/44'/728'/1'/0'/0'": - 'BFC18aa5be0fdc852669a9359a9bcd7d17c0b8d57ac1d3e9fd2ee19b16f4da47f5be4c5', - "m/44'/728'/21234567'/0'/0'": - 'BFCa31bb445a5a264a89a8321dfe670e6ec226669a474ee84f7cd88b5850e3b87b808cd', - "m/44'/728'/2147483646'/0'/0'": - 'BFCa4a937e726bdefc4bd9250f2e6b92fdc7b763774561bfc44f62be8c70c0b756f61a8', - "m/44'/728'/2147483647'/0'/0'": - 'BFC4015a30596fa8c079fd75c317d02347faa105b1fcd1fdbcce86090299795706782bf', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC521d631543a937cf3be6c6087076be8403a14aa7e6c10a82e8bd24842ef8cef98771", + "m/44'/728'/1'/0'/0'": "BFC18aa5be0fdc852669a9359a9bcd7d17c0b8d57ac1d3e9fd2ee19b16f4da47f5be4c5", + "m/44'/728'/21234567'/0'/0'": "BFCa31bb445a5a264a89a8321dfe670e6ec226669a474ee84f7cd88b5850e3b87b808cd", + "m/44'/728'/2147483646'/0'/0'": "BFCa4a937e726bdefc4bd9250f2e6b92fdc7b763774561bfc44f62be8c70c0b756f61a8", + "m/44'/728'/2147483647'/0'/0'": "BFC4015a30596fa8c079fd75c317d02347faa105b1fcd1fdbcce86090299795706782bf" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '15i8B9GuidEKKqaWU6T952bSqwkxazSHxFr4oFfwQcdZ9', - "m/44'/1234'/1'/0/0": '18VeRyeLA6nVv5CJNiM7DLN3B9UWTSHvKYctD1BLEBj4Y', - "m/44'/1234'/21234567'/0/0": '1B4ierzU29tcCD6tqSnuu5Y3AY1ZWBLRWwuWTaMDJZGXH', - "m/44'/1234'/2147483646'/0/0": '12UUG8rtwoLCGVEX4RZdJ3VSxQv4bGHgHhcaJwX3M5YYw', - "m/44'/1234'/2147483647'/0/0": '17icbsJojpVozxizB8K3RKsdgShJVhoV1rdN1LByF5mmn', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "15i8B9GuidEKKqaWU6T952bSqwkxazSHxFr4oFfwQcdZ9", + "m/44'/1234'/1'/0/0": "18VeRyeLA6nVv5CJNiM7DLN3B9UWTSHvKYctD1BLEBj4Y", + "m/44'/1234'/21234567'/0/0": "1B4ierzU29tcCD6tqSnuu5Y3AY1ZWBLRWwuWTaMDJZGXH", + "m/44'/1234'/2147483646'/0/0": "12UUG8rtwoLCGVEX4RZdJ3VSxQv4bGHgHhcaJwX3M5YYw", + "m/44'/1234'/2147483647'/0/0": "17icbsJojpVozxizB8K3RKsdgShJVhoV1rdN1LByF5mmn" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'UYLVT2TGANCUILCRJKMLAIAIOKVGA77SRRLTF5YIBQA7AI2ZE5CULJ6S2E', - "m/44'/283'/1'/0'/0'": '4GQG6FUH3WR3JQ7W7WXYH6NJHMHG4GOMB7MMER4HGI7YFIFLOOINWQFJHE', - "m/44'/283'/21234567'/0'/0'": 'AU674KD2RL4NIB6PHZSWXUACOWFWLB4PFUGDCRUI4IMFXIG367DIAIDPBI', - "m/44'/283'/2147483646'/0'/0'": - '4N2B6DZJ2CHPIBZDQH4I6JIMEY5UNMBESQ7PWGRMAO324M5C2XJWH5ILE4', - "m/44'/283'/2147483647'/0'/0'": - 'D2SCD2LUJ5PNGM4QN2BTVRVP6SJFKXZL22TVLVRY7GI5IFNBMWOUJPWCMQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "UYLVT2TGANCUILCRJKMLAIAIOKVGA77SRRLTF5YIBQA7AI2ZE5CULJ6S2E", + "m/44'/283'/1'/0'/0'": "4GQG6FUH3WR3JQ7W7WXYH6NJHMHG4GOMB7MMER4HGI7YFIFLOOINWQFJHE", + "m/44'/283'/21234567'/0'/0'": "AU674KD2RL4NIB6PHZSWXUACOWFWLB4PFUGDCRUI4IMFXIG367DIAIDPBI", + "m/44'/283'/2147483646'/0'/0'": "4N2B6DZJ2CHPIBZDQH4I6JIMEY5UNMBESQ7PWGRMAO324M5C2XJWH5ILE4", + "m/44'/283'/2147483647'/0'/0'": "D2SCD2LUJ5PNGM4QN2BTVRVP6SJFKXZL22TVLVRY7GI5IFNBMWOUJPWCMQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQBLdyjOkdveuyyZ9Xnj5aU8Azp3s1qknlO5rzUvCDEWch6F', - "m/44'/607'/1'": 'UQADhtl7p35d71aNfWM6zgEzxdNFa49NgMkrXo8mDu_bXYBO', - "m/44'/607'/21234567'": 'UQDO5Evk6JnbotB9Z4X_Cg0fXLCzUQje1KeD1xGxUvWLQV4h', - "m/44'/607'/2147483646'": 'UQBtsY5dQ_WJ7wKW33SXWU2UJjhaFdUoBvvC-X3A8VeORDnP', - "m/44'/607'/2147483647'": 'UQC2XADghAWAmL_q5TitP0RP97ihC7bCZwC5TrIiIUXObs10', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQBLdyjOkdveuyyZ9Xnj5aU8Azp3s1qknlO5rzUvCDEWch6F", + "m/44'/607'/1'": "UQADhtl7p35d71aNfWM6zgEzxdNFa49NgMkrXo8mDu_bXYBO", + "m/44'/607'/21234567'": "UQDO5Evk6JnbotB9Z4X_Cg0fXLCzUQje1KeD1xGxUvWLQV4h", + "m/44'/607'/2147483646'": "UQBtsY5dQ_WJ7wKW33SXWU2UJjhaFdUoBvvC-X3A8VeORDnP", + "m/44'/607'/2147483647'": "UQC2XADghAWAmL_q5TitP0RP97ihC7bCZwC5TrIiIUXObs10" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqtq0mfnv8j5rg8ajwa8uc2y8zaq4ngvcqq8p78gt', - "m/44'/309'/1'/0/0": 'ckb1qyqwuw9hhpyqf0ue4ejacy7k4q2hglg7nd2syp9ltj', - "m/44'/309'/21234567'/0/0": 'ckb1qyqp0z80wlegm3hmjhctlw3tt9m7n53uecaqknxev3', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqtc6afezrt48lql2q77zw4vx8ca0yvvdyq9zncm2', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqpa4e5m4r2nqkcxqjk00q349qr9un7cfhss4h4w8', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqtq0mfnv8j5rg8ajwa8uc2y8zaq4ngvcqq8p78gt", + "m/44'/309'/1'/0/0": "ckb1qyqwuw9hhpyqf0ue4ejacy7k4q2hglg7nd2syp9ltj", + "m/44'/309'/21234567'/0/0": "ckb1qyqp0z80wlegm3hmjhctlw3tt9m7n53uecaqknxev3", + "m/44'/309'/2147483646'/0/0": "ckb1qyqtc6afezrt48lql2q77zw4vx8ca0yvvdyq9zncm2", + "m/44'/309'/2147483647'/0/0": "ckb1qyqpa4e5m4r2nqkcxqjk00q349qr9un7cfhss4h4w8" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5xrwjpfse9s7h5vpu2gpp0kf5dlmm9ws7ax34xatt', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5dnhtcu7j3czj9zdtyzl98a69qtlulr4maa4wra0k', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g596r23hvlauv886626yp40vw2f8zqyrn6c6r3shn5', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5uxn6vf9dync53fm6hl7tmxp2t8tjts9spqeae45q', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5fe852twzp8rezlkmsxc6ee6u35ujla8skej3zrkj', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5xrwjpfse9s7h5vpu2gpp0kf5dlmm9ws7ax34xatt", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5dnhtcu7j3czj9zdtyzl98a69qtlulr4maa4wra0k", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g596r23hvlauv886626yp40vw2f8zqyrn6c6r3shn5", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5uxn6vf9dync53fm6hl7tmxp2t8tjts9spqeae45q", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5fe852twzp8rezlkmsxc6ee6u35ujla8skej3zrkj" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHiYRUQhjox9unEQaVyvdMMBUQ8qLzwnx5', - "m/44'/144'/1'/0/0": 'rKpgNySCeKxceS5vcZNcibVuk2K5huKHZY', - "m/44'/144'/21234567'/0/0": 'rQhw4nf1AGR4gZux97eD63N9YqaD3otHkg', - "m/44'/144'/2147483646'/0/0": 'rwTH8My7ZYveBodHH9jWwZX7XJsoR5EAYF', - "m/44'/144'/2147483647'/0/0": 'rLmKhJcQfp6s4KrgwsdNWdVTSUB2wwCACx', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHiYRUQhjox9unEQaVyvdMMBUQ8qLzwnx5", + "m/44'/144'/1'/0/0": "rKpgNySCeKxceS5vcZNcibVuk2K5huKHZY", + "m/44'/144'/21234567'/0/0": "rQhw4nf1AGR4gZux97eD63N9YqaD3otHkg", + "m/44'/144'/2147483646'/0/0": "rwTH8My7ZYveBodHH9jWwZX7XJsoR5EAYF", + "m/44'/144'/2147483647'/0/0": "rLmKhJcQfp6s4KrgwsdNWdVTSUB2wwCACx" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01f8ce9f6a6232eb2bf6ce29fe1887b6c22f7b11', - "m/44'/541'/1'/0/0": '1S01e11496f5bf20f295a04171db1536d0ab48f4a1', - "m/44'/541'/21234567'/0/0": '1S01365c3f0cc91d6444ea47e4556d152f0283be71', - "m/44'/541'/2147483646'/0/0": '1S01ef8725bc43ceb64c11b9e2f5a27e892bd970e1', - "m/44'/541'/2147483647'/0/0": '1S0192dbee2a7e1e9a5df345b2015ccaec31e843b1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01f8ce9f6a6232eb2bf6ce29fe1887b6c22f7b11", + "m/44'/541'/1'/0/0": "1S01e11496f5bf20f295a04171db1536d0ab48f4a1", + "m/44'/541'/21234567'/0/0": "1S01365c3f0cc91d6444ea47e4556d152f0283be71", + "m/44'/541'/2147483646'/0/0": "1S01ef8725bc43ceb64c11b9e2f5a27e892bd970e1", + "m/44'/541'/2147483647'/0/0": "1S0192dbee2a7e1e9a5df345b2015ccaec31e843b1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_2.ts index 3d93a3db1..2622733c8 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_2.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphrase2: SLIP39TestCaseData = { - id: 'count20_two_passphrase_2', - name: 'count20_two_passphrase_2', - description: '2-of-3 (20 words each) + passphrase_2', - passphrase: 'onekey', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_2", + "name": "count20_two_passphrase_2", + "description": "2-of-3 (20 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '14C8N7C67nByMjWLebPenhX7JTKa83WHKY', - "m/44'/0'/1'/0/0": '125BtC83562Apve7uLSN1PY7QcvCRNWuKy', - "m/44'/0'/21234567'/0/0": '13bFxoFKrMabcRA7V8rDFfEwe2fU85sGLv', - "m/44'/0'/2147483646'/0/0": '16nQehtb2VbnzZobBBva7V2SZ5pjVFosWf', - "m/44'/0'/2147483647'/0/0": '133cyRKDmnpqjK9ummDpCEAgDK92ZwMXhw', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "14C8N7C67nByMjWLebPenhX7JTKa83WHKY", + "m/44'/0'/1'/0/0": "125BtC83562Apve7uLSN1PY7QcvCRNWuKy", + "m/44'/0'/21234567'/0/0": "13bFxoFKrMabcRA7V8rDFfEwe2fU85sGLv", + "m/44'/0'/2147483646'/0/0": "16nQehtb2VbnzZobBBva7V2SZ5pjVFosWf", + "m/44'/0'/2147483647'/0/0": "133cyRKDmnpqjK9ummDpCEAgDK92ZwMXhw" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '33MbzcDWWgdnJ1mNqETpLJqq94N6ek39rt', - "m/49'/0'/1'/0/0": '35Uu21Zi81YmU1wbM4xQhZ5HJtwrLepJDd', - "m/49'/0'/21234567'/0/0": '3JE9zR1h4ibr7QwnxNjh8D6qoqMt7bHxfK', - "m/49'/0'/2147483646'/0/0": '3H1vPw6QXVF86BjAd4s26USchTUbCXM4S7', - "m/49'/0'/2147483647'/0/0": '386TdaCyiYXt41fCEWsMUAKqoUTUnH3aGS', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "33MbzcDWWgdnJ1mNqETpLJqq94N6ek39rt", + "m/49'/0'/1'/0/0": "35Uu21Zi81YmU1wbM4xQhZ5HJtwrLepJDd", + "m/49'/0'/21234567'/0/0": "3JE9zR1h4ibr7QwnxNjh8D6qoqMt7bHxfK", + "m/49'/0'/2147483646'/0/0": "3H1vPw6QXVF86BjAd4s26USchTUbCXM4S7", + "m/49'/0'/2147483647'/0/0": "386TdaCyiYXt41fCEWsMUAKqoUTUnH3aGS" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qy0wxzq5xyrn7yzvujv3r7ygtt5vhq55fw2hj2f', - "m/84'/0'/1'/0/0": 'bc1qhaapn6j79k4qsepjulsjkr2gkqqge92vhmmc5l', - "m/84'/0'/21234567'/0/0": 'bc1qw9jjyw7hzklhjacjpmashvt2r47tm7mahr6n7e', - "m/84'/0'/2147483646'/0/0": 'bc1q2s748z98g3e2ksg3lcy36knsegp3zyzdt9tgm6', - "m/84'/0'/2147483647'/0/0": 'bc1qc0v9hu9l60y275c0d0kk9k8ylq8nlnzne7fwla', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qy0wxzq5xyrn7yzvujv3r7ygtt5vhq55fw2hj2f", + "m/84'/0'/1'/0/0": "bc1qhaapn6j79k4qsepjulsjkr2gkqqge92vhmmc5l", + "m/84'/0'/21234567'/0/0": "bc1qw9jjyw7hzklhjacjpmashvt2r47tm7mahr6n7e", + "m/84'/0'/2147483646'/0/0": "bc1q2s748z98g3e2ksg3lcy36knsegp3zyzdt9tgm6", + "m/84'/0'/2147483647'/0/0": "bc1qc0v9hu9l60y275c0d0kk9k8ylq8nlnzne7fwla" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pzxjlsg66qm87zaal78s97388laqt3glra7jqpfnwga824y7smdgq5kr0u8', - "m/86'/0'/1'/0/0": 'bc1pgsqhen0cxxw3px6meup2drm9act95xcr968a0txn2hnzsm0l57xq0zwsc6', - "m/86'/0'/21234567'/0/0": 'bc1pytwgh4zuuvnn3c9z794k84zkzhzlwmfcg2cywux5rhrxr6376uvs7lqwu3', - "m/86'/0'/2147483646'/0/0": - 'bc1prevfhgjzpe6hn4gk9vs40hhdnk5w6xlc7nga6xz7mtx5jj6vdq5s39hqd5', - "m/86'/0'/2147483647'/0/0": - 'bc1p8vx4fwde7vrlmu8mvk6rvhgh0wknvtrc7nvtamj6zm0x7hrfum0qk9ysen', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pzxjlsg66qm87zaal78s97388laqt3glra7jqpfnwga824y7smdgq5kr0u8", + "m/86'/0'/1'/0/0": "bc1pgsqhen0cxxw3px6meup2drm9act95xcr968a0txn2hnzsm0l57xq0zwsc6", + "m/86'/0'/21234567'/0/0": "bc1pytwgh4zuuvnn3c9z794k84zkzhzlwmfcg2cywux5rhrxr6376uvs7lqwu3", + "m/86'/0'/2147483646'/0/0": "bc1prevfhgjzpe6hn4gk9vs40hhdnk5w6xlc7nga6xz7mtx5jj6vdq5s39hqd5", + "m/86'/0'/2147483647'/0/0": "bc1p8vx4fwde7vrlmu8mvk6rvhgh0wknvtrc7nvtamj6zm0x7hrfum0qk9ysen" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D8B44P3aFThS7isXikRPxHEnKk7p3dfxF9', - "m/44'/3'/1'/0/0": 'D5HUNMdnasre21opdReN5crNPspuSe2GYd', - "m/44'/3'/21234567'/0/0": 'DTjdYvgiGTDaGFAntzZg7GfKMzpjnGr9sh', - "m/44'/3'/2147483646'/0/0": 'DDXGCD44hyuCVMoupvQgmXbmFHkCKamstm', - "m/44'/3'/2147483647'/0/0": 'DB7jvknJ7hkL23mpeZ4k86farxMrBv5WoH', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D8B44P3aFThS7isXikRPxHEnKk7p3dfxF9", + "m/44'/3'/1'/0/0": "D5HUNMdnasre21opdReN5crNPspuSe2GYd", + "m/44'/3'/21234567'/0/0": "DTjdYvgiGTDaGFAntzZg7GfKMzpjnGr9sh", + "m/44'/3'/2147483646'/0/0": "DDXGCD44hyuCVMoupvQgmXbmFHkCKamstm", + "m/44'/3'/2147483647'/0/0": "DB7jvknJ7hkL23mpeZ4k86farxMrBv5WoH" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qrrur4yzxfatm87kfpy0epsu7hzh0rjrqvwvd6486u', - "m/44'/145'/1'/0/0": 'bitcoincash:qpcm0s7azwasems04ydjzljdth04wt79aq5xf9ufgn', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qru7slk0kqlvzuwzvsr6z5c79tgvv0tuhq7d370a0r', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qzy0cth2gpxlkc40at0dvp0h4pfzlkzdtg0uk6w5pj', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qzehgxkvcdwn886lc3uzed7ujksvtnpw3cv4y80yzy', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qrrur4yzxfatm87kfpy0epsu7hzh0rjrqvwvd6486u", + "m/44'/145'/1'/0/0": "bitcoincash:qpcm0s7azwasems04ydjzljdth04wt79aq5xf9ufgn", + "m/44'/145'/21234567'/0/0": "bitcoincash:qru7slk0kqlvzuwzvsr6z5c79tgvv0tuhq7d370a0r", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qzy0cth2gpxlkc40at0dvp0h4pfzlkzdtg0uk6w5pj", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qzehgxkvcdwn886lc3uzed7ujksvtnpw3cv4y80yzy" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LbEG5rLbRC4YpDdUjyUr5bgWYmukbXt9de', - "m/44'/2'/1'/0/0": 'LYkZGKM4WYL9KT93ALP1SouTqqsa1ZvTBG', - "m/44'/2'/21234567'/0/0": 'Lg6wszDimfHfn6YjqcPUfmSNG2ecaLoiEo', - "m/44'/2'/2147483646'/0/0": 'LKrTwoiFwhL7T75KEohsF4yrGYDtejdL9J', - "m/44'/2'/2147483647'/0/0": 'LKSKadLfs3pjNiKR7cm3PbfCh5oEGtGmTG', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LbEG5rLbRC4YpDdUjyUr5bgWYmukbXt9de", + "m/44'/2'/1'/0/0": "LYkZGKM4WYL9KT93ALP1SouTqqsa1ZvTBG", + "m/44'/2'/21234567'/0/0": "Lg6wszDimfHfn6YjqcPUfmSNG2ecaLoiEo", + "m/44'/2'/2147483646'/0/0": "LKrTwoiFwhL7T75KEohsF4yrGYDtejdL9J", + "m/44'/2'/2147483647'/0/0": "LKSKadLfs3pjNiKR7cm3PbfCh5oEGtGmTG" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MHnFJTGFn21c2PB8MXw8WjkcShs783UM86', - "m/49'/2'/1'/0/0": 'M9o5eTFunC32by4F9UxcKdGDNcEB367ehE', - "m/49'/2'/21234567'/0/0": 'MWEtQkpkJgv8g36cCVcLrHeKahhRTGtTrN', - "m/49'/2'/2147483646'/0/0": 'MAs1qqatGDX6DQ9qXzHfNj56BsfLjVsBzE', - "m/49'/2'/2147483647'/0/0": 'MRfvPSMHeHYKMb3naRvmxBomB4cbU18SXK', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MHnFJTGFn21c2PB8MXw8WjkcShs783UM86", + "m/49'/2'/1'/0/0": "M9o5eTFunC32by4F9UxcKdGDNcEB367ehE", + "m/49'/2'/21234567'/0/0": "MWEtQkpkJgv8g36cCVcLrHeKahhRTGtTrN", + "m/49'/2'/2147483646'/0/0": "MAs1qqatGDX6DQ9qXzHfNj56BsfLjVsBzE", + "m/49'/2'/2147483647'/0/0": "MRfvPSMHeHYKMb3naRvmxBomB4cbU18SXK" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q0mlt8xwrmcj2m9ge5v47vj07v2dx3lekwz76lk', - "m/84'/2'/1'/0/0": 'ltc1q0gehhv49n050mq9h4d0nn9q58g4gr6aqnp70ze', - "m/84'/2'/21234567'/0/0": 'ltc1qm584t3ql6uz8g0t7fzlhh6mzflzd7w48vca5js', - "m/84'/2'/2147483646'/0/0": 'ltc1qk6wrv94fesk5jsx7j33kdggq9jesalg0fl5kl7', - "m/84'/2'/2147483647'/0/0": 'ltc1qqju0cjekcuxrrku3hdxqgt7qf8tsh86x7fec4j', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q0mlt8xwrmcj2m9ge5v47vj07v2dx3lekwz76lk", + "m/84'/2'/1'/0/0": "ltc1q0gehhv49n050mq9h4d0nn9q58g4gr6aqnp70ze", + "m/84'/2'/21234567'/0/0": "ltc1qm584t3ql6uz8g0t7fzlhh6mzflzd7w48vca5js", + "m/84'/2'/2147483646'/0/0": "ltc1qk6wrv94fesk5jsx7j33kdggq9jesalg0fl5kl7", + "m/84'/2'/2147483647'/0/0": "ltc1qqju0cjekcuxrrku3hdxqgt7qf8tsh86x7fec4j" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'Nc29aK4N13bjXnkLG8RP1hZE3LaS9PnnUp', - "m/44'/1900'/1'/0/0": 'Ne1A2Pw8999y1BznoU9S6bnx6qSs4BK8iP', - "m/44'/1900'/21234567'/0/0": 'NYF4Q3FfpmfFzFvvvZMu9Gu3XyNaF4AhtP', - "m/44'/1900'/2147483646'/0/0": 'NTFTmigCTXpAsq3ug6mE1aNUwLXvKBq6Ro', - "m/44'/1900'/2147483647'/0/0": 'NPbgff5V5cFUTNY6zoFQGCUmQ7juuVCCCE', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "Nc29aK4N13bjXnkLG8RP1hZE3LaS9PnnUp", + "m/44'/1900'/1'/0/0": "Ne1A2Pw8999y1BznoU9S6bnx6qSs4BK8iP", + "m/44'/1900'/21234567'/0/0": "NYF4Q3FfpmfFzFvvvZMu9Gu3XyNaF4AhtP", + "m/44'/1900'/2147483646'/0/0": "NTFTmigCTXpAsq3ug6mE1aNUwLXvKBq6Ro", + "m/44'/1900'/2147483647'/0/0": "NPbgff5V5cFUTNY6zoFQGCUmQ7juuVCCCE" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xF13F61FBB08369580E0808155ae2f2B905Da5E49', - "m/44'/60'/1'/0/0": '0x3753ca190eC6a2f966483E4031eDcB90E5108BE4', - "m/44'/60'/21234567'/0/0": '0x7847D6B35820C8C23d72Bd7580A8B8727d79ec37', - "m/44'/60'/2147483646'/0/0": '0xB05d930Be3F7812561c3AE6235Ea53F530c69357', - "m/44'/60'/2147483647'/0/0": '0x45EcEFDED5dEe57717f423956C1EB1a5a2224bE6', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xF13F61FBB08369580E0808155ae2f2B905Da5E49", + "m/44'/60'/1'/0/0": "0x3753ca190eC6a2f966483E4031eDcB90E5108BE4", + "m/44'/60'/21234567'/0/0": "0x7847D6B35820C8C23d72Bd7580A8B8727d79ec37", + "m/44'/60'/2147483646'/0/0": "0xB05d930Be3F7812561c3AE6235Ea53F530c69357", + "m/44'/60'/2147483647'/0/0": "0x45EcEFDED5dEe57717f423956C1EB1a5a2224bE6" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xecF74A38766E584e285Cd569FC7AcC357d09FCdA', - "m/44'/61'/1'/0/0": '0xD3837E1fDBF55E81ECBa964a68F143Fcac746Fb9', - "m/44'/61'/21234567'/0/0": '0x4711da3Afb7FbD5Ef7DE6d1d8D4c5475Bc42c672', - "m/44'/61'/2147483646'/0/0": '0xba6A776577f8214E6b9fe6777c66186de871CDE4', - "m/44'/61'/2147483647'/0/0": '0x9ECECeddf5DAAdB24B41Ab91Bd52c397e25233c4', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xecF74A38766E584e285Cd569FC7AcC357d09FCdA", + "m/44'/61'/1'/0/0": "0xD3837E1fDBF55E81ECBa964a68F143Fcac746Fb9", + "m/44'/61'/21234567'/0/0": "0x4711da3Afb7FbD5Ef7DE6d1d8D4c5475Bc42c672", + "m/44'/61'/2147483646'/0/0": "0xba6A776577f8214E6b9fe6777c66186de871CDE4", + "m/44'/61'/2147483647'/0/0": "0x9ECECeddf5DAAdB24B41Ab91Bd52c397e25233c4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1nc3pahqtw96yqah9cjmg0qaq4wv8vx37gvzwc0', - "m/44'/118'/1'/0/0": 'cosmos12h54n5gzuq8ga7yh496uupm00q3jhptelnsuyf', - "m/44'/118'/21234567'/0/0": 'cosmos1w3yy83u36x0s76er0lqp8ad7kvdekrp4lflgmt', - "m/44'/118'/2147483646'/0/0": 'cosmos13yma2hz8um4k0jl4ll3drm7a74dyuhjcuw2cxy', - "m/44'/118'/2147483647'/0/0": 'cosmos1yndw3tw0jlek9jr75ylv8re8nthze335yrjz3y', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1nc3pahqtw96yqah9cjmg0qaq4wv8vx37gvzwc0", + "m/44'/118'/1'/0/0": "cosmos12h54n5gzuq8ga7yh496uupm00q3jhptelnsuyf", + "m/44'/118'/21234567'/0/0": "cosmos1w3yy83u36x0s76er0lqp8ad7kvdekrp4lflgmt", + "m/44'/118'/2147483646'/0/0": "cosmos13yma2hz8um4k0jl4ll3drm7a74dyuhjcuw2cxy", + "m/44'/118'/2147483647'/0/0": "cosmos1yndw3tw0jlek9jr75ylv8re8nthze335yrjz3y" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1nc3pahqtw96yqah9cjmg0qaq4wv8vx379h0fp4', - "m/44'/118'/1'/0/0": 'akash12h54n5gzuq8ga7yh496uupm00q3jhptejgaman', - "m/44'/118'/21234567'/0/0": 'akash1w3yy83u36x0s76er0lqp8ad7kvdekrp4jjj0z3', - "m/44'/118'/2147483646'/0/0": 'akash13yma2hz8um4k0jl4ll3drm7a74dyuhjc348ll7', - "m/44'/118'/2147483647'/0/0": 'akash1yndw3tw0jlek9jr75ylv8re8nthze335fcl9g7', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1nc3pahqtw96yqah9cjmg0qaq4wv8vx379h0fp4", + "m/44'/118'/1'/0/0": "akash12h54n5gzuq8ga7yh496uupm00q3jhptejgaman", + "m/44'/118'/21234567'/0/0": "akash1w3yy83u36x0s76er0lqp8ad7kvdekrp4jjj0z3", + "m/44'/118'/2147483646'/0/0": "akash13yma2hz8um4k0jl4ll3drm7a74dyuhjc348ll7", + "m/44'/118'/2147483647'/0/0": "akash1yndw3tw0jlek9jr75ylv8re8nthze335fcl9g7" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1nc3pahqtw96yqah9cjmg0qaq4wv8vx37sh2hy7', - "m/44'/118'/1'/0/0": 'cro12h54n5gzuq8ga7yh496uupm00q3jhpte8gc9cc', - "m/44'/118'/21234567'/0/0": 'cro1w3yy83u36x0s76er0lqp8ad7kvdekrp48jh386', - "m/44'/118'/2147483646'/0/0": 'cro13yma2hz8um4k0jl4ll3drm7a74dyuhjcy4zp64', - "m/44'/118'/2147483647'/0/0": 'cro1yndw3tw0jlek9jr75ylv8re8nthze335uc6md4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1nc3pahqtw96yqah9cjmg0qaq4wv8vx37sh2hy7", + "m/44'/118'/1'/0/0": "cro12h54n5gzuq8ga7yh496uupm00q3jhpte8gc9cc", + "m/44'/118'/21234567'/0/0": "cro1w3yy83u36x0s76er0lqp8ad7kvdekrp48jh386", + "m/44'/118'/2147483646'/0/0": "cro13yma2hz8um4k0jl4ll3drm7a74dyuhjcy4zp64", + "m/44'/118'/2147483647'/0/0": "cro1yndw3tw0jlek9jr75ylv8re8nthze335uc6md4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1nc3pahqtw96yqah9cjmg0qaq4wv8vx37m3t26c', - "m/44'/118'/1'/0/0": 'fetch12h54n5gzuq8ga7yh496uupm00q3jhptevwecx7', - "m/44'/118'/21234567'/0/0": 'fetch1w3yy83u36x0s76er0lqp8ad7kvdekrp4v5kveu', - "m/44'/118'/2147483646'/0/0": 'fetch13yma2hz8um4k0jl4ll3drm7a74dyuhjc0nruyn', - "m/44'/118'/2147483647'/0/0": 'fetch1yndw3tw0jlek9jr75ylv8re8nthze335h7mxnn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1nc3pahqtw96yqah9cjmg0qaq4wv8vx37m3t26c", + "m/44'/118'/1'/0/0": "fetch12h54n5gzuq8ga7yh496uupm00q3jhptevwecx7", + "m/44'/118'/21234567'/0/0": "fetch1w3yy83u36x0s76er0lqp8ad7kvdekrp4v5kveu", + "m/44'/118'/2147483646'/0/0": "fetch13yma2hz8um4k0jl4ll3drm7a74dyuhjc0nruyn", + "m/44'/118'/2147483647'/0/0": "fetch1yndw3tw0jlek9jr75ylv8re8nthze335h7mxnn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1nc3pahqtw96yqah9cjmg0qaq4wv8vx37qh37wa', - "m/44'/118'/1'/0/0": 'osmo12h54n5gzuq8ga7yh496uupm00q3jhptehgrvjm', - "m/44'/118'/21234567'/0/0": 'osmo1w3yy83u36x0s76er0lqp8ad7kvdekrp4hjvcde', - "m/44'/118'/2147483646'/0/0": 'osmo13yma2hz8um4k0jl4ll3drm7a74dyuhjc54egsk', - "m/44'/118'/2147483647'/0/0": 'osmo1yndw3tw0jlek9jr75ylv8re8nthze335vcpj8k', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1nc3pahqtw96yqah9cjmg0qaq4wv8vx37qh37wa", + "m/44'/118'/1'/0/0": "osmo12h54n5gzuq8ga7yh496uupm00q3jhptehgrvjm", + "m/44'/118'/21234567'/0/0": "osmo1w3yy83u36x0s76er0lqp8ad7kvdekrp4hjvcde", + "m/44'/118'/2147483646'/0/0": "osmo13yma2hz8um4k0jl4ll3drm7a74dyuhjc54egsk", + "m/44'/118'/2147483647'/0/0": "osmo1yndw3tw0jlek9jr75ylv8re8nthze335vcpj8k" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1nc3pahqtw96yqah9cjmg0qaq4wv8vx3777p4ln', - "m/44'/118'/1'/0/0": 'juno12h54n5gzuq8ga7yh496uupm00q3jhptefpn8r4', - "m/44'/118'/21234567'/0/0": 'juno1w3yy83u36x0s76er0lqp8ad7kvdekrp4fmunuh', - "m/44'/118'/2147483646'/0/0": 'juno13yma2hz8um4k0jl4ll3drm7a74dyuhjc2ufrpc', - "m/44'/118'/2147483647'/0/0": 'juno1yndw3tw0jlek9jr75ylv8re8nthze335j33ekc', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1nc3pahqtw96yqah9cjmg0qaq4wv8vx3777p4ln", + "m/44'/118'/1'/0/0": "juno12h54n5gzuq8ga7yh496uupm00q3jhptefpn8r4", + "m/44'/118'/21234567'/0/0": "juno1w3yy83u36x0s76er0lqp8ad7kvdekrp4fmunuh", + "m/44'/118'/2147483646'/0/0": "juno13yma2hz8um4k0jl4ll3drm7a74dyuhjc2ufrpc", + "m/44'/118'/2147483647'/0/0": "juno1yndw3tw0jlek9jr75ylv8re8nthze335j33ekc" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1nc3pahqtw96yqah9cjmg0qaq4wv8vx37wgcw60', - "m/44'/118'/1'/0/0": 'terra12h54n5gzuq8ga7yh496uupm00q3jhpteeh2uxf', - "m/44'/118'/21234567'/0/0": 'terra1w3yy83u36x0s76er0lqp8ad7kvdekrp4ed9get', - "m/44'/118'/2147483646'/0/0": 'terra13yma2hz8um4k0jl4ll3drm7a74dyuhjc62scyy', - "m/44'/118'/2147483647'/0/0": 'terra1yndw3tw0jlek9jr75ylv8re8nthze335z8gzny', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1nc3pahqtw96yqah9cjmg0qaq4wv8vx37wgcw60", + "m/44'/118'/1'/0/0": "terra12h54n5gzuq8ga7yh496uupm00q3jhpteeh2uxf", + "m/44'/118'/21234567'/0/0": "terra1w3yy83u36x0s76er0lqp8ad7kvdekrp4ed9get", + "m/44'/118'/2147483646'/0/0": "terra13yma2hz8um4k0jl4ll3drm7a74dyuhjc62scyy", + "m/44'/118'/2147483647'/0/0": "terra1yndw3tw0jlek9jr75ylv8re8nthze335z8gzny" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1nc3pahqtw96yqah9cjmg0qaq4wv8vx372fk89n', - "m/44'/118'/1'/0/0": 'secret12h54n5gzuq8ga7yh496uupm00q3jhpteaky4e4', - "m/44'/118'/21234567'/0/0": 'secret1w3yy83u36x0s76er0lqp8ad7kvdekrp4avtpxh', - "m/44'/118'/2147483646'/0/0": 'secret13yma2hz8um4k0jl4ll3drm7a74dyuhjc7t73mc', - "m/44'/118'/2147483647'/0/0": 'secret1yndw3tw0jlek9jr75ylv8re8nthze335xxxtvc', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1nc3pahqtw96yqah9cjmg0qaq4wv8vx372fk89n", + "m/44'/118'/1'/0/0": "secret12h54n5gzuq8ga7yh496uupm00q3jhpteaky4e4", + "m/44'/118'/21234567'/0/0": "secret1w3yy83u36x0s76er0lqp8ad7kvdekrp4avtpxh", + "m/44'/118'/2147483646'/0/0": "secret13yma2hz8um4k0jl4ll3drm7a74dyuhjc7t73mc", + "m/44'/118'/2147483647'/0/0": "secret1yndw3tw0jlek9jr75ylv8re8nthze335xxxtvc" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1nc3pahqtw96yqah9cjmg0qaq4wv8vx37exn7zz', - "m/44'/118'/1'/0/0": 'celestia12h54n5gzuq8ga7yh496uupm00q3jhptewepv7y', - "m/44'/118'/21234567'/0/0": 'celestia1w3yy83u36x0s76er0lqp8ad7kvdekrp4wrwcpx', - "m/44'/118'/2147483646'/0/0": 'celestia13yma2hz8um4k0jl4ll3drm7a74dyuhjcdymguf', - "m/44'/118'/2147483647'/0/0": 'celestia1yndw3tw0jlek9jr75ylv8re8nthze3354frjtf', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1nc3pahqtw96yqah9cjmg0qaq4wv8vx37exn7zz", + "m/44'/118'/1'/0/0": "celestia12h54n5gzuq8ga7yh496uupm00q3jhptewepv7y", + "m/44'/118'/21234567'/0/0": "celestia1w3yy83u36x0s76er0lqp8ad7kvdekrp4wrwcpx", + "m/44'/118'/2147483646'/0/0": "celestia13yma2hz8um4k0jl4ll3drm7a74dyuhjcdymguf", + "m/44'/118'/2147483647'/0/0": "celestia1yndw3tw0jlek9jr75ylv8re8nthze3354frjtf" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x00904ce2f42fb6cc5bc8b2e54746ca0d3e4823a63a0d2f392561db0b61ccaae2', - "m/44'/784'/1'/0'/0'": '0x071fdf059f6cca0c142189a4f24be55a7f0bda63f4ff324660cb6b4b8327fc0a', - "m/44'/784'/21234567'/0'/0'": - '0xa8c1db73076b02fea2ccc934f0c0b7716e4cda2e7415887222b476010b93acaa', - "m/44'/784'/2147483646'/0'/0'": - '0xb7ad414a2a21c994ad40c26284bf2dc88045ffbae9c8abbb11fbcc6a0a0109c5', - "m/44'/784'/2147483647'/0'/0'": - '0x864e025c9e502eab83c0b8740ba1e5c7e1da1310df2ee254a0b289e850b64119', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x00904ce2f42fb6cc5bc8b2e54746ca0d3e4823a63a0d2f392561db0b61ccaae2", + "m/44'/784'/1'/0'/0'": "0x071fdf059f6cca0c142189a4f24be55a7f0bda63f4ff324660cb6b4b8327fc0a", + "m/44'/784'/21234567'/0'/0'": "0xa8c1db73076b02fea2ccc934f0c0b7716e4cda2e7415887222b476010b93acaa", + "m/44'/784'/2147483646'/0'/0'": "0xb7ad414a2a21c994ad40c26284bf2dc88045ffbae9c8abbb11fbcc6a0a0109c5", + "m/44'/784'/2147483647'/0'/0'": "0x864e025c9e502eab83c0b8740ba1e5c7e1da1310df2ee254a0b289e850b64119" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rfJgYqqiUeXUoxLdwP1udZkGQqcVHoj719', - "m/44'/144'/1'/0/0": 'rJKRhjtkqzNFBmnN4WYGzVnpi1SydWRyoE', - "m/44'/144'/21234567'/0/0": 'rJCZBobbUEcLhYVMan9EPXGvVWY2CgYQFv', - "m/44'/144'/2147483646'/0/0": 'r4WZ1e3nYUtRh9gHughJs1gQ1vnF1J2niY', - "m/44'/144'/2147483647'/0/0": 'rnpXtDVpAxxGr3dLZx9Xw8w44Q6hHmQZXY', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rfJgYqqiUeXUoxLdwP1udZkGQqcVHoj719", + "m/44'/144'/1'/0/0": "rJKRhjtkqzNFBmnN4WYGzVnpi1SydWRyoE", + "m/44'/144'/21234567'/0/0": "rJCZBobbUEcLhYVMan9EPXGvVWY2CgYQFv", + "m/44'/144'/2147483646'/0/0": "r4WZ1e3nYUtRh9gHughJs1gQ1vnF1J2niY", + "m/44'/144'/2147483647'/0/0": "rnpXtDVpAxxGr3dLZx9Xw8w44Q6hHmQZXY" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC483a5bf3eec5c42c0bd4e3cd419306945acb904a14b320ddc86456c76cf81b76141c', - "m/44'/728'/1'/0'/0'": - 'BFC3131f5ec869b08e278c60c2b4e2eb4259e5068a412acef80bd84db2bec63bd6decb7', - "m/44'/728'/21234567'/0'/0'": - 'BFCe02bb6e1230a8ec974d2939abcb608896c88d76de2bf02363e2e95110e049b1dd680', - "m/44'/728'/2147483646'/0'/0'": - 'BFCd422221e87f0235cf3552b5cc8dc8aab201736e3481750f77c6a3e1db9b65563b0fe', - "m/44'/728'/2147483647'/0'/0'": - 'BFC9ce71c738ac1b4603913c54cfd754849d0e202fa0c314f1f201317e647ff8d9bd2f9', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC483a5bf3eec5c42c0bd4e3cd419306945acb904a14b320ddc86456c76cf81b76141c", + "m/44'/728'/1'/0'/0'": "BFC3131f5ec869b08e278c60c2b4e2eb4259e5068a412acef80bd84db2bec63bd6decb7", + "m/44'/728'/21234567'/0'/0'": "BFCe02bb6e1230a8ec974d2939abcb608896c88d76de2bf02363e2e95110e049b1dd680", + "m/44'/728'/2147483646'/0'/0'": "BFCd422221e87f0235cf3552b5cc8dc8aab201736e3481750f77c6a3e1db9b65563b0fe", + "m/44'/728'/2147483647'/0'/0'": "BFC9ce71c738ac1b4603913c54cfd754849d0e202fa0c314f1f201317e647ff8d9bd2f9" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1HoLhvnsSSQLAS9fYLhM82B1s5ghWTiGac7khTiS2HTZ5', - "m/44'/1234'/1'/0/0": '1Cg57m5G6J2EjfRFoRmQvHQu7NjLnsHWZ9zH2hvWiH4SS', - "m/44'/1234'/21234567'/0/0": '1KaQ68wvrYYXbShJYRWZCVLZYLHgGpsdBFfCHWkhT6Nu', - "m/44'/1234'/2147483646'/0/0": '194cMZycsS4vPW81BGDRg1TQhf3dayui4VHQxBCqJpa7f', - "m/44'/1234'/2147483647'/0/0": '135nLS9YXog65XVjuiGC8WTMMzBSawQcCDF4TNUUTYmxw', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1HoLhvnsSSQLAS9fYLhM82B1s5ghWTiGac7khTiS2HTZ5", + "m/44'/1234'/1'/0/0": "1Cg57m5G6J2EjfRFoRmQvHQu7NjLnsHWZ9zH2hvWiH4SS", + "m/44'/1234'/21234567'/0/0": "1KaQ68wvrYYXbShJYRWZCVLZYLHgGpsdBFfCHWkhT6Nu", + "m/44'/1234'/2147483646'/0/0": "194cMZycsS4vPW81BGDRg1TQhf3dayui4VHQxBCqJpa7f", + "m/44'/1234'/2147483647'/0/0": "135nLS9YXog65XVjuiGC8WTMMzBSawQcCDF4TNUUTYmxw" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'JTZWJWFSE3JN6NN3OAMEP32XWTUZNZHT2HQO23IN6RIFPFGQ37FSFISS5I', - "m/44'/283'/1'/0'/0'": 'OES7KBWQZ6VV2YKZK4XCGAYWE5UN6TEQRBVY4ANLHK3FWJ4HQSILIXDISQ', - "m/44'/283'/21234567'/0'/0'": 'KUNE36CFEHSB7KITDRHJPY5FLX4BW3Y4QEJ5ILLMC3ZZHQISGSAQE76SUA', - "m/44'/283'/2147483646'/0'/0'": - 'ZE5TA7VQT6I7677ZTHPMNPOI4MVIF3WUBIY3OQAHNA5XHY6HDDEUP3LBS4', - "m/44'/283'/2147483647'/0'/0'": - 'H4PU537GZMCONETYDSS4FOKJNPWRD2GGB3QI7AZZPNV7DXC72L6TZLCKUA', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "JTZWJWFSE3JN6NN3OAMEP32XWTUZNZHT2HQO23IN6RIFPFGQ37FSFISS5I", + "m/44'/283'/1'/0'/0'": "OES7KBWQZ6VV2YKZK4XCGAYWE5UN6TEQRBVY4ANLHK3FWJ4HQSILIXDISQ", + "m/44'/283'/21234567'/0'/0'": "KUNE36CFEHSB7KITDRHJPY5FLX4BW3Y4QEJ5ILLMC3ZZHQISGSAQE76SUA", + "m/44'/283'/2147483646'/0'/0'": "ZE5TA7VQT6I7677ZTHPMNPOI4MVIF3WUBIY3OQAHNA5XHY6HDDEUP3LBS4", + "m/44'/283'/2147483647'/0'/0'": "H4PU537GZMCONETYDSS4FOKJNPWRD2GGB3QI7AZZPNV7DXC72L6TZLCKUA" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQDRGa0pKFKTyqwjD96wLsQQGi_C0ykDg1pO_8NMcLS-xHq5', - "m/44'/607'/1'": 'UQCONh4BrPkcNFJmLSMgj6NBL48o3J49QhULVO7Finq6fXWc', - "m/44'/607'/21234567'": 'UQAJ4m33Qi5IdecqQdyOY0tcB1K-q9qhdoj07EUp0FYW5mj2', - "m/44'/607'/2147483646'": 'UQAJgtpD5F8JMkXhvp_4y0yuiwi4ryAk529BlLlPo91eWQuT', - "m/44'/607'/2147483647'": 'UQBgs19afNk8_JEcY4-wFmjbgAlevh9JcJa7DjdKo5YYQtx2', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQDRGa0pKFKTyqwjD96wLsQQGi_C0ykDg1pO_8NMcLS-xHq5", + "m/44'/607'/1'": "UQCONh4BrPkcNFJmLSMgj6NBL48o3J49QhULVO7Finq6fXWc", + "m/44'/607'/21234567'": "UQAJ4m33Qi5IdecqQdyOY0tcB1K-q9qhdoj07EUp0FYW5mj2", + "m/44'/607'/2147483646'": "UQAJgtpD5F8JMkXhvp_4y0yuiwi4ryAk529BlLlPo91eWQuT", + "m/44'/607'/2147483647'": "UQBgs19afNk8_JEcY4-wFmjbgAlevh9JcJa7DjdKo5YYQtx2" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqrma720t8dt4sjzkf46cya52zcyvesdgdslrhh0f', - "m/44'/309'/1'/0/0": 'ckb1qyqwxdrc03j0x34vfzwgtwlycer3hav72qfq8hmk9z', - "m/44'/309'/21234567'/0/0": 'ckb1qyqgphxav2kywsmnwzte6f7vr84vr4tscqsqx8l68z', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqx735vjz2nh6gdsavz607jmqkrh86rgq9qrvf6ny', - "m/44'/309'/2147483647'/0/0": 'ckb1qyq2v5ctr3s5tf4mf28j00aqln2hlfm0p4ysr04nyj', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqrma720t8dt4sjzkf46cya52zcyvesdgdslrhh0f", + "m/44'/309'/1'/0/0": "ckb1qyqwxdrc03j0x34vfzwgtwlycer3hav72qfq8hmk9z", + "m/44'/309'/21234567'/0/0": "ckb1qyqgphxav2kywsmnwzte6f7vr84vr4tscqsqx8l68z", + "m/44'/309'/2147483646'/0/0": "ckb1qyqx735vjz2nh6gdsavz607jmqkrh86rgq9qrvf6ny", + "m/44'/309'/2147483647'/0/0": "ckb1qyq2v5ctr3s5tf4mf28j00aqln2hlfm0p4ysr04nyj" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5pwf6z0gx3lmcrw8szf6ej05wl00770qdrsazherr', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5prd2vvejcuzkux9z68jskxdrw33hlddy3q6uft5w', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5znkwelx2kzf0gum4mstlngpz2xl3c35f8qyp7upa', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5yffsflcjmzwh7hr006s95t6fhjhf08l633ugv9f0', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g58403afedmtehfe72al0ffvnyer30uqrprpfqan6e', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5pwf6z0gx3lmcrw8szf6ej05wl00770qdrsazherr", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5prd2vvejcuzkux9z68jskxdrw33hlddy3q6uft5w", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5znkwelx2kzf0gum4mstlngpz2xl3c35f8qyp7upa", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5yffsflcjmzwh7hr006s95t6fhjhf08l633ugv9f0", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g58403afedmtehfe72al0ffvnyer30uqrprpfqan6e" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rfJgYqqiUeXUoxLdwP1udZkGQqcVHoj719', - "m/44'/144'/1'/0/0": 'rJKRhjtkqzNFBmnN4WYGzVnpi1SydWRyoE', - "m/44'/144'/21234567'/0/0": 'rJCZBobbUEcLhYVMan9EPXGvVWY2CgYQFv', - "m/44'/144'/2147483646'/0/0": 'r4WZ1e3nYUtRh9gHughJs1gQ1vnF1J2niY', - "m/44'/144'/2147483647'/0/0": 'rnpXtDVpAxxGr3dLZx9Xw8w44Q6hHmQZXY', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rfJgYqqiUeXUoxLdwP1udZkGQqcVHoj719", + "m/44'/144'/1'/0/0": "rJKRhjtkqzNFBmnN4WYGzVnpi1SydWRyoE", + "m/44'/144'/21234567'/0/0": "rJCZBobbUEcLhYVMan9EPXGvVWY2CgYQFv", + "m/44'/144'/2147483646'/0/0": "r4WZ1e3nYUtRh9gHughJs1gQ1vnF1J2niY", + "m/44'/144'/2147483647'/0/0": "rnpXtDVpAxxGr3dLZx9Xw8w44Q6hHmQZXY" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01c82992a7ba3be75b53db0a2335c8a10fd649c1', - "m/44'/541'/1'/0/0": '1S01fb72b440c45bccbe7177a548fe6336ee2b1d71', - "m/44'/541'/21234567'/0/0": '1S0100b49bcfaba46dddfa645f54bf79e94cc921e1', - "m/44'/541'/2147483646'/0/0": '1S0168a35cc797c9061b2e494d15342d2fb347f991', - "m/44'/541'/2147483647'/0/0": '1S016c0df8b898dae06053522976a0800579dd3d91', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01c82992a7ba3be75b53db0a2335c8a10fd649c1", + "m/44'/541'/1'/0/0": "1S01fb72b440c45bccbe7177a548fe6336ee2b1d71", + "m/44'/541'/21234567'/0/0": "1S0100b49bcfaba46dddfa645f54bf79e94cc921e1", + "m/44'/541'/2147483646'/0/0": "1S0168a35cc797c9061b2e494d15342d2fb347f991", + "m/44'/541'/2147483647'/0/0": "1S016c0df8b898dae06053522976a0800579dd3d91" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_empty.ts index 50f0443ca..97b307d4e 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count20_two/passphrase_empty.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_two_passphrase_empty', - name: 'count20_two_passphrase_empty', - description: '2-of-3 (20 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_empty", + "name": "count20_two_passphrase_empty", + "description": "2-of-3 (20 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '14X9zG8nvzgxugBzqBt9f13vDtCFLdbTMm', - "m/44'/0'/1'/0/0": '12P7d2ciP514Lo6kztqKJ2YCTxXwirVdsk', - "m/44'/0'/21234567'/0/0": '1Kqsi3vTDjp18rCZUb2F595uNUFuXWkDua', - "m/44'/0'/2147483646'/0/0": '1BrJcPCCgoYWtoGHFVhkLqyz5fdiJSrrt6', - "m/44'/0'/2147483647'/0/0": '1MfgbYLv2w794NQGsc45s28TdnmFDsVc7s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "14X9zG8nvzgxugBzqBt9f13vDtCFLdbTMm", + "m/44'/0'/1'/0/0": "12P7d2ciP514Lo6kztqKJ2YCTxXwirVdsk", + "m/44'/0'/21234567'/0/0": "1Kqsi3vTDjp18rCZUb2F595uNUFuXWkDua", + "m/44'/0'/2147483646'/0/0": "1BrJcPCCgoYWtoGHFVhkLqyz5fdiJSrrt6", + "m/44'/0'/2147483647'/0/0": "1MfgbYLv2w794NQGsc45s28TdnmFDsVc7s" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CWC8JjzC1SLtVf43XCHRTBJPwK65v3dqN', - "m/49'/0'/1'/0/0": '32qATyAA18EDSEPUCMxvUkbU87kdW9bYWu', - "m/49'/0'/21234567'/0/0": '3NLMhxZqV5tdgroBFWny9XfszQqJ6PbCxx', - "m/49'/0'/2147483646'/0/0": '3HeVxgJ3uPEwSowUBQXQHCLggubUW8Mq9B', - "m/49'/0'/2147483647'/0/0": '3DLXSNXXSq1HpGqNbZNm9wADs3z61m9KCt', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CWC8JjzC1SLtVf43XCHRTBJPwK65v3dqN", + "m/49'/0'/1'/0/0": "32qATyAA18EDSEPUCMxvUkbU87kdW9bYWu", + "m/49'/0'/21234567'/0/0": "3NLMhxZqV5tdgroBFWny9XfszQqJ6PbCxx", + "m/49'/0'/2147483646'/0/0": "3HeVxgJ3uPEwSowUBQXQHCLggubUW8Mq9B", + "m/49'/0'/2147483647'/0/0": "3DLXSNXXSq1HpGqNbZNm9wADs3z61m9KCt" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q2duevw8dps5p9yf8hmuxaace9xlzz9qk7tcw9e', - "m/84'/0'/1'/0/0": 'bc1q06g2spsrdze5eaaf366f6vyf7r77ykcgfvj4wk', - "m/84'/0'/21234567'/0/0": 'bc1q2wa74l33nsm2eqtaa4jcq258zss07wjmh5qefx', - "m/84'/0'/2147483646'/0/0": 'bc1qqt4dcu0k3uysrtkevhk6mha59eumcxjygwxu2r', - "m/84'/0'/2147483647'/0/0": 'bc1qtyxxntc9hxzsvxzx72xguds840vxvyp0m0wta9', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q2duevw8dps5p9yf8hmuxaace9xlzz9qk7tcw9e", + "m/84'/0'/1'/0/0": "bc1q06g2spsrdze5eaaf366f6vyf7r77ykcgfvj4wk", + "m/84'/0'/21234567'/0/0": "bc1q2wa74l33nsm2eqtaa4jcq258zss07wjmh5qefx", + "m/84'/0'/2147483646'/0/0": "bc1qqt4dcu0k3uysrtkevhk6mha59eumcxjygwxu2r", + "m/84'/0'/2147483647'/0/0": "bc1qtyxxntc9hxzsvxzx72xguds840vxvyp0m0wta9" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pxc8x020txshxjnklnq33ftsjzcflp3d508ceyluk5tysw6jqsszq8g7hxl', - "m/86'/0'/1'/0/0": 'bc1pxy83s4xtt8006x5ptg669av6xs9fs9ac63zkurqr3hsrmcdlm53q44nqc0', - "m/86'/0'/21234567'/0/0": 'bc1pl0mcccmtrg8rhpggyel4zw4cjsgvnpxudlksavfsflmzrg33autsrdfk8c', - "m/86'/0'/2147483646'/0/0": - 'bc1pkqlssuvf44u3r83q93746nrf6slw4sksx2r722743xvj72jstghsc3nh4m', - "m/86'/0'/2147483647'/0/0": - 'bc1ps34hegykjqmr7gypd2u0tqwa8p76fns6veprjnrwlveq6rv45ehsvr9nt8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pxc8x020txshxjnklnq33ftsjzcflp3d508ceyluk5tysw6jqsszq8g7hxl", + "m/86'/0'/1'/0/0": "bc1pxy83s4xtt8006x5ptg669av6xs9fs9ac63zkurqr3hsrmcdlm53q44nqc0", + "m/86'/0'/21234567'/0/0": "bc1pl0mcccmtrg8rhpggyel4zw4cjsgvnpxudlksavfsflmzrg33autsrdfk8c", + "m/86'/0'/2147483646'/0/0": "bc1pkqlssuvf44u3r83q93746nrf6slw4sksx2r722743xvj72jstghsc3nh4m", + "m/86'/0'/2147483647'/0/0": "bc1ps34hegykjqmr7gypd2u0tqwa8p76fns6veprjnrwlveq6rv45ehsvr9nt8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DTKToV4b3qzL6Dtm2K9pj2e31V9gXgF6u1', - "m/44'/3'/1'/0/0": 'DKWBgWPtLpfqtS9Eu3fZXaN8FfxbYFinbX', - "m/44'/3'/21234567'/0/0": 'DD3pAtDEwLtNkVtqCoMAEJrUUzL8StnTcp', - "m/44'/3'/2147483646'/0/0": 'DHnkyVdUKCg9PoZsip3Ua9tZC8K2B9JHkf', - "m/44'/3'/2147483647'/0/0": 'D7vBb9X9Q4qbMMLDVQ9Rw2XLQdDGiG5BVA', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DTKToV4b3qzL6Dtm2K9pj2e31V9gXgF6u1", + "m/44'/3'/1'/0/0": "DKWBgWPtLpfqtS9Eu3fZXaN8FfxbYFinbX", + "m/44'/3'/21234567'/0/0": "DD3pAtDEwLtNkVtqCoMAEJrUUzL8StnTcp", + "m/44'/3'/2147483646'/0/0": "DHnkyVdUKCg9PoZsip3Ua9tZC8K2B9JHkf", + "m/44'/3'/2147483647'/0/0": "D7vBb9X9Q4qbMMLDVQ9Rw2XLQdDGiG5BVA" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qqceuerman7hwyptcmftm94cffu5682qwg40mfw43f', - "m/44'/145'/1'/0/0": 'bitcoincash:qz9n8n0k76y2apgucu9cw22n0ag87ax89c6ag3mttx', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qrt59hpdq57904qksydgvu8dvmx9gafkjyych05c5h', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq3psxz0jzmf42h7h579rk8m52x5smhpqv8y3t4awu', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qqj5w8ekkdvl8334lt3cp05t7gme67cmuu2dpwweu4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qqceuerman7hwyptcmftm94cffu5682qwg40mfw43f", + "m/44'/145'/1'/0/0": "bitcoincash:qz9n8n0k76y2apgucu9cw22n0ag87ax89c6ag3mttx", + "m/44'/145'/21234567'/0/0": "bitcoincash:qrt59hpdq57904qksydgvu8dvmx9gafkjyych05c5h", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq3psxz0jzmf42h7h579rk8m52x5smhpqv8y3t4awu", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qqj5w8ekkdvl8334lt3cp05t7gme67cmuu2dpwweu4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LZUPvah5jvmQFUhAFZbHxtbwuFFxhBXe6L', - "m/44'/2'/1'/0/0": 'LdPABFmLEgp7deqjcQ1aeTuyhuQC3y9xRj', - "m/44'/2'/21234567'/0/0": 'LU6DfZDmXmeRLr7AghNLEKeHTjMR2jqmbB', - "m/44'/2'/2147483646'/0/0": 'LfvKFgPqEGfMWFzkExDe62eaZKhBqwzNw7', - "m/44'/2'/2147483647'/0/0": 'LgXr25WGDtxsDYHTwhyBqtHYrDm61coDiQ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LZUPvah5jvmQFUhAFZbHxtbwuFFxhBXe6L", + "m/44'/2'/1'/0/0": "LdPABFmLEgp7deqjcQ1aeTuyhuQC3y9xRj", + "m/44'/2'/21234567'/0/0": "LU6DfZDmXmeRLr7AghNLEKeHTjMR2jqmbB", + "m/44'/2'/2147483646'/0/0": "LfvKFgPqEGfMWFzkExDe62eaZKhBqwzNw7", + "m/44'/2'/2147483647'/0/0": "LgXr25WGDtxsDYHTwhyBqtHYrDm61coDiQ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MLKkY33LYWJk1py1efvPWqPJqhHDhGygVQ', - "m/49'/2'/1'/0/0": 'MQKyT6bUga1PkZCKkxd4kPhkWmoa1Q4KqQ', - "m/49'/2'/21234567'/0/0": 'MHxAr6WPxFX9he5bLHZpY2mKfKgmbgp34M', - "m/49'/2'/2147483646'/0/0": 'MBmLQ6Gv2zYhQqcUtduzPN7fbKK1p1GQeX', - "m/49'/2'/2147483647'/0/0": 'MXEA9EQ8PDMFYaLakfMn52xJyFFFHqh5UB', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MLKkY33LYWJk1py1efvPWqPJqhHDhGygVQ", + "m/49'/2'/1'/0/0": "MQKyT6bUga1PkZCKkxd4kPhkWmoa1Q4KqQ", + "m/49'/2'/21234567'/0/0": "MHxAr6WPxFX9he5bLHZpY2mKfKgmbgp34M", + "m/49'/2'/2147483646'/0/0": "MBmLQ6Gv2zYhQqcUtduzPN7fbKK1p1GQeX", + "m/49'/2'/2147483647'/0/0": "MXEA9EQ8PDMFYaLakfMn52xJyFFFHqh5UB" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q9g356d0h5ty0cxz6qe0men3s0xwqfcrvxwc66d', - "m/84'/2'/1'/0/0": 'ltc1qtqzcyvn760ylv69nclvdcq0wwvta2qkm33waph', - "m/84'/2'/21234567'/0/0": 'ltc1q8kut4cx5x8aedvw05f8kq5g89u5z3hjmg4q66t', - "m/84'/2'/2147483646'/0/0": 'ltc1qq4eh5jpkhmmlkg5rda0kulm2k87mvxrx69kz7e', - "m/84'/2'/2147483647'/0/0": 'ltc1qwy90trh2jmm2uc4cmrzx7fs5gr5fpde5rqyqch', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q9g356d0h5ty0cxz6qe0men3s0xwqfcrvxwc66d", + "m/84'/2'/1'/0/0": "ltc1qtqzcyvn760ylv69nclvdcq0wwvta2qkm33waph", + "m/84'/2'/21234567'/0/0": "ltc1q8kut4cx5x8aedvw05f8kq5g89u5z3hjmg4q66t", + "m/84'/2'/2147483646'/0/0": "ltc1qq4eh5jpkhmmlkg5rda0kulm2k87mvxrx69kz7e", + "m/84'/2'/2147483647'/0/0": "ltc1qwy90trh2jmm2uc4cmrzx7fs5gr5fpde5rqyqch" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NZvn7YxfMUTMZvacd6XLs2EBdJiQGTjf1m', - "m/44'/1900'/1'/0/0": 'Ne5fCeQzwscnn18tP22BDLhrNmtVMV3fo6', - "m/44'/1900'/21234567'/0/0": 'NNVGDPvqyCCPcUE6vHEL1yQeVCWfQ2YLFe', - "m/44'/1900'/2147483646'/0/0": 'Niqi9MLo4ogHZGSHZpuhELrV4HHk48skdJ', - "m/44'/1900'/2147483647'/0/0": 'NdstUwksNiDmAhfD5rmGTnjXv2gX956MkA', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NZvn7YxfMUTMZvacd6XLs2EBdJiQGTjf1m", + "m/44'/1900'/1'/0/0": "Ne5fCeQzwscnn18tP22BDLhrNmtVMV3fo6", + "m/44'/1900'/21234567'/0/0": "NNVGDPvqyCCPcUE6vHEL1yQeVCWfQ2YLFe", + "m/44'/1900'/2147483646'/0/0": "Niqi9MLo4ogHZGSHZpuhELrV4HHk48skdJ", + "m/44'/1900'/2147483647'/0/0": "NdstUwksNiDmAhfD5rmGTnjXv2gX956MkA" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0x10B9B06FE61d9D5Dd78A1352FC277420cC8e38cC', - "m/44'/60'/1'/0/0": '0x434bE59Fcdf79BfDfA882C56A53dD8800ad83C97', - "m/44'/60'/21234567'/0/0": '0x3544DeA84245194484ed4dEAB096dCB22A5977F5', - "m/44'/60'/2147483646'/0/0": '0xA1a56f752870A1f459a2664265EC311F59961004', - "m/44'/60'/2147483647'/0/0": '0x5aFAD49F56cF63FBA76999699A401cd0C532a90D', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0x10B9B06FE61d9D5Dd78A1352FC277420cC8e38cC", + "m/44'/60'/1'/0/0": "0x434bE59Fcdf79BfDfA882C56A53dD8800ad83C97", + "m/44'/60'/21234567'/0/0": "0x3544DeA84245194484ed4dEAB096dCB22A5977F5", + "m/44'/60'/2147483646'/0/0": "0xA1a56f752870A1f459a2664265EC311F59961004", + "m/44'/60'/2147483647'/0/0": "0x5aFAD49F56cF63FBA76999699A401cd0C532a90D" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x712fd85377c6bdD1A42ed4406948E3c9f15d285d', - "m/44'/61'/1'/0/0": '0x7E65F236b88793fe513607d28E7307CCeE05D2c4', - "m/44'/61'/21234567'/0/0": '0x919A8f38D260A05c3E4898902116e5ED7a01B835', - "m/44'/61'/2147483646'/0/0": '0x8b0F5fBedBf93b76335a6038384437E40f562F6a', - "m/44'/61'/2147483647'/0/0": '0xa47E9C23EA071F9523c4fc2125b719D61d3E46Ef', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x712fd85377c6bdD1A42ed4406948E3c9f15d285d", + "m/44'/61'/1'/0/0": "0x7E65F236b88793fe513607d28E7307CCeE05D2c4", + "m/44'/61'/21234567'/0/0": "0x919A8f38D260A05c3E4898902116e5ED7a01B835", + "m/44'/61'/2147483646'/0/0": "0x8b0F5fBedBf93b76335a6038384437E40f562F6a", + "m/44'/61'/2147483647'/0/0": "0xa47E9C23EA071F9523c4fc2125b719D61d3E46Ef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1npt5apg6v4eh7nk4hu7442dkzkm7uk03p6nczd', - "m/44'/118'/1'/0/0": 'cosmos1m5kztl9hxr7fqvdltsdkas3jgs5s7a2etp82lx', - "m/44'/118'/21234567'/0/0": 'cosmos1uez8x4sgpeqe45e90e4kkhc29dcltd4spayy7t', - "m/44'/118'/2147483646'/0/0": 'cosmos19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3elmdcf', - "m/44'/118'/2147483647'/0/0": 'cosmos1dk5l3aelqpq09mhxtpwk6wraptken7kqfx7cqn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1npt5apg6v4eh7nk4hu7442dkzkm7uk03p6nczd", + "m/44'/118'/1'/0/0": "cosmos1m5kztl9hxr7fqvdltsdkas3jgs5s7a2etp82lx", + "m/44'/118'/21234567'/0/0": "cosmos1uez8x4sgpeqe45e90e4kkhc29dcltd4spayy7t", + "m/44'/118'/2147483646'/0/0": "cosmos19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3elmdcf", + "m/44'/118'/2147483647'/0/0": "cosmos1dk5l3aelqpq09mhxtpwk6wraptken7kqfx7cqn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1npt5apg6v4eh7nk4hu7442dkzkm7uk03vp7lmh', - "m/44'/118'/1'/0/0": 'akash1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ex62dxu', - "m/44'/118'/21234567'/0/0": 'akash1uez8x4sgpeqe45e90e4kkhc29dcltd4svxfr83', - "m/44'/118'/2147483646'/0/0": 'akash19e7z0kafw7wjtmdzw9hzeltgh9vr3mt35yk2pn', - "m/44'/118'/2147483647'/0/0": 'akash1dk5l3aelqpq09mhxtpwk6wraptken7kqyanlef', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1npt5apg6v4eh7nk4hu7442dkzkm7uk03vp7lmh", + "m/44'/118'/1'/0/0": "akash1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ex62dxu", + "m/44'/118'/21234567'/0/0": "akash1uez8x4sgpeqe45e90e4kkhc29dcltd4svxfr83", + "m/44'/118'/2147483646'/0/0": "akash19e7z0kafw7wjtmdzw9hzeltgh9vr3mt35yk2pn", + "m/44'/118'/2147483647'/0/0": "akash1dk5l3aelqpq09mhxtpwk6wraptken7kqyanlef" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1npt5apg6v4eh7nk4hu7442dkzkm7uk03epmp7u', - "m/44'/118'/1'/0/0": 'cro1m5kztl9hxr7fqvdltsdkas3jgs5s7a2en60nrh', - "m/44'/118'/21234567'/0/0": 'cro1uez8x4sgpeqe45e90e4kkhc29dcltd4sexvaz6', - "m/44'/118'/2147483646'/0/0": 'cro19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3pyn5yc', - "m/44'/118'/2147483647'/0/0": 'cro1dk5l3aelqpq09mhxtpwk6wraptken7kq3akpuz', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1npt5apg6v4eh7nk4hu7442dkzkm7uk03epmp7u", + "m/44'/118'/1'/0/0": "cro1m5kztl9hxr7fqvdltsdkas3jgs5s7a2en60nrh", + "m/44'/118'/21234567'/0/0": "cro1uez8x4sgpeqe45e90e4kkhc29dcltd4sexvaz6", + "m/44'/118'/2147483646'/0/0": "cro19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3pyn5yc", + "m/44'/118'/2147483647'/0/0": "cro1dk5l3aelqpq09mhxtpwk6wraptken7kq3akpuz" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1npt5apg6v4eh7nk4hu7442dkzkm7uk03j86uq6', - "m/44'/118'/1'/0/0": 'fetch1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ecuwwa3', - "m/44'/118'/21234567'/0/0": 'fetch1uez8x4sgpeqe45e90e4kkhc29dcltd4sjqdquu', - "m/44'/118'/2147483646'/0/0": 'fetch19e7z0kafw7wjtmdzw9hzeltgh9vr3mt32zjf67', - "m/44'/118'/2147483647'/0/0": 'fetch1dk5l3aelqpq09mhxtpwk6wraptken7kq6mhuzy', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1npt5apg6v4eh7nk4hu7442dkzkm7uk03j86uq6", + "m/44'/118'/1'/0/0": "fetch1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ecuwwa3", + "m/44'/118'/21234567'/0/0": "fetch1uez8x4sgpeqe45e90e4kkhc29dcltd4sjqdquu", + "m/44'/118'/2147483646'/0/0": "fetch19e7z0kafw7wjtmdzw9hzeltgh9vr3mt32zjf67", + "m/44'/118'/2147483647'/0/0": "fetch1dk5l3aelqpq09mhxtpwk6wraptken7kq6mhuzy" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1npt5apg6v4eh7nk4hu7442dkzkm7uk03fpqg5l', - "m/44'/118'/1'/0/0": 'osmo1m5kztl9hxr7fqvdltsdkas3jgs5s7a2er656f5', - "m/44'/118'/21234567'/0/0": 'osmo1uez8x4sgpeqe45e90e4kkhc29dcltd4sfxh5ge', - "m/44'/118'/2147483646'/0/0": 'osmo19e7z0kafw7wjtmdzw9hzeltgh9vr3mt33ygawm', - "m/44'/118'/2147483647'/0/0": 'osmo1dk5l3aelqpq09mhxtpwk6wraptken7kqpadgkp', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1npt5apg6v4eh7nk4hu7442dkzkm7uk03fpqg5l", + "m/44'/118'/1'/0/0": "osmo1m5kztl9hxr7fqvdltsdkas3jgs5s7a2er656f5", + "m/44'/118'/21234567'/0/0": "osmo1uez8x4sgpeqe45e90e4kkhc29dcltd4sfxh5ge", + "m/44'/118'/2147483646'/0/0": "osmo19e7z0kafw7wjtmdzw9hzeltgh9vr3mt33ygawm", + "m/44'/118'/2147483647'/0/0": "osmo1dk5l3aelqpq09mhxtpwk6wraptken7kqpadgkp" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1npt5apg6v4eh7nk4hu7442dkzkm7uk03hgsr93', - "m/44'/118'/1'/0/0": 'juno1m5kztl9hxr7fqvdltsdkas3jgs5s7a2eany3c6', - "m/44'/118'/21234567'/0/0": 'juno1uez8x4sgpeqe45e90e4kkhc29dcltd4sh08leh', - "m/44'/118'/2147483646'/0/0": 'juno19e7z0kafw7wjtmdzw9hzeltgh9vr3mt30dckl4', - "m/44'/118'/2147483647'/0/0": 'juno1dk5l3aelqpq09mhxtpwk6wraptken7kql5ar80', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1npt5apg6v4eh7nk4hu7442dkzkm7uk03hgsr93", + "m/44'/118'/1'/0/0": "juno1m5kztl9hxr7fqvdltsdkas3jgs5s7a2eany3c6", + "m/44'/118'/21234567'/0/0": "juno1uez8x4sgpeqe45e90e4kkhc29dcltd4sh08leh", + "m/44'/118'/2147483646'/0/0": "juno19e7z0kafw7wjtmdzw9hzeltgh9vr3mt30dckl4", + "m/44'/118'/2147483647'/0/0": "juno1dk5l3aelqpq09mhxtpwk6wraptken7kql5ar80" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1npt5apg6v4eh7nk4hu7442dkzkm7uk0387fcqd', - "m/44'/118'/1'/0/0": 'terra1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ed9a2ax', - "m/44'/118'/21234567'/0/0": 'terra1uez8x4sgpeqe45e90e4kkhc29dcltd4s8e7yut', - "m/44'/118'/2147483646'/0/0": 'terra19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3lmpd6f', - "m/44'/118'/2147483647'/0/0": 'terra1dk5l3aelqpq09mhxtpwk6wraptken7kq0zyczn', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1npt5apg6v4eh7nk4hu7442dkzkm7uk0387fcqd", + "m/44'/118'/1'/0/0": "terra1m5kztl9hxr7fqvdltsdkas3jgs5s7a2ed9a2ax", + "m/44'/118'/21234567'/0/0": "terra1uez8x4sgpeqe45e90e4kkhc29dcltd4s8e7yut", + "m/44'/118'/2147483646'/0/0": "terra19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3lmpd6f", + "m/44'/118'/2147483647'/0/0": "terra1dk5l3aelqpq09mhxtpwk6wraptken7kq0zyczn" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1npt5apg6v4eh7nk4hu7442dkzkm7uk03rl83l3', - "m/44'/118'/1'/0/0": 'secret1m5kztl9hxr7fqvdltsdkas3jgs5s7a2efynrz6', - "m/44'/118'/21234567'/0/0": 'secret1uez8x4sgpeqe45e90e4kkhc29dcltd4srcsdrh', - "m/44'/118'/2147483646'/0/0": 'secret19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3m60y94', - "m/44'/118'/2147483647'/0/0": 'secret1dk5l3aelqpq09mhxtpwk6wraptken7kqtr23a0', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1npt5apg6v4eh7nk4hu7442dkzkm7uk03rl83l3", + "m/44'/118'/1'/0/0": "secret1m5kztl9hxr7fqvdltsdkas3jgs5s7a2efynrz6", + "m/44'/118'/21234567'/0/0": "secret1uez8x4sgpeqe45e90e4kkhc29dcltd4srcsdrh", + "m/44'/118'/2147483646'/0/0": "secret19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3m60y94", + "m/44'/118'/2147483647'/0/0": "secret1dk5l3aelqpq09mhxtpwk6wraptken7kqtr23a0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1npt5apg6v4eh7nk4hu7442dkzkm7uk03sszgcq', - "m/44'/118'/1'/0/0": 'celestia1m5kztl9hxr7fqvdltsdkas3jgs5s7a2e6tk69t', - "m/44'/118'/21234567'/0/0": 'celestia1uez8x4sgpeqe45e90e4kkhc29dcltd4ssh45yx', - "m/44'/118'/2147483646'/0/0": 'celestia19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3g42azy', - "m/44'/118'/2147483647'/0/0": 'celestia1dk5l3aelqpq09mhxtpwk6wraptken7kqcv0g67', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1npt5apg6v4eh7nk4hu7442dkzkm7uk03sszgcq", + "m/44'/118'/1'/0/0": "celestia1m5kztl9hxr7fqvdltsdkas3jgs5s7a2e6tk69t", + "m/44'/118'/21234567'/0/0": "celestia1uez8x4sgpeqe45e90e4kkhc29dcltd4ssh45yx", + "m/44'/118'/2147483646'/0/0": "celestia19e7z0kafw7wjtmdzw9hzeltgh9vr3mt3g42azy", + "m/44'/118'/2147483647'/0/0": "celestia1dk5l3aelqpq09mhxtpwk6wraptken7kqcv0g67" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x84088f78448db43e9d2d25461baca28a7506895d1fb092d0f60774c6ec8c7752', - "m/44'/784'/1'/0'/0'": '0xf31fc42ec03a5eacc21b74646d1198b09734583cda1282ffea1ea4e395e736b7', - "m/44'/784'/21234567'/0'/0'": - '0x6165572f86e6b8bada59e6292ea15a55f637e4196d8ad3f11ef664e0a2b41457', - "m/44'/784'/2147483646'/0'/0'": - '0x5c3c6b049f825cc5f87a3ad629170729a97b40a411c3c9c1a85a23ab74b4e922', - "m/44'/784'/2147483647'/0'/0'": - '0xb7f62b10f0860712e73057d5e14565e578cc5e1db0c35d27eea7c5a9ee0aa523', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x84088f78448db43e9d2d25461baca28a7506895d1fb092d0f60774c6ec8c7752", + "m/44'/784'/1'/0'/0'": "0xf31fc42ec03a5eacc21b74646d1198b09734583cda1282ffea1ea4e395e736b7", + "m/44'/784'/21234567'/0'/0'": "0x6165572f86e6b8bada59e6292ea15a55f637e4196d8ad3f11ef664e0a2b41457", + "m/44'/784'/2147483646'/0'/0'": "0x5c3c6b049f825cc5f87a3ad629170729a97b40a411c3c9c1a85a23ab74b4e922", + "m/44'/784'/2147483647'/0'/0'": "0xb7f62b10f0860712e73057d5e14565e578cc5e1db0c35d27eea7c5a9ee0aa523" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY', - "m/44'/144'/1'/0/0": 'rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n', - "m/44'/144'/21234567'/0/0": 'rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8', - "m/44'/144'/2147483646'/0/0": 'rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n', - "m/44'/144'/2147483647'/0/0": 'rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY", + "m/44'/144'/1'/0/0": "rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n", + "m/44'/144'/21234567'/0/0": "rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8", + "m/44'/144'/2147483646'/0/0": "rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n", + "m/44'/144'/2147483647'/0/0": "rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCfc2e5f8b1ed2c10a1d88d9c1c4a481343c4259176e0664fad2606c31f092c2dcc338', - "m/44'/728'/1'/0'/0'": - 'BFC60dd603652e29cd4b78c12acc7f18f20d1ab1005c8cd5c661f2ef5ed10b38156a13a', - "m/44'/728'/21234567'/0'/0'": - 'BFC1c60e9eecad319d1ef5dea9e91bf7aae09f8338af93f972ad80e5996e76c3f1b6c41', - "m/44'/728'/2147483646'/0'/0'": - 'BFC574e4390373f59710cfa273d4af6027ef7e529158668941ad179dd1c988fb68241e8', - "m/44'/728'/2147483647'/0'/0'": - 'BFCa06fb5bb90ad02d6264a242101eba1bc509a8a40c0e4841139cc1ad6c2b279a48c2e', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCfc2e5f8b1ed2c10a1d88d9c1c4a481343c4259176e0664fad2606c31f092c2dcc338", + "m/44'/728'/1'/0'/0'": "BFC60dd603652e29cd4b78c12acc7f18f20d1ab1005c8cd5c661f2ef5ed10b38156a13a", + "m/44'/728'/21234567'/0'/0'": "BFC1c60e9eecad319d1ef5dea9e91bf7aae09f8338af93f972ad80e5996e76c3f1b6c41", + "m/44'/728'/2147483646'/0'/0'": "BFC574e4390373f59710cfa273d4af6027ef7e529158668941ad179dd1c988fb68241e8", + "m/44'/728'/2147483647'/0'/0'": "BFCa06fb5bb90ad02d6264a242101eba1bc509a8a40c0e4841139cc1ad6c2b279a48c2e" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '19j34SyArz3vn6gsTe7SKB7jgmiNEDzixex7i3Py25heb', - "m/44'/1234'/1'/0/0": '15QyaNAK6kKudLUTZdtTfStghahBknJkz5cDpXJppDfKu', - "m/44'/1234'/21234567'/0/0": '15bSeJvHWaggpTSqMhbtNDDESJMcswVGHg4UGnAjzsLJ1', - "m/44'/1234'/2147483646'/0/0": '15vUYAToEiWPDoRtBqXRJCPyLRgWQC8iCtK2gbbeyEZUc', - "m/44'/1234'/2147483647'/0/0": '18Faz6rN3f4iozk5W9zQVCiTgEHoLx7G7rhPwjnmSyqRa', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "19j34SyArz3vn6gsTe7SKB7jgmiNEDzixex7i3Py25heb", + "m/44'/1234'/1'/0/0": "15QyaNAK6kKudLUTZdtTfStghahBknJkz5cDpXJppDfKu", + "m/44'/1234'/21234567'/0/0": "15bSeJvHWaggpTSqMhbtNDDESJMcswVGHg4UGnAjzsLJ1", + "m/44'/1234'/2147483646'/0/0": "15vUYAToEiWPDoRtBqXRJCPyLRgWQC8iCtK2gbbeyEZUc", + "m/44'/1234'/2147483647'/0/0": "18Faz6rN3f4iozk5W9zQVCiTgEHoLx7G7rhPwjnmSyqRa" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'PUNO62CHY36TT77F3GUOG2SPS4AQQXCVQDCGWW2TMMM4WZ5C32N4YQEXAM', - "m/44'/283'/1'/0'/0'": 'NR3O5ZO7YZK62GNF3BXY47VWWZORCJUPZRZ7F5CVMCNX6EMOSOUXS5VFFQ', - "m/44'/283'/21234567'/0'/0'": 'IMXOAXZZDJOGEOYPUZJYAMT74CSLAZMVOILAPO2B67KAEVLSD3DQXA2SCA', - "m/44'/283'/2147483646'/0'/0'": - 'ANE2DGOPKYAFBTL6J2CZOSNZ5OYOJYHW7IJNNTVAYIR2NKXXJBXKUWYIXU', - "m/44'/283'/2147483647'/0'/0'": - 'IMXMBHROZDKQ623DUAEXMEHASCCPWNFJXN2JQWKLZE4OEZVOSWUFOTSY4E', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "PUNO62CHY36TT77F3GUOG2SPS4AQQXCVQDCGWW2TMMM4WZ5C32N4YQEXAM", + "m/44'/283'/1'/0'/0'": "NR3O5ZO7YZK62GNF3BXY47VWWZORCJUPZRZ7F5CVMCNX6EMOSOUXS5VFFQ", + "m/44'/283'/21234567'/0'/0'": "IMXOAXZZDJOGEOYPUZJYAMT74CSLAZMVOILAPO2B67KAEVLSD3DQXA2SCA", + "m/44'/283'/2147483646'/0'/0'": "ANE2DGOPKYAFBTL6J2CZOSNZ5OYOJYHW7IJNNTVAYIR2NKXXJBXKUWYIXU", + "m/44'/283'/2147483647'/0'/0'": "IMXMBHROZDKQ623DUAEXMEHASCCPWNFJXN2JQWKLZE4OEZVOSWUFOTSY4E" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQCgCbdfEC9Gmpvso-Y_fp7WLlzW0_hAFkBWacUXgjo091V8', - "m/44'/607'/1'": 'UQDiJuwTMx7uJcbMr3ZYKwtpvpFzOjxIPlkpOc3r1VSPSUUM', - "m/44'/607'/21234567'": 'UQC4yFdjKqnOlxvqKZ8CHyT4loN7d8_40FA0p2KgEHHOgXku', - "m/44'/607'/2147483646'": 'UQD-KF6TuvGA4IBdzwFsl5nATcwZiNMWyhZCua2LH2H2_OZE', - "m/44'/607'/2147483647'": 'UQAR6dfIzYVDecTg1ViUWJYHfkM1qcFv9b8-4Xwybw1-ii3F', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQCgCbdfEC9Gmpvso-Y_fp7WLlzW0_hAFkBWacUXgjo091V8", + "m/44'/607'/1'": "UQDiJuwTMx7uJcbMr3ZYKwtpvpFzOjxIPlkpOc3r1VSPSUUM", + "m/44'/607'/21234567'": "UQC4yFdjKqnOlxvqKZ8CHyT4loN7d8_40FA0p2KgEHHOgXku", + "m/44'/607'/2147483646'": "UQD-KF6TuvGA4IBdzwFsl5nATcwZiNMWyhZCua2LH2H2_OZE", + "m/44'/607'/2147483647'": "UQAR6dfIzYVDecTg1ViUWJYHfkM1qcFv9b8-4Xwybw1-ii3F" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqdunhneuelg7s3nt9zkvpux5703w5mulaq3hsegj', - "m/44'/309'/1'/0/0": 'ckb1qyqzkh9jj3sm3daxvqe8d0sm778q99zrpnnq4mpqqf', - "m/44'/309'/21234567'/0/0": 'ckb1qyqv3lm65h8mftma6r7z6gjt6qf3r0xgkhesadsam6', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqvw7w2tavmal8l4gqlak8da0pczx4x4zesj02nh2', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqgw3dgglla5k7aca6jhvpmkpthux2nez6su095pr', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqdunhneuelg7s3nt9zkvpux5703w5mulaq3hsegj", + "m/44'/309'/1'/0/0": "ckb1qyqzkh9jj3sm3daxvqe8d0sm778q99zrpnnq4mpqqf", + "m/44'/309'/21234567'/0/0": "ckb1qyqv3lm65h8mftma6r7z6gjt6qf3r0xgkhesadsam6", + "m/44'/309'/2147483646'/0/0": "ckb1qyqvw7w2tavmal8l4gqlak8da0pczx4x4zesj02nh2", + "m/44'/309'/2147483647'/0/0": "ckb1qyqgw3dgglla5k7aca6jhvpmkpthux2nez6su095pr" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5s8lzs8lhjsw84c42l5snquxm5hpny8q9dstnp3s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5fequq668s850hlntkmwwhxz46ktpt725g2hqtu9r', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5653ua95lv5ldj0gpjnvwhpc0d2l9hvxdexz8suyj', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5g5xpsm6gr923h4wsz5ha36575w565gvsxw7y9w67', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g57zxf75dy2eduh746j8ncrupdh4cu9ykjdssvh8x9', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5s8lzs8lhjsw84c42l5snquxm5hpny8q9dstnp3s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5fequq668s850hlntkmwwhxz46ktpt725g2hqtu9r", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5653ua95lv5ldj0gpjnvwhpc0d2l9hvxdexz8suyj", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5g5xpsm6gr923h4wsz5ha36575w565gvsxw7y9w67", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g57zxf75dy2eduh746j8ncrupdh4cu9ykjdssvh8x9" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY', - "m/44'/144'/1'/0/0": 'rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n', - "m/44'/144'/21234567'/0/0": 'rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8', - "m/44'/144'/2147483646'/0/0": 'rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n', - "m/44'/144'/2147483647'/0/0": 'rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rHtsE9gBKmWnASdFDqQBS9jZJVGcuf7aVY", + "m/44'/144'/1'/0/0": "rEceVh1Qj8RsxEMQAvgnfNZSN3fZ36jB2n", + "m/44'/144'/21234567'/0/0": "rs2smrDiihRdmec7AZZVdcstp6BVwN3eC8", + "m/44'/144'/2147483646'/0/0": "rfvyED8aHvaJdrXphMCJAWhe1wFEwJ9i9n", + "m/44'/144'/2147483647'/0/0": "rMhA2TFmoWk2jM4syPTSzuC96EUbpKppeF" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b3fe46c1bbeeceae60bc15a3c6f359a89a6551', - "m/44'/541'/1'/0/0": '1S01a6c3b3a149b6486c96d525e5b49776c7563e61', - "m/44'/541'/21234567'/0/0": '1S017885a304591f5e285c130801cb2cc04ed4baa1', - "m/44'/541'/2147483646'/0/0": '1S01a34d7a44b6d993c19a1d9c1ceddbf651ac4911', - "m/44'/541'/2147483647'/0/0": '1S013a1e747e2eb32915db02557e4fdf3a5cc77e71', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b3fe46c1bbeeceae60bc15a3c6f359a89a6551", + "m/44'/541'/1'/0/0": "1S01a6c3b3a149b6486c96d525e5b49776c7563e61", + "m/44'/541'/21234567'/0/0": "1S017885a304591f5e285c130801cb2cc04ed4baa1", + "m/44'/541'/2147483646'/0/0": "1S01a34d7a44b6d993c19a1d9c1ceddbf651ac4911", + "m/44'/541'/2147483647'/0/0": "1S013a1e747e2eb32915db02557e4fdf3a5cc77e71" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/normal.ts index 713a7212a..486cba797 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/normal.ts @@ -1,488 +1,476 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OneNormal: SLIP39TestCaseData = { - id: 'count33_one_normal', - name: 'count33_one_normal', - description: '1-of-1 (33 words) + normal', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_normal", + "name": "count33_one_normal", + "description": "1-of-1 (33 words) + normal", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE', - "m/44'/0'/1'/0/0": '1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY', - "m/44'/0'/21234567'/0/0": '17m7XBMA51rMoquVjWigH6u7VoDsakmtwG', - "m/44'/0'/2147483646'/0/0": '1VXLBKYngyZR1m1TajtG4soon5VWGdVek', - "m/44'/0'/2147483647'/0/0": '198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE", + "m/44'/0'/1'/0/0": "1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY", + "m/44'/0'/21234567'/0/0": "17m7XBMA51rMoquVjWigH6u7VoDsakmtwG", + "m/44'/0'/2147483646'/0/0": "1VXLBKYngyZR1m1TajtG4soon5VWGdVek", + "m/44'/0'/2147483647'/0/0": "198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5', - "m/49'/0'/1'/0/0": '33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6', - "m/49'/0'/21234567'/0/0": '3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G', - "m/49'/0'/2147483646'/0/0": '3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr', - "m/49'/0'/2147483647'/0/0": '3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5", + "m/49'/0'/1'/0/0": "33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6", + "m/49'/0'/21234567'/0/0": "3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G", + "m/49'/0'/2147483646'/0/0": "3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr", + "m/49'/0'/2147483647'/0/0": "3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3', - "m/84'/0'/1'/0/0": 'bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0', - "m/84'/0'/21234567'/0/0": 'bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2', - "m/84'/0'/2147483646'/0/0": 'bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd', - "m/84'/0'/2147483647'/0/0": 'bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3", + "m/84'/0'/1'/0/0": "bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0", + "m/84'/0'/21234567'/0/0": "bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2", + "m/84'/0'/2147483646'/0/0": "bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd", + "m/84'/0'/2147483647'/0/0": "bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq', - "m/86'/0'/1'/0/0": 'bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm', - "m/86'/0'/21234567'/0/0": 'bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy', - "m/86'/0'/2147483646'/0/0": - 'bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn', - "m/86'/0'/2147483647'/0/0": - 'bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq", + "m/86'/0'/1'/0/0": "bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm", + "m/86'/0'/21234567'/0/0": "bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy", + "m/86'/0'/2147483646'/0/0": "bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn", + "m/86'/0'/2147483647'/0/0": "bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK', - "m/44'/3'/1'/0/0": 'D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ', - "m/44'/3'/21234567'/0/0": 'DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W', - "m/44'/3'/2147483646'/0/0": 'DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut', - "m/44'/3'/2147483647'/0/0": 'DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK", + "m/44'/3'/1'/0/0": "D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ", + "m/44'/3'/21234567'/0/0": "DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W", + "m/44'/3'/2147483646'/0/0": "DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut", + "m/44'/3'/2147483647'/0/0": "DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy', - "m/44'/145'/1'/0/0": 'bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy", + "m/44'/145'/1'/0/0": "bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy", + "m/44'/145'/21234567'/0/0": "bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg', - "m/44'/2'/1'/0/0": 'LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu', - "m/44'/2'/21234567'/0/0": 'LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff', - "m/44'/2'/2147483646'/0/0": 'LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3', - "m/44'/2'/2147483647'/0/0": 'LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg", + "m/44'/2'/1'/0/0": "LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu", + "m/44'/2'/21234567'/0/0": "LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff", + "m/44'/2'/2147483646'/0/0": "LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3", + "m/44'/2'/2147483647'/0/0": "LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p', - "m/49'/2'/1'/0/0": 'M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj', - "m/49'/2'/21234567'/0/0": 'MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA', - "m/49'/2'/2147483646'/0/0": 'MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt', - "m/49'/2'/2147483647'/0/0": 'MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p", + "m/49'/2'/1'/0/0": "M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj", + "m/49'/2'/21234567'/0/0": "MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA", + "m/49'/2'/2147483646'/0/0": "MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt", + "m/49'/2'/2147483647'/0/0": "MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf', - "m/84'/2'/1'/0/0": 'ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt', - "m/84'/2'/21234567'/0/0": 'ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c', - "m/84'/2'/2147483646'/0/0": 'ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg', - "m/84'/2'/2147483647'/0/0": 'ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf", + "m/84'/2'/1'/0/0": "ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt", + "m/84'/2'/21234567'/0/0": "ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c", + "m/84'/2'/2147483646'/0/0": "ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg", + "m/84'/2'/2147483647'/0/0": "ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2', - "m/44'/1900'/1'/0/0": 'NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H', - "m/44'/1900'/21234567'/0/0": 'NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2', - "m/44'/1900'/2147483646'/0/0": 'NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ', - "m/44'/1900'/2147483647'/0/0": 'NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2", + "m/44'/1900'/1'/0/0": "NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H", + "m/44'/1900'/21234567'/0/0": "NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2", + "m/44'/1900'/2147483646'/0/0": "NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ", + "m/44'/1900'/2147483647'/0/0": "NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A', - "m/44'/60'/1'/0/0": '0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf', - "m/44'/60'/21234567'/0/0": '0xFcB211b77546D2068b569576384387B3d88f1606', - "m/44'/60'/2147483646'/0/0": '0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2', - "m/44'/60'/2147483647'/0/0": '0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A", + "m/44'/60'/1'/0/0": "0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf", + "m/44'/60'/21234567'/0/0": "0xFcB211b77546D2068b569576384387B3d88f1606", + "m/44'/60'/2147483646'/0/0": "0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2", + "m/44'/60'/2147483647'/0/0": "0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235', - "m/44'/61'/1'/0/0": '0x473985bBcA8797b97D48D187a0CE62a80C1248DD', - "m/44'/61'/21234567'/0/0": '0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D', - "m/44'/61'/2147483646'/0/0": '0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059', - "m/44'/61'/2147483647'/0/0": '0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235", + "m/44'/61'/1'/0/0": "0x473985bBcA8797b97D48D187a0CE62a80C1248DD", + "m/44'/61'/21234567'/0/0": "0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D", + "m/44'/61'/2147483646'/0/0": "0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059", + "m/44'/61'/2147483647'/0/0": "0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt', - "m/44'/118'/1'/0/0": 'cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh', - "m/44'/118'/21234567'/0/0": 'cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6', - "m/44'/118'/2147483646'/0/0": 'cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r', - "m/44'/118'/2147483647'/0/0": 'cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt", + "m/44'/118'/1'/0/0": "cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh", + "m/44'/118'/21234567'/0/0": "cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6", + "m/44'/118'/2147483646'/0/0": "cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r", + "m/44'/118'/2147483647'/0/0": "cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3', - "m/44'/118'/1'/0/0": 'akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d', - "m/44'/118'/21234567'/0/0": 'akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq', - "m/44'/118'/2147483646'/0/0": 'akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne', - "m/44'/118'/2147483647'/0/0": 'akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3", + "m/44'/118'/1'/0/0": "akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d", + "m/44'/118'/21234567'/0/0": "akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq", + "m/44'/118'/2147483646'/0/0": "akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne", + "m/44'/118'/2147483647'/0/0": "akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6', - "m/44'/118'/1'/0/0": 'cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx', - "m/44'/118'/21234567'/0/0": 'cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht', - "m/44'/118'/2147483646'/0/0": 'cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj', - "m/44'/118'/2147483647'/0/0": 'cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6", + "m/44'/118'/1'/0/0": "cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx", + "m/44'/118'/21234567'/0/0": "cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht", + "m/44'/118'/2147483646'/0/0": "cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj", + "m/44'/118'/2147483647'/0/0": "cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu', - "m/44'/118'/1'/0/0": 'fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q', - "m/44'/118'/21234567'/0/0": 'fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd', - "m/44'/118'/2147483646'/0/0": 'fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5', - "m/44'/118'/2147483647'/0/0": 'fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu", + "m/44'/118'/1'/0/0": "fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q", + "m/44'/118'/21234567'/0/0": "fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd", + "m/44'/118'/2147483646'/0/0": "fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5", + "m/44'/118'/2147483647'/0/0": "fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce', - "m/44'/118'/1'/0/0": 'osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829', - "m/44'/118'/21234567'/0/0": 'osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag', - "m/44'/118'/2147483646'/0/0": 'osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3', - "m/44'/118'/2147483647'/0/0": 'osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce", + "m/44'/118'/1'/0/0": "osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829", + "m/44'/118'/21234567'/0/0": "osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag", + "m/44'/118'/2147483646'/0/0": "osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3", + "m/44'/118'/2147483647'/0/0": "osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh', - "m/44'/118'/1'/0/0": 'juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt', - "m/44'/118'/21234567'/0/0": 'juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx', - "m/44'/118'/2147483646'/0/0": 'juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl', - "m/44'/118'/2147483647'/0/0": 'juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh", + "m/44'/118'/1'/0/0": "juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt", + "m/44'/118'/21234567'/0/0": "juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx", + "m/44'/118'/2147483646'/0/0": "juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl", + "m/44'/118'/2147483647'/0/0": "juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt', - "m/44'/118'/1'/0/0": 'terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h', - "m/44'/118'/21234567'/0/0": 'terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6', - "m/44'/118'/2147483646'/0/0": 'terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr', - "m/44'/118'/2147483647'/0/0": 'terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt", + "m/44'/118'/1'/0/0": "terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h", + "m/44'/118'/21234567'/0/0": "terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6", + "m/44'/118'/2147483646'/0/0": "terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr", + "m/44'/118'/2147483647'/0/0": "terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh', - "m/44'/118'/1'/0/0": 'secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt', - "m/44'/118'/21234567'/0/0": 'secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx', - "m/44'/118'/2147483646'/0/0": 'secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl', - "m/44'/118'/2147483647'/0/0": 'secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh", + "m/44'/118'/1'/0/0": "secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt", + "m/44'/118'/21234567'/0/0": "secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx", + "m/44'/118'/2147483646'/0/0": "secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl", + "m/44'/118'/2147483647'/0/0": "secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x', - "m/44'/118'/1'/0/0": 'celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6', - "m/44'/118'/21234567'/0/0": 'celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h', - "m/44'/118'/2147483646'/0/0": 'celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw', - "m/44'/118'/2147483647'/0/0": 'celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x", + "m/44'/118'/1'/0/0": "celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6", + "m/44'/118'/21234567'/0/0": "celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h", + "m/44'/118'/2147483646'/0/0": "celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw", + "m/44'/118'/2147483647'/0/0": "celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e', - "m/44'/784'/1'/0'/0'": '0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e', - "m/44'/784'/21234567'/0'/0'": - '0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad', - "m/44'/784'/2147483646'/0'/0'": - '0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043', - "m/44'/784'/2147483647'/0'/0'": - '0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e", + "m/44'/784'/1'/0'/0'": "0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e", + "m/44'/784'/21234567'/0'/0'": "0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad", + "m/44'/784'/2147483646'/0'/0'": "0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043", + "m/44'/784'/2147483647'/0'/0'": "0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd', - "m/44'/728'/1'/0'/0'": - 'BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79', - "m/44'/728'/21234567'/0'/0'": - 'BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200', - "m/44'/728'/2147483646'/0'/0'": - 'BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38', - "m/44'/728'/2147483647'/0'/0'": - 'BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd", + "m/44'/728'/1'/0'/0'": "BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79", + "m/44'/728'/21234567'/0'/0'": "BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200", + "m/44'/728'/2147483646'/0'/0'": "BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38", + "m/44'/728'/2147483647'/0'/0'": "BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm', - "m/44'/1234'/1'/0/0": '1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu', - "m/44'/1234'/21234567'/0/0": '15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG', - "m/44'/1234'/2147483646'/0/0": '1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF', - "m/44'/1234'/2147483647'/0/0": '16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm", + "m/44'/1234'/1'/0/0": "1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu", + "m/44'/1234'/21234567'/0/0": "15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG", + "m/44'/1234'/2147483646'/0/0": "1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF", + "m/44'/1234'/2147483647'/0/0": "16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4', - "m/44'/283'/1'/0'/0'": 'JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE', - "m/44'/283'/21234567'/0'/0'": 'GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4', - "m/44'/283'/2147483646'/0'/0'": - '4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ', - "m/44'/283'/2147483647'/0'/0'": - 'MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4", + "m/44'/283'/1'/0'/0'": "JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE", + "m/44'/283'/21234567'/0'/0'": "GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4", + "m/44'/283'/2147483646'/0'/0'": "4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ", + "m/44'/283'/2147483647'/0'/0'": "MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN', - "m/44'/607'/1'": 'UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm', - "m/44'/607'/21234567'": 'UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3', - "m/44'/607'/2147483646'": 'UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B', - "m/44'/607'/2147483647'": 'UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN", + "m/44'/607'/1'": "UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm", + "m/44'/607'/21234567'": "UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3", + "m/44'/607'/2147483646'": "UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B", + "m/44'/607'/2147483647'": "UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr', - "m/44'/309'/1'/0/0": 'ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr", + "m/44'/309'/1'/0/0": "ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls", + "m/44'/309'/21234567'/0/0": "ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0", + "m/44'/309'/2147483646'/0/0": "ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7", + "m/44'/309'/2147483647'/0/0": "ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b32864c15d04d6ae0336b5ddc606492b8ff441', - "m/44'/541'/1'/0/0": '1S0113f214a3079c47cd2d30ed63c0b721fb171531', - "m/44'/541'/21234567'/0/0": '1S01dea0121026d7f702bd9bb921dc02bb6b27c581', - "m/44'/541'/2147483646'/0/0": '1S01584253a100a67923ec03466261c700e7d27c81', - "m/44'/541'/2147483647'/0/0": '1S01311de7dfd071891669e664e5bd1c117233af61', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b32864c15d04d6ae0336b5ddc606492b8ff441", + "m/44'/541'/1'/0/0": "1S0113f214a3079c47cd2d30ed63c0b721fb171531", + "m/44'/541'/21234567'/0/0": "1S01dea0121026d7f702bd9bb921dc02bb6b27c581", + "m/44'/541'/2147483646'/0/0": "1S01584253a100a67923ec03466261c700e7d27c81", + "m/44'/541'/2147483647'/0/0": "1S01311de7dfd071891669e664e5bd1c117233af61" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_1.ts index 1c2f88ff9..1c7b8d67e 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_1.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphrase1: SLIP39TestCaseData = { - id: 'count33_one_passphrase_1', - name: 'count33_one_passphrase_1', - description: '1-of-1 (33 words) + passphrase_1', - passphrase: '12345', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_1", + "name": "count33_one_passphrase_1", + "description": "1-of-1 (33 words) + passphrase_1", + "passphrase": "12345", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1E5vFVWP9GJnxR6vigrMViWEqdYJganJoy', - "m/44'/0'/1'/0/0": '1AbtFxp2SGXU8eMKi1zNqRzzmpdFqFqfvt', - "m/44'/0'/21234567'/0/0": '1PpjQs7aS8CAQikR4ivGLUaDyfgxkbm7Y6', - "m/44'/0'/2147483646'/0/0": '1H6f6BC22ARERpRk1njCRtCMgjbhjFH4gM', - "m/44'/0'/2147483647'/0/0": '1QEieceRdq9SaoTPMWk4UhHk5U5Kign1Wf', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1E5vFVWP9GJnxR6vigrMViWEqdYJganJoy", + "m/44'/0'/1'/0/0": "1AbtFxp2SGXU8eMKi1zNqRzzmpdFqFqfvt", + "m/44'/0'/21234567'/0/0": "1PpjQs7aS8CAQikR4ivGLUaDyfgxkbm7Y6", + "m/44'/0'/2147483646'/0/0": "1H6f6BC22ARERpRk1njCRtCMgjbhjFH4gM", + "m/44'/0'/2147483647'/0/0": "1QEieceRdq9SaoTPMWk4UhHk5U5Kign1Wf" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3LCEvF9gZ59ii2TMUg1qKb2hjiy4df8zey', - "m/49'/0'/1'/0/0": '3Ap7RePRANvNvNBRfMpWCoP8TatPhNnKvB', - "m/49'/0'/21234567'/0/0": '39THJN72144g31JWXLbjcnuERu4N3rLBJv', - "m/49'/0'/2147483646'/0/0": '3Ns1kgmw41soYR7CPr27KP98WGZfSPjH8U', - "m/49'/0'/2147483647'/0/0": '35SPPLmZTATzcd7oojMqQwHE6HavR54fRY', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3LCEvF9gZ59ii2TMUg1qKb2hjiy4df8zey", + "m/49'/0'/1'/0/0": "3Ap7RePRANvNvNBRfMpWCoP8TatPhNnKvB", + "m/49'/0'/21234567'/0/0": "39THJN72144g31JWXLbjcnuERu4N3rLBJv", + "m/49'/0'/2147483646'/0/0": "3Ns1kgmw41soYR7CPr27KP98WGZfSPjH8U", + "m/49'/0'/2147483647'/0/0": "35SPPLmZTATzcd7oojMqQwHE6HavR54fRY" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qw8hl3ax2djawv25p3dd3exzp3mmunha9ravra5', - "m/84'/0'/1'/0/0": 'bc1qrnray7q6vvc5lkhdvzxjfurcm8rft3fk8w7t2m', - "m/84'/0'/21234567'/0/0": 'bc1qpvswkj50mscls75wuhhuuqsnc0ltc58nw9vz79', - "m/84'/0'/2147483646'/0/0": 'bc1qakr3gkhff23rhxnx2wt5lsxld9ehh00wlg3zmr', - "m/84'/0'/2147483647'/0/0": 'bc1qpjmcqxjvpypwz04qn2qwddazqpf3qdrzndkmlc', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qw8hl3ax2djawv25p3dd3exzp3mmunha9ravra5", + "m/84'/0'/1'/0/0": "bc1qrnray7q6vvc5lkhdvzxjfurcm8rft3fk8w7t2m", + "m/84'/0'/21234567'/0/0": "bc1qpvswkj50mscls75wuhhuuqsnc0ltc58nw9vz79", + "m/84'/0'/2147483646'/0/0": "bc1qakr3gkhff23rhxnx2wt5lsxld9ehh00wlg3zmr", + "m/84'/0'/2147483647'/0/0": "bc1qpjmcqxjvpypwz04qn2qwddazqpf3qdrzndkmlc" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pxd8s0u0jr7wzhvfx34q3le43sjzgz23sd447vprxhj49v0ccku5qpchjag', - "m/86'/0'/1'/0/0": 'bc1pq9jw9zfatac5s89qk9flthq39ulaz5pf9dhqzse9tepjnc74uxkq4umae0', - "m/86'/0'/21234567'/0/0": 'bc1pt5p3sh6wc7t9uy53q8pwr8vjr92xndz4nphd642m8e2shyvkp3usczqzgw', - "m/86'/0'/2147483646'/0/0": - 'bc1p3a5jrklfpu9rw4mg8exvf0ccrrkjkhwh48v78j8ljktpy9zgfxyslumz9w', - "m/86'/0'/2147483647'/0/0": - 'bc1ptzkxhdqxkwpj20jmjteag4wdfsk26lkwxmljv8qkpayyyhqa68xq996ta4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pxd8s0u0jr7wzhvfx34q3le43sjzgz23sd447vprxhj49v0ccku5qpchjag", + "m/86'/0'/1'/0/0": "bc1pq9jw9zfatac5s89qk9flthq39ulaz5pf9dhqzse9tepjnc74uxkq4umae0", + "m/86'/0'/21234567'/0/0": "bc1pt5p3sh6wc7t9uy53q8pwr8vjr92xndz4nphd642m8e2shyvkp3usczqzgw", + "m/86'/0'/2147483646'/0/0": "bc1p3a5jrklfpu9rw4mg8exvf0ccrrkjkhwh48v78j8ljktpy9zgfxyslumz9w", + "m/86'/0'/2147483647'/0/0": "bc1ptzkxhdqxkwpj20jmjteag4wdfsk26lkwxmljv8qkpayyyhqa68xq996ta4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DKpDCwvoqWG2NnpHGJFkR1B4oNXiCvhk9e', - "m/44'/3'/1'/0/0": 'D79hXN7zLxNn9DoARrE68hwcNWCXe49fim', - "m/44'/3'/21234567'/0/0": 'D5bbTZmdA4ZngYr6CayATHBYp2SJq9zVKm', - "m/44'/3'/2147483646'/0/0": 'DMJ5pboKuAwF1qmtxV7fud7BJGAV83HYxU', - "m/44'/3'/2147483647'/0/0": 'D8M4G2xgUm6ggbRoopKAFurDwA9V7j8gtm', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DKpDCwvoqWG2NnpHGJFkR1B4oNXiCvhk9e", + "m/44'/3'/1'/0/0": "D79hXN7zLxNn9DoARrE68hwcNWCXe49fim", + "m/44'/3'/21234567'/0/0": "D5bbTZmdA4ZngYr6CayATHBYp2SJq9zVKm", + "m/44'/3'/2147483646'/0/0": "DMJ5pboKuAwF1qmtxV7fud7BJGAV83HYxU", + "m/44'/3'/2147483647'/0/0": "D8M4G2xgUm6ggbRoopKAFurDwA9V7j8gtm" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qz8zw4fy60fvfq0r46cmfjcdarlcgykk65mtj9ra9e', - "m/44'/145'/1'/0/0": 'bitcoincash:qrjyzvhtevz2g2z8r42cjujp29h9p42htc64prhrle', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qrjdaxdqzvf7y8nj6ajwcfx0lg338wlrlqkmp2ph79', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qqlwrg5wr45uvac82k3nzs0ypq5carw6kup3ltul3j', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qz8dnqntafxw5dy4780q75qwhuau4y7wxumrf0tv0g', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qz8zw4fy60fvfq0r46cmfjcdarlcgykk65mtj9ra9e", + "m/44'/145'/1'/0/0": "bitcoincash:qrjyzvhtevz2g2z8r42cjujp29h9p42htc64prhrle", + "m/44'/145'/21234567'/0/0": "bitcoincash:qrjdaxdqzvf7y8nj6ajwcfx0lg338wlrlqkmp2ph79", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qqlwrg5wr45uvac82k3nzs0ypq5carw6kup3ltul3j", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qz8dnqntafxw5dy4780q75qwhuau4y7wxumrf0tv0g" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LLGZGBMUSRHyauwt54CnqAoKnucMDET1Y8', - "m/44'/2'/1'/0/0": 'LhqPMikXQtdDvh9xFb2kuMMrLnvL8c2wLz', - "m/44'/2'/21234567'/0/0": 'LWjEvTdLkQgR23QAmMm7djKGTbsaHBn7Tx', - "m/44'/2'/2147483646'/0/0": 'LR4TCSvU1dUBCz6ymNFzk3VQZLjoEsdfVC', - "m/44'/2'/2147483647'/0/0": 'LhyDdPyXH7dGThELMKfG2KdSe3PcDWEYj1', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LLGZGBMUSRHyauwt54CnqAoKnucMDET1Y8", + "m/44'/2'/1'/0/0": "LhqPMikXQtdDvh9xFb2kuMMrLnvL8c2wLz", + "m/44'/2'/21234567'/0/0": "LWjEvTdLkQgR23QAmMm7djKGTbsaHBn7Tx", + "m/44'/2'/2147483646'/0/0": "LR4TCSvU1dUBCz6ymNFzk3VQZLjoEsdfVC", + "m/44'/2'/2147483647'/0/0": "LhyDdPyXH7dGThELMKfG2KdSe3PcDWEYj1" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MW53azMx66tsfC4Y9ACvh72yGGo9zmk1sm', - "m/49'/2'/1'/0/0": 'MLL86HMWe8c3CA5VAzGNwsiCeniShwHr1W', - "m/49'/2'/21234567'/0/0": 'MQZsdLkajEtfCt632zqkvb3XLYTXsTW6CE', - "m/49'/2'/2147483646'/0/0": 'MBDKXbCCYe1sFjjRQzQGEtaaxbwWvjaXjJ', - "m/49'/2'/2147483647'/0/0": 'MEReg8VotfmvxfE9a4YUvrGu9yWeM1HBr8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MW53azMx66tsfC4Y9ACvh72yGGo9zmk1sm", + "m/49'/2'/1'/0/0": "MLL86HMWe8c3CA5VAzGNwsiCeniShwHr1W", + "m/49'/2'/21234567'/0/0": "MQZsdLkajEtfCt632zqkvb3XLYTXsTW6CE", + "m/49'/2'/2147483646'/0/0": "MBDKXbCCYe1sFjjRQzQGEtaaxbwWvjaXjJ", + "m/49'/2'/2147483647'/0/0": "MEReg8VotfmvxfE9a4YUvrGu9yWeM1HBr8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qreqnrvlfgwr0duttqxwr5sx7l72v7029jw0086', - "m/84'/2'/1'/0/0": 'ltc1qp7gen2x3jajxghm77amjsyv54c7kdrjv45v6fv', - "m/84'/2'/21234567'/0/0": 'ltc1q77v9mpm3f3hzwxnhfag370z7u8lwfefqw3twyv', - "m/84'/2'/2147483646'/0/0": 'ltc1q90u090m6kk7zryh587pdjep6kxaaf9zd8rzafp', - "m/84'/2'/2147483647'/0/0": 'ltc1qrx6gyp45fp3dqnj64l6edaxpjg7zym3x3unqeu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qreqnrvlfgwr0duttqxwr5sx7l72v7029jw0086", + "m/84'/2'/1'/0/0": "ltc1qp7gen2x3jajxghm77amjsyv54c7kdrjv45v6fv", + "m/84'/2'/21234567'/0/0": "ltc1q77v9mpm3f3hzwxnhfag370z7u8lwfefqw3twyv", + "m/84'/2'/2147483646'/0/0": "ltc1q90u090m6kk7zryh587pdjep6kxaaf9zd8rzafp", + "m/84'/2'/2147483647'/0/0": "ltc1qrx6gyp45fp3dqnj64l6edaxpjg7zym3x3unqeu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NgVsuVcqEa5Rgfkf2s4F4Dz57Ua46a64Xa', - "m/44'/1900'/1'/0/0": 'NbPPPqLA9nThmiVDryqtwR6oqFpndEKKfq', - "m/44'/1900'/21234567'/0/0": 'NLm5XhzGaxxNTntc1sUfPx7GR8gJjt5pZC', - "m/44'/1900'/2147483646'/0/0": 'NQCRXurFYF33jwaSiDKqZ5ZH48JpdAXXZA', - "m/44'/1900'/2147483647'/0/0": 'NggJXurJMCMGh8qctgu9jfcuaghVAhYqyG', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NgVsuVcqEa5Rgfkf2s4F4Dz57Ua46a64Xa", + "m/44'/1900'/1'/0/0": "NbPPPqLA9nThmiVDryqtwR6oqFpndEKKfq", + "m/44'/1900'/21234567'/0/0": "NLm5XhzGaxxNTntc1sUfPx7GR8gJjt5pZC", + "m/44'/1900'/2147483646'/0/0": "NQCRXurFYF33jwaSiDKqZ5ZH48JpdAXXZA", + "m/44'/1900'/2147483647'/0/0": "NggJXurJMCMGh8qctgu9jfcuaghVAhYqyG" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xB9D902e65B81E9858ec1098aA15F1bcE9853bf44', - "m/44'/60'/1'/0/0": '0x2F3Dd2Fc9c391dD0081ad50644f5aF44F9Ed8B35', - "m/44'/60'/21234567'/0/0": '0x39eb58bc83AA5B4fe75B2fdBE2aAb5D763b3FD05', - "m/44'/60'/2147483646'/0/0": '0xd1585f2145c8127d2e86bE577c381d9E61Da6DF0', - "m/44'/60'/2147483647'/0/0": '0x49a892Cf77AbA2e8f905112347dF920418e70725', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xB9D902e65B81E9858ec1098aA15F1bcE9853bf44", + "m/44'/60'/1'/0/0": "0x2F3Dd2Fc9c391dD0081ad50644f5aF44F9Ed8B35", + "m/44'/60'/21234567'/0/0": "0x39eb58bc83AA5B4fe75B2fdBE2aAb5D763b3FD05", + "m/44'/60'/2147483646'/0/0": "0xd1585f2145c8127d2e86bE577c381d9E61Da6DF0", + "m/44'/60'/2147483647'/0/0": "0x49a892Cf77AbA2e8f905112347dF920418e70725" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x2e56e4927d6d17282c00F14A8de7A3224f22578e', - "m/44'/61'/1'/0/0": '0x13A8c8F1392Dc65C8165a52C3d5721D20da71d23', - "m/44'/61'/21234567'/0/0": '0x10b10A65224816238cc11AC1ae9Af5f7be47851F', - "m/44'/61'/2147483646'/0/0": '0x455261B52A9226F8aF0BF067B2441AD2064b8f9E', - "m/44'/61'/2147483647'/0/0": '0x418Fd89EA9d76a150d5226dBbDFBfdab3c00dDEC', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x2e56e4927d6d17282c00F14A8de7A3224f22578e", + "m/44'/61'/1'/0/0": "0x13A8c8F1392Dc65C8165a52C3d5721D20da71d23", + "m/44'/61'/21234567'/0/0": "0x10b10A65224816238cc11AC1ae9Af5f7be47851F", + "m/44'/61'/2147483646'/0/0": "0x455261B52A9226F8aF0BF067B2441AD2064b8f9E", + "m/44'/61'/2147483647'/0/0": "0x418Fd89EA9d76a150d5226dBbDFBfdab3c00dDEC" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos19adgjm20qvarkauz94h7rskv4h0pakw3hqp9da', - "m/44'/118'/1'/0/0": 'cosmos1vc2zv96vppw0n5zetu49zxvsgemrqnkyv2vsy0', - "m/44'/118'/21234567'/0/0": 'cosmos1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqndt9zp', - "m/44'/118'/2147483646'/0/0": 'cosmos1hndyw72fuufvc2dzmg9fj0cpe02ctwuhela5hj', - "m/44'/118'/2147483647'/0/0": 'cosmos1ley65htm3yy69f8vdazemgjfd0gh688zdus4nt', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos19adgjm20qvarkauz94h7rskv4h0pakw3hqp9da", + "m/44'/118'/1'/0/0": "cosmos1vc2zv96vppw0n5zetu49zxvsgemrqnkyv2vsy0", + "m/44'/118'/21234567'/0/0": "cosmos1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqndt9zp", + "m/44'/118'/2147483646'/0/0": "cosmos1hndyw72fuufvc2dzmg9fj0cpe02ctwuhela5hj", + "m/44'/118'/2147483647'/0/0": "cosmos1ley65htm3yy69f8vdazemgjfd0gh688zdus4nt" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash19adgjm20qvarkauz94h7rskv4h0pakw36mvz58', - "m/44'/118'/1'/0/0": 'akash1vc2zv96vppw0n5zetu49zxvsgemrqnkyp3pha4', - "m/44'/118'/21234567'/0/0": 'akash1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq7kxzmm', - "m/44'/118'/2147483646'/0/0": 'akash1hndyw72fuufvc2dzmg9fj0cpe02ctwuh5ysnwg', - "m/44'/118'/2147483647'/0/0": 'akash1ley65htm3yy69f8vdazemgjfd0gh688zq8aj23', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash19adgjm20qvarkauz94h7rskv4h0pakw36mvz58", + "m/44'/118'/1'/0/0": "akash1vc2zv96vppw0n5zetu49zxvsgemrqnkyp3pha4", + "m/44'/118'/21234567'/0/0": "akash1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq7kxzmm", + "m/44'/118'/2147483646'/0/0": "akash1hndyw72fuufvc2dzmg9fj0cpe02ctwuh5ysnwg", + "m/44'/118'/2147483647'/0/0": "akash1ley65htm3yy69f8vdazemgjfd0gh688zq8aj23" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro19adgjm20qvarkauz94h7rskv4h0pakw30mfu3v', - "m/44'/118'/1'/0/0": 'cro1vc2zv96vppw0n5zetu49zxvsgemrqnky53yfc7', - "m/44'/118'/21234567'/0/0": 'cro1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqtkru7s', - "m/44'/118'/2147483646'/0/0": 'cro1hndyw72fuufvc2dzmg9fj0cpe02ctwuhpy4dtr', - "m/44'/118'/2147483647'/0/0": 'cro1ley65htm3yy69f8vdazemgjfd0gh688z48cv06', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro19adgjm20qvarkauz94h7rskv4h0pakw30mfu3v", + "m/44'/118'/1'/0/0": "cro1vc2zv96vppw0n5zetu49zxvsgemrqnky53yfc7", + "m/44'/118'/21234567'/0/0": "cro1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqtkru7s", + "m/44'/118'/2147483646'/0/0": "cro1hndyw72fuufvc2dzmg9fj0cpe02ctwuhpy4dtr", + "m/44'/118'/2147483647'/0/0": "cro1ley65htm3yy69f8vdazemgjfd0gh688z48cv06" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch19adgjm20qvarkauz94h7rskv4h0pakw3yagp02', - "m/44'/118'/1'/0/0": 'fetch1vc2zv96vppw0n5zetu49zxvsgemrqnkylh95xc', - "m/44'/118'/21234567'/0/0": 'fetch1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqqszpqk', - "m/44'/118'/2147483646'/0/0": 'fetch1hndyw72fuufvc2dzmg9fj0cpe02ctwuh2z5s49', - "m/44'/118'/2147483647'/0/0": 'fetch1ley65htm3yy69f8vdazemgjfd0gh688z7pe33u', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch19adgjm20qvarkauz94h7rskv4h0pakw3yagp02", + "m/44'/118'/1'/0/0": "fetch1vc2zv96vppw0n5zetu49zxvsgemrqnkylh95xc", + "m/44'/118'/21234567'/0/0": "fetch1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqqszpqk", + "m/44'/118'/2147483646'/0/0": "fetch1hndyw72fuufvc2dzmg9fj0cpe02ctwuh2z5s49", + "m/44'/118'/2147483647'/0/0": "fetch1ley65htm3yy69f8vdazemgjfd0gh688z7pe33u" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo19adgjm20qvarkauz94h7rskv4h0pakw3lmj4m0', - "m/44'/118'/1'/0/0": 'osmo1vc2zv96vppw0n5zetu49zxvsgemrqnkyy3lqja', - "m/44'/118'/21234567'/0/0": 'osmo1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqmkc45n', - "m/44'/118'/2147483646'/0/0": 'osmo1hndyw72fuufvc2dzmg9fj0cpe02ctwuh3ywypq', - "m/44'/118'/2147483647'/0/0": 'osmo1ley65htm3yy69f8vdazemgjfd0gh688z98r99e', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo19adgjm20qvarkauz94h7rskv4h0pakw3lmj4m0", + "m/44'/118'/1'/0/0": "osmo1vc2zv96vppw0n5zetu49zxvsgemrqnkyy3lqja", + "m/44'/118'/21234567'/0/0": "osmo1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqmkc45n", + "m/44'/118'/2147483646'/0/0": "osmo1hndyw72fuufvc2dzmg9fj0cpe02ctwuh3ywypq", + "m/44'/118'/2147483647'/0/0": "osmo1ley65htm3yy69f8vdazemgjfd0gh688z98r99e" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno19adgjm20qvarkauz94h7rskv4h0pakw3pjz72p', - "m/44'/118'/1'/0/0": 'juno1vc2zv96vppw0n5zetu49zxvsgemrqnky6c0trn', - "m/44'/118'/21234567'/0/0": 'juno1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq9lg79a', - "m/44'/118'/2147483646'/0/0": 'juno1hndyw72fuufvc2dzmg9fj0cpe02ctwuh0d70sw', - "m/44'/118'/2147483647'/0/0": 'juno1ley65htm3yy69f8vdazemgjfd0gh688zmwnw5h', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno19adgjm20qvarkauz94h7rskv4h0pakw3pjz72p", + "m/44'/118'/1'/0/0": "juno1vc2zv96vppw0n5zetu49zxvsgemrqnky6c0trn", + "m/44'/118'/21234567'/0/0": "juno1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq9lg79a", + "m/44'/118'/2147483646'/0/0": "juno1hndyw72fuufvc2dzmg9fj0cpe02ctwuh0d70sw", + "m/44'/118'/2147483647'/0/0": "juno1ley65htm3yy69f8vdazemgjfd0gh688zmwnw5h" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra19adgjm20qvarkauz94h7rskv4h0pakw33ym90a', - "m/44'/118'/1'/0/0": 'terra1vc2zv96vppw0n5zetu49zxvsgemrqnky2wksx0', - "m/44'/118'/21234567'/0/0": 'terra1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq4f39qp', - "m/44'/118'/2147483646'/0/0": 'terra1hndyw72fuufvc2dzmg9fj0cpe02ctwuhlm854j', - "m/44'/118'/2147483647'/0/0": 'terra1ley65htm3yy69f8vdazemgjfd0gh688ztc243t', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra19adgjm20qvarkauz94h7rskv4h0pakw33ym90a", + "m/44'/118'/1'/0/0": "terra1vc2zv96vppw0n5zetu49zxvsgemrqnky2wksx0", + "m/44'/118'/21234567'/0/0": "terra1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq4f39qp", + "m/44'/118'/2147483646'/0/0": "terra1hndyw72fuufvc2dzmg9fj0cpe02ctwuhlm854j", + "m/44'/118'/2147483647'/0/0": "terra1ley65htm3yy69f8vdazemgjfd0gh688ztc243t" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret19adgjm20qvarkauz94h7rskv4h0pakw3494vsp', - "m/44'/118'/1'/0/0": 'secret1vc2zv96vppw0n5zetu49zxvsgemrqnkyw0ceen', - "m/44'/118'/21234567'/0/0": 'secret1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq3glvla', - "m/44'/118'/2147483646'/0/0": 'secret1hndyw72fuufvc2dzmg9fj0cpe02ctwuhm6fa2w', - "m/44'/118'/2147483647'/0/0": 'secret1ley65htm3yy69f8vdazemgjfd0gh688z0eyuwh', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret19adgjm20qvarkauz94h7rskv4h0pakw3494vsp", + "m/44'/118'/1'/0/0": "secret1vc2zv96vppw0n5zetu49zxvsgemrqnkyw0ceen", + "m/44'/118'/21234567'/0/0": "secret1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq3glvla", + "m/44'/118'/2147483646'/0/0": "secret1hndyw72fuufvc2dzmg9fj0cpe02ctwuhm6fa2w", + "m/44'/118'/2147483647'/0/0": "secret1ley65htm3yy69f8vdazemgjfd0gh688z0eyuwh" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia19adgjm20qvarkauz94h7rskv4h0pakw3x2s4hs', - "m/44'/118'/1'/0/0": 'celestia1vc2zv96vppw0n5zetu49zxvsgemrqnkyaqaq7z', - "m/44'/118'/21234567'/0/0": 'celestia1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqz864cv', - "m/44'/118'/2147483646'/0/0": 'celestia1hndyw72fuufvc2dzmg9fj0cpe02ctwuhg4vydl', - "m/44'/118'/2147483647'/0/0": 'celestia1ley65htm3yy69f8vdazemgjfd0gh688zukp9fx', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia19adgjm20qvarkauz94h7rskv4h0pakw3x2s4hs", + "m/44'/118'/1'/0/0": "celestia1vc2zv96vppw0n5zetu49zxvsgemrqnkyaqaq7z", + "m/44'/118'/21234567'/0/0": "celestia1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqz864cv", + "m/44'/118'/2147483646'/0/0": "celestia1hndyw72fuufvc2dzmg9fj0cpe02ctwuhg4vydl", + "m/44'/118'/2147483647'/0/0": "celestia1ley65htm3yy69f8vdazemgjfd0gh688zukp9fx" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x761f440c1f53eb1a31e8bf9f1e1ab3893c2a5aa116f2a6bf1422bf989ed5dbd4', - "m/44'/784'/1'/0'/0'": '0xc7c11e9bbdd9368e78166422ebe99c5b33eef2f0506794e28d9b2919b5d25619', - "m/44'/784'/21234567'/0'/0'": - '0xc363b6a97f4841fb28db9c775498d23f40b611b5eee8c4d1b2e7575e43ce33d3', - "m/44'/784'/2147483646'/0'/0'": - '0x5ef1ecc07415a1cfe7e336245c650794bb85b3a3e42870f513f4d65b1445f21e', - "m/44'/784'/2147483647'/0'/0'": - '0x6e3d7f3e51c9ebd458b4a2d60ef1de766c1496331e652122a2d727bdf7aa23b8', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x761f440c1f53eb1a31e8bf9f1e1ab3893c2a5aa116f2a6bf1422bf989ed5dbd4", + "m/44'/784'/1'/0'/0'": "0xc7c11e9bbdd9368e78166422ebe99c5b33eef2f0506794e28d9b2919b5d25619", + "m/44'/784'/21234567'/0'/0'": "0xc363b6a97f4841fb28db9c775498d23f40b611b5eee8c4d1b2e7575e43ce33d3", + "m/44'/784'/2147483646'/0'/0'": "0x5ef1ecc07415a1cfe7e336245c650794bb85b3a3e42870f513f4d65b1445f21e", + "m/44'/784'/2147483647'/0'/0'": "0x6e3d7f3e51c9ebd458b4a2d60ef1de766c1496331e652122a2d727bdf7aa23b8" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez', - "m/44'/144'/1'/0/0": 'rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU', - "m/44'/144'/21234567'/0/0": 'rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP', - "m/44'/144'/2147483646'/0/0": 'r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt', - "m/44'/144'/2147483647'/0/0": 'rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez", + "m/44'/144'/1'/0/0": "rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU", + "m/44'/144'/21234567'/0/0": "rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP", + "m/44'/144'/2147483646'/0/0": "r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt", + "m/44'/144'/2147483647'/0/0": "rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCf55001a305d52965cd99d35992af5137c89895a1694d54df805b001af6af9f6c880c', - "m/44'/728'/1'/0'/0'": - 'BFCf407e2fa4a07de88daece3e19b5ac4f189d43a561bc4e5431d4366b1442e49edca04', - "m/44'/728'/21234567'/0'/0'": - 'BFC81a950c05540d9e35e781936590997bae7746874a5aba1ed8615a987100ba353c39f', - "m/44'/728'/2147483646'/0'/0'": - 'BFC4e035b3ea594713b5dfe4d3d0e14ac1a42facf134526469f741553ca29f31851b32e', - "m/44'/728'/2147483647'/0'/0'": - 'BFCefe31ab16c582996f80275cc1b6bac8533c604989943dfa330da208aad1043393b04', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCf55001a305d52965cd99d35992af5137c89895a1694d54df805b001af6af9f6c880c", + "m/44'/728'/1'/0'/0'": "BFCf407e2fa4a07de88daece3e19b5ac4f189d43a561bc4e5431d4366b1442e49edca04", + "m/44'/728'/21234567'/0'/0'": "BFC81a950c05540d9e35e781936590997bae7746874a5aba1ed8615a987100ba353c39f", + "m/44'/728'/2147483646'/0'/0'": "BFC4e035b3ea594713b5dfe4d3d0e14ac1a42facf134526469f741553ca29f31851b32e", + "m/44'/728'/2147483647'/0'/0'": "BFCefe31ab16c582996f80275cc1b6bac8533c604989943dfa330da208aad1043393b04" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1MnkhQBoA3DGGseCq6wBo4wa1xQwDhHn6hfYJNWmQm15', - "m/44'/1234'/1'/0/0": '18VMx47p6BvpeDHdQDBvsNzCLhTV9uy6qWNKHVyLmLiQN', - "m/44'/1234'/21234567'/0/0": '14cWtLmShwiUY5aNJ95vePa1LEb4aKzE9xgCH3xoSaUjx', - "m/44'/1234'/2147483646'/0/0": '1usH77nv8ZM7MMiAQ6Sw5by9U1AxGPAgwDergA5xa2G1', - "m/44'/1234'/2147483647'/0/0": '19ij8NoWMFK7j465HxgLkHcP48fyjqJzDr5SatTBww3EJ', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1MnkhQBoA3DGGseCq6wBo4wa1xQwDhHn6hfYJNWmQm15", + "m/44'/1234'/1'/0/0": "18VMx47p6BvpeDHdQDBvsNzCLhTV9uy6qWNKHVyLmLiQN", + "m/44'/1234'/21234567'/0/0": "14cWtLmShwiUY5aNJ95vePa1LEb4aKzE9xgCH3xoSaUjx", + "m/44'/1234'/2147483646'/0/0": "1usH77nv8ZM7MMiAQ6Sw5by9U1AxGPAgwDergA5xa2G1", + "m/44'/1234'/2147483647'/0/0": "19ij8NoWMFK7j465HxgLkHcP48fyjqJzDr5SatTBww3EJ" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'W2EDUY2LWL7S73ARZL5ZSUQDVBE6MIRBKG2NSS5PIWMS3XHA5WBA3BEYTU', - "m/44'/283'/1'/0'/0'": 'FVTFHAYKWSRDPCDUBX3ZCNKX3AZ3CLCPN73Z453WC5WKXN6U7ITFQSWQHA', - "m/44'/283'/21234567'/0'/0'": 'OB6IKT5GPS2IAJTQPOOPIONSTGMMCLO5EEUCCIANAX3AAS5BIJL7ACNTNI', - "m/44'/283'/2147483646'/0'/0'": - 'JJ6DCHTH6GJ2K2EMLLYQAFDTNVSYYY3OQFJEH7OLYUAORTAR2VJIESQ4XQ', - "m/44'/283'/2147483647'/0'/0'": - 'MHSF27V4VZE6BF7GFGOT3DNT566NLF2OHKQBAKWPJ6KZGHQAPQFDSHLU6E', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "W2EDUY2LWL7S73ARZL5ZSUQDVBE6MIRBKG2NSS5PIWMS3XHA5WBA3BEYTU", + "m/44'/283'/1'/0'/0'": "FVTFHAYKWSRDPCDUBX3ZCNKX3AZ3CLCPN73Z453WC5WKXN6U7ITFQSWQHA", + "m/44'/283'/21234567'/0'/0'": "OB6IKT5GPS2IAJTQPOOPIONSTGMMCLO5EEUCCIANAX3AAS5BIJL7ACNTNI", + "m/44'/283'/2147483646'/0'/0'": "JJ6DCHTH6GJ2K2EMLLYQAFDTNVSYYY3OQFJEH7OLYUAORTAR2VJIESQ4XQ", + "m/44'/283'/2147483647'/0'/0'": "MHSF27V4VZE6BF7GFGOT3DNT566NLF2OHKQBAKWPJ6KZGHQAPQFDSHLU6E" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQCP7oQ0PLkfEQVwlJ6rnJSUFvTjgmRs8u4PGxSaLNr5CD8W', - "m/44'/607'/1'": 'UQBAcVgF2uZzDUlr1qa-3V88Rx4keBLVHFcWLtP1nuc3UgTV', - "m/44'/607'/21234567'": 'UQClOHxrJUTRs-jxTv3W0LhhDANzoc8N1BOfxNng0abXZ0kY', - "m/44'/607'/2147483646'": 'UQD_N7hv_tjPdqOdGeJC6lT5Qptpj2VjrJwXPfAaeR8dFmKs', - "m/44'/607'/2147483647'": 'UQDagJN_vlImTX_JHsxwZFW3CtiTR29gWOxyKSg-uFxw6U9W', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQCP7oQ0PLkfEQVwlJ6rnJSUFvTjgmRs8u4PGxSaLNr5CD8W", + "m/44'/607'/1'": "UQBAcVgF2uZzDUlr1qa-3V88Rx4keBLVHFcWLtP1nuc3UgTV", + "m/44'/607'/21234567'": "UQClOHxrJUTRs-jxTv3W0LhhDANzoc8N1BOfxNng0abXZ0kY", + "m/44'/607'/2147483646'": "UQD_N7hv_tjPdqOdGeJC6lT5Qptpj2VjrJwXPfAaeR8dFmKs", + "m/44'/607'/2147483647'": "UQDagJN_vlImTX_JHsxwZFW3CtiTR29gWOxyKSg-uFxw6U9W" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqd392yfreprkaue0dvtga0ghxr40vwqq6q5zcfnt', - "m/44'/309'/1'/0/0": 'ckb1qyqpwv70vcq0eaata0l5fjapqegz4cv0g73s4jajv8', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwphpcpkdccxykz0n8tphx5smhd6dptc7seyl0gx', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqflyy0sdafzkcwfucudexsk70t8jq9jz4qpusvkf', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqw74ryw3jp42p0l0cezd4fmkzppk0k406qmdaye2', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqd392yfreprkaue0dvtga0ghxr40vwqq6q5zcfnt", + "m/44'/309'/1'/0/0": "ckb1qyqpwv70vcq0eaata0l5fjapqegz4cv0g73s4jajv8", + "m/44'/309'/21234567'/0/0": "ckb1qyqwphpcpkdccxykz0n8tphx5smhd6dptc7seyl0gx", + "m/44'/309'/2147483646'/0/0": "ckb1qyqflyy0sdafzkcwfucudexsk70t8jq9jz4qpusvkf", + "m/44'/309'/2147483647'/0/0": "ckb1qyqw74ryw3jp42p0l0cezd4fmkzppk0k406qmdaye2" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5k0njelul3ne7qldkg2lzueaxnh5t9u3pl93kzxn4', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5as8qyn9vlltvrdlhpvclv6eynveg7rwxf3ycpyg8', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5few0g6h6lq08avaqjqnt22v2qqj4lgy6fqvcccmj', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5elr82vh5p2lehrgq4ha7uvv6d39e93lhxc3r9fu7', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g54mraxvaq3v0l3za4qcnqx6fh2wq062kfmdn8taxm', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5k0njelul3ne7qldkg2lzueaxnh5t9u3pl93kzxn4", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5as8qyn9vlltvrdlhpvclv6eynveg7rwxf3ycpyg8", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5few0g6h6lq08avaqjqnt22v2qqj4lgy6fqvcccmj", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5elr82vh5p2lehrgq4ha7uvv6d39e93lhxc3r9fu7", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g54mraxvaq3v0l3za4qcnqx6fh2wq062kfmdn8taxm" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez', - "m/44'/144'/1'/0/0": 'rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU', - "m/44'/144'/21234567'/0/0": 'rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP', - "m/44'/144'/2147483646'/0/0": 'r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt', - "m/44'/144'/2147483647'/0/0": 'rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez", + "m/44'/144'/1'/0/0": "rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU", + "m/44'/144'/21234567'/0/0": "rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP", + "m/44'/144'/2147483646'/0/0": "r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt", + "m/44'/144'/2147483647'/0/0": "rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S0185e8795782a4dc1eaf373c0123984bc433b831', - "m/44'/541'/1'/0/0": '1S014e28bfb040e2d9a72462de3459a5b190982bc1', - "m/44'/541'/21234567'/0/0": '1S01485d4b464b91bd3dad378c2cb6927f320cbca1', - "m/44'/541'/2147483646'/0/0": '1S01ca36eb8e169c40cc85ae10b8f00b7ba5be1411', - "m/44'/541'/2147483647'/0/0": '1S01a8afa15ef4672076a7c018d26022f55c93dca1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S0185e8795782a4dc1eaf373c0123984bc433b831", + "m/44'/541'/1'/0/0": "1S014e28bfb040e2d9a72462de3459a5b190982bc1", + "m/44'/541'/21234567'/0/0": "1S01485d4b464b91bd3dad378c2cb6927f320cbca1", + "m/44'/541'/2147483646'/0/0": "1S01ca36eb8e169c40cc85ae10b8f00b7ba5be1411", + "m/44'/541'/2147483647'/0/0": "1S01a8afa15ef4672076a7c018d26022f55c93dca1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_2.ts index df732f65e..b1b4d0e8f 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_2.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphrase2: SLIP39TestCaseData = { - id: 'count33_one_passphrase_2', - name: 'count33_one_passphrase_2', - description: '1-of-1 (33 words) + passphrase_2', - passphrase: 'onekey', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_2", + "name": "count33_one_passphrase_2", + "description": "1-of-1 (33 words) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1Bqu3CMfn9VHW2dX6hpFA65zTMQycaa8iR', - "m/44'/0'/1'/0/0": '1DdYQCkci9vXPmujkYV8JjkFNBRmPTtDJx', - "m/44'/0'/21234567'/0/0": '1GwjNzzgHUacw67GBDs1YvVX7DxDvS9zww', - "m/44'/0'/2147483646'/0/0": '13Vtf8JWo2qXSUJh2xqguyn9NLwSxiQ6p8', - "m/44'/0'/2147483647'/0/0": '1NG41SbbLSrSi8sW9s8wBC8ZjzTJgm16oZ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1Bqu3CMfn9VHW2dX6hpFA65zTMQycaa8iR", + "m/44'/0'/1'/0/0": "1DdYQCkci9vXPmujkYV8JjkFNBRmPTtDJx", + "m/44'/0'/21234567'/0/0": "1GwjNzzgHUacw67GBDs1YvVX7DxDvS9zww", + "m/44'/0'/2147483646'/0/0": "13Vtf8JWo2qXSUJh2xqguyn9NLwSxiQ6p8", + "m/44'/0'/2147483647'/0/0": "1NG41SbbLSrSi8sW9s8wBC8ZjzTJgm16oZ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3Pgd7Qs3oHcCymCsBnX7UwdzaKtoQg3owd', - "m/49'/0'/1'/0/0": '3AaTB9bycqNHrcvfeoS1RhgR4rXqS1koDS', - "m/49'/0'/21234567'/0/0": '3MF9x1WPLvxZr3cDfskeWLHHTw2bsqi5ym', - "m/49'/0'/2147483646'/0/0": '3BgTZAm685HDCiXkkzRtMyE6zQbdmGsdQf', - "m/49'/0'/2147483647'/0/0": '3L2JSvjmTr22n5iLnT68pJCLTQSKgrW39b', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3Pgd7Qs3oHcCymCsBnX7UwdzaKtoQg3owd", + "m/49'/0'/1'/0/0": "3AaTB9bycqNHrcvfeoS1RhgR4rXqS1koDS", + "m/49'/0'/21234567'/0/0": "3MF9x1WPLvxZr3cDfskeWLHHTw2bsqi5ym", + "m/49'/0'/2147483646'/0/0": "3BgTZAm685HDCiXkkzRtMyE6zQbdmGsdQf", + "m/49'/0'/2147483647'/0/0": "3L2JSvjmTr22n5iLnT68pJCLTQSKgrW39b" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qhk6c3lh4rfxykfd9ru0h2dpwu57yr8u4qk3nx5', - "m/84'/0'/1'/0/0": 'bc1q0rx0lelr5pk6nhqgsd45mywd7fcxjw83v33hyh', - "m/84'/0'/21234567'/0/0": 'bc1q3vg6zc8r3epdm8payww04u3694xlw6dj8apz86', - "m/84'/0'/2147483646'/0/0": 'bc1qn9g8me6ctfsrg3g4xl7pc7p7j29u87zdmkh9sa', - "m/84'/0'/2147483647'/0/0": 'bc1qxka43p3um7cthr2nxwtl9xyvfquqqy8mg8r559', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qhk6c3lh4rfxykfd9ru0h2dpwu57yr8u4qk3nx5", + "m/84'/0'/1'/0/0": "bc1q0rx0lelr5pk6nhqgsd45mywd7fcxjw83v33hyh", + "m/84'/0'/21234567'/0/0": "bc1q3vg6zc8r3epdm8payww04u3694xlw6dj8apz86", + "m/84'/0'/2147483646'/0/0": "bc1qn9g8me6ctfsrg3g4xl7pc7p7j29u87zdmkh9sa", + "m/84'/0'/2147483647'/0/0": "bc1qxka43p3um7cthr2nxwtl9xyvfquqqy8mg8r559" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1prhx8qn4576xhae66pammvewmjja5y4xylft7takhye0mek69x2esc8eppe', - "m/86'/0'/1'/0/0": 'bc1p46tj5ucwfg6zpqccddrm834pjjsjsvp8ex36hxy4ekf8hrq0r4eqyxxrz0', - "m/86'/0'/21234567'/0/0": 'bc1pcr5x4496s26myvl4ynf7j2l8v8pnemuknlch55l6kqgkpukd4lzq3etnuz', - "m/86'/0'/2147483646'/0/0": - 'bc1pg83y7acu85kwn7ctda5zer8rudj0j6nkvfr4qde95myt8qu8rugsw26rsf', - "m/86'/0'/2147483647'/0/0": - 'bc1prpe0n2gv2pmwtzjsl9tzntychhum7sw40dedxpdu2dlcgj20khzq0d9ykv', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1prhx8qn4576xhae66pammvewmjja5y4xylft7takhye0mek69x2esc8eppe", + "m/86'/0'/1'/0/0": "bc1p46tj5ucwfg6zpqccddrm834pjjsjsvp8ex36hxy4ekf8hrq0r4eqyxxrz0", + "m/86'/0'/21234567'/0/0": "bc1pcr5x4496s26myvl4ynf7j2l8v8pnemuknlch55l6kqgkpukd4lzq3etnuz", + "m/86'/0'/2147483646'/0/0": "bc1pg83y7acu85kwn7ctda5zer8rudj0j6nkvfr4qde95myt8qu8rugsw26rsf", + "m/86'/0'/2147483647'/0/0": "bc1prpe0n2gv2pmwtzjsl9tzntychhum7sw40dedxpdu2dlcgj20khzq0d9ykv" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DRxLCdH1mLgy4khG93ShPj5E4H2EFvcyQ5', - "m/44'/3'/1'/0/0": 'D7paf9QnrGM1Njj31txEmL1z4SHXyPCtGi', - "m/44'/3'/21234567'/0/0": 'D8piZgz2CYVRrMBZ7ZCDWe1ETQNqHyWgCv', - "m/44'/3'/2147483646'/0/0": 'D6MK7582Ums8zNXuZncxcFLbVSgwS21Esj', - "m/44'/3'/2147483647'/0/0": 'DKRM1YbPXGVu7QhogRP19vQHn4tXaDv4n1', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DRxLCdH1mLgy4khG93ShPj5E4H2EFvcyQ5", + "m/44'/3'/1'/0/0": "D7paf9QnrGM1Njj31txEmL1z4SHXyPCtGi", + "m/44'/3'/21234567'/0/0": "D8piZgz2CYVRrMBZ7ZCDWe1ETQNqHyWgCv", + "m/44'/3'/2147483646'/0/0": "D6MK7582Ums8zNXuZncxcFLbVSgwS21Esj", + "m/44'/3'/2147483647'/0/0": "DKRM1YbPXGVu7QhogRP19vQHn4tXaDv4n1" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qq7weldnqgxsjzm45qys8zpt55e2ffgtcq3t2az7m0', - "m/44'/145'/1'/0/0": 'bitcoincash:qqajy2c2p8ly900wx3cz89m0p9stk8gq7vl3qwqe4y', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qzntwffjypkae7tnwqpgl90z3sevx2fvrujz9ahhrj', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qrmxpsm3u070u0c8z4tu5a0c62cl306qksz278jrww', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qpzyse2z8pjs0z2vzag3nuchqy9ku39qvcpsl2anwk', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qq7weldnqgxsjzm45qys8zpt55e2ffgtcq3t2az7m0", + "m/44'/145'/1'/0/0": "bitcoincash:qqajy2c2p8ly900wx3cz89m0p9stk8gq7vl3qwqe4y", + "m/44'/145'/21234567'/0/0": "bitcoincash:qzntwffjypkae7tnwqpgl90z3sevx2fvrujz9ahhrj", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qrmxpsm3u070u0c8z4tu5a0c62cl306qksz278jrww", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qpzyse2z8pjs0z2vzag3nuchqy9ku39qvcpsl2anwk" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LVBVQKZbhik7LtniPMrKUTCQZmadSfyE9d', - "m/44'/2'/1'/0/0": 'LTcfpbj8mSkB4rni7MHbM1AVTvFxFgVYtJ', - "m/44'/2'/21234567'/0/0": 'Lf1VVF2sHcaW9Y2H1rGiUeci48KaaBTMdj', - "m/44'/2'/2147483646'/0/0": 'LNKnMYU3e3g2Bp9Gc5JBXqmeFEFaSAUh8Z', - "m/44'/2'/2147483647'/0/0": 'LeuXxBgMsuLJ1x9DhosTwLuvsXfeyWB3tY', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LVBVQKZbhik7LtniPMrKUTCQZmadSfyE9d", + "m/44'/2'/1'/0/0": "LTcfpbj8mSkB4rni7MHbM1AVTvFxFgVYtJ", + "m/44'/2'/21234567'/0/0": "Lf1VVF2sHcaW9Y2H1rGiUeci48KaaBTMdj", + "m/44'/2'/2147483646'/0/0": "LNKnMYU3e3g2Bp9Gc5JBXqmeFEFaSAUh8Z", + "m/44'/2'/2147483647'/0/0": "LeuXxBgMsuLJ1x9DhosTwLuvsXfeyWB3tY" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MDNu1FewRMbhn1jczS2G7RcF5vZPzTmVzL', - "m/49'/2'/1'/0/0": 'MFyZbvo2qvhcNN6nXnZqHQv7sDrXq98M8j', - "m/49'/2'/21234567'/0/0": 'MTVUTEeptUgJmdkApPKzriMKpNei9p82eV', - "m/49'/2'/2147483646'/0/0": 'M9zJEhAsaxCTEh5q9teZaDa8oW1Jw8xLQm', - "m/49'/2'/2147483647'/0/0": 'MKr54XJtQz5ichZc4H4od1TyoaDSMgP1qz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MDNu1FewRMbhn1jczS2G7RcF5vZPzTmVzL", + "m/49'/2'/1'/0/0": "MFyZbvo2qvhcNN6nXnZqHQv7sDrXq98M8j", + "m/49'/2'/21234567'/0/0": "MTVUTEeptUgJmdkApPKzriMKpNei9p82eV", + "m/49'/2'/2147483646'/0/0": "M9zJEhAsaxCTEh5q9teZaDa8oW1Jw8xLQm", + "m/49'/2'/2147483647'/0/0": "MKr54XJtQz5ichZc4H4od1TyoaDSMgP1qz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q8f2zt8j35u6vny69mxwtm37tdcdvjlgjp0l67g', - "m/84'/2'/1'/0/0": 'ltc1q8j6e2m9nl6x2k77tvplg3acncmfhufuzl2lv72', - "m/84'/2'/21234567'/0/0": 'ltc1qqwfjc7eklnsekutek859d27mtum5srwy5c0yew', - "m/84'/2'/2147483646'/0/0": 'ltc1qvu3nrwt2fr7m3sunt0rf6nmnlxqqn782qcqewq', - "m/84'/2'/2147483647'/0/0": 'ltc1qwqa44me7gcj6842tfgrlyq8nnxeuu2q0r7ehuu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q8f2zt8j35u6vny69mxwtm37tdcdvjlgjp0l67g", + "m/84'/2'/1'/0/0": "ltc1q8j6e2m9nl6x2k77tvplg3acncmfhufuzl2lv72", + "m/84'/2'/21234567'/0/0": "ltc1qqwfjc7eklnsekutek859d27mtum5srwy5c0yew", + "m/84'/2'/2147483646'/0/0": "ltc1qvu3nrwt2fr7m3sunt0rf6nmnlxqqn782qcqewq", + "m/84'/2'/2147483647'/0/0": "ltc1qwqa44me7gcj6842tfgrlyq8nnxeuu2q0r7ehuu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NLcXiEZoJ3uhhTEEQHh7CgRorQVjbg38JQ', - "m/44'/1900'/1'/0/0": 'NUchPgHP3qyvR36KkA4XGRy25G83bCHaJs', - "m/44'/1900'/21234567'/0/0": 'NRymY6CLqmJLWumLJ1JWCAiLpaj1o4hUAd', - "m/44'/1900'/2147483646'/0/0": 'NWduiBLt44k8HbEbwmC6qnUgHb9bGeKYtV', - "m/44'/1900'/2147483647'/0/0": 'NiFGtnV5ph2G5MmNyisaJBM4QuYuaULHLp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NLcXiEZoJ3uhhTEEQHh7CgRorQVjbg38JQ", + "m/44'/1900'/1'/0/0": "NUchPgHP3qyvR36KkA4XGRy25G83bCHaJs", + "m/44'/1900'/21234567'/0/0": "NRymY6CLqmJLWumLJ1JWCAiLpaj1o4hUAd", + "m/44'/1900'/2147483646'/0/0": "NWduiBLt44k8HbEbwmC6qnUgHb9bGeKYtV", + "m/44'/1900'/2147483647'/0/0": "NiFGtnV5ph2G5MmNyisaJBM4QuYuaULHLp" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xA2dA93334273786b9D3A72238ebC41C4c7661003', - "m/44'/60'/1'/0/0": '0xd1dEd8930b24Fa5E329e26a5416E4AEfE0e6F8A8', - "m/44'/60'/21234567'/0/0": '0x877e52DA4908e0FeFC427977Cde4513D53B7eaF6', - "m/44'/60'/2147483646'/0/0": '0xB7b411f3bEB57C4c78B957c8a680Bab054EeEA11', - "m/44'/60'/2147483647'/0/0": '0x39d032e430beF0e1E189D4BA13E32504230Aa498', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xA2dA93334273786b9D3A72238ebC41C4c7661003", + "m/44'/60'/1'/0/0": "0xd1dEd8930b24Fa5E329e26a5416E4AEfE0e6F8A8", + "m/44'/60'/21234567'/0/0": "0x877e52DA4908e0FeFC427977Cde4513D53B7eaF6", + "m/44'/60'/2147483646'/0/0": "0xB7b411f3bEB57C4c78B957c8a680Bab054EeEA11", + "m/44'/60'/2147483647'/0/0": "0x39d032e430beF0e1E189D4BA13E32504230Aa498" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x6462ff0a9178589bE44EC9126F51A8C78CDF9F5B', - "m/44'/61'/1'/0/0": '0x1B16eDc9FBE9B03B2645daA36D8a3f7BF6CFa166', - "m/44'/61'/21234567'/0/0": '0x08D43CC54B0bbD9f6123D1B4ab094e55CD4dE717', - "m/44'/61'/2147483646'/0/0": '0x13952E645132472EA731719453061258142B251D', - "m/44'/61'/2147483647'/0/0": '0x500AbC8924b24afFe6EfB76B711aF982C0D7b6C0', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x6462ff0a9178589bE44EC9126F51A8C78CDF9F5B", + "m/44'/61'/1'/0/0": "0x1B16eDc9FBE9B03B2645daA36D8a3f7BF6CFa166", + "m/44'/61'/21234567'/0/0": "0x08D43CC54B0bbD9f6123D1B4ab094e55CD4dE717", + "m/44'/61'/2147483646'/0/0": "0x13952E645132472EA731719453061258142B251D", + "m/44'/61'/2147483647'/0/0": "0x500AbC8924b24afFe6EfB76B711aF982C0D7b6C0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1zcz3lck070hdnva598lf9tf6rqshwz8z7twnur', - "m/44'/118'/1'/0/0": 'cosmos1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdxf5vqw', - "m/44'/118'/21234567'/0/0": 'cosmos1fa99rd2qzptekhxkg5afxlgddv8652gd57rvvy', - "m/44'/118'/2147483646'/0/0": 'cosmos1apdm5sn7mkx5n45dqeaazz75svjlt6szvgdsl0', - "m/44'/118'/2147483647'/0/0": 'cosmos1f5jdlgfrf06kcyhc0gkv372kmxan2xz9mgzk0j', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1zcz3lck070hdnva598lf9tf6rqshwz8z7twnur", + "m/44'/118'/1'/0/0": "cosmos1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdxf5vqw", + "m/44'/118'/21234567'/0/0": "cosmos1fa99rd2qzptekhxkg5afxlgddv8652gd57rvvy", + "m/44'/118'/2147483646'/0/0": "cosmos1apdm5sn7mkx5n45dqeaazz75svjlt6szvgdsl0", + "m/44'/118'/2147483647'/0/0": "cosmos1f5jdlgfrf06kcyhc0gkv372kmxan2xz9mgzk0j" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1zcz3lck070hdnva598lf9tf6rqshwz8znsr59e', - "m/44'/118'/1'/0/0": 'akash1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdtjete5', - "m/44'/118'/21234567'/0/0": 'akash1fa99rd2qzptekhxkg5afxlgddv8652gde9wt47', - "m/44'/118'/2147483646'/0/0": 'akash1apdm5sn7mkx5n45dqeaazz75svjlt6szpnqhx4', - "m/44'/118'/2147483647'/0/0": 'akash1f5jdlgfrf06kcyhc0gkv372kmxan2xz9kn03kg', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1zcz3lck070hdnva598lf9tf6rqshwz8znsr59e", + "m/44'/118'/1'/0/0": "akash1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdtjete5", + "m/44'/118'/21234567'/0/0": "akash1fa99rd2qzptekhxkg5afxlgddv8652gde9wt47", + "m/44'/118'/2147483646'/0/0": "akash1apdm5sn7mkx5n45dqeaazz75svjlt6szpnqhx4", + "m/44'/118'/2147483647'/0/0": "akash1f5jdlgfrf06kcyhc0gkv372kmxan2xz9kn03kg" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1zcz3lck070hdnva598lf9tf6rqshwz8zxsx2qj', - "m/44'/118'/1'/0/0": 'cro1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd7ju4ul', - "m/44'/118'/21234567'/0/0": 'cro1fa99rd2qzptekhxkg5afxlgddv8652gdv9t4s4', - "m/44'/118'/2147483646'/0/0": 'cro1apdm5sn7mkx5n45dqeaazz75svjlt6sz5n9fr7', - "m/44'/118'/2147483647'/0/0": 'cro1f5jdlgfrf06kcyhc0gkv372kmxan2xz9rn20nr', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1zcz3lck070hdnva598lf9tf6rqshwz8zxsx2qj", + "m/44'/118'/1'/0/0": "cro1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd7ju4ul", + "m/44'/118'/21234567'/0/0": "cro1fa99rd2qzptekhxkg5afxlgddv8652gdv9t4s4", + "m/44'/118'/2147483646'/0/0": "cro1apdm5sn7mkx5n45dqeaazz75svjlt6sz5n9fr7", + "m/44'/118'/2147483647'/0/0": "cro1f5jdlgfrf06kcyhc0gkv372kmxan2xz9rn20nr" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1zcz3lck070hdnva598lf9tf6rqshwz8zdk8h75', - "m/44'/118'/1'/0/0": 'fetch1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd45agze', - "m/44'/118'/21234567'/0/0": 'fetch1fa99rd2qzptekhxkg5afxlgddv8652gd8r2gwn', - "m/44'/118'/2147483646'/0/0": 'fetch1apdm5sn7mkx5n45dqeaazz75svjlt6szl4y5ac', - "m/44'/118'/2147483647'/0/0": 'fetch1f5jdlgfrf06kcyhc0gkv372kmxan2xz9g4tjd9', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1zcz3lck070hdnva598lf9tf6rqshwz8zdk8h75", + "m/44'/118'/1'/0/0": "fetch1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd45agze", + "m/44'/118'/21234567'/0/0": "fetch1fa99rd2qzptekhxkg5afxlgddv8652gd8r2gwn", + "m/44'/118'/2147483646'/0/0": "fetch1apdm5sn7mkx5n45dqeaazz75svjlt6szl4y5ac", + "m/44'/118'/2147483647'/0/0": "fetch1f5jdlgfrf06kcyhc0gkv372kmxan2xz9g4tjd9" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1zcz3lck070hdnva598lf9tf6rqshwz8zksar23', - "m/44'/118'/1'/0/0": 'osmo1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdwj8uku', - "m/44'/118'/21234567'/0/0": 'osmo1fa99rd2qzptekhxkg5afxlgddv8652gdu9su6k', - "m/44'/118'/2147483646'/0/0": 'osmo1apdm5sn7mkx5n45dqeaazz75svjlt6szyn7qfa', - "m/44'/118'/2147483647'/0/0": 'osmo1f5jdlgfrf06kcyhc0gkv372kmxan2xz9nn3xeq', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1zcz3lck070hdnva598lf9tf6rqshwz8zksar23", + "m/44'/118'/1'/0/0": "osmo1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdwj8uku", + "m/44'/118'/21234567'/0/0": "osmo1fa99rd2qzptekhxkg5afxlgddv8652gdu9su6k", + "m/44'/118'/2147483646'/0/0": "osmo1apdm5sn7mkx5n45dqeaazz75svjlt6szyn7qfa", + "m/44'/118'/2147483647'/0/0": "osmo1f5jdlgfrf06kcyhc0gkv372kmxan2xz9nn3xeq" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1zcz3lck070hdnva598lf9tf6rqshwz8zgedgml', - "m/44'/118'/1'/0/0": 'juno1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdsmhh8j', - "m/44'/118'/21234567'/0/0": 'juno1fa99rd2qzptekhxkg5afxlgddv8652gdzvqhtc', - "m/44'/118'/2147483646'/0/0": 'juno1apdm5sn7mkx5n45dqeaazz75svjlt6sz66wtcn', - "m/44'/118'/2147483647'/0/0": 'juno1f5jdlgfrf06kcyhc0gkv372kmxan2xz9d6pdgw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1zcz3lck070hdnva598lf9tf6rqshwz8zgedgml", + "m/44'/118'/1'/0/0": "juno1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdsmhh8j", + "m/44'/118'/21234567'/0/0": "juno1fa99rd2qzptekhxkg5afxlgddv8652gdzvqhtc", + "m/44'/118'/2147483646'/0/0": "juno1apdm5sn7mkx5n45dqeaazz75svjlt6sz66wtcn", + "m/44'/118'/2147483647'/0/0": "juno1f5jdlgfrf06kcyhc0gkv372kmxan2xz9d6pdgw" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1zcz3lck070hdnva598lf9tf6rqshwz8zc05n7r', - "m/44'/118'/1'/0/0": 'terra1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdqdwvzw', - "m/44'/118'/21234567'/0/0": 'terra1fa99rd2qzptekhxkg5afxlgddv8652gdj6evwy', - "m/44'/118'/2147483646'/0/0": 'terra1apdm5sn7mkx5n45dqeaazz75svjlt6sz2vhsa0', - "m/44'/118'/2147483647'/0/0": 'terra1f5jdlgfrf06kcyhc0gkv372kmxan2xz9avckdj', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1zcz3lck070hdnva598lf9tf6rqshwz8zc05n7r", + "m/44'/118'/1'/0/0": "terra1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdqdwvzw", + "m/44'/118'/21234567'/0/0": "terra1fa99rd2qzptekhxkg5afxlgddv8652gdj6evwy", + "m/44'/118'/2147483646'/0/0": "terra1apdm5sn7mkx5n45dqeaazz75svjlt6sz2vhsa0", + "m/44'/118'/2147483647'/0/0": "terra1f5jdlgfrf06kcyhc0gkv372kmxan2xz9avckdj" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1zcz3lck070hdnva598lf9tf6rqshwz8zuw66pl', - "m/44'/118'/1'/0/0": 'secret1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdyvq9aj', - "m/44'/118'/21234567'/0/0": 'secret1fa99rd2qzptekhxkg5afxlgddv8652gdkmh93c', - "m/44'/118'/2147483646'/0/0": 'secret1apdm5sn7mkx5n45dqeaazz75svjlt6szwdeezn', - "m/44'/118'/2147483647'/0/0": 'secret1f5jdlgfrf06kcyhc0gkv372kmxan2xz9edkljw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1zcz3lck070hdnva598lf9tf6rqshwz8zuw66pl", + "m/44'/118'/1'/0/0": "secret1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdyvq9aj", + "m/44'/118'/21234567'/0/0": "secret1fa99rd2qzptekhxkg5afxlgddv8652gdkmh93c", + "m/44'/118'/2147483646'/0/0": "secret1apdm5sn7mkx5n45dqeaazz75svjlt6szwdeezn", + "m/44'/118'/2147483647'/0/0": "secret1f5jdlgfrf06kcyhc0gkv372kmxan2xz9edkljw" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1zcz3lck070hdnva598lf9tf6rqshwz8z0plrxw', - "m/44'/118'/1'/0/0": 'celestia1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdhr9u6r', - "m/44'/118'/21234567'/0/0": 'celestia1fa99rd2qzptekhxkg5afxlgddv8652gd95jukf', - "m/44'/118'/2147483646'/0/0": 'celestia1apdm5sn7mkx5n45dqeaazz75svjlt6szazuq9z', - "m/44'/118'/2147483647'/0/0": 'celestia1f5jdlgfrf06kcyhc0gkv372kmxan2xz92znx4l', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1zcz3lck070hdnva598lf9tf6rqshwz8z0plrxw", + "m/44'/118'/1'/0/0": "celestia1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdhr9u6r", + "m/44'/118'/21234567'/0/0": "celestia1fa99rd2qzptekhxkg5afxlgddv8652gd95jukf", + "m/44'/118'/2147483646'/0/0": "celestia1apdm5sn7mkx5n45dqeaazz75svjlt6szazuq9z", + "m/44'/118'/2147483647'/0/0": "celestia1f5jdlgfrf06kcyhc0gkv372kmxan2xz92znx4l" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x4aa8506d1a1a16819023d92d23bb6e503a984f51b1b452e2c5de9ee4f98e3fad', - "m/44'/784'/1'/0'/0'": '0xedc61d7fa1c914dadae378db78bec735e0f0991cbec5a36054e693c216c5e4d3', - "m/44'/784'/21234567'/0'/0'": - '0xae37d7eccff7433eed26c0a68c87504bef657486b30736dbdf687136df9d07cb', - "m/44'/784'/2147483646'/0'/0'": - '0x51a16dc83c286c62ef6650f3a30d812fda136e41579ded5afb5bcd0c3bf1223e', - "m/44'/784'/2147483647'/0'/0'": - '0x3d908bc03752c698c356cc8e348bcce90c2cec9854491216fae3b982030b4e2d', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x4aa8506d1a1a16819023d92d23bb6e503a984f51b1b452e2c5de9ee4f98e3fad", + "m/44'/784'/1'/0'/0'": "0xedc61d7fa1c914dadae378db78bec735e0f0991cbec5a36054e693c216c5e4d3", + "m/44'/784'/21234567'/0'/0'": "0xae37d7eccff7433eed26c0a68c87504bef657486b30736dbdf687136df9d07cb", + "m/44'/784'/2147483646'/0'/0'": "0x51a16dc83c286c62ef6650f3a30d812fda136e41579ded5afb5bcd0c3bf1223e", + "m/44'/784'/2147483647'/0'/0'": "0x3d908bc03752c698c356cc8e348bcce90c2cec9854491216fae3b982030b4e2d" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw', - "m/44'/144'/1'/0/0": 'rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7', - "m/44'/144'/21234567'/0/0": 'rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe', - "m/44'/144'/2147483646'/0/0": 'rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN', - "m/44'/144'/2147483647'/0/0": 'rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw", + "m/44'/144'/1'/0/0": "rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7", + "m/44'/144'/21234567'/0/0": "rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe", + "m/44'/144'/2147483646'/0/0": "rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN", + "m/44'/144'/2147483647'/0/0": "rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCf2f9f2cc4ea7e96cadab5464ed00550cf9071b5738ac2664d3b7bbcd41c24697573b', - "m/44'/728'/1'/0'/0'": - 'BFCefd4c2c9f59715d92961b7c6760647facef593c956912ddb0627127f85aedad21051', - "m/44'/728'/21234567'/0'/0'": - 'BFC588d10bdf8ca2eee50fef85d00bdb4d8087dc10a15d2295ec0e3b4d64d7ca5fac7e9', - "m/44'/728'/2147483646'/0'/0'": - 'BFC75b1422218dbcc8bf8c9cbaabc9293bf2c64b4174952f2021ee96b62a89b53e17c39', - "m/44'/728'/2147483647'/0'/0'": - 'BFC27c940550c453c2b13cd68e2f949606552dfdc2756f5393ff4a71a7e08ec8d8f5580', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCf2f9f2cc4ea7e96cadab5464ed00550cf9071b5738ac2664d3b7bbcd41c24697573b", + "m/44'/728'/1'/0'/0'": "BFCefd4c2c9f59715d92961b7c6760647facef593c956912ddb0627127f85aedad21051", + "m/44'/728'/21234567'/0'/0'": "BFC588d10bdf8ca2eee50fef85d00bdb4d8087dc10a15d2295ec0e3b4d64d7ca5fac7e9", + "m/44'/728'/2147483646'/0'/0'": "BFC75b1422218dbcc8bf8c9cbaabc9293bf2c64b4174952f2021ee96b62a89b53e17c39", + "m/44'/728'/2147483647'/0'/0'": "BFC27c940550c453c2b13cd68e2f949606552dfdc2756f5393ff4a71a7e08ec8d8f5580" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1HuyB6hEbaPNBQMjBZs6g42YW8oVb1adS5F6TUE4BFYNR', - "m/44'/1234'/1'/0/0": '18DdeSg1jvHHADHKaghmhYoAz9HpjTnu6BmRhzsyxVGot', - "m/44'/1234'/21234567'/0/0": '1HpsUXQPS7EjcCUhNpFAX13SvBCLAB6e9kDFsZYYKCUcH', - "m/44'/1234'/2147483646'/0/0": '18cTjpGUdK6yd8GoUxn5KmBuZwSeGfKGkTzwtqNvS69tc', - "m/44'/1234'/2147483647'/0/0": '1D8UoR4pg4RBAu7xU64GLKYjWMnX3DkuGFmhBr2WLKCnT', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1HuyB6hEbaPNBQMjBZs6g42YW8oVb1adS5F6TUE4BFYNR", + "m/44'/1234'/1'/0/0": "18DdeSg1jvHHADHKaghmhYoAz9HpjTnu6BmRhzsyxVGot", + "m/44'/1234'/21234567'/0/0": "1HpsUXQPS7EjcCUhNpFAX13SvBCLAB6e9kDFsZYYKCUcH", + "m/44'/1234'/2147483646'/0/0": "18cTjpGUdK6yd8GoUxn5KmBuZwSeGfKGkTzwtqNvS69tc", + "m/44'/1234'/2147483647'/0/0": "1D8UoR4pg4RBAu7xU64GLKYjWMnX3DkuGFmhBr2WLKCnT" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'RUEOGXSEV6ONSSZ4GWO52E2YLWWDV2KY5LWPYXV35MGUWFM2BY66K2HUFM', - "m/44'/283'/1'/0'/0'": 'U2CZDTOP6HKJOMYEWBSHY2DEAMQ6ZQTXBN2GQS65UNLLQON72YGUKS7RZI', - "m/44'/283'/21234567'/0'/0'": 'SCJLVWC3WQA3SA7S3PSAEWXEC5BIHW3YOW6Y2GOGRSSK37QR2VF326TDIA', - "m/44'/283'/2147483646'/0'/0'": - 'BVRFZVODKMXRZA55EWJ6JL6WZM5DABYMHO3KSSIEHV7WDTKGBJ4QIQ3I4U', - "m/44'/283'/2147483647'/0'/0'": - 'QMND2ZXT7XVCHJ2DKRHPVNXI2FAJRVF57VU4UD2K6NJC7L6UBFYYDSCE24', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "RUEOGXSEV6ONSSZ4GWO52E2YLWWDV2KY5LWPYXV35MGUWFM2BY66K2HUFM", + "m/44'/283'/1'/0'/0'": "U2CZDTOP6HKJOMYEWBSHY2DEAMQ6ZQTXBN2GQS65UNLLQON72YGUKS7RZI", + "m/44'/283'/21234567'/0'/0'": "SCJLVWC3WQA3SA7S3PSAEWXEC5BIHW3YOW6Y2GOGRSSK37QR2VF326TDIA", + "m/44'/283'/2147483646'/0'/0'": "BVRFZVODKMXRZA55EWJ6JL6WZM5DABYMHO3KSSIEHV7WDTKGBJ4QIQ3I4U", + "m/44'/283'/2147483647'/0'/0'": "QMND2ZXT7XVCHJ2DKRHPVNXI2FAJRVF57VU4UD2K6NJC7L6UBFYYDSCE24" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQB-M9P_vBLEEK1SaFsyMr0Lfd1KQhO-bUEHvwFKAIcbR5R9', - "m/44'/607'/1'": 'UQCMQvqrpPJ00ZysP3H5OOzI7aJ0sVjN-FRdGf-gJ7ZwBL4e', - "m/44'/607'/21234567'": 'UQCvXgzm2Mki-_WDZKr-1TcY8G2pYcSgkkIRZmUeeTd_fsdS', - "m/44'/607'/2147483646'": 'UQDT3-KWpdG4ZfcBLxX0EkYomlipaNaFSHxJRxUPuaxjrToe', - "m/44'/607'/2147483647'": 'UQCVbmRRcTUABs_4pGi5Xb2lXcWJJ3D8aF9L70thGZclyGDx', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQB-M9P_vBLEEK1SaFsyMr0Lfd1KQhO-bUEHvwFKAIcbR5R9", + "m/44'/607'/1'": "UQCMQvqrpPJ00ZysP3H5OOzI7aJ0sVjN-FRdGf-gJ7ZwBL4e", + "m/44'/607'/21234567'": "UQCvXgzm2Mki-_WDZKr-1TcY8G2pYcSgkkIRZmUeeTd_fsdS", + "m/44'/607'/2147483646'": "UQDT3-KWpdG4ZfcBLxX0EkYomlipaNaFSHxJRxUPuaxjrToe", + "m/44'/607'/2147483647'": "UQCVbmRRcTUABs_4pGi5Xb2lXcWJJ3D8aF9L70thGZclyGDx" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyq2syfj4emaxrh06c4ag8fl8r9svgauxcxq6a3exj', - "m/44'/309'/1'/0/0": 'ckb1qyq9y0m07xmrax7ttrq6lxg3jlwr4lpyj8tqukl5h8', - "m/44'/309'/21234567'/0/0": 'ckb1qyq8lmudxmj8mrdzkauyrjgsjgqv86nhd60qkhfkve', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqp8lysyc4z92y76m7mrhw8hlpt09d0egrqrvuthj', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqgfyt79l54xvnqy5rg6xv6f09frktvtq5suqpcrt', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyq2syfj4emaxrh06c4ag8fl8r9svgauxcxq6a3exj", + "m/44'/309'/1'/0/0": "ckb1qyq9y0m07xmrax7ttrq6lxg3jlwr4lpyj8tqukl5h8", + "m/44'/309'/21234567'/0/0": "ckb1qyq8lmudxmj8mrdzkauyrjgsjgqv86nhd60qkhfkve", + "m/44'/309'/2147483646'/0/0": "ckb1qyqp8lysyc4z92y76m7mrhw8hlpt09d0egrqrvuthj", + "m/44'/309'/2147483647'/0/0": "ckb1qyqgfyt79l54xvnqy5rg6xv6f09frktvtq5suqpcrt" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g53qt77cmy2pdfapuqaf4cu3u48eqdrs8mfk8ut72t', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5vm70nqxfehzq4xk3tazjgzt9kass2jrp30e6ezz9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5efjspduaswvgkum83kcelx64xz0k9zasy32h4568', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5mwvck36z0mkdd0y9rxvghk4vluwrl4q8f9ssj6nh', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g59akjghlm2exqu5crdhpnqzrcqn78eaze5ev5lemy', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g53qt77cmy2pdfapuqaf4cu3u48eqdrs8mfk8ut72t", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5vm70nqxfehzq4xk3tazjgzt9kass2jrp30e6ezz9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5efjspduaswvgkum83kcelx64xz0k9zasy32h4568", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5mwvck36z0mkdd0y9rxvghk4vluwrl4q8f9ssj6nh", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g59akjghlm2exqu5crdhpnqzrcqn78eaze5ev5lemy" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw', - "m/44'/144'/1'/0/0": 'rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7', - "m/44'/144'/21234567'/0/0": 'rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe', - "m/44'/144'/2147483646'/0/0": 'rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN', - "m/44'/144'/2147483647'/0/0": 'rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw", + "m/44'/144'/1'/0/0": "rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7", + "m/44'/144'/21234567'/0/0": "rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe", + "m/44'/144'/2147483646'/0/0": "rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN", + "m/44'/144'/2147483647'/0/0": "rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01eb2f17b9308f54a6226709d13e7072c48c5ca1', - "m/44'/541'/1'/0/0": '1S01df5c1fd8407f5ca2f1d80005c3f9c1862a0d11', - "m/44'/541'/21234567'/0/0": '1S0157b70bd5dff421b0380cf438ba6028c42cb2a1', - "m/44'/541'/2147483646'/0/0": '1S01a1a9bb700a65b06e3ffd891b7092fde616a0d1', - "m/44'/541'/2147483647'/0/0": '1S016f9e9b00df4c62b6cfbf24544153fa574462c1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01eb2f17b9308f54a6226709d13e7072c48c5ca1", + "m/44'/541'/1'/0/0": "1S01df5c1fd8407f5ca2f1d80005c3f9c1862a0d11", + "m/44'/541'/21234567'/0/0": "1S0157b70bd5dff421b0380cf438ba6028c42cb2a1", + "m/44'/541'/2147483646'/0/0": "1S01a1a9bb700a65b06e3ffd891b7092fde616a0d1", + "m/44'/541'/2147483647'/0/0": "1S016f9e9b00df4c62b6cfbf24544153fa574462c1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_empty.ts index 4a841a95a..b45674642 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_one/passphrase_empty.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphraseEmpty: SLIP39TestCaseData = { - id: 'count33_one_passphrase_empty', - name: 'count33_one_passphrase_empty', - description: '1-of-1 (33 words) + passphrase_empty', - passphrase: '', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_empty", + "name": "count33_one_passphrase_empty", + "description": "1-of-1 (33 words) + passphrase_empty", + "passphrase": "", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE', - "m/44'/0'/1'/0/0": '1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY', - "m/44'/0'/21234567'/0/0": '17m7XBMA51rMoquVjWigH6u7VoDsakmtwG', - "m/44'/0'/2147483646'/0/0": '1VXLBKYngyZR1m1TajtG4soon5VWGdVek', - "m/44'/0'/2147483647'/0/0": '198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE", + "m/44'/0'/1'/0/0": "1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY", + "m/44'/0'/21234567'/0/0": "17m7XBMA51rMoquVjWigH6u7VoDsakmtwG", + "m/44'/0'/2147483646'/0/0": "1VXLBKYngyZR1m1TajtG4soon5VWGdVek", + "m/44'/0'/2147483647'/0/0": "198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5', - "m/49'/0'/1'/0/0": '33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6', - "m/49'/0'/21234567'/0/0": '3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G', - "m/49'/0'/2147483646'/0/0": '3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr', - "m/49'/0'/2147483647'/0/0": '3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5", + "m/49'/0'/1'/0/0": "33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6", + "m/49'/0'/21234567'/0/0": "3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G", + "m/49'/0'/2147483646'/0/0": "3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr", + "m/49'/0'/2147483647'/0/0": "3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3', - "m/84'/0'/1'/0/0": 'bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0', - "m/84'/0'/21234567'/0/0": 'bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2', - "m/84'/0'/2147483646'/0/0": 'bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd', - "m/84'/0'/2147483647'/0/0": 'bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3", + "m/84'/0'/1'/0/0": "bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0", + "m/84'/0'/21234567'/0/0": "bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2", + "m/84'/0'/2147483646'/0/0": "bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd", + "m/84'/0'/2147483647'/0/0": "bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq', - "m/86'/0'/1'/0/0": 'bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm', - "m/86'/0'/21234567'/0/0": 'bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy', - "m/86'/0'/2147483646'/0/0": - 'bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn', - "m/86'/0'/2147483647'/0/0": - 'bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq", + "m/86'/0'/1'/0/0": "bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm", + "m/86'/0'/21234567'/0/0": "bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy", + "m/86'/0'/2147483646'/0/0": "bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn", + "m/86'/0'/2147483647'/0/0": "bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK', - "m/44'/3'/1'/0/0": 'D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ', - "m/44'/3'/21234567'/0/0": 'DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W', - "m/44'/3'/2147483646'/0/0": 'DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut', - "m/44'/3'/2147483647'/0/0": 'DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK", + "m/44'/3'/1'/0/0": "D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ", + "m/44'/3'/21234567'/0/0": "DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W", + "m/44'/3'/2147483646'/0/0": "DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut", + "m/44'/3'/2147483647'/0/0": "DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy', - "m/44'/145'/1'/0/0": 'bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy", + "m/44'/145'/1'/0/0": "bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy", + "m/44'/145'/21234567'/0/0": "bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg', - "m/44'/2'/1'/0/0": 'LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu', - "m/44'/2'/21234567'/0/0": 'LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff', - "m/44'/2'/2147483646'/0/0": 'LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3', - "m/44'/2'/2147483647'/0/0": 'LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg", + "m/44'/2'/1'/0/0": "LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu", + "m/44'/2'/21234567'/0/0": "LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff", + "m/44'/2'/2147483646'/0/0": "LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3", + "m/44'/2'/2147483647'/0/0": "LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p', - "m/49'/2'/1'/0/0": 'M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj', - "m/49'/2'/21234567'/0/0": 'MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA', - "m/49'/2'/2147483646'/0/0": 'MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt', - "m/49'/2'/2147483647'/0/0": 'MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p", + "m/49'/2'/1'/0/0": "M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj", + "m/49'/2'/21234567'/0/0": "MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA", + "m/49'/2'/2147483646'/0/0": "MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt", + "m/49'/2'/2147483647'/0/0": "MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf', - "m/84'/2'/1'/0/0": 'ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt', - "m/84'/2'/21234567'/0/0": 'ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c', - "m/84'/2'/2147483646'/0/0": 'ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg', - "m/84'/2'/2147483647'/0/0": 'ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf", + "m/84'/2'/1'/0/0": "ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt", + "m/84'/2'/21234567'/0/0": "ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c", + "m/84'/2'/2147483646'/0/0": "ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg", + "m/84'/2'/2147483647'/0/0": "ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2', - "m/44'/1900'/1'/0/0": 'NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H', - "m/44'/1900'/21234567'/0/0": 'NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2', - "m/44'/1900'/2147483646'/0/0": 'NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ', - "m/44'/1900'/2147483647'/0/0": 'NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2", + "m/44'/1900'/1'/0/0": "NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H", + "m/44'/1900'/21234567'/0/0": "NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2", + "m/44'/1900'/2147483646'/0/0": "NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ", + "m/44'/1900'/2147483647'/0/0": "NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A', - "m/44'/60'/1'/0/0": '0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf', - "m/44'/60'/21234567'/0/0": '0xFcB211b77546D2068b569576384387B3d88f1606', - "m/44'/60'/2147483646'/0/0": '0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2', - "m/44'/60'/2147483647'/0/0": '0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A", + "m/44'/60'/1'/0/0": "0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf", + "m/44'/60'/21234567'/0/0": "0xFcB211b77546D2068b569576384387B3d88f1606", + "m/44'/60'/2147483646'/0/0": "0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2", + "m/44'/60'/2147483647'/0/0": "0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235', - "m/44'/61'/1'/0/0": '0x473985bBcA8797b97D48D187a0CE62a80C1248DD', - "m/44'/61'/21234567'/0/0": '0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D', - "m/44'/61'/2147483646'/0/0": '0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059', - "m/44'/61'/2147483647'/0/0": '0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235", + "m/44'/61'/1'/0/0": "0x473985bBcA8797b97D48D187a0CE62a80C1248DD", + "m/44'/61'/21234567'/0/0": "0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D", + "m/44'/61'/2147483646'/0/0": "0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059", + "m/44'/61'/2147483647'/0/0": "0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt', - "m/44'/118'/1'/0/0": 'cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh', - "m/44'/118'/21234567'/0/0": 'cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6', - "m/44'/118'/2147483646'/0/0": 'cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r', - "m/44'/118'/2147483647'/0/0": 'cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt", + "m/44'/118'/1'/0/0": "cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh", + "m/44'/118'/21234567'/0/0": "cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6", + "m/44'/118'/2147483646'/0/0": "cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r", + "m/44'/118'/2147483647'/0/0": "cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3', - "m/44'/118'/1'/0/0": 'akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d', - "m/44'/118'/21234567'/0/0": 'akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq', - "m/44'/118'/2147483646'/0/0": 'akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne', - "m/44'/118'/2147483647'/0/0": 'akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3", + "m/44'/118'/1'/0/0": "akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d", + "m/44'/118'/21234567'/0/0": "akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq", + "m/44'/118'/2147483646'/0/0": "akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne", + "m/44'/118'/2147483647'/0/0": "akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6', - "m/44'/118'/1'/0/0": 'cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx', - "m/44'/118'/21234567'/0/0": 'cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht', - "m/44'/118'/2147483646'/0/0": 'cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj', - "m/44'/118'/2147483647'/0/0": 'cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6", + "m/44'/118'/1'/0/0": "cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx", + "m/44'/118'/21234567'/0/0": "cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht", + "m/44'/118'/2147483646'/0/0": "cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj", + "m/44'/118'/2147483647'/0/0": "cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu', - "m/44'/118'/1'/0/0": 'fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q', - "m/44'/118'/21234567'/0/0": 'fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd', - "m/44'/118'/2147483646'/0/0": 'fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5', - "m/44'/118'/2147483647'/0/0": 'fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu", + "m/44'/118'/1'/0/0": "fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q", + "m/44'/118'/21234567'/0/0": "fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd", + "m/44'/118'/2147483646'/0/0": "fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5", + "m/44'/118'/2147483647'/0/0": "fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce', - "m/44'/118'/1'/0/0": 'osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829', - "m/44'/118'/21234567'/0/0": 'osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag', - "m/44'/118'/2147483646'/0/0": 'osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3', - "m/44'/118'/2147483647'/0/0": 'osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce", + "m/44'/118'/1'/0/0": "osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829", + "m/44'/118'/21234567'/0/0": "osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag", + "m/44'/118'/2147483646'/0/0": "osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3", + "m/44'/118'/2147483647'/0/0": "osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh', - "m/44'/118'/1'/0/0": 'juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt', - "m/44'/118'/21234567'/0/0": 'juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx', - "m/44'/118'/2147483646'/0/0": 'juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl', - "m/44'/118'/2147483647'/0/0": 'juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh", + "m/44'/118'/1'/0/0": "juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt", + "m/44'/118'/21234567'/0/0": "juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx", + "m/44'/118'/2147483646'/0/0": "juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl", + "m/44'/118'/2147483647'/0/0": "juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt', - "m/44'/118'/1'/0/0": 'terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h', - "m/44'/118'/21234567'/0/0": 'terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6', - "m/44'/118'/2147483646'/0/0": 'terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr', - "m/44'/118'/2147483647'/0/0": 'terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt", + "m/44'/118'/1'/0/0": "terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h", + "m/44'/118'/21234567'/0/0": "terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6", + "m/44'/118'/2147483646'/0/0": "terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr", + "m/44'/118'/2147483647'/0/0": "terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh', - "m/44'/118'/1'/0/0": 'secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt', - "m/44'/118'/21234567'/0/0": 'secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx', - "m/44'/118'/2147483646'/0/0": 'secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl', - "m/44'/118'/2147483647'/0/0": 'secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh", + "m/44'/118'/1'/0/0": "secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt", + "m/44'/118'/21234567'/0/0": "secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx", + "m/44'/118'/2147483646'/0/0": "secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl", + "m/44'/118'/2147483647'/0/0": "secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x', - "m/44'/118'/1'/0/0": 'celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6', - "m/44'/118'/21234567'/0/0": 'celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h', - "m/44'/118'/2147483646'/0/0": 'celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw', - "m/44'/118'/2147483647'/0/0": 'celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x", + "m/44'/118'/1'/0/0": "celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6", + "m/44'/118'/21234567'/0/0": "celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h", + "m/44'/118'/2147483646'/0/0": "celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw", + "m/44'/118'/2147483647'/0/0": "celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e', - "m/44'/784'/1'/0'/0'": '0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e', - "m/44'/784'/21234567'/0'/0'": - '0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad', - "m/44'/784'/2147483646'/0'/0'": - '0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043', - "m/44'/784'/2147483647'/0'/0'": - '0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e", + "m/44'/784'/1'/0'/0'": "0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e", + "m/44'/784'/21234567'/0'/0'": "0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad", + "m/44'/784'/2147483646'/0'/0'": "0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043", + "m/44'/784'/2147483647'/0'/0'": "0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd', - "m/44'/728'/1'/0'/0'": - 'BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79', - "m/44'/728'/21234567'/0'/0'": - 'BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200', - "m/44'/728'/2147483646'/0'/0'": - 'BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38', - "m/44'/728'/2147483647'/0'/0'": - 'BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd", + "m/44'/728'/1'/0'/0'": "BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79", + "m/44'/728'/21234567'/0'/0'": "BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200", + "m/44'/728'/2147483646'/0'/0'": "BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38", + "m/44'/728'/2147483647'/0'/0'": "BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm', - "m/44'/1234'/1'/0/0": '1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu', - "m/44'/1234'/21234567'/0/0": '15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG', - "m/44'/1234'/2147483646'/0/0": '1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF', - "m/44'/1234'/2147483647'/0/0": '16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm", + "m/44'/1234'/1'/0/0": "1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu", + "m/44'/1234'/21234567'/0/0": "15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG", + "m/44'/1234'/2147483646'/0/0": "1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF", + "m/44'/1234'/2147483647'/0/0": "16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4', - "m/44'/283'/1'/0'/0'": 'JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE', - "m/44'/283'/21234567'/0'/0'": 'GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4', - "m/44'/283'/2147483646'/0'/0'": - '4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ', - "m/44'/283'/2147483647'/0'/0'": - 'MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4", + "m/44'/283'/1'/0'/0'": "JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE", + "m/44'/283'/21234567'/0'/0'": "GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4", + "m/44'/283'/2147483646'/0'/0'": "4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ", + "m/44'/283'/2147483647'/0'/0'": "MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN', - "m/44'/607'/1'": 'UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm', - "m/44'/607'/21234567'": 'UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3', - "m/44'/607'/2147483646'": 'UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B', - "m/44'/607'/2147483647'": 'UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN", + "m/44'/607'/1'": "UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm", + "m/44'/607'/21234567'": "UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3", + "m/44'/607'/2147483646'": "UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B", + "m/44'/607'/2147483647'": "UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr', - "m/44'/309'/1'/0/0": 'ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr", + "m/44'/309'/1'/0/0": "ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls", + "m/44'/309'/21234567'/0/0": "ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0", + "m/44'/309'/2147483646'/0/0": "ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7", + "m/44'/309'/2147483647'/0/0": "ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b32864c15d04d6ae0336b5ddc606492b8ff441', - "m/44'/541'/1'/0/0": '1S0113f214a3079c47cd2d30ed63c0b721fb171531', - "m/44'/541'/21234567'/0/0": '1S01dea0121026d7f702bd9bb921dc02bb6b27c581', - "m/44'/541'/2147483646'/0/0": '1S01584253a100a67923ec03466261c700e7d27c81', - "m/44'/541'/2147483647'/0/0": '1S01311de7dfd071891669e664e5bd1c117233af61', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b32864c15d04d6ae0336b5ddc606492b8ff441", + "m/44'/541'/1'/0/0": "1S0113f214a3079c47cd2d30ed63c0b721fb171531", + "m/44'/541'/21234567'/0/0": "1S01dea0121026d7f702bd9bb921dc02bb6b27c581", + "m/44'/541'/2147483646'/0/0": "1S01584253a100a67923ec03466261c700e7d27c81", + "m/44'/541'/2147483647'/0/0": "1S01311de7dfd071891669e664e5bd1c117233af61" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/normal.ts index d41743fd4..d8c659102 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/normal.ts @@ -1,489 +1,477 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoNormal: SLIP39TestCaseData = { - id: 'count33_two_normal', - name: 'count33_two_normal', - description: '2-of-3 (33 words each) + normal', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_normal", + "name": "count33_two_normal", + "description": "2-of-3 (33 words each) + normal", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE', - "m/44'/0'/1'/0/0": '1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY', - "m/44'/0'/21234567'/0/0": '17m7XBMA51rMoquVjWigH6u7VoDsakmtwG', - "m/44'/0'/2147483646'/0/0": '1VXLBKYngyZR1m1TajtG4soon5VWGdVek', - "m/44'/0'/2147483647'/0/0": '198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE", + "m/44'/0'/1'/0/0": "1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY", + "m/44'/0'/21234567'/0/0": "17m7XBMA51rMoquVjWigH6u7VoDsakmtwG", + "m/44'/0'/2147483646'/0/0": "1VXLBKYngyZR1m1TajtG4soon5VWGdVek", + "m/44'/0'/2147483647'/0/0": "198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5', - "m/49'/0'/1'/0/0": '33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6', - "m/49'/0'/21234567'/0/0": '3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G', - "m/49'/0'/2147483646'/0/0": '3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr', - "m/49'/0'/2147483647'/0/0": '3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5", + "m/49'/0'/1'/0/0": "33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6", + "m/49'/0'/21234567'/0/0": "3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G", + "m/49'/0'/2147483646'/0/0": "3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr", + "m/49'/0'/2147483647'/0/0": "3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3', - "m/84'/0'/1'/0/0": 'bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0', - "m/84'/0'/21234567'/0/0": 'bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2', - "m/84'/0'/2147483646'/0/0": 'bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd', - "m/84'/0'/2147483647'/0/0": 'bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3", + "m/84'/0'/1'/0/0": "bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0", + "m/84'/0'/21234567'/0/0": "bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2", + "m/84'/0'/2147483646'/0/0": "bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd", + "m/84'/0'/2147483647'/0/0": "bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq', - "m/86'/0'/1'/0/0": 'bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm', - "m/86'/0'/21234567'/0/0": 'bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy', - "m/86'/0'/2147483646'/0/0": - 'bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn', - "m/86'/0'/2147483647'/0/0": - 'bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq", + "m/86'/0'/1'/0/0": "bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm", + "m/86'/0'/21234567'/0/0": "bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy", + "m/86'/0'/2147483646'/0/0": "bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn", + "m/86'/0'/2147483647'/0/0": "bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK', - "m/44'/3'/1'/0/0": 'D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ', - "m/44'/3'/21234567'/0/0": 'DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W', - "m/44'/3'/2147483646'/0/0": 'DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut', - "m/44'/3'/2147483647'/0/0": 'DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK", + "m/44'/3'/1'/0/0": "D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ", + "m/44'/3'/21234567'/0/0": "DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W", + "m/44'/3'/2147483646'/0/0": "DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut", + "m/44'/3'/2147483647'/0/0": "DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy', - "m/44'/145'/1'/0/0": 'bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy", + "m/44'/145'/1'/0/0": "bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy", + "m/44'/145'/21234567'/0/0": "bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg', - "m/44'/2'/1'/0/0": 'LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu', - "m/44'/2'/21234567'/0/0": 'LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff', - "m/44'/2'/2147483646'/0/0": 'LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3', - "m/44'/2'/2147483647'/0/0": 'LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg", + "m/44'/2'/1'/0/0": "LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu", + "m/44'/2'/21234567'/0/0": "LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff", + "m/44'/2'/2147483646'/0/0": "LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3", + "m/44'/2'/2147483647'/0/0": "LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p', - "m/49'/2'/1'/0/0": 'M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj', - "m/49'/2'/21234567'/0/0": 'MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA', - "m/49'/2'/2147483646'/0/0": 'MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt', - "m/49'/2'/2147483647'/0/0": 'MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p", + "m/49'/2'/1'/0/0": "M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj", + "m/49'/2'/21234567'/0/0": "MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA", + "m/49'/2'/2147483646'/0/0": "MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt", + "m/49'/2'/2147483647'/0/0": "MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf', - "m/84'/2'/1'/0/0": 'ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt', - "m/84'/2'/21234567'/0/0": 'ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c', - "m/84'/2'/2147483646'/0/0": 'ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg', - "m/84'/2'/2147483647'/0/0": 'ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf", + "m/84'/2'/1'/0/0": "ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt", + "m/84'/2'/21234567'/0/0": "ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c", + "m/84'/2'/2147483646'/0/0": "ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg", + "m/84'/2'/2147483647'/0/0": "ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2', - "m/44'/1900'/1'/0/0": 'NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H', - "m/44'/1900'/21234567'/0/0": 'NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2', - "m/44'/1900'/2147483646'/0/0": 'NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ', - "m/44'/1900'/2147483647'/0/0": 'NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2", + "m/44'/1900'/1'/0/0": "NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H", + "m/44'/1900'/21234567'/0/0": "NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2", + "m/44'/1900'/2147483646'/0/0": "NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ", + "m/44'/1900'/2147483647'/0/0": "NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A', - "m/44'/60'/1'/0/0": '0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf', - "m/44'/60'/21234567'/0/0": '0xFcB211b77546D2068b569576384387B3d88f1606', - "m/44'/60'/2147483646'/0/0": '0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2', - "m/44'/60'/2147483647'/0/0": '0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A", + "m/44'/60'/1'/0/0": "0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf", + "m/44'/60'/21234567'/0/0": "0xFcB211b77546D2068b569576384387B3d88f1606", + "m/44'/60'/2147483646'/0/0": "0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2", + "m/44'/60'/2147483647'/0/0": "0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235', - "m/44'/61'/1'/0/0": '0x473985bBcA8797b97D48D187a0CE62a80C1248DD', - "m/44'/61'/21234567'/0/0": '0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D', - "m/44'/61'/2147483646'/0/0": '0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059', - "m/44'/61'/2147483647'/0/0": '0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235", + "m/44'/61'/1'/0/0": "0x473985bBcA8797b97D48D187a0CE62a80C1248DD", + "m/44'/61'/21234567'/0/0": "0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D", + "m/44'/61'/2147483646'/0/0": "0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059", + "m/44'/61'/2147483647'/0/0": "0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt', - "m/44'/118'/1'/0/0": 'cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh', - "m/44'/118'/21234567'/0/0": 'cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6', - "m/44'/118'/2147483646'/0/0": 'cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r', - "m/44'/118'/2147483647'/0/0": 'cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt", + "m/44'/118'/1'/0/0": "cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh", + "m/44'/118'/21234567'/0/0": "cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6", + "m/44'/118'/2147483646'/0/0": "cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r", + "m/44'/118'/2147483647'/0/0": "cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3', - "m/44'/118'/1'/0/0": 'akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d', - "m/44'/118'/21234567'/0/0": 'akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq', - "m/44'/118'/2147483646'/0/0": 'akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne', - "m/44'/118'/2147483647'/0/0": 'akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3", + "m/44'/118'/1'/0/0": "akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d", + "m/44'/118'/21234567'/0/0": "akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq", + "m/44'/118'/2147483646'/0/0": "akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne", + "m/44'/118'/2147483647'/0/0": "akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6', - "m/44'/118'/1'/0/0": 'cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx', - "m/44'/118'/21234567'/0/0": 'cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht', - "m/44'/118'/2147483646'/0/0": 'cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj', - "m/44'/118'/2147483647'/0/0": 'cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6", + "m/44'/118'/1'/0/0": "cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx", + "m/44'/118'/21234567'/0/0": "cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht", + "m/44'/118'/2147483646'/0/0": "cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj", + "m/44'/118'/2147483647'/0/0": "cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu', - "m/44'/118'/1'/0/0": 'fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q', - "m/44'/118'/21234567'/0/0": 'fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd', - "m/44'/118'/2147483646'/0/0": 'fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5', - "m/44'/118'/2147483647'/0/0": 'fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu", + "m/44'/118'/1'/0/0": "fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q", + "m/44'/118'/21234567'/0/0": "fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd", + "m/44'/118'/2147483646'/0/0": "fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5", + "m/44'/118'/2147483647'/0/0": "fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce', - "m/44'/118'/1'/0/0": 'osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829', - "m/44'/118'/21234567'/0/0": 'osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag', - "m/44'/118'/2147483646'/0/0": 'osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3', - "m/44'/118'/2147483647'/0/0": 'osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce", + "m/44'/118'/1'/0/0": "osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829", + "m/44'/118'/21234567'/0/0": "osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag", + "m/44'/118'/2147483646'/0/0": "osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3", + "m/44'/118'/2147483647'/0/0": "osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh', - "m/44'/118'/1'/0/0": 'juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt', - "m/44'/118'/21234567'/0/0": 'juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx', - "m/44'/118'/2147483646'/0/0": 'juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl', - "m/44'/118'/2147483647'/0/0": 'juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh", + "m/44'/118'/1'/0/0": "juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt", + "m/44'/118'/21234567'/0/0": "juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx", + "m/44'/118'/2147483646'/0/0": "juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl", + "m/44'/118'/2147483647'/0/0": "juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt', - "m/44'/118'/1'/0/0": 'terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h', - "m/44'/118'/21234567'/0/0": 'terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6', - "m/44'/118'/2147483646'/0/0": 'terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr', - "m/44'/118'/2147483647'/0/0": 'terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt", + "m/44'/118'/1'/0/0": "terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h", + "m/44'/118'/21234567'/0/0": "terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6", + "m/44'/118'/2147483646'/0/0": "terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr", + "m/44'/118'/2147483647'/0/0": "terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh', - "m/44'/118'/1'/0/0": 'secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt', - "m/44'/118'/21234567'/0/0": 'secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx', - "m/44'/118'/2147483646'/0/0": 'secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl', - "m/44'/118'/2147483647'/0/0": 'secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh", + "m/44'/118'/1'/0/0": "secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt", + "m/44'/118'/21234567'/0/0": "secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx", + "m/44'/118'/2147483646'/0/0": "secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl", + "m/44'/118'/2147483647'/0/0": "secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x', - "m/44'/118'/1'/0/0": 'celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6', - "m/44'/118'/21234567'/0/0": 'celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h', - "m/44'/118'/2147483646'/0/0": 'celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw', - "m/44'/118'/2147483647'/0/0": 'celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x", + "m/44'/118'/1'/0/0": "celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6", + "m/44'/118'/21234567'/0/0": "celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h", + "m/44'/118'/2147483646'/0/0": "celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw", + "m/44'/118'/2147483647'/0/0": "celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e', - "m/44'/784'/1'/0'/0'": '0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e', - "m/44'/784'/21234567'/0'/0'": - '0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad', - "m/44'/784'/2147483646'/0'/0'": - '0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043', - "m/44'/784'/2147483647'/0'/0'": - '0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e", + "m/44'/784'/1'/0'/0'": "0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e", + "m/44'/784'/21234567'/0'/0'": "0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad", + "m/44'/784'/2147483646'/0'/0'": "0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043", + "m/44'/784'/2147483647'/0'/0'": "0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd', - "m/44'/728'/1'/0'/0'": - 'BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79', - "m/44'/728'/21234567'/0'/0'": - 'BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200', - "m/44'/728'/2147483646'/0'/0'": - 'BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38', - "m/44'/728'/2147483647'/0'/0'": - 'BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd", + "m/44'/728'/1'/0'/0'": "BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79", + "m/44'/728'/21234567'/0'/0'": "BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200", + "m/44'/728'/2147483646'/0'/0'": "BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38", + "m/44'/728'/2147483647'/0'/0'": "BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm', - "m/44'/1234'/1'/0/0": '1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu', - "m/44'/1234'/21234567'/0/0": '15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG', - "m/44'/1234'/2147483646'/0/0": '1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF', - "m/44'/1234'/2147483647'/0/0": '16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm", + "m/44'/1234'/1'/0/0": "1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu", + "m/44'/1234'/21234567'/0/0": "15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG", + "m/44'/1234'/2147483646'/0/0": "1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF", + "m/44'/1234'/2147483647'/0/0": "16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4', - "m/44'/283'/1'/0'/0'": 'JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE', - "m/44'/283'/21234567'/0'/0'": 'GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4', - "m/44'/283'/2147483646'/0'/0'": - '4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ', - "m/44'/283'/2147483647'/0'/0'": - 'MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4", + "m/44'/283'/1'/0'/0'": "JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE", + "m/44'/283'/21234567'/0'/0'": "GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4", + "m/44'/283'/2147483646'/0'/0'": "4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ", + "m/44'/283'/2147483647'/0'/0'": "MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN', - "m/44'/607'/1'": 'UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm', - "m/44'/607'/21234567'": 'UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3', - "m/44'/607'/2147483646'": 'UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B', - "m/44'/607'/2147483647'": 'UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN", + "m/44'/607'/1'": "UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm", + "m/44'/607'/21234567'": "UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3", + "m/44'/607'/2147483646'": "UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B", + "m/44'/607'/2147483647'": "UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr', - "m/44'/309'/1'/0/0": 'ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr", + "m/44'/309'/1'/0/0": "ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls", + "m/44'/309'/21234567'/0/0": "ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0", + "m/44'/309'/2147483646'/0/0": "ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7", + "m/44'/309'/2147483647'/0/0": "ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b32864c15d04d6ae0336b5ddc606492b8ff441', - "m/44'/541'/1'/0/0": '1S0113f214a3079c47cd2d30ed63c0b721fb171531', - "m/44'/541'/21234567'/0/0": '1S01dea0121026d7f702bd9bb921dc02bb6b27c581', - "m/44'/541'/2147483646'/0/0": '1S01584253a100a67923ec03466261c700e7d27c81', - "m/44'/541'/2147483647'/0/0": '1S01311de7dfd071891669e664e5bd1c117233af61', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b32864c15d04d6ae0336b5ddc606492b8ff441", + "m/44'/541'/1'/0/0": "1S0113f214a3079c47cd2d30ed63c0b721fb171531", + "m/44'/541'/21234567'/0/0": "1S01dea0121026d7f702bd9bb921dc02bb6b27c581", + "m/44'/541'/2147483646'/0/0": "1S01584253a100a67923ec03466261c700e7d27c81", + "m/44'/541'/2147483647'/0/0": "1S01311de7dfd071891669e664e5bd1c117233af61" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_1.ts index ec40b3b51..21b5b4aac 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_1.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphrase1: SLIP39TestCaseData = { - id: 'count33_two_passphrase_1', - name: 'count33_two_passphrase_1', - description: '2-of-3 (33 words each) + passphrase_1', - passphrase: '12345', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_1", + "name": "count33_two_passphrase_1", + "description": "2-of-3 (33 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1E5vFVWP9GJnxR6vigrMViWEqdYJganJoy', - "m/44'/0'/1'/0/0": '1AbtFxp2SGXU8eMKi1zNqRzzmpdFqFqfvt', - "m/44'/0'/21234567'/0/0": '1PpjQs7aS8CAQikR4ivGLUaDyfgxkbm7Y6', - "m/44'/0'/2147483646'/0/0": '1H6f6BC22ARERpRk1njCRtCMgjbhjFH4gM', - "m/44'/0'/2147483647'/0/0": '1QEieceRdq9SaoTPMWk4UhHk5U5Kign1Wf', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1E5vFVWP9GJnxR6vigrMViWEqdYJganJoy", + "m/44'/0'/1'/0/0": "1AbtFxp2SGXU8eMKi1zNqRzzmpdFqFqfvt", + "m/44'/0'/21234567'/0/0": "1PpjQs7aS8CAQikR4ivGLUaDyfgxkbm7Y6", + "m/44'/0'/2147483646'/0/0": "1H6f6BC22ARERpRk1njCRtCMgjbhjFH4gM", + "m/44'/0'/2147483647'/0/0": "1QEieceRdq9SaoTPMWk4UhHk5U5Kign1Wf" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3LCEvF9gZ59ii2TMUg1qKb2hjiy4df8zey', - "m/49'/0'/1'/0/0": '3Ap7RePRANvNvNBRfMpWCoP8TatPhNnKvB', - "m/49'/0'/21234567'/0/0": '39THJN72144g31JWXLbjcnuERu4N3rLBJv', - "m/49'/0'/2147483646'/0/0": '3Ns1kgmw41soYR7CPr27KP98WGZfSPjH8U', - "m/49'/0'/2147483647'/0/0": '35SPPLmZTATzcd7oojMqQwHE6HavR54fRY', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3LCEvF9gZ59ii2TMUg1qKb2hjiy4df8zey", + "m/49'/0'/1'/0/0": "3Ap7RePRANvNvNBRfMpWCoP8TatPhNnKvB", + "m/49'/0'/21234567'/0/0": "39THJN72144g31JWXLbjcnuERu4N3rLBJv", + "m/49'/0'/2147483646'/0/0": "3Ns1kgmw41soYR7CPr27KP98WGZfSPjH8U", + "m/49'/0'/2147483647'/0/0": "35SPPLmZTATzcd7oojMqQwHE6HavR54fRY" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qw8hl3ax2djawv25p3dd3exzp3mmunha9ravra5', - "m/84'/0'/1'/0/0": 'bc1qrnray7q6vvc5lkhdvzxjfurcm8rft3fk8w7t2m', - "m/84'/0'/21234567'/0/0": 'bc1qpvswkj50mscls75wuhhuuqsnc0ltc58nw9vz79', - "m/84'/0'/2147483646'/0/0": 'bc1qakr3gkhff23rhxnx2wt5lsxld9ehh00wlg3zmr', - "m/84'/0'/2147483647'/0/0": 'bc1qpjmcqxjvpypwz04qn2qwddazqpf3qdrzndkmlc', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qw8hl3ax2djawv25p3dd3exzp3mmunha9ravra5", + "m/84'/0'/1'/0/0": "bc1qrnray7q6vvc5lkhdvzxjfurcm8rft3fk8w7t2m", + "m/84'/0'/21234567'/0/0": "bc1qpvswkj50mscls75wuhhuuqsnc0ltc58nw9vz79", + "m/84'/0'/2147483646'/0/0": "bc1qakr3gkhff23rhxnx2wt5lsxld9ehh00wlg3zmr", + "m/84'/0'/2147483647'/0/0": "bc1qpjmcqxjvpypwz04qn2qwddazqpf3qdrzndkmlc" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pxd8s0u0jr7wzhvfx34q3le43sjzgz23sd447vprxhj49v0ccku5qpchjag', - "m/86'/0'/1'/0/0": 'bc1pq9jw9zfatac5s89qk9flthq39ulaz5pf9dhqzse9tepjnc74uxkq4umae0', - "m/86'/0'/21234567'/0/0": 'bc1pt5p3sh6wc7t9uy53q8pwr8vjr92xndz4nphd642m8e2shyvkp3usczqzgw', - "m/86'/0'/2147483646'/0/0": - 'bc1p3a5jrklfpu9rw4mg8exvf0ccrrkjkhwh48v78j8ljktpy9zgfxyslumz9w', - "m/86'/0'/2147483647'/0/0": - 'bc1ptzkxhdqxkwpj20jmjteag4wdfsk26lkwxmljv8qkpayyyhqa68xq996ta4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pxd8s0u0jr7wzhvfx34q3le43sjzgz23sd447vprxhj49v0ccku5qpchjag", + "m/86'/0'/1'/0/0": "bc1pq9jw9zfatac5s89qk9flthq39ulaz5pf9dhqzse9tepjnc74uxkq4umae0", + "m/86'/0'/21234567'/0/0": "bc1pt5p3sh6wc7t9uy53q8pwr8vjr92xndz4nphd642m8e2shyvkp3usczqzgw", + "m/86'/0'/2147483646'/0/0": "bc1p3a5jrklfpu9rw4mg8exvf0ccrrkjkhwh48v78j8ljktpy9zgfxyslumz9w", + "m/86'/0'/2147483647'/0/0": "bc1ptzkxhdqxkwpj20jmjteag4wdfsk26lkwxmljv8qkpayyyhqa68xq996ta4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DKpDCwvoqWG2NnpHGJFkR1B4oNXiCvhk9e', - "m/44'/3'/1'/0/0": 'D79hXN7zLxNn9DoARrE68hwcNWCXe49fim', - "m/44'/3'/21234567'/0/0": 'D5bbTZmdA4ZngYr6CayATHBYp2SJq9zVKm', - "m/44'/3'/2147483646'/0/0": 'DMJ5pboKuAwF1qmtxV7fud7BJGAV83HYxU', - "m/44'/3'/2147483647'/0/0": 'D8M4G2xgUm6ggbRoopKAFurDwA9V7j8gtm', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DKpDCwvoqWG2NnpHGJFkR1B4oNXiCvhk9e", + "m/44'/3'/1'/0/0": "D79hXN7zLxNn9DoARrE68hwcNWCXe49fim", + "m/44'/3'/21234567'/0/0": "D5bbTZmdA4ZngYr6CayATHBYp2SJq9zVKm", + "m/44'/3'/2147483646'/0/0": "DMJ5pboKuAwF1qmtxV7fud7BJGAV83HYxU", + "m/44'/3'/2147483647'/0/0": "D8M4G2xgUm6ggbRoopKAFurDwA9V7j8gtm" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qz8zw4fy60fvfq0r46cmfjcdarlcgykk65mtj9ra9e', - "m/44'/145'/1'/0/0": 'bitcoincash:qrjyzvhtevz2g2z8r42cjujp29h9p42htc64prhrle', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qrjdaxdqzvf7y8nj6ajwcfx0lg338wlrlqkmp2ph79', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qqlwrg5wr45uvac82k3nzs0ypq5carw6kup3ltul3j', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qz8dnqntafxw5dy4780q75qwhuau4y7wxumrf0tv0g', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qz8zw4fy60fvfq0r46cmfjcdarlcgykk65mtj9ra9e", + "m/44'/145'/1'/0/0": "bitcoincash:qrjyzvhtevz2g2z8r42cjujp29h9p42htc64prhrle", + "m/44'/145'/21234567'/0/0": "bitcoincash:qrjdaxdqzvf7y8nj6ajwcfx0lg338wlrlqkmp2ph79", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qqlwrg5wr45uvac82k3nzs0ypq5carw6kup3ltul3j", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qz8dnqntafxw5dy4780q75qwhuau4y7wxumrf0tv0g" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LLGZGBMUSRHyauwt54CnqAoKnucMDET1Y8', - "m/44'/2'/1'/0/0": 'LhqPMikXQtdDvh9xFb2kuMMrLnvL8c2wLz', - "m/44'/2'/21234567'/0/0": 'LWjEvTdLkQgR23QAmMm7djKGTbsaHBn7Tx', - "m/44'/2'/2147483646'/0/0": 'LR4TCSvU1dUBCz6ymNFzk3VQZLjoEsdfVC', - "m/44'/2'/2147483647'/0/0": 'LhyDdPyXH7dGThELMKfG2KdSe3PcDWEYj1', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LLGZGBMUSRHyauwt54CnqAoKnucMDET1Y8", + "m/44'/2'/1'/0/0": "LhqPMikXQtdDvh9xFb2kuMMrLnvL8c2wLz", + "m/44'/2'/21234567'/0/0": "LWjEvTdLkQgR23QAmMm7djKGTbsaHBn7Tx", + "m/44'/2'/2147483646'/0/0": "LR4TCSvU1dUBCz6ymNFzk3VQZLjoEsdfVC", + "m/44'/2'/2147483647'/0/0": "LhyDdPyXH7dGThELMKfG2KdSe3PcDWEYj1" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MW53azMx66tsfC4Y9ACvh72yGGo9zmk1sm', - "m/49'/2'/1'/0/0": 'MLL86HMWe8c3CA5VAzGNwsiCeniShwHr1W', - "m/49'/2'/21234567'/0/0": 'MQZsdLkajEtfCt632zqkvb3XLYTXsTW6CE', - "m/49'/2'/2147483646'/0/0": 'MBDKXbCCYe1sFjjRQzQGEtaaxbwWvjaXjJ', - "m/49'/2'/2147483647'/0/0": 'MEReg8VotfmvxfE9a4YUvrGu9yWeM1HBr8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MW53azMx66tsfC4Y9ACvh72yGGo9zmk1sm", + "m/49'/2'/1'/0/0": "MLL86HMWe8c3CA5VAzGNwsiCeniShwHr1W", + "m/49'/2'/21234567'/0/0": "MQZsdLkajEtfCt632zqkvb3XLYTXsTW6CE", + "m/49'/2'/2147483646'/0/0": "MBDKXbCCYe1sFjjRQzQGEtaaxbwWvjaXjJ", + "m/49'/2'/2147483647'/0/0": "MEReg8VotfmvxfE9a4YUvrGu9yWeM1HBr8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qreqnrvlfgwr0duttqxwr5sx7l72v7029jw0086', - "m/84'/2'/1'/0/0": 'ltc1qp7gen2x3jajxghm77amjsyv54c7kdrjv45v6fv', - "m/84'/2'/21234567'/0/0": 'ltc1q77v9mpm3f3hzwxnhfag370z7u8lwfefqw3twyv', - "m/84'/2'/2147483646'/0/0": 'ltc1q90u090m6kk7zryh587pdjep6kxaaf9zd8rzafp', - "m/84'/2'/2147483647'/0/0": 'ltc1qrx6gyp45fp3dqnj64l6edaxpjg7zym3x3unqeu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qreqnrvlfgwr0duttqxwr5sx7l72v7029jw0086", + "m/84'/2'/1'/0/0": "ltc1qp7gen2x3jajxghm77amjsyv54c7kdrjv45v6fv", + "m/84'/2'/21234567'/0/0": "ltc1q77v9mpm3f3hzwxnhfag370z7u8lwfefqw3twyv", + "m/84'/2'/2147483646'/0/0": "ltc1q90u090m6kk7zryh587pdjep6kxaaf9zd8rzafp", + "m/84'/2'/2147483647'/0/0": "ltc1qrx6gyp45fp3dqnj64l6edaxpjg7zym3x3unqeu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NgVsuVcqEa5Rgfkf2s4F4Dz57Ua46a64Xa', - "m/44'/1900'/1'/0/0": 'NbPPPqLA9nThmiVDryqtwR6oqFpndEKKfq', - "m/44'/1900'/21234567'/0/0": 'NLm5XhzGaxxNTntc1sUfPx7GR8gJjt5pZC', - "m/44'/1900'/2147483646'/0/0": 'NQCRXurFYF33jwaSiDKqZ5ZH48JpdAXXZA', - "m/44'/1900'/2147483647'/0/0": 'NggJXurJMCMGh8qctgu9jfcuaghVAhYqyG', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NgVsuVcqEa5Rgfkf2s4F4Dz57Ua46a64Xa", + "m/44'/1900'/1'/0/0": "NbPPPqLA9nThmiVDryqtwR6oqFpndEKKfq", + "m/44'/1900'/21234567'/0/0": "NLm5XhzGaxxNTntc1sUfPx7GR8gJjt5pZC", + "m/44'/1900'/2147483646'/0/0": "NQCRXurFYF33jwaSiDKqZ5ZH48JpdAXXZA", + "m/44'/1900'/2147483647'/0/0": "NggJXurJMCMGh8qctgu9jfcuaghVAhYqyG" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xB9D902e65B81E9858ec1098aA15F1bcE9853bf44', - "m/44'/60'/1'/0/0": '0x2F3Dd2Fc9c391dD0081ad50644f5aF44F9Ed8B35', - "m/44'/60'/21234567'/0/0": '0x39eb58bc83AA5B4fe75B2fdBE2aAb5D763b3FD05', - "m/44'/60'/2147483646'/0/0": '0xd1585f2145c8127d2e86bE577c381d9E61Da6DF0', - "m/44'/60'/2147483647'/0/0": '0x49a892Cf77AbA2e8f905112347dF920418e70725', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xB9D902e65B81E9858ec1098aA15F1bcE9853bf44", + "m/44'/60'/1'/0/0": "0x2F3Dd2Fc9c391dD0081ad50644f5aF44F9Ed8B35", + "m/44'/60'/21234567'/0/0": "0x39eb58bc83AA5B4fe75B2fdBE2aAb5D763b3FD05", + "m/44'/60'/2147483646'/0/0": "0xd1585f2145c8127d2e86bE577c381d9E61Da6DF0", + "m/44'/60'/2147483647'/0/0": "0x49a892Cf77AbA2e8f905112347dF920418e70725" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x2e56e4927d6d17282c00F14A8de7A3224f22578e', - "m/44'/61'/1'/0/0": '0x13A8c8F1392Dc65C8165a52C3d5721D20da71d23', - "m/44'/61'/21234567'/0/0": '0x10b10A65224816238cc11AC1ae9Af5f7be47851F', - "m/44'/61'/2147483646'/0/0": '0x455261B52A9226F8aF0BF067B2441AD2064b8f9E', - "m/44'/61'/2147483647'/0/0": '0x418Fd89EA9d76a150d5226dBbDFBfdab3c00dDEC', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x2e56e4927d6d17282c00F14A8de7A3224f22578e", + "m/44'/61'/1'/0/0": "0x13A8c8F1392Dc65C8165a52C3d5721D20da71d23", + "m/44'/61'/21234567'/0/0": "0x10b10A65224816238cc11AC1ae9Af5f7be47851F", + "m/44'/61'/2147483646'/0/0": "0x455261B52A9226F8aF0BF067B2441AD2064b8f9E", + "m/44'/61'/2147483647'/0/0": "0x418Fd89EA9d76a150d5226dBbDFBfdab3c00dDEC" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos19adgjm20qvarkauz94h7rskv4h0pakw3hqp9da', - "m/44'/118'/1'/0/0": 'cosmos1vc2zv96vppw0n5zetu49zxvsgemrqnkyv2vsy0', - "m/44'/118'/21234567'/0/0": 'cosmos1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqndt9zp', - "m/44'/118'/2147483646'/0/0": 'cosmos1hndyw72fuufvc2dzmg9fj0cpe02ctwuhela5hj', - "m/44'/118'/2147483647'/0/0": 'cosmos1ley65htm3yy69f8vdazemgjfd0gh688zdus4nt', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos19adgjm20qvarkauz94h7rskv4h0pakw3hqp9da", + "m/44'/118'/1'/0/0": "cosmos1vc2zv96vppw0n5zetu49zxvsgemrqnkyv2vsy0", + "m/44'/118'/21234567'/0/0": "cosmos1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqndt9zp", + "m/44'/118'/2147483646'/0/0": "cosmos1hndyw72fuufvc2dzmg9fj0cpe02ctwuhela5hj", + "m/44'/118'/2147483647'/0/0": "cosmos1ley65htm3yy69f8vdazemgjfd0gh688zdus4nt" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash19adgjm20qvarkauz94h7rskv4h0pakw36mvz58', - "m/44'/118'/1'/0/0": 'akash1vc2zv96vppw0n5zetu49zxvsgemrqnkyp3pha4', - "m/44'/118'/21234567'/0/0": 'akash1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq7kxzmm', - "m/44'/118'/2147483646'/0/0": 'akash1hndyw72fuufvc2dzmg9fj0cpe02ctwuh5ysnwg', - "m/44'/118'/2147483647'/0/0": 'akash1ley65htm3yy69f8vdazemgjfd0gh688zq8aj23', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash19adgjm20qvarkauz94h7rskv4h0pakw36mvz58", + "m/44'/118'/1'/0/0": "akash1vc2zv96vppw0n5zetu49zxvsgemrqnkyp3pha4", + "m/44'/118'/21234567'/0/0": "akash1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq7kxzmm", + "m/44'/118'/2147483646'/0/0": "akash1hndyw72fuufvc2dzmg9fj0cpe02ctwuh5ysnwg", + "m/44'/118'/2147483647'/0/0": "akash1ley65htm3yy69f8vdazemgjfd0gh688zq8aj23" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro19adgjm20qvarkauz94h7rskv4h0pakw30mfu3v', - "m/44'/118'/1'/0/0": 'cro1vc2zv96vppw0n5zetu49zxvsgemrqnky53yfc7', - "m/44'/118'/21234567'/0/0": 'cro1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqtkru7s', - "m/44'/118'/2147483646'/0/0": 'cro1hndyw72fuufvc2dzmg9fj0cpe02ctwuhpy4dtr', - "m/44'/118'/2147483647'/0/0": 'cro1ley65htm3yy69f8vdazemgjfd0gh688z48cv06', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro19adgjm20qvarkauz94h7rskv4h0pakw30mfu3v", + "m/44'/118'/1'/0/0": "cro1vc2zv96vppw0n5zetu49zxvsgemrqnky53yfc7", + "m/44'/118'/21234567'/0/0": "cro1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqtkru7s", + "m/44'/118'/2147483646'/0/0": "cro1hndyw72fuufvc2dzmg9fj0cpe02ctwuhpy4dtr", + "m/44'/118'/2147483647'/0/0": "cro1ley65htm3yy69f8vdazemgjfd0gh688z48cv06" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch19adgjm20qvarkauz94h7rskv4h0pakw3yagp02', - "m/44'/118'/1'/0/0": 'fetch1vc2zv96vppw0n5zetu49zxvsgemrqnkylh95xc', - "m/44'/118'/21234567'/0/0": 'fetch1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqqszpqk', - "m/44'/118'/2147483646'/0/0": 'fetch1hndyw72fuufvc2dzmg9fj0cpe02ctwuh2z5s49', - "m/44'/118'/2147483647'/0/0": 'fetch1ley65htm3yy69f8vdazemgjfd0gh688z7pe33u', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch19adgjm20qvarkauz94h7rskv4h0pakw3yagp02", + "m/44'/118'/1'/0/0": "fetch1vc2zv96vppw0n5zetu49zxvsgemrqnkylh95xc", + "m/44'/118'/21234567'/0/0": "fetch1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqqszpqk", + "m/44'/118'/2147483646'/0/0": "fetch1hndyw72fuufvc2dzmg9fj0cpe02ctwuh2z5s49", + "m/44'/118'/2147483647'/0/0": "fetch1ley65htm3yy69f8vdazemgjfd0gh688z7pe33u" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo19adgjm20qvarkauz94h7rskv4h0pakw3lmj4m0', - "m/44'/118'/1'/0/0": 'osmo1vc2zv96vppw0n5zetu49zxvsgemrqnkyy3lqja', - "m/44'/118'/21234567'/0/0": 'osmo1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqmkc45n', - "m/44'/118'/2147483646'/0/0": 'osmo1hndyw72fuufvc2dzmg9fj0cpe02ctwuh3ywypq', - "m/44'/118'/2147483647'/0/0": 'osmo1ley65htm3yy69f8vdazemgjfd0gh688z98r99e', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo19adgjm20qvarkauz94h7rskv4h0pakw3lmj4m0", + "m/44'/118'/1'/0/0": "osmo1vc2zv96vppw0n5zetu49zxvsgemrqnkyy3lqja", + "m/44'/118'/21234567'/0/0": "osmo1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqmkc45n", + "m/44'/118'/2147483646'/0/0": "osmo1hndyw72fuufvc2dzmg9fj0cpe02ctwuh3ywypq", + "m/44'/118'/2147483647'/0/0": "osmo1ley65htm3yy69f8vdazemgjfd0gh688z98r99e" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno19adgjm20qvarkauz94h7rskv4h0pakw3pjz72p', - "m/44'/118'/1'/0/0": 'juno1vc2zv96vppw0n5zetu49zxvsgemrqnky6c0trn', - "m/44'/118'/21234567'/0/0": 'juno1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq9lg79a', - "m/44'/118'/2147483646'/0/0": 'juno1hndyw72fuufvc2dzmg9fj0cpe02ctwuh0d70sw', - "m/44'/118'/2147483647'/0/0": 'juno1ley65htm3yy69f8vdazemgjfd0gh688zmwnw5h', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno19adgjm20qvarkauz94h7rskv4h0pakw3pjz72p", + "m/44'/118'/1'/0/0": "juno1vc2zv96vppw0n5zetu49zxvsgemrqnky6c0trn", + "m/44'/118'/21234567'/0/0": "juno1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq9lg79a", + "m/44'/118'/2147483646'/0/0": "juno1hndyw72fuufvc2dzmg9fj0cpe02ctwuh0d70sw", + "m/44'/118'/2147483647'/0/0": "juno1ley65htm3yy69f8vdazemgjfd0gh688zmwnw5h" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra19adgjm20qvarkauz94h7rskv4h0pakw33ym90a', - "m/44'/118'/1'/0/0": 'terra1vc2zv96vppw0n5zetu49zxvsgemrqnky2wksx0', - "m/44'/118'/21234567'/0/0": 'terra1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq4f39qp', - "m/44'/118'/2147483646'/0/0": 'terra1hndyw72fuufvc2dzmg9fj0cpe02ctwuhlm854j', - "m/44'/118'/2147483647'/0/0": 'terra1ley65htm3yy69f8vdazemgjfd0gh688ztc243t', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra19adgjm20qvarkauz94h7rskv4h0pakw33ym90a", + "m/44'/118'/1'/0/0": "terra1vc2zv96vppw0n5zetu49zxvsgemrqnky2wksx0", + "m/44'/118'/21234567'/0/0": "terra1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq4f39qp", + "m/44'/118'/2147483646'/0/0": "terra1hndyw72fuufvc2dzmg9fj0cpe02ctwuhlm854j", + "m/44'/118'/2147483647'/0/0": "terra1ley65htm3yy69f8vdazemgjfd0gh688ztc243t" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret19adgjm20qvarkauz94h7rskv4h0pakw3494vsp', - "m/44'/118'/1'/0/0": 'secret1vc2zv96vppw0n5zetu49zxvsgemrqnkyw0ceen', - "m/44'/118'/21234567'/0/0": 'secret1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq3glvla', - "m/44'/118'/2147483646'/0/0": 'secret1hndyw72fuufvc2dzmg9fj0cpe02ctwuhm6fa2w', - "m/44'/118'/2147483647'/0/0": 'secret1ley65htm3yy69f8vdazemgjfd0gh688z0eyuwh', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret19adgjm20qvarkauz94h7rskv4h0pakw3494vsp", + "m/44'/118'/1'/0/0": "secret1vc2zv96vppw0n5zetu49zxvsgemrqnkyw0ceen", + "m/44'/118'/21234567'/0/0": "secret1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zq3glvla", + "m/44'/118'/2147483646'/0/0": "secret1hndyw72fuufvc2dzmg9fj0cpe02ctwuhm6fa2w", + "m/44'/118'/2147483647'/0/0": "secret1ley65htm3yy69f8vdazemgjfd0gh688z0eyuwh" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia19adgjm20qvarkauz94h7rskv4h0pakw3x2s4hs', - "m/44'/118'/1'/0/0": 'celestia1vc2zv96vppw0n5zetu49zxvsgemrqnkyaqaq7z', - "m/44'/118'/21234567'/0/0": 'celestia1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqz864cv', - "m/44'/118'/2147483646'/0/0": 'celestia1hndyw72fuufvc2dzmg9fj0cpe02ctwuhg4vydl', - "m/44'/118'/2147483647'/0/0": 'celestia1ley65htm3yy69f8vdazemgjfd0gh688zukp9fx', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia19adgjm20qvarkauz94h7rskv4h0pakw3x2s4hs", + "m/44'/118'/1'/0/0": "celestia1vc2zv96vppw0n5zetu49zxvsgemrqnkyaqaq7z", + "m/44'/118'/21234567'/0/0": "celestia1e6kq6ulgpzgcqd3gv8lh7mn4v3rl35zqz864cv", + "m/44'/118'/2147483646'/0/0": "celestia1hndyw72fuufvc2dzmg9fj0cpe02ctwuhg4vydl", + "m/44'/118'/2147483647'/0/0": "celestia1ley65htm3yy69f8vdazemgjfd0gh688zukp9fx" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x761f440c1f53eb1a31e8bf9f1e1ab3893c2a5aa116f2a6bf1422bf989ed5dbd4', - "m/44'/784'/1'/0'/0'": '0xc7c11e9bbdd9368e78166422ebe99c5b33eef2f0506794e28d9b2919b5d25619', - "m/44'/784'/21234567'/0'/0'": - '0xc363b6a97f4841fb28db9c775498d23f40b611b5eee8c4d1b2e7575e43ce33d3', - "m/44'/784'/2147483646'/0'/0'": - '0x5ef1ecc07415a1cfe7e336245c650794bb85b3a3e42870f513f4d65b1445f21e', - "m/44'/784'/2147483647'/0'/0'": - '0x6e3d7f3e51c9ebd458b4a2d60ef1de766c1496331e652122a2d727bdf7aa23b8', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x761f440c1f53eb1a31e8bf9f1e1ab3893c2a5aa116f2a6bf1422bf989ed5dbd4", + "m/44'/784'/1'/0'/0'": "0xc7c11e9bbdd9368e78166422ebe99c5b33eef2f0506794e28d9b2919b5d25619", + "m/44'/784'/21234567'/0'/0'": "0xc363b6a97f4841fb28db9c775498d23f40b611b5eee8c4d1b2e7575e43ce33d3", + "m/44'/784'/2147483646'/0'/0'": "0x5ef1ecc07415a1cfe7e336245c650794bb85b3a3e42870f513f4d65b1445f21e", + "m/44'/784'/2147483647'/0'/0'": "0x6e3d7f3e51c9ebd458b4a2d60ef1de766c1496331e652122a2d727bdf7aa23b8" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez', - "m/44'/144'/1'/0/0": 'rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU', - "m/44'/144'/21234567'/0/0": 'rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP', - "m/44'/144'/2147483646'/0/0": 'r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt', - "m/44'/144'/2147483647'/0/0": 'rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez", + "m/44'/144'/1'/0/0": "rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU", + "m/44'/144'/21234567'/0/0": "rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP", + "m/44'/144'/2147483646'/0/0": "r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt", + "m/44'/144'/2147483647'/0/0": "rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCf55001a305d52965cd99d35992af5137c89895a1694d54df805b001af6af9f6c880c', - "m/44'/728'/1'/0'/0'": - 'BFCf407e2fa4a07de88daece3e19b5ac4f189d43a561bc4e5431d4366b1442e49edca04', - "m/44'/728'/21234567'/0'/0'": - 'BFC81a950c05540d9e35e781936590997bae7746874a5aba1ed8615a987100ba353c39f', - "m/44'/728'/2147483646'/0'/0'": - 'BFC4e035b3ea594713b5dfe4d3d0e14ac1a42facf134526469f741553ca29f31851b32e', - "m/44'/728'/2147483647'/0'/0'": - 'BFCefe31ab16c582996f80275cc1b6bac8533c604989943dfa330da208aad1043393b04', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCf55001a305d52965cd99d35992af5137c89895a1694d54df805b001af6af9f6c880c", + "m/44'/728'/1'/0'/0'": "BFCf407e2fa4a07de88daece3e19b5ac4f189d43a561bc4e5431d4366b1442e49edca04", + "m/44'/728'/21234567'/0'/0'": "BFC81a950c05540d9e35e781936590997bae7746874a5aba1ed8615a987100ba353c39f", + "m/44'/728'/2147483646'/0'/0'": "BFC4e035b3ea594713b5dfe4d3d0e14ac1a42facf134526469f741553ca29f31851b32e", + "m/44'/728'/2147483647'/0'/0'": "BFCefe31ab16c582996f80275cc1b6bac8533c604989943dfa330da208aad1043393b04" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1MnkhQBoA3DGGseCq6wBo4wa1xQwDhHn6hfYJNWmQm15', - "m/44'/1234'/1'/0/0": '18VMx47p6BvpeDHdQDBvsNzCLhTV9uy6qWNKHVyLmLiQN', - "m/44'/1234'/21234567'/0/0": '14cWtLmShwiUY5aNJ95vePa1LEb4aKzE9xgCH3xoSaUjx', - "m/44'/1234'/2147483646'/0/0": '1usH77nv8ZM7MMiAQ6Sw5by9U1AxGPAgwDergA5xa2G1', - "m/44'/1234'/2147483647'/0/0": '19ij8NoWMFK7j465HxgLkHcP48fyjqJzDr5SatTBww3EJ', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1MnkhQBoA3DGGseCq6wBo4wa1xQwDhHn6hfYJNWmQm15", + "m/44'/1234'/1'/0/0": "18VMx47p6BvpeDHdQDBvsNzCLhTV9uy6qWNKHVyLmLiQN", + "m/44'/1234'/21234567'/0/0": "14cWtLmShwiUY5aNJ95vePa1LEb4aKzE9xgCH3xoSaUjx", + "m/44'/1234'/2147483646'/0/0": "1usH77nv8ZM7MMiAQ6Sw5by9U1AxGPAgwDergA5xa2G1", + "m/44'/1234'/2147483647'/0/0": "19ij8NoWMFK7j465HxgLkHcP48fyjqJzDr5SatTBww3EJ" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'W2EDUY2LWL7S73ARZL5ZSUQDVBE6MIRBKG2NSS5PIWMS3XHA5WBA3BEYTU', - "m/44'/283'/1'/0'/0'": 'FVTFHAYKWSRDPCDUBX3ZCNKX3AZ3CLCPN73Z453WC5WKXN6U7ITFQSWQHA', - "m/44'/283'/21234567'/0'/0'": 'OB6IKT5GPS2IAJTQPOOPIONSTGMMCLO5EEUCCIANAX3AAS5BIJL7ACNTNI', - "m/44'/283'/2147483646'/0'/0'": - 'JJ6DCHTH6GJ2K2EMLLYQAFDTNVSYYY3OQFJEH7OLYUAORTAR2VJIESQ4XQ', - "m/44'/283'/2147483647'/0'/0'": - 'MHSF27V4VZE6BF7GFGOT3DNT566NLF2OHKQBAKWPJ6KZGHQAPQFDSHLU6E', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "W2EDUY2LWL7S73ARZL5ZSUQDVBE6MIRBKG2NSS5PIWMS3XHA5WBA3BEYTU", + "m/44'/283'/1'/0'/0'": "FVTFHAYKWSRDPCDUBX3ZCNKX3AZ3CLCPN73Z453WC5WKXN6U7ITFQSWQHA", + "m/44'/283'/21234567'/0'/0'": "OB6IKT5GPS2IAJTQPOOPIONSTGMMCLO5EEUCCIANAX3AAS5BIJL7ACNTNI", + "m/44'/283'/2147483646'/0'/0'": "JJ6DCHTH6GJ2K2EMLLYQAFDTNVSYYY3OQFJEH7OLYUAORTAR2VJIESQ4XQ", + "m/44'/283'/2147483647'/0'/0'": "MHSF27V4VZE6BF7GFGOT3DNT566NLF2OHKQBAKWPJ6KZGHQAPQFDSHLU6E" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQCP7oQ0PLkfEQVwlJ6rnJSUFvTjgmRs8u4PGxSaLNr5CD8W', - "m/44'/607'/1'": 'UQBAcVgF2uZzDUlr1qa-3V88Rx4keBLVHFcWLtP1nuc3UgTV', - "m/44'/607'/21234567'": 'UQClOHxrJUTRs-jxTv3W0LhhDANzoc8N1BOfxNng0abXZ0kY', - "m/44'/607'/2147483646'": 'UQD_N7hv_tjPdqOdGeJC6lT5Qptpj2VjrJwXPfAaeR8dFmKs', - "m/44'/607'/2147483647'": 'UQDagJN_vlImTX_JHsxwZFW3CtiTR29gWOxyKSg-uFxw6U9W', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQCP7oQ0PLkfEQVwlJ6rnJSUFvTjgmRs8u4PGxSaLNr5CD8W", + "m/44'/607'/1'": "UQBAcVgF2uZzDUlr1qa-3V88Rx4keBLVHFcWLtP1nuc3UgTV", + "m/44'/607'/21234567'": "UQClOHxrJUTRs-jxTv3W0LhhDANzoc8N1BOfxNng0abXZ0kY", + "m/44'/607'/2147483646'": "UQD_N7hv_tjPdqOdGeJC6lT5Qptpj2VjrJwXPfAaeR8dFmKs", + "m/44'/607'/2147483647'": "UQDagJN_vlImTX_JHsxwZFW3CtiTR29gWOxyKSg-uFxw6U9W" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqd392yfreprkaue0dvtga0ghxr40vwqq6q5zcfnt', - "m/44'/309'/1'/0/0": 'ckb1qyqpwv70vcq0eaata0l5fjapqegz4cv0g73s4jajv8', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwphpcpkdccxykz0n8tphx5smhd6dptc7seyl0gx', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqflyy0sdafzkcwfucudexsk70t8jq9jz4qpusvkf', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqw74ryw3jp42p0l0cezd4fmkzppk0k406qmdaye2', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqd392yfreprkaue0dvtga0ghxr40vwqq6q5zcfnt", + "m/44'/309'/1'/0/0": "ckb1qyqpwv70vcq0eaata0l5fjapqegz4cv0g73s4jajv8", + "m/44'/309'/21234567'/0/0": "ckb1qyqwphpcpkdccxykz0n8tphx5smhd6dptc7seyl0gx", + "m/44'/309'/2147483646'/0/0": "ckb1qyqflyy0sdafzkcwfucudexsk70t8jq9jz4qpusvkf", + "m/44'/309'/2147483647'/0/0": "ckb1qyqw74ryw3jp42p0l0cezd4fmkzppk0k406qmdaye2" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g5k0njelul3ne7qldkg2lzueaxnh5t9u3pl93kzxn4', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5as8qyn9vlltvrdlhpvclv6eynveg7rwxf3ycpyg8', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5few0g6h6lq08avaqjqnt22v2qqj4lgy6fqvcccmj', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5elr82vh5p2lehrgq4ha7uvv6d39e93lhxc3r9fu7', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g54mraxvaq3v0l3za4qcnqx6fh2wq062kfmdn8taxm', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g5k0njelul3ne7qldkg2lzueaxnh5t9u3pl93kzxn4", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5as8qyn9vlltvrdlhpvclv6eynveg7rwxf3ycpyg8", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5few0g6h6lq08avaqjqnt22v2qqj4lgy6fqvcccmj", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5elr82vh5p2lehrgq4ha7uvv6d39e93lhxc3r9fu7", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g54mraxvaq3v0l3za4qcnqx6fh2wq062kfmdn8taxm" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez', - "m/44'/144'/1'/0/0": 'rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU', - "m/44'/144'/21234567'/0/0": 'rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP', - "m/44'/144'/2147483646'/0/0": 'r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt', - "m/44'/144'/2147483647'/0/0": 'rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rNK46yNGcZ1pT4Q9iYRv1dsNvN7GiFKxez", + "m/44'/144'/1'/0/0": "rhHRi2G9h27A8FWsQdDzQxbvNHn3F35WWU", + "m/44'/144'/21234567'/0/0": "rfZUx5iK9K8CjvQ8PpHuUyJzCSCg4G5zTP", + "m/44'/144'/2147483646'/0/0": "r3pmAgXwXbjBTPmeCG1f3ujgWPiz863ipt", + "m/44'/144'/2147483647'/0/0": "rM2qxmjWL7LKRJgi929KhkrPff3vTspjBw" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S0185e8795782a4dc1eaf373c0123984bc433b831', - "m/44'/541'/1'/0/0": '1S014e28bfb040e2d9a72462de3459a5b190982bc1', - "m/44'/541'/21234567'/0/0": '1S01485d4b464b91bd3dad378c2cb6927f320cbca1', - "m/44'/541'/2147483646'/0/0": '1S01ca36eb8e169c40cc85ae10b8f00b7ba5be1411', - "m/44'/541'/2147483647'/0/0": '1S01a8afa15ef4672076a7c018d26022f55c93dca1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S0185e8795782a4dc1eaf373c0123984bc433b831", + "m/44'/541'/1'/0/0": "1S014e28bfb040e2d9a72462de3459a5b190982bc1", + "m/44'/541'/21234567'/0/0": "1S01485d4b464b91bd3dad378c2cb6927f320cbca1", + "m/44'/541'/2147483646'/0/0": "1S01ca36eb8e169c40cc85ae10b8f00b7ba5be1411", + "m/44'/541'/2147483647'/0/0": "1S01a8afa15ef4672076a7c018d26022f55c93dca1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_2.ts index 30fb5ac1c..89fe0b5be 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_2.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphrase2: SLIP39TestCaseData = { - id: 'count33_two_passphrase_2', - name: 'count33_two_passphrase_2', - description: '2-of-3 (33 words each) + passphrase_2', - passphrase: 'onekey', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_2", + "name": "count33_two_passphrase_2", + "description": "2-of-3 (33 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '1Bqu3CMfn9VHW2dX6hpFA65zTMQycaa8iR', - "m/44'/0'/1'/0/0": '1DdYQCkci9vXPmujkYV8JjkFNBRmPTtDJx', - "m/44'/0'/21234567'/0/0": '1GwjNzzgHUacw67GBDs1YvVX7DxDvS9zww', - "m/44'/0'/2147483646'/0/0": '13Vtf8JWo2qXSUJh2xqguyn9NLwSxiQ6p8', - "m/44'/0'/2147483647'/0/0": '1NG41SbbLSrSi8sW9s8wBC8ZjzTJgm16oZ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "1Bqu3CMfn9VHW2dX6hpFA65zTMQycaa8iR", + "m/44'/0'/1'/0/0": "1DdYQCkci9vXPmujkYV8JjkFNBRmPTtDJx", + "m/44'/0'/21234567'/0/0": "1GwjNzzgHUacw67GBDs1YvVX7DxDvS9zww", + "m/44'/0'/2147483646'/0/0": "13Vtf8JWo2qXSUJh2xqguyn9NLwSxiQ6p8", + "m/44'/0'/2147483647'/0/0": "1NG41SbbLSrSi8sW9s8wBC8ZjzTJgm16oZ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3Pgd7Qs3oHcCymCsBnX7UwdzaKtoQg3owd', - "m/49'/0'/1'/0/0": '3AaTB9bycqNHrcvfeoS1RhgR4rXqS1koDS', - "m/49'/0'/21234567'/0/0": '3MF9x1WPLvxZr3cDfskeWLHHTw2bsqi5ym', - "m/49'/0'/2147483646'/0/0": '3BgTZAm685HDCiXkkzRtMyE6zQbdmGsdQf', - "m/49'/0'/2147483647'/0/0": '3L2JSvjmTr22n5iLnT68pJCLTQSKgrW39b', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3Pgd7Qs3oHcCymCsBnX7UwdzaKtoQg3owd", + "m/49'/0'/1'/0/0": "3AaTB9bycqNHrcvfeoS1RhgR4rXqS1koDS", + "m/49'/0'/21234567'/0/0": "3MF9x1WPLvxZr3cDfskeWLHHTw2bsqi5ym", + "m/49'/0'/2147483646'/0/0": "3BgTZAm685HDCiXkkzRtMyE6zQbdmGsdQf", + "m/49'/0'/2147483647'/0/0": "3L2JSvjmTr22n5iLnT68pJCLTQSKgrW39b" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1qhk6c3lh4rfxykfd9ru0h2dpwu57yr8u4qk3nx5', - "m/84'/0'/1'/0/0": 'bc1q0rx0lelr5pk6nhqgsd45mywd7fcxjw83v33hyh', - "m/84'/0'/21234567'/0/0": 'bc1q3vg6zc8r3epdm8payww04u3694xlw6dj8apz86', - "m/84'/0'/2147483646'/0/0": 'bc1qn9g8me6ctfsrg3g4xl7pc7p7j29u87zdmkh9sa', - "m/84'/0'/2147483647'/0/0": 'bc1qxka43p3um7cthr2nxwtl9xyvfquqqy8mg8r559', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1qhk6c3lh4rfxykfd9ru0h2dpwu57yr8u4qk3nx5", + "m/84'/0'/1'/0/0": "bc1q0rx0lelr5pk6nhqgsd45mywd7fcxjw83v33hyh", + "m/84'/0'/21234567'/0/0": "bc1q3vg6zc8r3epdm8payww04u3694xlw6dj8apz86", + "m/84'/0'/2147483646'/0/0": "bc1qn9g8me6ctfsrg3g4xl7pc7p7j29u87zdmkh9sa", + "m/84'/0'/2147483647'/0/0": "bc1qxka43p3um7cthr2nxwtl9xyvfquqqy8mg8r559" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1prhx8qn4576xhae66pammvewmjja5y4xylft7takhye0mek69x2esc8eppe', - "m/86'/0'/1'/0/0": 'bc1p46tj5ucwfg6zpqccddrm834pjjsjsvp8ex36hxy4ekf8hrq0r4eqyxxrz0', - "m/86'/0'/21234567'/0/0": 'bc1pcr5x4496s26myvl4ynf7j2l8v8pnemuknlch55l6kqgkpukd4lzq3etnuz', - "m/86'/0'/2147483646'/0/0": - 'bc1pg83y7acu85kwn7ctda5zer8rudj0j6nkvfr4qde95myt8qu8rugsw26rsf', - "m/86'/0'/2147483647'/0/0": - 'bc1prpe0n2gv2pmwtzjsl9tzntychhum7sw40dedxpdu2dlcgj20khzq0d9ykv', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1prhx8qn4576xhae66pammvewmjja5y4xylft7takhye0mek69x2esc8eppe", + "m/86'/0'/1'/0/0": "bc1p46tj5ucwfg6zpqccddrm834pjjsjsvp8ex36hxy4ekf8hrq0r4eqyxxrz0", + "m/86'/0'/21234567'/0/0": "bc1pcr5x4496s26myvl4ynf7j2l8v8pnemuknlch55l6kqgkpukd4lzq3etnuz", + "m/86'/0'/2147483646'/0/0": "bc1pg83y7acu85kwn7ctda5zer8rudj0j6nkvfr4qde95myt8qu8rugsw26rsf", + "m/86'/0'/2147483647'/0/0": "bc1prpe0n2gv2pmwtzjsl9tzntychhum7sw40dedxpdu2dlcgj20khzq0d9ykv" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'DRxLCdH1mLgy4khG93ShPj5E4H2EFvcyQ5', - "m/44'/3'/1'/0/0": 'D7paf9QnrGM1Njj31txEmL1z4SHXyPCtGi', - "m/44'/3'/21234567'/0/0": 'D8piZgz2CYVRrMBZ7ZCDWe1ETQNqHyWgCv', - "m/44'/3'/2147483646'/0/0": 'D6MK7582Ums8zNXuZncxcFLbVSgwS21Esj', - "m/44'/3'/2147483647'/0/0": 'DKRM1YbPXGVu7QhogRP19vQHn4tXaDv4n1', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "DRxLCdH1mLgy4khG93ShPj5E4H2EFvcyQ5", + "m/44'/3'/1'/0/0": "D7paf9QnrGM1Njj31txEmL1z4SHXyPCtGi", + "m/44'/3'/21234567'/0/0": "D8piZgz2CYVRrMBZ7ZCDWe1ETQNqHyWgCv", + "m/44'/3'/2147483646'/0/0": "D6MK7582Ums8zNXuZncxcFLbVSgwS21Esj", + "m/44'/3'/2147483647'/0/0": "DKRM1YbPXGVu7QhogRP19vQHn4tXaDv4n1" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qq7weldnqgxsjzm45qys8zpt55e2ffgtcq3t2az7m0', - "m/44'/145'/1'/0/0": 'bitcoincash:qqajy2c2p8ly900wx3cz89m0p9stk8gq7vl3qwqe4y', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qzntwffjypkae7tnwqpgl90z3sevx2fvrujz9ahhrj', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qrmxpsm3u070u0c8z4tu5a0c62cl306qksz278jrww', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qpzyse2z8pjs0z2vzag3nuchqy9ku39qvcpsl2anwk', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qq7weldnqgxsjzm45qys8zpt55e2ffgtcq3t2az7m0", + "m/44'/145'/1'/0/0": "bitcoincash:qqajy2c2p8ly900wx3cz89m0p9stk8gq7vl3qwqe4y", + "m/44'/145'/21234567'/0/0": "bitcoincash:qzntwffjypkae7tnwqpgl90z3sevx2fvrujz9ahhrj", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qrmxpsm3u070u0c8z4tu5a0c62cl306qksz278jrww", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qpzyse2z8pjs0z2vzag3nuchqy9ku39qvcpsl2anwk" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LVBVQKZbhik7LtniPMrKUTCQZmadSfyE9d', - "m/44'/2'/1'/0/0": 'LTcfpbj8mSkB4rni7MHbM1AVTvFxFgVYtJ', - "m/44'/2'/21234567'/0/0": 'Lf1VVF2sHcaW9Y2H1rGiUeci48KaaBTMdj', - "m/44'/2'/2147483646'/0/0": 'LNKnMYU3e3g2Bp9Gc5JBXqmeFEFaSAUh8Z', - "m/44'/2'/2147483647'/0/0": 'LeuXxBgMsuLJ1x9DhosTwLuvsXfeyWB3tY', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LVBVQKZbhik7LtniPMrKUTCQZmadSfyE9d", + "m/44'/2'/1'/0/0": "LTcfpbj8mSkB4rni7MHbM1AVTvFxFgVYtJ", + "m/44'/2'/21234567'/0/0": "Lf1VVF2sHcaW9Y2H1rGiUeci48KaaBTMdj", + "m/44'/2'/2147483646'/0/0": "LNKnMYU3e3g2Bp9Gc5JBXqmeFEFaSAUh8Z", + "m/44'/2'/2147483647'/0/0": "LeuXxBgMsuLJ1x9DhosTwLuvsXfeyWB3tY" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MDNu1FewRMbhn1jczS2G7RcF5vZPzTmVzL', - "m/49'/2'/1'/0/0": 'MFyZbvo2qvhcNN6nXnZqHQv7sDrXq98M8j', - "m/49'/2'/21234567'/0/0": 'MTVUTEeptUgJmdkApPKzriMKpNei9p82eV', - "m/49'/2'/2147483646'/0/0": 'M9zJEhAsaxCTEh5q9teZaDa8oW1Jw8xLQm', - "m/49'/2'/2147483647'/0/0": 'MKr54XJtQz5ichZc4H4od1TyoaDSMgP1qz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MDNu1FewRMbhn1jczS2G7RcF5vZPzTmVzL", + "m/49'/2'/1'/0/0": "MFyZbvo2qvhcNN6nXnZqHQv7sDrXq98M8j", + "m/49'/2'/21234567'/0/0": "MTVUTEeptUgJmdkApPKzriMKpNei9p82eV", + "m/49'/2'/2147483646'/0/0": "M9zJEhAsaxCTEh5q9teZaDa8oW1Jw8xLQm", + "m/49'/2'/2147483647'/0/0": "MKr54XJtQz5ichZc4H4od1TyoaDSMgP1qz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1q8f2zt8j35u6vny69mxwtm37tdcdvjlgjp0l67g', - "m/84'/2'/1'/0/0": 'ltc1q8j6e2m9nl6x2k77tvplg3acncmfhufuzl2lv72', - "m/84'/2'/21234567'/0/0": 'ltc1qqwfjc7eklnsekutek859d27mtum5srwy5c0yew', - "m/84'/2'/2147483646'/0/0": 'ltc1qvu3nrwt2fr7m3sunt0rf6nmnlxqqn782qcqewq', - "m/84'/2'/2147483647'/0/0": 'ltc1qwqa44me7gcj6842tfgrlyq8nnxeuu2q0r7ehuu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1q8f2zt8j35u6vny69mxwtm37tdcdvjlgjp0l67g", + "m/84'/2'/1'/0/0": "ltc1q8j6e2m9nl6x2k77tvplg3acncmfhufuzl2lv72", + "m/84'/2'/21234567'/0/0": "ltc1qqwfjc7eklnsekutek859d27mtum5srwy5c0yew", + "m/84'/2'/2147483646'/0/0": "ltc1qvu3nrwt2fr7m3sunt0rf6nmnlxqqn782qcqewq", + "m/84'/2'/2147483647'/0/0": "ltc1qwqa44me7gcj6842tfgrlyq8nnxeuu2q0r7ehuu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NLcXiEZoJ3uhhTEEQHh7CgRorQVjbg38JQ', - "m/44'/1900'/1'/0/0": 'NUchPgHP3qyvR36KkA4XGRy25G83bCHaJs', - "m/44'/1900'/21234567'/0/0": 'NRymY6CLqmJLWumLJ1JWCAiLpaj1o4hUAd', - "m/44'/1900'/2147483646'/0/0": 'NWduiBLt44k8HbEbwmC6qnUgHb9bGeKYtV', - "m/44'/1900'/2147483647'/0/0": 'NiFGtnV5ph2G5MmNyisaJBM4QuYuaULHLp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NLcXiEZoJ3uhhTEEQHh7CgRorQVjbg38JQ", + "m/44'/1900'/1'/0/0": "NUchPgHP3qyvR36KkA4XGRy25G83bCHaJs", + "m/44'/1900'/21234567'/0/0": "NRymY6CLqmJLWumLJ1JWCAiLpaj1o4hUAd", + "m/44'/1900'/2147483646'/0/0": "NWduiBLt44k8HbEbwmC6qnUgHb9bGeKYtV", + "m/44'/1900'/2147483647'/0/0": "NiFGtnV5ph2G5MmNyisaJBM4QuYuaULHLp" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xA2dA93334273786b9D3A72238ebC41C4c7661003', - "m/44'/60'/1'/0/0": '0xd1dEd8930b24Fa5E329e26a5416E4AEfE0e6F8A8', - "m/44'/60'/21234567'/0/0": '0x877e52DA4908e0FeFC427977Cde4513D53B7eaF6', - "m/44'/60'/2147483646'/0/0": '0xB7b411f3bEB57C4c78B957c8a680Bab054EeEA11', - "m/44'/60'/2147483647'/0/0": '0x39d032e430beF0e1E189D4BA13E32504230Aa498', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xA2dA93334273786b9D3A72238ebC41C4c7661003", + "m/44'/60'/1'/0/0": "0xd1dEd8930b24Fa5E329e26a5416E4AEfE0e6F8A8", + "m/44'/60'/21234567'/0/0": "0x877e52DA4908e0FeFC427977Cde4513D53B7eaF6", + "m/44'/60'/2147483646'/0/0": "0xB7b411f3bEB57C4c78B957c8a680Bab054EeEA11", + "m/44'/60'/2147483647'/0/0": "0x39d032e430beF0e1E189D4BA13E32504230Aa498" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0x6462ff0a9178589bE44EC9126F51A8C78CDF9F5B', - "m/44'/61'/1'/0/0": '0x1B16eDc9FBE9B03B2645daA36D8a3f7BF6CFa166', - "m/44'/61'/21234567'/0/0": '0x08D43CC54B0bbD9f6123D1B4ab094e55CD4dE717', - "m/44'/61'/2147483646'/0/0": '0x13952E645132472EA731719453061258142B251D', - "m/44'/61'/2147483647'/0/0": '0x500AbC8924b24afFe6EfB76B711aF982C0D7b6C0', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0x6462ff0a9178589bE44EC9126F51A8C78CDF9F5B", + "m/44'/61'/1'/0/0": "0x1B16eDc9FBE9B03B2645daA36D8a3f7BF6CFa166", + "m/44'/61'/21234567'/0/0": "0x08D43CC54B0bbD9f6123D1B4ab094e55CD4dE717", + "m/44'/61'/2147483646'/0/0": "0x13952E645132472EA731719453061258142B251D", + "m/44'/61'/2147483647'/0/0": "0x500AbC8924b24afFe6EfB76B711aF982C0D7b6C0" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1zcz3lck070hdnva598lf9tf6rqshwz8z7twnur', - "m/44'/118'/1'/0/0": 'cosmos1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdxf5vqw', - "m/44'/118'/21234567'/0/0": 'cosmos1fa99rd2qzptekhxkg5afxlgddv8652gd57rvvy', - "m/44'/118'/2147483646'/0/0": 'cosmos1apdm5sn7mkx5n45dqeaazz75svjlt6szvgdsl0', - "m/44'/118'/2147483647'/0/0": 'cosmos1f5jdlgfrf06kcyhc0gkv372kmxan2xz9mgzk0j', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1zcz3lck070hdnva598lf9tf6rqshwz8z7twnur", + "m/44'/118'/1'/0/0": "cosmos1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdxf5vqw", + "m/44'/118'/21234567'/0/0": "cosmos1fa99rd2qzptekhxkg5afxlgddv8652gd57rvvy", + "m/44'/118'/2147483646'/0/0": "cosmos1apdm5sn7mkx5n45dqeaazz75svjlt6szvgdsl0", + "m/44'/118'/2147483647'/0/0": "cosmos1f5jdlgfrf06kcyhc0gkv372kmxan2xz9mgzk0j" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1zcz3lck070hdnva598lf9tf6rqshwz8znsr59e', - "m/44'/118'/1'/0/0": 'akash1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdtjete5', - "m/44'/118'/21234567'/0/0": 'akash1fa99rd2qzptekhxkg5afxlgddv8652gde9wt47', - "m/44'/118'/2147483646'/0/0": 'akash1apdm5sn7mkx5n45dqeaazz75svjlt6szpnqhx4', - "m/44'/118'/2147483647'/0/0": 'akash1f5jdlgfrf06kcyhc0gkv372kmxan2xz9kn03kg', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1zcz3lck070hdnva598lf9tf6rqshwz8znsr59e", + "m/44'/118'/1'/0/0": "akash1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdtjete5", + "m/44'/118'/21234567'/0/0": "akash1fa99rd2qzptekhxkg5afxlgddv8652gde9wt47", + "m/44'/118'/2147483646'/0/0": "akash1apdm5sn7mkx5n45dqeaazz75svjlt6szpnqhx4", + "m/44'/118'/2147483647'/0/0": "akash1f5jdlgfrf06kcyhc0gkv372kmxan2xz9kn03kg" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1zcz3lck070hdnva598lf9tf6rqshwz8zxsx2qj', - "m/44'/118'/1'/0/0": 'cro1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd7ju4ul', - "m/44'/118'/21234567'/0/0": 'cro1fa99rd2qzptekhxkg5afxlgddv8652gdv9t4s4', - "m/44'/118'/2147483646'/0/0": 'cro1apdm5sn7mkx5n45dqeaazz75svjlt6sz5n9fr7', - "m/44'/118'/2147483647'/0/0": 'cro1f5jdlgfrf06kcyhc0gkv372kmxan2xz9rn20nr', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1zcz3lck070hdnva598lf9tf6rqshwz8zxsx2qj", + "m/44'/118'/1'/0/0": "cro1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd7ju4ul", + "m/44'/118'/21234567'/0/0": "cro1fa99rd2qzptekhxkg5afxlgddv8652gdv9t4s4", + "m/44'/118'/2147483646'/0/0": "cro1apdm5sn7mkx5n45dqeaazz75svjlt6sz5n9fr7", + "m/44'/118'/2147483647'/0/0": "cro1f5jdlgfrf06kcyhc0gkv372kmxan2xz9rn20nr" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1zcz3lck070hdnva598lf9tf6rqshwz8zdk8h75', - "m/44'/118'/1'/0/0": 'fetch1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd45agze', - "m/44'/118'/21234567'/0/0": 'fetch1fa99rd2qzptekhxkg5afxlgddv8652gd8r2gwn', - "m/44'/118'/2147483646'/0/0": 'fetch1apdm5sn7mkx5n45dqeaazz75svjlt6szl4y5ac', - "m/44'/118'/2147483647'/0/0": 'fetch1f5jdlgfrf06kcyhc0gkv372kmxan2xz9g4tjd9', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1zcz3lck070hdnva598lf9tf6rqshwz8zdk8h75", + "m/44'/118'/1'/0/0": "fetch1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgd45agze", + "m/44'/118'/21234567'/0/0": "fetch1fa99rd2qzptekhxkg5afxlgddv8652gd8r2gwn", + "m/44'/118'/2147483646'/0/0": "fetch1apdm5sn7mkx5n45dqeaazz75svjlt6szl4y5ac", + "m/44'/118'/2147483647'/0/0": "fetch1f5jdlgfrf06kcyhc0gkv372kmxan2xz9g4tjd9" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1zcz3lck070hdnva598lf9tf6rqshwz8zksar23', - "m/44'/118'/1'/0/0": 'osmo1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdwj8uku', - "m/44'/118'/21234567'/0/0": 'osmo1fa99rd2qzptekhxkg5afxlgddv8652gdu9su6k', - "m/44'/118'/2147483646'/0/0": 'osmo1apdm5sn7mkx5n45dqeaazz75svjlt6szyn7qfa', - "m/44'/118'/2147483647'/0/0": 'osmo1f5jdlgfrf06kcyhc0gkv372kmxan2xz9nn3xeq', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1zcz3lck070hdnva598lf9tf6rqshwz8zksar23", + "m/44'/118'/1'/0/0": "osmo1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdwj8uku", + "m/44'/118'/21234567'/0/0": "osmo1fa99rd2qzptekhxkg5afxlgddv8652gdu9su6k", + "m/44'/118'/2147483646'/0/0": "osmo1apdm5sn7mkx5n45dqeaazz75svjlt6szyn7qfa", + "m/44'/118'/2147483647'/0/0": "osmo1f5jdlgfrf06kcyhc0gkv372kmxan2xz9nn3xeq" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1zcz3lck070hdnva598lf9tf6rqshwz8zgedgml', - "m/44'/118'/1'/0/0": 'juno1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdsmhh8j', - "m/44'/118'/21234567'/0/0": 'juno1fa99rd2qzptekhxkg5afxlgddv8652gdzvqhtc', - "m/44'/118'/2147483646'/0/0": 'juno1apdm5sn7mkx5n45dqeaazz75svjlt6sz66wtcn', - "m/44'/118'/2147483647'/0/0": 'juno1f5jdlgfrf06kcyhc0gkv372kmxan2xz9d6pdgw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1zcz3lck070hdnva598lf9tf6rqshwz8zgedgml", + "m/44'/118'/1'/0/0": "juno1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdsmhh8j", + "m/44'/118'/21234567'/0/0": "juno1fa99rd2qzptekhxkg5afxlgddv8652gdzvqhtc", + "m/44'/118'/2147483646'/0/0": "juno1apdm5sn7mkx5n45dqeaazz75svjlt6sz66wtcn", + "m/44'/118'/2147483647'/0/0": "juno1f5jdlgfrf06kcyhc0gkv372kmxan2xz9d6pdgw" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1zcz3lck070hdnva598lf9tf6rqshwz8zc05n7r', - "m/44'/118'/1'/0/0": 'terra1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdqdwvzw', - "m/44'/118'/21234567'/0/0": 'terra1fa99rd2qzptekhxkg5afxlgddv8652gdj6evwy', - "m/44'/118'/2147483646'/0/0": 'terra1apdm5sn7mkx5n45dqeaazz75svjlt6sz2vhsa0', - "m/44'/118'/2147483647'/0/0": 'terra1f5jdlgfrf06kcyhc0gkv372kmxan2xz9avckdj', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1zcz3lck070hdnva598lf9tf6rqshwz8zc05n7r", + "m/44'/118'/1'/0/0": "terra1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdqdwvzw", + "m/44'/118'/21234567'/0/0": "terra1fa99rd2qzptekhxkg5afxlgddv8652gdj6evwy", + "m/44'/118'/2147483646'/0/0": "terra1apdm5sn7mkx5n45dqeaazz75svjlt6sz2vhsa0", + "m/44'/118'/2147483647'/0/0": "terra1f5jdlgfrf06kcyhc0gkv372kmxan2xz9avckdj" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1zcz3lck070hdnva598lf9tf6rqshwz8zuw66pl', - "m/44'/118'/1'/0/0": 'secret1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdyvq9aj', - "m/44'/118'/21234567'/0/0": 'secret1fa99rd2qzptekhxkg5afxlgddv8652gdkmh93c', - "m/44'/118'/2147483646'/0/0": 'secret1apdm5sn7mkx5n45dqeaazz75svjlt6szwdeezn', - "m/44'/118'/2147483647'/0/0": 'secret1f5jdlgfrf06kcyhc0gkv372kmxan2xz9edkljw', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1zcz3lck070hdnva598lf9tf6rqshwz8zuw66pl", + "m/44'/118'/1'/0/0": "secret1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdyvq9aj", + "m/44'/118'/21234567'/0/0": "secret1fa99rd2qzptekhxkg5afxlgddv8652gdkmh93c", + "m/44'/118'/2147483646'/0/0": "secret1apdm5sn7mkx5n45dqeaazz75svjlt6szwdeezn", + "m/44'/118'/2147483647'/0/0": "secret1f5jdlgfrf06kcyhc0gkv372kmxan2xz9edkljw" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1zcz3lck070hdnva598lf9tf6rqshwz8z0plrxw', - "m/44'/118'/1'/0/0": 'celestia1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdhr9u6r', - "m/44'/118'/21234567'/0/0": 'celestia1fa99rd2qzptekhxkg5afxlgddv8652gd95jukf', - "m/44'/118'/2147483646'/0/0": 'celestia1apdm5sn7mkx5n45dqeaazz75svjlt6szazuq9z', - "m/44'/118'/2147483647'/0/0": 'celestia1f5jdlgfrf06kcyhc0gkv372kmxan2xz92znx4l', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1zcz3lck070hdnva598lf9tf6rqshwz8z0plrxw", + "m/44'/118'/1'/0/0": "celestia1h2jf5y9jw5wgwcz5zdcft9jmrc9xzhgdhr9u6r", + "m/44'/118'/21234567'/0/0": "celestia1fa99rd2qzptekhxkg5afxlgddv8652gd95jukf", + "m/44'/118'/2147483646'/0/0": "celestia1apdm5sn7mkx5n45dqeaazz75svjlt6szazuq9z", + "m/44'/118'/2147483647'/0/0": "celestia1f5jdlgfrf06kcyhc0gkv372kmxan2xz92znx4l" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x4aa8506d1a1a16819023d92d23bb6e503a984f51b1b452e2c5de9ee4f98e3fad', - "m/44'/784'/1'/0'/0'": '0xedc61d7fa1c914dadae378db78bec735e0f0991cbec5a36054e693c216c5e4d3', - "m/44'/784'/21234567'/0'/0'": - '0xae37d7eccff7433eed26c0a68c87504bef657486b30736dbdf687136df9d07cb', - "m/44'/784'/2147483646'/0'/0'": - '0x51a16dc83c286c62ef6650f3a30d812fda136e41579ded5afb5bcd0c3bf1223e', - "m/44'/784'/2147483647'/0'/0'": - '0x3d908bc03752c698c356cc8e348bcce90c2cec9854491216fae3b982030b4e2d', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x4aa8506d1a1a16819023d92d23bb6e503a984f51b1b452e2c5de9ee4f98e3fad", + "m/44'/784'/1'/0'/0'": "0xedc61d7fa1c914dadae378db78bec735e0f0991cbec5a36054e693c216c5e4d3", + "m/44'/784'/21234567'/0'/0'": "0xae37d7eccff7433eed26c0a68c87504bef657486b30736dbdf687136df9d07cb", + "m/44'/784'/2147483646'/0'/0'": "0x51a16dc83c286c62ef6650f3a30d812fda136e41579ded5afb5bcd0c3bf1223e", + "m/44'/784'/2147483647'/0'/0'": "0x3d908bc03752c698c356cc8e348bcce90c2cec9854491216fae3b982030b4e2d" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw', - "m/44'/144'/1'/0/0": 'rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7', - "m/44'/144'/21234567'/0/0": 'rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe', - "m/44'/144'/2147483646'/0/0": 'rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN', - "m/44'/144'/2147483647'/0/0": 'rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw", + "m/44'/144'/1'/0/0": "rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7", + "m/44'/144'/21234567'/0/0": "rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe", + "m/44'/144'/2147483646'/0/0": "rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN", + "m/44'/144'/2147483647'/0/0": "rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFCf2f9f2cc4ea7e96cadab5464ed00550cf9071b5738ac2664d3b7bbcd41c24697573b', - "m/44'/728'/1'/0'/0'": - 'BFCefd4c2c9f59715d92961b7c6760647facef593c956912ddb0627127f85aedad21051', - "m/44'/728'/21234567'/0'/0'": - 'BFC588d10bdf8ca2eee50fef85d00bdb4d8087dc10a15d2295ec0e3b4d64d7ca5fac7e9', - "m/44'/728'/2147483646'/0'/0'": - 'BFC75b1422218dbcc8bf8c9cbaabc9293bf2c64b4174952f2021ee96b62a89b53e17c39', - "m/44'/728'/2147483647'/0'/0'": - 'BFC27c940550c453c2b13cd68e2f949606552dfdc2756f5393ff4a71a7e08ec8d8f5580', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFCf2f9f2cc4ea7e96cadab5464ed00550cf9071b5738ac2664d3b7bbcd41c24697573b", + "m/44'/728'/1'/0'/0'": "BFCefd4c2c9f59715d92961b7c6760647facef593c956912ddb0627127f85aedad21051", + "m/44'/728'/21234567'/0'/0'": "BFC588d10bdf8ca2eee50fef85d00bdb4d8087dc10a15d2295ec0e3b4d64d7ca5fac7e9", + "m/44'/728'/2147483646'/0'/0'": "BFC75b1422218dbcc8bf8c9cbaabc9293bf2c64b4174952f2021ee96b62a89b53e17c39", + "m/44'/728'/2147483647'/0'/0'": "BFC27c940550c453c2b13cd68e2f949606552dfdc2756f5393ff4a71a7e08ec8d8f5580" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '1HuyB6hEbaPNBQMjBZs6g42YW8oVb1adS5F6TUE4BFYNR', - "m/44'/1234'/1'/0/0": '18DdeSg1jvHHADHKaghmhYoAz9HpjTnu6BmRhzsyxVGot', - "m/44'/1234'/21234567'/0/0": '1HpsUXQPS7EjcCUhNpFAX13SvBCLAB6e9kDFsZYYKCUcH', - "m/44'/1234'/2147483646'/0/0": '18cTjpGUdK6yd8GoUxn5KmBuZwSeGfKGkTzwtqNvS69tc', - "m/44'/1234'/2147483647'/0/0": '1D8UoR4pg4RBAu7xU64GLKYjWMnX3DkuGFmhBr2WLKCnT', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "1HuyB6hEbaPNBQMjBZs6g42YW8oVb1adS5F6TUE4BFYNR", + "m/44'/1234'/1'/0/0": "18DdeSg1jvHHADHKaghmhYoAz9HpjTnu6BmRhzsyxVGot", + "m/44'/1234'/21234567'/0/0": "1HpsUXQPS7EjcCUhNpFAX13SvBCLAB6e9kDFsZYYKCUcH", + "m/44'/1234'/2147483646'/0/0": "18cTjpGUdK6yd8GoUxn5KmBuZwSeGfKGkTzwtqNvS69tc", + "m/44'/1234'/2147483647'/0/0": "1D8UoR4pg4RBAu7xU64GLKYjWMnX3DkuGFmhBr2WLKCnT" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'RUEOGXSEV6ONSSZ4GWO52E2YLWWDV2KY5LWPYXV35MGUWFM2BY66K2HUFM', - "m/44'/283'/1'/0'/0'": 'U2CZDTOP6HKJOMYEWBSHY2DEAMQ6ZQTXBN2GQS65UNLLQON72YGUKS7RZI', - "m/44'/283'/21234567'/0'/0'": 'SCJLVWC3WQA3SA7S3PSAEWXEC5BIHW3YOW6Y2GOGRSSK37QR2VF326TDIA', - "m/44'/283'/2147483646'/0'/0'": - 'BVRFZVODKMXRZA55EWJ6JL6WZM5DABYMHO3KSSIEHV7WDTKGBJ4QIQ3I4U', - "m/44'/283'/2147483647'/0'/0'": - 'QMND2ZXT7XVCHJ2DKRHPVNXI2FAJRVF57VU4UD2K6NJC7L6UBFYYDSCE24', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "RUEOGXSEV6ONSSZ4GWO52E2YLWWDV2KY5LWPYXV35MGUWFM2BY66K2HUFM", + "m/44'/283'/1'/0'/0'": "U2CZDTOP6HKJOMYEWBSHY2DEAMQ6ZQTXBN2GQS65UNLLQON72YGUKS7RZI", + "m/44'/283'/21234567'/0'/0'": "SCJLVWC3WQA3SA7S3PSAEWXEC5BIHW3YOW6Y2GOGRSSK37QR2VF326TDIA", + "m/44'/283'/2147483646'/0'/0'": "BVRFZVODKMXRZA55EWJ6JL6WZM5DABYMHO3KSSIEHV7WDTKGBJ4QIQ3I4U", + "m/44'/283'/2147483647'/0'/0'": "QMND2ZXT7XVCHJ2DKRHPVNXI2FAJRVF57VU4UD2K6NJC7L6UBFYYDSCE24" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQB-M9P_vBLEEK1SaFsyMr0Lfd1KQhO-bUEHvwFKAIcbR5R9', - "m/44'/607'/1'": 'UQCMQvqrpPJ00ZysP3H5OOzI7aJ0sVjN-FRdGf-gJ7ZwBL4e', - "m/44'/607'/21234567'": 'UQCvXgzm2Mki-_WDZKr-1TcY8G2pYcSgkkIRZmUeeTd_fsdS', - "m/44'/607'/2147483646'": 'UQDT3-KWpdG4ZfcBLxX0EkYomlipaNaFSHxJRxUPuaxjrToe', - "m/44'/607'/2147483647'": 'UQCVbmRRcTUABs_4pGi5Xb2lXcWJJ3D8aF9L70thGZclyGDx', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQB-M9P_vBLEEK1SaFsyMr0Lfd1KQhO-bUEHvwFKAIcbR5R9", + "m/44'/607'/1'": "UQCMQvqrpPJ00ZysP3H5OOzI7aJ0sVjN-FRdGf-gJ7ZwBL4e", + "m/44'/607'/21234567'": "UQCvXgzm2Mki-_WDZKr-1TcY8G2pYcSgkkIRZmUeeTd_fsdS", + "m/44'/607'/2147483646'": "UQDT3-KWpdG4ZfcBLxX0EkYomlipaNaFSHxJRxUPuaxjrToe", + "m/44'/607'/2147483647'": "UQCVbmRRcTUABs_4pGi5Xb2lXcWJJ3D8aF9L70thGZclyGDx" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyq2syfj4emaxrh06c4ag8fl8r9svgauxcxq6a3exj', - "m/44'/309'/1'/0/0": 'ckb1qyq9y0m07xmrax7ttrq6lxg3jlwr4lpyj8tqukl5h8', - "m/44'/309'/21234567'/0/0": 'ckb1qyq8lmudxmj8mrdzkauyrjgsjgqv86nhd60qkhfkve', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqp8lysyc4z92y76m7mrhw8hlpt09d0egrqrvuthj', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqgfyt79l54xvnqy5rg6xv6f09frktvtq5suqpcrt', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyq2syfj4emaxrh06c4ag8fl8r9svgauxcxq6a3exj", + "m/44'/309'/1'/0/0": "ckb1qyq9y0m07xmrax7ttrq6lxg3jlwr4lpyj8tqukl5h8", + "m/44'/309'/21234567'/0/0": "ckb1qyq8lmudxmj8mrdzkauyrjgsjgqv86nhd60qkhfkve", + "m/44'/309'/2147483646'/0/0": "ckb1qyqp8lysyc4z92y76m7mrhw8hlpt09d0egrqrvuthj", + "m/44'/309'/2147483647'/0/0": "ckb1qyqgfyt79l54xvnqy5rg6xv6f09frktvtq5suqpcrt" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g53qt77cmy2pdfapuqaf4cu3u48eqdrs8mfk8ut72t', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5vm70nqxfehzq4xk3tazjgzt9kass2jrp30e6ezz9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5efjspduaswvgkum83kcelx64xz0k9zasy32h4568', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5mwvck36z0mkdd0y9rxvghk4vluwrl4q8f9ssj6nh', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g59akjghlm2exqu5crdhpnqzrcqn78eaze5ev5lemy', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g53qt77cmy2pdfapuqaf4cu3u48eqdrs8mfk8ut72t", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5vm70nqxfehzq4xk3tazjgzt9kass2jrp30e6ezz9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5efjspduaswvgkum83kcelx64xz0k9zasy32h4568", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5mwvck36z0mkdd0y9rxvghk4vluwrl4q8f9ssj6nh", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g59akjghlm2exqu5crdhpnqzrcqn78eaze5ev5lemy" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw', - "m/44'/144'/1'/0/0": 'rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7', - "m/44'/144'/21234567'/0/0": 'rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe', - "m/44'/144'/2147483646'/0/0": 'rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN', - "m/44'/144'/2147483647'/0/0": 'rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "rhYSsU4QrGstnSVRYY3sV6R6VwDuW17rfw", + "m/44'/144'/1'/0/0": "rEvSmAB6mD7gEmJmtWSbUKQzr3GxHRrcQ7", + "m/44'/144'/21234567'/0/0": "rE1KDstfVTFopLt961G7PTWRgb3qFMWPFe", + "m/44'/144'/2147483646'/0/0": "rfJcBWjkDPx4WBX3zLktcBwWcyQLJwTptN", + "m/44'/144'/2147483647'/0/0": "rszJBA3N1fXb3BbbWv2oNQtjTED1MgkmhM" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01eb2f17b9308f54a6226709d13e7072c48c5ca1', - "m/44'/541'/1'/0/0": '1S01df5c1fd8407f5ca2f1d80005c3f9c1862a0d11', - "m/44'/541'/21234567'/0/0": '1S0157b70bd5dff421b0380cf438ba6028c42cb2a1', - "m/44'/541'/2147483646'/0/0": '1S01a1a9bb700a65b06e3ffd891b7092fde616a0d1', - "m/44'/541'/2147483647'/0/0": '1S016f9e9b00df4c62b6cfbf24544153fa574462c1', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01eb2f17b9308f54a6226709d13e7072c48c5ca1", + "m/44'/541'/1'/0/0": "1S01df5c1fd8407f5ca2f1d80005c3f9c1862a0d11", + "m/44'/541'/21234567'/0/0": "1S0157b70bd5dff421b0380cf438ba6028c42cb2a1", + "m/44'/541'/2147483646'/0/0": "1S01a1a9bb700a65b06e3ffd891b7092fde616a0d1", + "m/44'/541'/2147483647'/0/0": "1S016f9e9b00df4c62b6cfbf24544153fa574462c1" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_empty.ts index 4e8826ef9..89e121f93 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/count33_two/passphrase_empty.ts @@ -1,490 +1,478 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphraseEmpty: SLIP39TestCaseData = { - id: 'count33_two_passphrase_empty', - name: 'count33_two_passphrase_empty', - description: '2-of-3 (33 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_empty", + "name": "count33_two_passphrase_empty", + "description": "2-of-3 (33 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetAddress', - name: 'btcGetAddress-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedAddress: { - "m/44'/0'/0'/0/0": '17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE', - "m/44'/0'/1'/0/0": '1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY', - "m/44'/0'/21234567'/0/0": '17m7XBMA51rMoquVjWigH6u7VoDsakmtwG', - "m/44'/0'/2147483646'/0/0": '1VXLBKYngyZR1m1TajtG4soon5VWGdVek', - "m/44'/0'/2147483647'/0/0": '198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedAddress": { + "m/44'/0'/0'/0/0": "17oDhcJaT46RkfLBFhtUvD1sQ5hgPsB9bE", + "m/44'/0'/1'/0/0": "1MtdrucTTCbua3D4rEvCAyddW6RjpG7xaY", + "m/44'/0'/21234567'/0/0": "17m7XBMA51rMoquVjWigH6u7VoDsakmtwG", + "m/44'/0'/2147483646'/0/0": "1VXLBKYngyZR1m1TajtG4soon5VWGdVek", + "m/44'/0'/2147483647'/0/0": "198q5cDix2mtsMbZyLGX5QPDx4LSaiZiUJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/0'/0'/0/0": '3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5', - "m/49'/0'/1'/0/0": '33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6', - "m/49'/0'/21234567'/0/0": '3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G', - "m/49'/0'/2147483646'/0/0": '3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr', - "m/49'/0'/2147483647'/0/0": '3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/0'/0'/0/0": "3CQp5hDNpjoP7mTQQsTnkfhxqF33jMCxn5", + "m/49'/0'/1'/0/0": "33PthJ62Hw6SmXk91p8SBVugV912Fa3eH6", + "m/49'/0'/21234567'/0/0": "3JoEBLrHUfmFEfSJkYPMddtgaokSEgRM1G", + "m/49'/0'/2147483646'/0/0": "3A7WmXYGYRaJKEamxZPw25pbMKwcYbDbHr", + "m/49'/0'/2147483647'/0/0": "3HL1zEcw3i8eMec6Y1rg1BQafDNmoxwZUp" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/0'/0'/0/0": 'bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3', - "m/84'/0'/1'/0/0": 'bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0', - "m/84'/0'/21234567'/0/0": 'bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2', - "m/84'/0'/2147483646'/0/0": 'bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd', - "m/84'/0'/2147483647'/0/0": 'bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/0'/0'/0/0": "bc1q8hstcwnklw255cag04rkw6vjuh7yzttue9f2v3", + "m/84'/0'/1'/0/0": "bc1q3faj4ueavs2vs8wmsj2j6qpfnlxeg28a2cn4t0", + "m/84'/0'/21234567'/0/0": "bc1qfpc6y2fve5calvwpxpdrymjvvgm7g0wpmlvet2", + "m/84'/0'/2147483646'/0/0": "bc1qmjcm5zd2gfdnhvwjxtrcrtxmyrz9u6hkk338zd", + "m/84'/0'/2147483647'/0/0": "bc1qpknhjm8qm4755gdjhdaf5qmjfw583nwu5l04j4" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedAddress: { - "m/86'/0'/0'/0/0": 'bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq', - "m/86'/0'/1'/0/0": 'bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm', - "m/86'/0'/21234567'/0/0": 'bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy', - "m/86'/0'/2147483646'/0/0": - 'bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn', - "m/86'/0'/2147483647'/0/0": - 'bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedAddress": { + "m/86'/0'/0'/0/0": "bc1pqwletew6d9d9uh75x80dazaze8qc4kk95m9x5wpyy3r34cckuc5qy4vhdq", + "m/86'/0'/1'/0/0": "bc1px00yyg5cxyea0tw3dp06phv7t95vqlgv2ez6vy87ctw9yy5prm0snssvcm", + "m/86'/0'/21234567'/0/0": "bc1ph2kppw7al75ptgl83yt67094h03t8j984nhaqfuxmrkea73rn4lq20cxjy", + "m/86'/0'/2147483646'/0/0": "bc1pkxwaeh965hsc5sdt6fs80gyxzhcgd3krvt50kan52pdhajptcmps58qnwn", + "m/86'/0'/2147483647'/0/0": "bc1pc9vn2zq35pr4l73wxv7jktshkhytuywe9tckczluquxzew6x496smudphz" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Doge', - params: { - path: "m/44'/3'/$$INDEX$$'/0/0", - coin: 'doge', - }, - expectedAddress: { - "m/44'/3'/0'/0/0": 'D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK', - "m/44'/3'/1'/0/0": 'D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ', - "m/44'/3'/21234567'/0/0": 'DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W', - "m/44'/3'/2147483646'/0/0": 'DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut', - "m/44'/3'/2147483647'/0/0": 'DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Doge", + "params": { + "path": "m/44'/3'/$$INDEX$$'/0/0", + "coin": "doge" + }, + "expectedAddress": { + "m/44'/3'/0'/0/0": "D5BTHZKzEetc6rzSCBeLuybR4zJBYYNMXK", + "m/44'/3'/1'/0/0": "D5QKqmLRGm9VbCBMo1k3rbPvhCwyu9iDoJ", + "m/44'/3'/21234567'/0/0": "DC8NRqPfH7dptW5eAD4bf656ATbJnCo43W", + "m/44'/3'/2147483646'/0/0": "DQhSSohcxFjvBaFzVW4m2moaFv8cMkB2ut", + "m/44'/3'/2147483647'/0/0": "DGcxz7TUvEH1VXmHeziRa5R4Amth8sYst5" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-BCH', - params: { - path: "m/44'/145'/$$INDEX$$'/0/0", - coin: 'bch', - }, - expectedAddress: { - "m/44'/145'/0'/0/0": 'bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy', - "m/44'/145'/1'/0/0": 'bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy', - "m/44'/145'/21234567'/0/0": 'bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8', - "m/44'/145'/2147483646'/0/0": 'bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq', - "m/44'/145'/2147483647'/0/0": 'bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-BCH", + "params": { + "path": "m/44'/145'/$$INDEX$$'/0/0", + "coin": "bch" + }, + "expectedAddress": { + "m/44'/145'/0'/0/0": "bitcoincash:qzyf8vfwcmm7gxkgjsp65r023nge9067yvegj3acqy", + "m/44'/145'/1'/0/0": "bitcoincash:qp8w4k7yvj96hd5g87p7tuq07q8d7jktzufnafstyy", + "m/44'/145'/21234567'/0/0": "bitcoincash:qphm2akhj7wg0fgwhzw0kc89wl7ahkv60v6t2fa8p8", + "m/44'/145'/2147483646'/0/0": "bitcoincash:qq00c9dcvtc27790247an403f37efe00fgezk94mnq", + "m/44'/145'/2147483647'/0/0": "bitcoincash:qp4zajcxksm0d5tzapr8dr6tgznqglxmnyrksszhrd" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Legacy', - params: { - path: "m/44'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - }, - expectedAddress: { - "m/44'/2'/0'/0/0": 'LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg', - "m/44'/2'/1'/0/0": 'LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu', - "m/44'/2'/21234567'/0/0": 'LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff', - "m/44'/2'/2147483646'/0/0": 'LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3', - "m/44'/2'/2147483647'/0/0": 'LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Legacy", + "params": { + "path": "m/44'/2'/$$INDEX$$'/0/0", + "coin": "ltc" + }, + "expectedAddress": { + "m/44'/2'/0'/0/0": "LRAx8S7n1Bt4p513LVTeRdR3wMZRSY8MLg", + "m/44'/2'/1'/0/0": "LedHb86rCu9jffcPZtsUqNYsKNvLydyKBu", + "m/44'/2'/21234567'/0/0": "LNZbF48kNfjmKBNtYtQFh3So3EBEJ3Rgff", + "m/44'/2'/2147483646'/0/0": "LMZtxxqd7FUgBH6dPnvij6WXD9rY5Gbyx3", + "m/44'/2'/2147483647'/0/0": "LaBVsrkxd8bFTtpzrsKPDye933YW8iAKHu" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Nested SegWit', - params: { - path: "m/49'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedAddress: { - "m/49'/2'/0'/0/0": 'MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p', - "m/49'/2'/1'/0/0": 'M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj', - "m/49'/2'/21234567'/0/0": 'MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA', - "m/49'/2'/2147483646'/0/0": 'MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt', - "m/49'/2'/2147483647'/0/0": 'MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Nested SegWit", + "params": { + "path": "m/49'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedAddress": { + "m/49'/2'/0'/0/0": "MPZAyKWP2CBE7NPdfNMPfeWhL8BQAxcp7p", + "m/49'/2'/1'/0/0": "M9HAKSMabHxLhjtPYFkEXRBSiFqY2aN1wj", + "m/49'/2'/21234567'/0/0": "MSXduRJr7fe3BA69Mz2PQNMkwERwZEFgNA", + "m/49'/2'/2147483646'/0/0": "MVM2tM56D2kb5LKchoJ6eZrsYYiHLCbRqt", + "m/49'/2'/2147483647'/0/0": "MJW71zqWrjt9ZitdkLpwwsJ2WqXJu9KoQJ" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-LTC Native SegWit', - params: { - path: "m/84'/2'/$$INDEX$$'/0/0", - coin: 'ltc', - scriptType: 'SPENDWITNESS', - }, - expectedAddress: { - "m/84'/2'/0'/0/0": 'ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf', - "m/84'/2'/1'/0/0": 'ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt', - "m/84'/2'/21234567'/0/0": 'ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c', - "m/84'/2'/2147483646'/0/0": 'ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg', - "m/84'/2'/2147483647'/0/0": 'ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-LTC Native SegWit", + "params": { + "path": "m/84'/2'/$$INDEX$$'/0/0", + "coin": "ltc", + "scriptType": "SPENDWITNESS" + }, + "expectedAddress": { + "m/84'/2'/0'/0/0": "ltc1qq53q0zn202f8a5sq2d4ry799ptp8rg672wzmkf", + "m/84'/2'/1'/0/0": "ltc1qhw354hyn9u5kmul3ppkpzck2k6fglqgndv3zpt", + "m/84'/2'/21234567'/0/0": "ltc1q738v9ufmdgdflrnp7sjcjlyeaqgq6szp36r92c", + "m/84'/2'/2147483646'/0/0": "ltc1qv4qcuu4d4vl5xwvnjzqfayypda93hqr88wjrgg", + "m/84'/2'/2147483647'/0/0": "ltc1qat0z5spzr8ddttcgxe3zuak5rgt8sm4cgz3qs8" + } }, { - method: 'btcGetAddress', - name: 'btcGetAddress-Neurai', - params: { - path: "m/44'/1900'/$$INDEX$$'/0/0", - coin: 'neurai', - }, - expectedAddress: { - "m/44'/1900'/0'/0/0": 'NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2', - "m/44'/1900'/1'/0/0": 'NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H', - "m/44'/1900'/21234567'/0/0": 'NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2', - "m/44'/1900'/2147483646'/0/0": 'NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ', - "m/44'/1900'/2147483647'/0/0": 'NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s', - }, + "method": "btcGetAddress", + "name": "btcGetAddress-Neurai", + "params": { + "path": "m/44'/1900'/$$INDEX$$'/0/0", + "coin": "neurai" + }, + "expectedAddress": { + "m/44'/1900'/0'/0/0": "NYSr8VAaAfnVd3VvBzMCEKSMk59EZAScJ2", + "m/44'/1900'/1'/0/0": "NRfdksNGe1KTUfC1yw4X2a5qbPFsCbvo2H", + "m/44'/1900'/21234567'/0/0": "NRSmQxRBfavLYRudxmmBhpRLVzGWuoS3C2", + "m/44'/1900'/2147483646'/0/0": "NSprxHLpNryRHAp7x1DCtjdQMdAeP8ciQZ", + "m/44'/1900'/2147483647'/0/0": "NfTafmVmek6sekF5EKiSA6CPs2xtpqE11s" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/60'/0'/0/0": '0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A', - "m/44'/60'/1'/0/0": '0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf', - "m/44'/60'/21234567'/0/0": '0xFcB211b77546D2068b569576384387B3d88f1606', - "m/44'/60'/2147483646'/0/0": '0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2', - "m/44'/60'/2147483647'/0/0": '0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/60'/0'/0/0": "0xD1Dd22c4D8FFf4502B6f27ee4F4001F0DDA9246A", + "m/44'/60'/1'/0/0": "0x5aAF8F17A1aA53C19d5D67FAAA31468C7d8aAbdf", + "m/44'/60'/21234567'/0/0": "0xFcB211b77546D2068b569576384387B3d88f1606", + "m/44'/60'/2147483646'/0/0": "0xDD57ea866606BE96ab913A1aD6D4595B93F05AD2", + "m/44'/60'/2147483647'/0/0": "0x0659EC84e84C0EAA21b627Ff7d4d33C0F5232927" + } }, { - method: 'evmGetAddress', - name: 'evmGetAddress-Ethereum Classic', - params: { - path: "m/44'/61'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/61'/0'/0/0": '0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235', - "m/44'/61'/1'/0/0": '0x473985bBcA8797b97D48D187a0CE62a80C1248DD', - "m/44'/61'/21234567'/0/0": '0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D', - "m/44'/61'/2147483646'/0/0": '0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059', - "m/44'/61'/2147483647'/0/0": '0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a', - }, + "method": "evmGetAddress", + "name": "evmGetAddress-Ethereum Classic", + "params": { + "path": "m/44'/61'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/61'/0'/0/0": "0xEbDdD96e9Eac9730D810243d73f5162Ec9a46235", + "m/44'/61'/1'/0/0": "0x473985bBcA8797b97D48D187a0CE62a80C1248DD", + "m/44'/61'/21234567'/0/0": "0x5d51B5Df502D27A33a528F9B3e8e3e8EA83a541D", + "m/44'/61'/2147483646'/0/0": "0x79bC4f82cA178663D01b7Aaf4DcC39B0e0872059", + "m/44'/61'/2147483647'/0/0": "0xC9994AEB6F4418c3924deBCDe7dbB2f1622Ad17a" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt', - "m/44'/118'/1'/0/0": 'cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh', - "m/44'/118'/21234567'/0/0": 'cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6', - "m/44'/118'/2147483646'/0/0": 'cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r', - "m/44'/118'/2147483647'/0/0": 'cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cosmos1km48qfx54ngywcazd4qru2xvv5vjcr4q5tdswt", + "m/44'/118'/1'/0/0": "cosmos1zzannxldjrw5cq445yzd43t6gq0ge5plvsphuh", + "m/44'/118'/21234567'/0/0": "cosmos1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88zk85t6", + "m/44'/118'/2147483646'/0/0": "cosmos15d9q87lnnylpclnnpdvv3nrdp6eeaphm4jhh2r", + "m/44'/118'/2147483647'/0/0": "cosmos1mpj9t4879cm7w3m5csfshh3xxnxtec67fnyuy8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-akash', - params: { - hrp: 'akash', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3', - "m/44'/118'/1'/0/0": 'akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d', - "m/44'/118'/21234567'/0/0": 'akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq', - "m/44'/118'/2147483646'/0/0": 'akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne', - "m/44'/118'/2147483647'/0/0": 'akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-akash", + "params": { + "hrp": "akash", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "akash1km48qfx54ngywcazd4qru2xvv5vjcr4qesqhh3", + "m/44'/118'/1'/0/0": "akash1zzannxldjrw5cq445yzd43t6gq0ge5plptvs9d", + "m/44'/118'/21234567'/0/0": "akash1jd0v3czlh29vx2rsu9kw2dhxpp5nzx880d2njq", + "m/44'/118'/2147483646'/0/0": "akash15d9q87lnnylpclnnpdvv3nrdp6eeaphmcf6sne", + "m/44'/118'/2147483647'/0/0": "akash1mpj9t4879cm7w3m5csfshh3xxnxtec67ygfmaa" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-crypto', - params: { - hrp: 'cro', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6', - "m/44'/118'/1'/0/0": 'cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx', - "m/44'/118'/21234567'/0/0": 'cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht', - "m/44'/118'/2147483646'/0/0": 'cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj', - "m/44'/118'/2147483647'/0/0": 'cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-crypto", + "params": { + "hrp": "cro", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "cro1km48qfx54ngywcazd4qru2xvv5vjcr4qvs9fj6", + "m/44'/118'/1'/0/0": "cro1zzannxldjrw5cq445yzd43t6gq0ge5pl5tfwqx", + "m/44'/118'/21234567'/0/0": "cro1jd0v3czlh29vx2rsu9kw2dhxpp5nzx886d0dht", + "m/44'/118'/2147483646'/0/0": "cro15d9q87lnnylpclnnpdvv3nrdp6eeaphmdflwkj", + "m/44'/118'/2147483647'/0/0": "cro1mpj9t4879cm7w3m5csfshh3xxnxtec673gv9ck" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-fetch', - params: { - hrp: 'fetch', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu', - "m/44'/118'/1'/0/0": 'fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q', - "m/44'/118'/21234567'/0/0": 'fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd', - "m/44'/118'/2147483646'/0/0": 'fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5', - "m/44'/118'/2147483647'/0/0": 'fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-fetch", + "params": { + "hrp": "fetch", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "fetch1km48qfx54ngywcazd4qru2xvv5vjcr4q8ky5vu", + "m/44'/118'/1'/0/0": "fetch1zzannxldjrw5cq445yzd43t6gq0ge5plldgn7q", + "m/44'/118'/21234567'/0/0": "fetch1jd0v3czlh29vx2rsu9kw2dhxpp5nzx883twsfd", + "m/44'/118'/2147483646'/0/0": "fetch15d9q87lnnylpclnnpdvv3nrdp6eeaphmx07ng5", + "m/44'/118'/2147483647'/0/0": "fetch1mpj9t4879cm7w3m5csfshh3xxnxtec676wdcxs" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-osmo', - params: { - hrp: 'osmo', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce', - "m/44'/118'/1'/0/0": 'osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829', - "m/44'/118'/21234567'/0/0": 'osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag', - "m/44'/118'/2147483646'/0/0": 'osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3', - "m/44'/118'/2147483647'/0/0": 'osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-osmo", + "params": { + "hrp": "osmo", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "osmo1km48qfx54ngywcazd4qru2xvv5vjcr4qus7qce", + "m/44'/118'/1'/0/0": "osmo1zzannxldjrw5cq445yzd43t6gq0ge5plytj829", + "m/44'/118'/21234567'/0/0": "osmo1jd0v3czlh29vx2rsu9kw2dhxpp5nzx882d5yag", + "m/44'/118'/2147483646'/0/0": "osmo15d9q87lnnylpclnnpdvv3nrdp6eeaphmafy8u3", + "m/44'/118'/2147483647'/0/0": "osmo1mpj9t4879cm7w3m5csfshh3xxnxtec67pghvj4" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-juno', - params: { - hrp: 'juno', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh', - "m/44'/118'/1'/0/0": 'juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt', - "m/44'/118'/21234567'/0/0": 'juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx', - "m/44'/118'/2147483646'/0/0": 'juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl', - "m/44'/118'/2147483647'/0/0": 'juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-juno", + "params": { + "hrp": "juno", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "juno1km48qfx54ngywcazd4qru2xvv5vjcr4qzewtfh", + "m/44'/118'/1'/0/0": "juno1zzannxldjrw5cq445yzd43t6gq0ge5pl6zzvmt", + "m/44'/118'/21234567'/0/0": "juno1jd0v3czlh29vx2rsu9kw2dhxpp5nzx885yy0vx", + "m/44'/118'/2147483646'/0/0": "juno15d9q87lnnylpclnnpdvv3nrdp6eeaphmrq5vdl", + "m/44'/118'/2147483647'/0/0": "juno1mpj9t4879cm7w3m5csfshh3xxnxtec67lp88rm" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-terra', - params: { - hrp: 'terra', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt', - "m/44'/118'/1'/0/0": 'terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h', - "m/44'/118'/21234567'/0/0": 'terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6', - "m/44'/118'/2147483646'/0/0": 'terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr', - "m/44'/118'/2147483647'/0/0": 'terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-terra", + "params": { + "hrp": "terra", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "terra1km48qfx54ngywcazd4qru2xvv5vjcr4qj0hsvt", + "m/44'/118'/1'/0/0": "terra1zzannxldjrw5cq445yzd43t6gq0ge5pl25mh7h", + "m/44'/118'/21234567'/0/0": "terra1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88yja5f6", + "m/44'/118'/2147483646'/0/0": "terra15d9q87lnnylpclnnpdvv3nrdp6eeaphmnkdhgr", + "m/44'/118'/2147483647'/0/0": "terra1mpj9t4879cm7w3m5csfshh3xxnxtec670h7ux8" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-secret', - params: { - hrp: 'secret', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh', - "m/44'/118'/1'/0/0": 'secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt', - "m/44'/118'/21234567'/0/0": 'secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx', - "m/44'/118'/2147483646'/0/0": 'secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl', - "m/44'/118'/2147483647'/0/0": 'secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-secret", + "params": { + "hrp": "secret", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "secret1km48qfx54ngywcazd4qru2xvv5vjcr4qkweenh", + "m/44'/118'/1'/0/0": "secret1zzannxldjrw5cq445yzd43t6gq0ge5plw447pt", + "m/44'/118'/21234567'/0/0": "secret1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88qnnakx", + "m/44'/118'/2147483646'/0/0": "secret15d9q87lnnylpclnnpdvv3nrdp6eeaphmhhr7hl", + "m/44'/118'/2147483647'/0/0": "secret1mpj9t4879cm7w3m5csfshh3xxnxtec67tks4em" + } }, { - method: 'cosmosGetAddress', - name: 'cosmosGetAddress-celestia', - params: { - hrp: 'celestia', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/118'/0'/0/0": 'celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x', - "m/44'/118'/1'/0/0": 'celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6', - "m/44'/118'/21234567'/0/0": 'celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h', - "m/44'/118'/2147483646'/0/0": 'celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw', - "m/44'/118'/2147483647'/0/0": 'celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72', - }, + "method": "cosmosGetAddress", + "name": "cosmosGetAddress-celestia", + "params": { + "hrp": "celestia", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/118'/0'/0/0": "celestia1km48qfx54ngywcazd4qru2xvv5vjcr4q9puq5x", + "m/44'/118'/1'/0/0": "celestia1zzannxldjrw5cq445yzd43t6gq0ge5pla6s8x6", + "m/44'/118'/21234567'/0/0": "celestia1jd0v3czlh29vx2rsu9kw2dhxpp5nzx88nuky3h", + "m/44'/118'/2147483646'/0/0": "celestia15d9q87lnnylpclnnpdvv3nrdp6eeaphmycx8sw", + "m/44'/118'/2147483647'/0/0": "celestia1mpj9t4879cm7w3m5csfshh3xxnxtec67ce4v72" + } }, { - method: 'suiGetAddress', - name: 'suiGetAddress', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/784'/0'/0'/0'": '0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e', - "m/44'/784'/1'/0'/0'": '0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e', - "m/44'/784'/21234567'/0'/0'": - '0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad', - "m/44'/784'/2147483646'/0'/0'": - '0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043', - "m/44'/784'/2147483647'/0'/0'": - '0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f', - }, + "method": "suiGetAddress", + "name": "suiGetAddress", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/784'/0'/0'/0'": "0x74d1b7e6969b5db462d19b1977e4f4673a9790abc7353b66f3664123298b280e", + "m/44'/784'/1'/0'/0'": "0xcc751726f45a0babe06fc581c554650c5c43c3a0ba94b58c835a424f4b7ad25e", + "m/44'/784'/21234567'/0'/0'": "0xab55c0e7d3230569e57f9e9bc6cecca4d516ad17700449ded2fa7de921fa98ad", + "m/44'/784'/2147483646'/0'/0'": "0x55bf6235e12753bdd5379a27b8f3e534e79a4ed92056a43faeccdd3555fde043", + "m/44'/784'/2147483647'/0'/0'": "0x4e3e5559c8bca161b1965b6ffea600f0998e537e43cbc156181fdeacf4fc382f" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'benfenGetAddress', - name: 'benfenGetAddress', - params: { - path: "m/44'/728'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/728'/0'/0'/0'": - 'BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd', - "m/44'/728'/1'/0'/0'": - 'BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79', - "m/44'/728'/21234567'/0'/0'": - 'BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200', - "m/44'/728'/2147483646'/0'/0'": - 'BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38', - "m/44'/728'/2147483647'/0'/0'": - 'BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901', - }, + "method": "benfenGetAddress", + "name": "benfenGetAddress", + "params": { + "path": "m/44'/728'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/728'/0'/0'/0'": "BFC0417c3b50e4df1a3e831755b733539ab54898f3fcc47f336066c42edeceb04d70bcd", + "m/44'/728'/1'/0'/0'": "BFC79429eb55446de4e5e2cb6af9ada3ec5b52c0139605a20c966c0b684e88ed21a3d79", + "m/44'/728'/21234567'/0'/0'": "BFCde2d46d6aed6e342ecb27befb7612433f194353bbd5c2e002881bbe7676317010200", + "m/44'/728'/2147483646'/0'/0'": "BFCf3f750e940e01b5100d0ec2b7aa608f3d0f35984ddb1ad001a88c9a951d00eec0d38", + "m/44'/728'/2147483647'/0'/0'": "BFC44c026b37ed4dde7604c85a73a17e5cd8b68b4d09252b166bfe5c5be9b5244d5d901" + } }, { - method: 'alephiumGetAddress', - name: 'alephiumGetAddress', - params: { - path: "m/44'/1234'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/1234'/0'/0/0": '13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm', - "m/44'/1234'/1'/0/0": '1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu', - "m/44'/1234'/21234567'/0/0": '15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG', - "m/44'/1234'/2147483646'/0/0": '1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF', - "m/44'/1234'/2147483647'/0/0": '16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit', - }, + "method": "alephiumGetAddress", + "name": "alephiumGetAddress", + "params": { + "path": "m/44'/1234'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/1234'/0'/0/0": "13b8d8oeLVYcUsxsAjs4Hbg5UYjv3i68rmi6HhF2g7Zdm", + "m/44'/1234'/1'/0/0": "1AcFdYcyrBQacd9sqcWfSGb74aPbDyyg7Wzd99rc1QaGu", + "m/44'/1234'/21234567'/0/0": "15yEbk9V2GeyYNgwvCatB2dTv4iYF7qLWJH7jgAS7gafG", + "m/44'/1234'/2147483646'/0/0": "1DiFeZMgAG1V2RQS9HaaYJuuPH1aG8ZyYenUS88hgCZuF", + "m/44'/1234'/2147483647'/0/0": "16nztosfzJUSk88FxReYRBxTWMz9MrwZRmw3tZhZ1vdit" + } }, { - method: 'algoGetAddress', - name: 'algoGetAddress', - params: { - path: "m/44'/283'/$$INDEX$$'/0'/0'", - }, - expectedAddress: { - "m/44'/283'/0'/0'/0'": 'ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4', - "m/44'/283'/1'/0'/0'": 'JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE', - "m/44'/283'/21234567'/0'/0'": 'GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4', - "m/44'/283'/2147483646'/0'/0'": - '4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ', - "m/44'/283'/2147483647'/0'/0'": - 'MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ', - }, + "method": "algoGetAddress", + "name": "algoGetAddress", + "params": { + "path": "m/44'/283'/$$INDEX$$'/0'/0'" + }, + "expectedAddress": { + "m/44'/283'/0'/0'/0'": "ILU3IJQUGHXDIL5CDXAXTV5P6JNALNGG6LAKQ5OQ23RDQWFD25I6YB7LF4", + "m/44'/283'/1'/0'/0'": "JOSYPAHS5A67EBKPI7PNIF76327MRJDBYG3RKBADDL4IT6A3IB5EQLPSZE", + "m/44'/283'/21234567'/0'/0'": "GPRN7UGY6JYYIWP5CJHSEI5EBAYDH663BNE3GTQXRFCZ3AH3S4UMSDULS4", + "m/44'/283'/2147483646'/0'/0'": "4VTTCX3W3HLM32WBEMOGVVXEAQCKVGTKP7VR7KZQG4UU4YLL4JRFIUYRZQ", + "m/44'/283'/2147483647'/0'/0'": "MLBSAJ2UMNRHFRQFKETEZ6HTGKSVDWWSM35A4CUTPDPR3I3UFVHMTLLRFQ" + } }, { - method: 'tonGetAddress', - name: 'tonGetAddress', - params: { - path: "m/44'/607'/$$INDEX$$'", - walletVersion: 3, - isBounceable: false, - isTestnetOnly: false, - workchain: 0, - walletId: 698983191, - }, - expectedAddress: { - "m/44'/607'/0'": 'UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN', - "m/44'/607'/1'": 'UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm', - "m/44'/607'/21234567'": 'UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3', - "m/44'/607'/2147483646'": 'UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B', - "m/44'/607'/2147483647'": 'UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM', - }, + "method": "tonGetAddress", + "name": "tonGetAddress", + "params": { + "path": "m/44'/607'/$$INDEX$$'", + "walletVersion": 3, + "isBounceable": false, + "isTestnetOnly": false, + "workchain": 0, + "walletId": 698983191 + }, + "expectedAddress": { + "m/44'/607'/0'": "UQAdj0WAg-OVtMWuQ0f-flTzUg4HFfLhJf5Hn4rGbWxrYbTN", + "m/44'/607'/1'": "UQB5duhrHag-n_S3pv9Aa4ntykUfNQivZoJuytd2DSITXLsm", + "m/44'/607'/21234567'": "UQD2YNWimKVS0jHHNur64waCK4mya-pisMXgp3Tl-CPc-TQ3", + "m/44'/607'/2147483646'": "UQBIkh88T9ldN2wDTdpc1jZ_ohO486wlL_egxPdOM1gujc-B", + "m/44'/607'/2147483647'": "UQA9r4GJ7PHMpAobeRl7RiIxL97Y651M73QyWKl1eltfxvvM" + } }, { - method: 'nervosGetAddress', - name: 'nervosGetAddress', - params: { - path: "m/44'/309'/$$INDEX$$'/0/0", - network: 'ckb', - }, - expectedAddress: { - "m/44'/309'/0'/0/0": 'ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr', - "m/44'/309'/1'/0/0": 'ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls', - "m/44'/309'/21234567'/0/0": 'ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0', - "m/44'/309'/2147483646'/0/0": 'ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7', - "m/44'/309'/2147483647'/0/0": 'ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz', - }, + "method": "nervosGetAddress", + "name": "nervosGetAddress", + "params": { + "path": "m/44'/309'/$$INDEX$$'/0/0", + "network": "ckb" + }, + "expectedAddress": { + "m/44'/309'/0'/0/0": "ckb1qyqqjjhlxkq9u9gdxf2c7u6uvzxvwugwj2zqel3yyr", + "m/44'/309'/1'/0/0": "ckb1qyqqn62dndcmlay3jq2jz0quea99t8u0rvwqrjwrls", + "m/44'/309'/21234567'/0/0": "ckb1qyqwm7n5tzlc0t99cxmqc4ctsegyfumphe4shm4fy0", + "m/44'/309'/2147483646'/0/0": "ckb1qyqyg3709ja0qj8urfsc7arzhedavvjl7d5qcg98l7", + "m/44'/309'/2147483647'/0/0": "ckb1qyqypph3yf6h3lygz9rdweethks445xdkels7f5vsz" + } }, { - method: 'nexaGetAddress', - name: 'nexaGetAddress', - params: { - path: "m/44'/29223'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/29223'/0'/0/0": 'nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9', - "m/44'/29223'/1'/0/0": 'nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9', - "m/44'/29223'/21234567'/0/0": 'nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut', - "m/44'/29223'/2147483646'/0/0": 'nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww', - "m/44'/29223'/2147483647'/0/0": 'nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44', - }, + "method": "nexaGetAddress", + "name": "nexaGetAddress", + "params": { + "path": "m/44'/29223'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/29223'/0'/0/0": "nexa:nqtsq5g522m9frtrw3eawemxxy0dxqkt9rna6quzadvmc8s9", + "m/44'/29223'/1'/0/0": "nexa:nqtsq5g5rkluf23s30ys7346nvvxrgk8zgtvj88a5rjn7wl9", + "m/44'/29223'/21234567'/0/0": "nexa:nqtsq5g5dudq283a6m2epwx2n5d6z3lr6yj8u5qurckujuut", + "m/44'/29223'/2147483646'/0/0": "nexa:nqtsq5g5tn2kk6fq4u560su9wvl8f6wqs9jy44gqj7vkmmww", + "m/44'/29223'/2147483647'/0/0": "nexa:nqtsq5g5dkw0u7ytkx6fwvez6ncqf2nk6up0ray4urgs8p44" + } }, { - method: 'xrpGetAddress', - name: 'xrpGetAddress', - params: { - path: "m/44'/144'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/144'/0'/0/0": 'r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx', - "m/44'/144'/1'/0/0": 'rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4', - "m/44'/144'/21234567'/0/0": 'r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg', - "m/44'/144'/2147483646'/0/0": 'rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V', - "m/44'/144'/2147483647'/0/0": 'rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV', - }, + "method": "xrpGetAddress", + "name": "xrpGetAddress", + "params": { + "path": "m/44'/144'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/144'/0'/0/0": "r9ZnGbQ4EMGDrr32RiJh3FBJg7cDiYw4Lx", + "m/44'/144'/1'/0/0": "rGBeGJxkaMfY1zYZHeFarFy534h9mxz9o4", + "m/44'/144'/21234567'/0/0": "r38oCNP2s4DMKdGExB9JfGpcUVzep1UUSg", + "m/44'/144'/2147483646'/0/0": "rfdfFn3dQ1UidrRfFXRRzEW4w7g5FeXW7V", + "m/44'/144'/2147483647'/0/0": "rEjabYFdgKToBJCzuXgRtPXd7vpggBRELV" + } }, { - method: 'scdoGetAddress', - name: 'scdoGetAddress', - params: { - path: "m/44'/541'/$$INDEX$$'/0/0", - }, - expectedAddress: { - "m/44'/541'/0'/0/0": '1S01b32864c15d04d6ae0336b5ddc606492b8ff441', - "m/44'/541'/1'/0/0": '1S0113f214a3079c47cd2d30ed63c0b721fb171531', - "m/44'/541'/21234567'/0/0": '1S01dea0121026d7f702bd9bb921dc02bb6b27c581', - "m/44'/541'/2147483646'/0/0": '1S01584253a100a67923ec03466261c700e7d27c81', - "m/44'/541'/2147483647'/0/0": '1S01311de7dfd071891669e664e5bd1c117233af61', - }, - }, - ], + "method": "scdoGetAddress", + "name": "scdoGetAddress", + "params": { + "path": "m/44'/541'/$$INDEX$$'/0/0" + }, + "expectedAddress": { + "m/44'/541'/0'/0/0": "1S01b32864c15d04d6ae0336b5ddc606492b8ff441", + "m/44'/541'/1'/0/0": "1S0113f214a3079c47cd2d30ed63c0b721fb171531", + "m/44'/541'/21234567'/0/0": "1S01dea0121026d7f702bd9bb921dc02bb6b27c581", + "m/44'/541'/2147483646'/0/0": "1S01584253a100a67923ec03466261c700e7d27c81", + "m/44'/541'/2147483647'/0/0": "1S01311de7dfd071891669e664e5bd1c117233af61" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/index.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/index.ts index f04b739af..97117e853 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/index.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/addressData/index.ts @@ -1,3 +1,5 @@ +import type { SLIP39TestCaseData } from '../types'; + import { count20OneNormal } from './count20_one/normal'; import { count20OnePassphraseEmpty } from './count20_one/passphrase_empty'; import { count20OnePassphrase1 } from './count20_one/passphrase_1'; @@ -19,8 +21,6 @@ import { count33TwoPassphraseEmpty } from './count33_two/passphrase_empty'; import { count33TwoPassphrase1 } from './count33_two/passphrase_1'; import { count33TwoPassphrase2 } from './count33_two/passphrase_2'; -import type { SLIP39TestCaseData } from '../types'; - export const batchAddressTests: SLIP39TestCaseData[] = [ count20OneNormal, count20OnePassphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/generateUnifiedSLIP39Data.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/generateUnifiedSLIP39Data.ts index 3e2871c7f..95bc9b090 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/generateUnifiedSLIP39Data.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/generateUnifiedSLIP39Data.ts @@ -83,30 +83,7 @@ const SLIP39_CONFIGS: SLIP39TestConfig[] = [ }, ]; -// 候选密码短语池 - 从 addressTest 中提取的各种 passphrase -const CANDIDATE_PASSPHRASES = [ - '12345', - 'onekey', - '#$%^&*()', - 'jFhC5z@Dk%ya2edpvkECr~qr', - "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - 'Passw0rd!@#', - '$`%@@`&^~$', -]; - -// 随机选择两个不同的密码短语 -function getRandomPassphrases(): { passphrase1: string; passphrase2: string } { - const shuffled = [...CANDIDATE_PASSPHRASES].sort(() => Math.random() - 0.5); - return { - passphrase1: shuffled[0], - passphrase2: shuffled[1], - }; -} - -// 生成密码短语配置(每次生成时随机选择) function generatePassphraseConfigs(): SLIP39PassphraseConfig[] { - const { passphrase1, passphrase2 } = getRandomPassphrases(); - return [ { name: 'normal', @@ -118,11 +95,11 @@ function generatePassphraseConfigs(): SLIP39PassphraseConfig[] { }, { name: 'passphrase_1', - passphrase: passphrase1, + passphrase: '12345', }, { name: 'passphrase_2', - passphrase: passphrase2, + passphrase: 'onekey', }, ]; } diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/normal.ts index a77f34973..4bf035803 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/normal.ts @@ -1,173 +1,146 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OneNormal: SLIP39TestCaseData = { - id: 'count20_one_normal', - name: 'count20_one_normal', - description: '1-of-1 (20 words) + normal', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_normal", + "name": "count20_one_normal", + "description": "1-of-1 (20 words) + normal", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '023b56ad511a1bb36109bb38d26b90257544606347c2d74985f6b62dfada7d8057', - "m/44'/0'/1'/0/0": '02b1509bae399ba44f62143a1124040e4b29e17e17931fc20eb4c9d01990640625', - "m/44'/0'/21234567'/0/0": - '02cb00b5d48d19108d81ce6107a2d7ef1f422dbbbb596f77058bef0b2725c72f18', - "m/44'/0'/2147483646'/0/0": - '024d99ee7dab3579d823e882114df11955814eb63953e5001b9e2f88fc18c5c453', - "m/44'/0'/2147483647'/0/0": - '025ddadfd93ba71156c69828d12a196f9c39e0715d0ce276e70c94e79edfb942cc', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "023b56ad511a1bb36109bb38d26b90257544606347c2d74985f6b62dfada7d8057", + "m/44'/0'/1'/0/0": "02b1509bae399ba44f62143a1124040e4b29e17e17931fc20eb4c9d01990640625", + "m/44'/0'/21234567'/0/0": "02cb00b5d48d19108d81ce6107a2d7ef1f422dbbbb596f77058bef0b2725c72f18", + "m/44'/0'/2147483646'/0/0": "024d99ee7dab3579d823e882114df11955814eb63953e5001b9e2f88fc18c5c453", + "m/44'/0'/2147483647'/0/0": "025ddadfd93ba71156c69828d12a196f9c39e0715d0ce276e70c94e79edfb942cc" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '038590480c9dfea4fc2acfc211472410eeefb7be82cb4ba525d5a1fb26d4912eae', - "m/49'/0'/1'/0/0": '0281f3e6610714f338e8f6076a93d788b6b6552225555e99ac1857f35d48834e4e', - "m/49'/0'/21234567'/0/0": - '0260f5b5602d052ad78d3b5f78f812932ccf7a2d057dce40da89c774fdb24801f9', - "m/49'/0'/2147483646'/0/0": - '031bca0510449495a354ae302f8adecc488edbfdb04f8f2d6e0afca98e8c69a5de', - "m/49'/0'/2147483647'/0/0": - '03a79bafe3ffb9756116f9398c3c4a40cf513e8db07b6c3967a8091ea5ff69dc5b', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "038590480c9dfea4fc2acfc211472410eeefb7be82cb4ba525d5a1fb26d4912eae", + "m/49'/0'/1'/0/0": "0281f3e6610714f338e8f6076a93d788b6b6552225555e99ac1857f35d48834e4e", + "m/49'/0'/21234567'/0/0": "0260f5b5602d052ad78d3b5f78f812932ccf7a2d057dce40da89c774fdb24801f9", + "m/49'/0'/2147483646'/0/0": "031bca0510449495a354ae302f8adecc488edbfdb04f8f2d6e0afca98e8c69a5de", + "m/49'/0'/2147483647'/0/0": "03a79bafe3ffb9756116f9398c3c4a40cf513e8db07b6c3967a8091ea5ff69dc5b" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02077d532889074478a89b707cf5f09228152e093d499d95674fa80a52fa3206d7', - "m/84'/0'/1'/0/0": '02a866564591c5a25eba0730cd26564a41145e09de07f64897413730acd71c6b95', - "m/84'/0'/21234567'/0/0": - '0205732cd7a6056699a38f7b6b4327c2103f382f67e6a3c71f008f5db6ae4e8277', - "m/84'/0'/2147483646'/0/0": - '03871f1a1f245090c49fdccbcb61af1fe9339ef819d4aa213f70542ca3ac9d5678', - "m/84'/0'/2147483647'/0/0": - '03bdf20b5a0af9e22aaf68d4bae2ff98f5df12ea52e4a6be4ecad491f1983bb9ee', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02077d532889074478a89b707cf5f09228152e093d499d95674fa80a52fa3206d7", + "m/84'/0'/1'/0/0": "02a866564591c5a25eba0730cd26564a41145e09de07f64897413730acd71c6b95", + "m/84'/0'/21234567'/0/0": "0205732cd7a6056699a38f7b6b4327c2103f382f67e6a3c71f008f5db6ae4e8277", + "m/84'/0'/2147483646'/0/0": "03871f1a1f245090c49fdccbcb61af1fe9339ef819d4aa213f70542ca3ac9d5678", + "m/84'/0'/2147483647'/0/0": "03bdf20b5a0af9e22aaf68d4bae2ff98f5df12ea52e4a6be4ecad491f1983bb9ee" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '03ac922f162c4c423215e5b015a7462553c2dd9d2adcf5ac1f5db1c485c047511c', - "m/86'/0'/1'/0/0": '02c08285d7dc83aa24de96976e9a4ceeb4a51d6cae1e2ec1d96fd341030e7bbd0d', - "m/86'/0'/21234567'/0/0": - '025dc37549fc4cc6b1d0909635ad7d6184c82bff1683f9bad6145ce78825d3fd87', - "m/86'/0'/2147483646'/0/0": - '02b8ca271c6e1f81233f506456599129d33538fc1c675d22cf0a78e4d3a58b9985', - "m/86'/0'/2147483647'/0/0": - '03044978ce92166c4557ac313ba3e9ea9538bb5c231fb62a7b4596e00af6cedd13', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "03ac922f162c4c423215e5b015a7462553c2dd9d2adcf5ac1f5db1c485c047511c", + "m/86'/0'/1'/0/0": "02c08285d7dc83aa24de96976e9a4ceeb4a51d6cae1e2ec1d96fd341030e7bbd0d", + "m/86'/0'/21234567'/0/0": "025dc37549fc4cc6b1d0909635ad7d6184c82bff1683f9bad6145ce78825d3fd87", + "m/86'/0'/2147483646'/0/0": "02b8ca271c6e1f81233f506456599129d33538fc1c675d22cf0a78e4d3a58b9985", + "m/86'/0'/2147483647'/0/0": "03044978ce92166c4557ac313ba3e9ea9538bb5c231fb62a7b4596e00af6cedd13" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0323e2bad2e6d341a997a8290b5f6d0e52720c34bc7193ea8cfb0e537925219466', - "m/44'/60'/1'/0/0": '0x025ce17cf54c64252d2ae46c4c0aab8abaa929bf78b2ba4b9f6dd1f73bf5c8e18b', - "m/44'/60'/21234567'/0/0": - '0x022fc0b5ef9f9ef7b27407581981d14b100700c278dd806ae8649d4ec2140d4138', - "m/44'/60'/2147483646'/0/0": - '0x0210bf9ea441eca8b22f16a0dbb2024d5df80a79d0b8fc9a27fb6985074840183f', - "m/44'/60'/2147483647'/0/0": - '0x03d4f4bc0c45129485c4bdd991d78f75e9e972cfa0ff187cdb9c799d297d86452a', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0323e2bad2e6d341a997a8290b5f6d0e52720c34bc7193ea8cfb0e537925219466", + "m/44'/60'/1'/0/0": "0x025ce17cf54c64252d2ae46c4c0aab8abaa929bf78b2ba4b9f6dd1f73bf5c8e18b", + "m/44'/60'/21234567'/0/0": "0x022fc0b5ef9f9ef7b27407581981d14b100700c278dd806ae8649d4ec2140d4138", + "m/44'/60'/2147483646'/0/0": "0x0210bf9ea441eca8b22f16a0dbb2024d5df80a79d0b8fc9a27fb6985074840183f", + "m/44'/60'/2147483647'/0/0": "0x03d4f4bc0c45129485c4bdd991d78f75e9e972cfa0ff187cdb9c799d297d86452a" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '034821b4744dbc8c236b1f0b392a4ebb195340d78cd0e228b12febbe21cecda810', - "m/44'/118'/1'/0/0": '02a880a46a4d6ffacd7e8cf167473d5b573e0f63786bb7abef9f12c52f3d107f7e', - "m/44'/118'/21234567'/0/0": - '033d45aaaf2adf92e0fa75bf82f61c424b50554af9a478dc5441c9dcb887b8d94e', - "m/44'/118'/2147483646'/0/0": - '022cd9a33eaa89c529d36088e40a2816970f30ac0f6a052313c12be91437e7bfa5', - "m/44'/118'/2147483647'/0/0": - '0227d6f9b5f410decf982ca541fcd23aa138bcf1209e6a2f9dbcc6cbb2f41efaa6', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "034821b4744dbc8c236b1f0b392a4ebb195340d78cd0e228b12febbe21cecda810", + "m/44'/118'/1'/0/0": "02a880a46a4d6ffacd7e8cf167473d5b573e0f63786bb7abef9f12c52f3d107f7e", + "m/44'/118'/21234567'/0/0": "033d45aaaf2adf92e0fa75bf82f61c424b50554af9a478dc5441c9dcb887b8d94e", + "m/44'/118'/2147483646'/0/0": "022cd9a33eaa89c529d36088e40a2816970f30ac0f6a052313c12be91437e7bfa5", + "m/44'/118'/2147483647'/0/0": "0227d6f9b5f410decf982ca541fcd23aa138bcf1209e6a2f9dbcc6cbb2f41efaa6" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00da569eee03fba319e6bc5bef5cf95a49d58b86ffcda1cc6a524a75e0681f413f', - "m/44'/784'/1'/0'/0'": '0002d74b86ce645627c23ac9c369d688700530ac4617a3d00c62cac64b5db7b72f', - "m/44'/784'/21234567'/0'/0'": - '00d567a5bd823b8129570092efdf8a663096d77abe36aaf84492c7271843e51bdc', - "m/44'/784'/2147483646'/0'/0'": - '005cf429f9b6ff963a2497accce278c574a999f0e902a6b48436c1daca6f1059eb', - "m/44'/784'/2147483647'/0'/0'": - '00cd8306ecdf880e6eb60b4e8880f724ca8a70c4d1fdccb2d1ad7e2215b61d96f7', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00da569eee03fba319e6bc5bef5cf95a49d58b86ffcda1cc6a524a75e0681f413f", + "m/44'/784'/1'/0'/0'": "0002d74b86ce645627c23ac9c369d688700530ac4617a3d00c62cac64b5db7b72f", + "m/44'/784'/21234567'/0'/0'": "00d567a5bd823b8129570092efdf8a663096d77abe36aaf84492c7271843e51bdc", + "m/44'/784'/2147483646'/0'/0'": "005cf429f9b6ff963a2497accce278c574a999f0e902a6b48436c1daca6f1059eb", + "m/44'/784'/2147483647'/0'/0'": "00cd8306ecdf880e6eb60b4e8880f724ca8a70c4d1fdccb2d1ad7e2215b61d96f7" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '4a88aa7b9ce75aa29cb39984ab6a796bddaeb6233d8bcc2111ee8a46c98e8f2b', - "m/44'/637'/1'/0'/0'": 'ed60216f1d95e754e9d309e704162cce2cb4fd9e2f7c80e959e7cb5ee688d356', - "m/44'/637'/21234567'/0'/0'": - '89b93285e84a00bad8e95f62332756619b0c22927816c8cdb0bed2cd6cc8bd50', - "m/44'/637'/2147483646'/0'/0'": - '35bc6b69a35dcc6e4878b6c9756eaafd164f7f23be7d06d0a2b9f39b3c4da6cc', - "m/44'/637'/2147483647'/0'/0'": - '631ebb93880d6ca548e1cf7906fe1280452a5a6f2928dfe703e3160e37faaedc', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "4a88aa7b9ce75aa29cb39984ab6a796bddaeb6233d8bcc2111ee8a46c98e8f2b", + "m/44'/637'/1'/0'/0'": "ed60216f1d95e754e9d309e704162cce2cb4fd9e2f7c80e959e7cb5ee688d356", + "m/44'/637'/21234567'/0'/0'": "89b93285e84a00bad8e95f62332756619b0c22927816c8cdb0bed2cd6cc8bd50", + "m/44'/637'/2147483646'/0'/0'": "35bc6b69a35dcc6e4878b6c9756eaafd164f7f23be7d06d0a2b9f39b3c4da6cc", + "m/44'/637'/2147483647'/0'/0'": "631ebb93880d6ca548e1cf7906fe1280452a5a6f2928dfe703e3160e37faaedc" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '1f0c649acc7c805d1152810f59f0f092824d44c9e2550cdd30ae7ebd22732f01', - "m/44'/1237'/1'/0/0": 'ec8bbaa405af8b959786eac67f47c3ca69ca64a8e142a3576966d4fdbe493ae8', - "m/44'/1237'/21234567'/0/0": - '0949eee87279a86a65cd76b04c2d54074da54fc81b6b97181aae3f120c16a940', - "m/44'/1237'/2147483646'/0/0": - '8c0b1a3b9c6aa52997580630fb056928c7ccc9c34f60386146b69f1b83695fc2', - "m/44'/1237'/2147483647'/0/0": - 'ebab4fd360a5cdff30c3298e5e965b75c93fd16a540d97bf7945b784deadc827', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "1f0c649acc7c805d1152810f59f0f092824d44c9e2550cdd30ae7ebd22732f01", + "m/44'/1237'/1'/0/0": "ec8bbaa405af8b959786eac67f47c3ca69ca64a8e142a3576966d4fdbe493ae8", + "m/44'/1237'/21234567'/0/0": "0949eee87279a86a65cd76b04c2d54074da54fc81b6b97181aae3f120c16a940", + "m/44'/1237'/2147483646'/0/0": "8c0b1a3b9c6aa52997580630fb056928c7ccc9c34f60386146b69f1b83695fc2", + "m/44'/1237'/2147483647'/0/0": "ebab4fd360a5cdff30c3298e5e965b75c93fd16a540d97bf7945b784deadc827" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_1.ts index a534abbe3..baa61ee68 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_1.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphrase1: SLIP39TestCaseData = { - id: 'count20_one_passphrase_1', - name: 'count20_one_passphrase_1', - description: '1-of-1 (20 words) + passphrase_1', - passphrase: 'onekey', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_1", + "name": "count20_one_passphrase_1", + "description": "1-of-1 (20 words) + passphrase_1", + "passphrase": "12345", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '03be111fbad39e11d7f90c2a1f78078d318a8f0c782ad67bfa78377c83bc2e3040', - "m/44'/0'/1'/0/0": '02c819a0710b75f1cbbe39d2349a71b6098f0efb9d198a2e25aa3dd84122c99b58', - "m/44'/0'/21234567'/0/0": - '0389939283a3dc3fbcb53e5b420eb4cd0920e8ed57a33e445b6b9321464daebab8', - "m/44'/0'/2147483646'/0/0": - '0212442b8b57d26e7759de58169ad2b1736a6ee8b69a4d6142a296bf8297dadefe', - "m/44'/0'/2147483647'/0/0": - '02205128b3af64b1070aaaf63700662fab529a41ad0666e3315b7d90338972f5a6', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "0298ecb05a1615ef97cb51e2be92d475ae35b6f469be0fa336c2912e32b14287f4", + "m/44'/0'/1'/0/0": "036bc08ac8bd391a6538f4b32bd5a399be911292831012ce9c5a5c7653d85b3314", + "m/44'/0'/21234567'/0/0": "025efefdcb3a3b1907c2634b268b61a12fb86fbf08ddbca559edcb339f9aee08be", + "m/44'/0'/2147483646'/0/0": "0255ced5ba2d9aaef27b12a70d94f4150bc732f004f6545aa487c079e3cb82d119", + "m/44'/0'/2147483647'/0/0": "03b8e6311598d0a26531eba2e2d0cc10f7cc6226067d9d2341e9bb0664a293d09a" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03c9b19dbabe013b1d58a2fdace7db2ea8de6b29b269290f8ad371b4ebb42b091d', - "m/49'/0'/1'/0/0": '032beafc2aab5eb5c9da9be241209035e3b03c37000e6770164ebde80aedfa40c6', - "m/49'/0'/21234567'/0/0": - '02079849be4e8faf358344e46f5dd86b6f003e0b97ed65f1e1e084c2ab554e675a', - "m/49'/0'/2147483646'/0/0": - '02599b01a3ccad69304d273fe19ee3fa344215480f68e3c11cfa40f8e20d1f6bd6', - "m/49'/0'/2147483647'/0/0": - '032ba319d92ec8af6fd5b0ccc0974f0c6a83114bbfe7406b870e00fbaad4e30c5e', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "036717cbca275ee55bb25dc8e4bce4067652ba8740941b8660b9124dcd6b5de441", + "m/49'/0'/1'/0/0": "024530d8f24afe686b96ff55a315d35696badb43cd2d23308c4c430484d9227c59", + "m/49'/0'/21234567'/0/0": "02deb75c0fb94a8295b39c0ce5158444ed22eca98a80448d91d70f54b744b2a9ac", + "m/49'/0'/2147483646'/0/0": "03a60950ad9af90ddddf2c4a3f6edd6b0bec060a8db798e4bb8d819b7017292246", + "m/49'/0'/2147483647'/0/0": "0279f41108a62bed45958a78410ffff965ce0d42bafbf6467656753bf69dca90b5" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '025d66b3c08f678fdb82be314d64feef72758449a5c00972d101663a99dc9cc0a5', - "m/84'/0'/1'/0/0": '03e3acd42ead311915b2a01e15676a94c9eee7c23f131f5f56b39e5e56bc64e787', - "m/84'/0'/21234567'/0/0": - '03c018f5ae1908f85a3e9d14c298525019162e55489a58be66884650c2dbc66adb', - "m/84'/0'/2147483646'/0/0": - '03029abf7eb2d9467b43d95e384faa91b9c90bbe40a0e0e8c0afbafba42448c385', - "m/84'/0'/2147483647'/0/0": - '039cff6e2457a4e6299709f9055b4764026800846229d6593748a974265cc5a9c9', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02b40f2a9b1f59a900ef0a2b64190ba79d692711f6530de7f540b0e4ef58eefb3c", + "m/84'/0'/1'/0/0": "02ce85de688780ff91ae33aa4354237a8a5f09382248809a53925279f60c86e6e6", + "m/84'/0'/21234567'/0/0": "02dbc9dab34b1870c6bb873730d5a10e3a2d29c35243a5ae5ffa2384e16488b833", + "m/84'/0'/2147483646'/0/0": "029113fd4beae2f477dfc3fedf8c385d377b46e64442565439af82ec592eab6c2d", + "m/84'/0'/2147483647'/0/0": "028a8a646ad8e3c4d00129d7643a9f4009691e17d4fe7b6ad1ad5557808bd70473" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '02d28400c80f5445a63d492bceada6a994e5a70c6bfd4c8597705c1cd70df2a7e5', - "m/86'/0'/1'/0/0": '03a8bee36973eed67b79a8ae3e310f572781e9e9a7627b1edbd6315e9008011637', - "m/86'/0'/21234567'/0/0": - '03fcd5c5f0be41107019281d5de218dffc6c011b0333756e2e598c937501e374f2', - "m/86'/0'/2147483646'/0/0": - '0222690d5186466a89a24d3d65bd6e6c4bcb1597ccf683cd5b2c7cede692aa0cf4', - "m/86'/0'/2147483647'/0/0": - '037860a9860a7a0d2b0536074dc43e643a7333351a94e15b05f4fc3ec843d06834', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "034e68ea1b425359a10dc134c980fc551287a34bb5007f2fe4218ac61d33c9ea98", + "m/86'/0'/1'/0/0": "0221ad7ac078339c0c6ab5a8f9bffc74d0daf22fd5539c52fbfa6620925c425579", + "m/86'/0'/21234567'/0/0": "035cceda9a302c15c31f7f6a7582e995e97a551b4cf9f131fe8c5ad8cb410e2c79", + "m/86'/0'/2147483646'/0/0": "025f655e8570476ccf7931e6daa49dad423d1a5b0161e550c04edf2688ae6e0796", + "m/86'/0'/2147483647'/0/0": "02104ac324bd0e177a9a20d6066744d675cd11c8180d6dd31b3eef719bd68086ea" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03410b9d1ab2104f77b15bf79bba78c1081edef4361e992054dcbded7e54a9ea55', - "m/44'/60'/1'/0/0": '0x03ea527915362097066d294a44ae8d8181f39d1f51103f19bc17e72a8f33e791b4', - "m/44'/60'/21234567'/0/0": - '0x03d8490674fb481c6115de959d54763724e19a757a56b6aa449e9231d261f186dd', - "m/44'/60'/2147483646'/0/0": - '0x026c983e54f9e98ca6bbed829ed4d755ad066f0e66fd347b0827691f5bba9e8fc7', - "m/44'/60'/2147483647'/0/0": - '0x0210fd8bb8b569f1f9a967d28b7edbfee9675c7336c2829b44d90c89313dccdc01', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x02005e68dc3872fd5686e9ddd561bc94d760c06dd5b83e07685cc0fad1bccb5bd0", + "m/44'/60'/1'/0/0": "0x02d830471f6435f95db5b852feb9676ab0adc1ef3eddf60107bae2b7e7179c5503", + "m/44'/60'/21234567'/0/0": "0x02bbcda305269122107c80a8a57bc3e5473fc0c359bf857ab676d8e4b9dbe869f7", + "m/44'/60'/2147483646'/0/0": "0x028759fbd56eb3fd175384b9587dbaac5d2eb553197dc5055cef3fa67ab040cafe", + "m/44'/60'/2147483647'/0/0": "0x03d55076f5b376a9dff45abd08cbe42a5ce475622a2330d1359570034812b653ab" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '024f4b89fd931d7a54947c0ae217f29d236d50eb43f5156406b1f9381d6a95b7ea', - "m/44'/118'/1'/0/0": '022e629ecdcaf261f1f47c7ad00ddc52a566878641a568257dc5dc029de5cd597c', - "m/44'/118'/21234567'/0/0": - '02c3bf26ac01c1aea618e125f6ef7f2e5933957930289f2215c2f6bd3c9f1f71f7', - "m/44'/118'/2147483646'/0/0": - '037b5bff23ef35c3f431a1b6636d1471723781f3c8952828403daa0df85dab3a48', - "m/44'/118'/2147483647'/0/0": - '0230eaf6b8760b0721aa7855280f545731ddbcdce180f5d73567b569d207d2f809', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "039f3eee83eeb69a67aad3f4fbae530f7ea6f585c628910af4a0516f1160087244", + "m/44'/118'/1'/0/0": "026e46e2cf883a2a5e588904fc561675c92c91190b8c104ce47ec01fc71d823ca1", + "m/44'/118'/21234567'/0/0": "0344da72371a450c733c26edb29f0b6ef2e0abb000a820290f04b18aabd94622b5", + "m/44'/118'/2147483646'/0/0": "0305acc9fedccfd6d671705c8f4259ac66c0b0b95e7b117fb6d1ac768d8e7d986f", + "m/44'/118'/2147483647'/0/0": "036dde82200fda0238869743d5b2783314f28f7e5f7b750f570bb5acf5db9a1e8d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00abf95e5f4a6579425d2366f73a5277853812fa7ea36b4af03d86fdbe99f27014', - "m/44'/784'/1'/0'/0'": '0041206cbc51e57b1187105c2af8bc7f1fafd5eec97e526e7ed48f72ff024d91e5', - "m/44'/784'/21234567'/0'/0'": - '0032d76f592b5278477ec6837d72860b95c41d87a2001d2eb1d3a3de5a8f310267', - "m/44'/784'/2147483646'/0'/0'": - '006f6dfe374c1ed75aa422130d3a6ac09bd63999c7a3a19705132440d317f7cdc3', - "m/44'/784'/2147483647'/0'/0'": - '00fac46a8bff78370f0c70b880833057c1886a2a228f0dd60523f57a776bde4e79', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0047133adf02b3fe792907dbf2fa987dadb838e5eb3d6fb695b102577cc0cc996c", + "m/44'/784'/1'/0'/0'": "00be11e1a04f4d01a2197376bf844a485e22215d781d3ab3c941b3fae7689e9300", + "m/44'/784'/21234567'/0'/0'": "0013bafccbbaebccb970128879ff6c93a3b9ceefe26e3a93b27f00e2d5f8151c3c", + "m/44'/784'/2147483646'/0'/0'": "003861be1c8707d6dbb6a38a42774a7155494af00689042656c42c6e0788a1cce5", + "m/44'/784'/2147483647'/0'/0'": "00e0cdd30876616f457a03ecf93adc56150604efc0c4557b4f7ed85977cd0df7da" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '98d4821c46d40b8a0b9f03ee0fe9846bd537ba748f59a510acd93974efb38a41', - "m/44'/637'/1'/0'/0'": '0a5bfac5aace42ed9ed56a8a3428ef0992387bd66561fc69c8ed6a499ed467f3', - "m/44'/637'/21234567'/0'/0'": - 'b4d9d83f02f26218291781c8d7d70d591b17c877d344caebdaee044a57712030', - "m/44'/637'/2147483646'/0'/0'": - 'd5f66aea9aa666b670ab20bc22f3604170b2bf11f23239d733e93cc151398ab6', - "m/44'/637'/2147483647'/0'/0'": - '99306d437b0260d999474ed9f521585988a8ebee2c2cda4eff172349b4ef3496', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "2b1ffd561d2ebbd7eff5fb3086178b175c2ce608c884fbb691866a7fa43bd73f", + "m/44'/637'/1'/0'/0'": "60cd641fc4eb1b552453adcf631e9a27c32775dd506065d985cfe86d0d216588", + "m/44'/637'/21234567'/0'/0'": "d305e3579fddf48a7668b19af039b8279045e0d0fe3341c0c587c04a4273025f", + "m/44'/637'/2147483646'/0'/0'": "8e12bc4cdfd049bb2e4a2d50be7e9771f34d68d0e156d816a6a4ca4e3016daef", + "m/44'/637'/2147483647'/0'/0'": "5a38d73ab9cb8102749550ea49c2df014684a12a88cc8d2191dad50631fb1dd8" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '1c252494c111d5010b9ede740bed2e62aaa4d31dc74646464f0b099608f4f89d', - "m/44'/1237'/1'/0/0": '798f431edd48481920d7baa1236bec0f9f7195abaab7a877826443c00ad38e9b', - "m/44'/1237'/21234567'/0/0": - 'e79eb83961f571ccf78f3281eafb7969c5d85b454a656dbfadaecb6d81e0008b', - "m/44'/1237'/2147483646'/0/0": - '41121af7e15848408716e00e68c6fb5621bfcbc9c8be8babf14263eeb55b2282', - "m/44'/1237'/2147483647'/0/0": - 'bfb875bdcb2576a74f3ba6be873919e81df39f1f48b8e761850798e0f22e435a', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "e75493255af213cf56215069623bdd389c8e7281e47e68b7becfdd37e96f2478", + "m/44'/1237'/1'/0/0": "e48dce2ced50efdd4f45d30a33a8f0ef6900614f1c07ab4ca96ee98ab3e85d86", + "m/44'/1237'/21234567'/0/0": "f75197ac81432f65be38056012361a67d4f2274eb9e51632484b5d3e869f5bed", + "m/44'/1237'/2147483646'/0/0": "b95862bb3074a0531e7886e1b026e621bd50d77b171c098af9ed554a6c581234", + "m/44'/1237'/2147483647'/0/0": "acaa9e805fa0cce7d7cf578ba6207a79b1f6f58cd536a071c3b54e2500fbb343" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_2.ts index d90e7b9e2..502c1753e 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_2.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphrase2: SLIP39TestCaseData = { - id: 'count20_one_passphrase_2', - name: 'count20_one_passphrase_2', - description: '1-of-1 (20 words) + passphrase_2', - passphrase: "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_2", + "name": "count20_one_passphrase_2", + "description": "1-of-1 (20 words) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '023579e55ee4235886be3e927ea5c997414e2d1440b2097a6e9f587f409d75c538', - "m/44'/0'/1'/0/0": '032070698f8a37921c6be5ba2b38efb0648962d5fcb6c7eb482927e85ef079aa13', - "m/44'/0'/21234567'/0/0": - '03b688df5a9d8ea04b1a06270805d54b935dbe8bbe8d6a23a859c75a06866c9dd1', - "m/44'/0'/2147483646'/0/0": - '0211c4cae098e0c31b7a873f8ec42eda2b1229827a74819e6daa66bb5fc261d27d', - "m/44'/0'/2147483647'/0/0": - '03029f5bcab74a6d9c39eca596a309337630d616409aeddc7398f77f7d46537e07', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "03be111fbad39e11d7f90c2a1f78078d318a8f0c782ad67bfa78377c83bc2e3040", + "m/44'/0'/1'/0/0": "02c819a0710b75f1cbbe39d2349a71b6098f0efb9d198a2e25aa3dd84122c99b58", + "m/44'/0'/21234567'/0/0": "0389939283a3dc3fbcb53e5b420eb4cd0920e8ed57a33e445b6b9321464daebab8", + "m/44'/0'/2147483646'/0/0": "0212442b8b57d26e7759de58169ad2b1736a6ee8b69a4d6142a296bf8297dadefe", + "m/44'/0'/2147483647'/0/0": "02205128b3af64b1070aaaf63700662fab529a41ad0666e3315b7d90338972f5a6" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02a63585e7b4eb981c6b7267bc00c8bb66046667d9057306780cdc850d9e2dade0', - "m/49'/0'/1'/0/0": '0312f9832e3f480494cdf50af0a8f4ea6d35ba293ea6824906670924bf9c605025', - "m/49'/0'/21234567'/0/0": - '028dba4c91314c0c25be1db0ed7e145b7d87b55d26380c4994220f41b719be47d3', - "m/49'/0'/2147483646'/0/0": - '03d395da7abdb9f892b6e7c6430ab3e8dd94d747e61a0d1f50cd93a63651f5a941', - "m/49'/0'/2147483647'/0/0": - '02f580346fe3462276bbdff00301c64ea104643d346810b80d38bcfe764e3b8f3a', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03c9b19dbabe013b1d58a2fdace7db2ea8de6b29b269290f8ad371b4ebb42b091d", + "m/49'/0'/1'/0/0": "032beafc2aab5eb5c9da9be241209035e3b03c37000e6770164ebde80aedfa40c6", + "m/49'/0'/21234567'/0/0": "02079849be4e8faf358344e46f5dd86b6f003e0b97ed65f1e1e084c2ab554e675a", + "m/49'/0'/2147483646'/0/0": "02599b01a3ccad69304d273fe19ee3fa344215480f68e3c11cfa40f8e20d1f6bd6", + "m/49'/0'/2147483647'/0/0": "032ba319d92ec8af6fd5b0ccc0974f0c6a83114bbfe7406b870e00fbaad4e30c5e" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02601cefeda9302155913d6fa012a1eebd097fcab4ffbff2ce8e027f3ee02002cc', - "m/84'/0'/1'/0/0": '0382dcd855913bed840b80e9b8c246b07326f98e0f64ef627b7baad9dfaa40bb9a', - "m/84'/0'/21234567'/0/0": - '021fdef8a5d54b2745bd90679ad2bfc1a6dae5c96369c548e2d2ae82f6bb1a5755', - "m/84'/0'/2147483646'/0/0": - '039c2600f87c9c1bc36894a9abf3e3bb136ae1ce80f62e8c6378b133262ce57eba', - "m/84'/0'/2147483647'/0/0": - '0316bc1a2e38b03b5d7d65902523e987c7b6a031100480563674d50b3f9fae39ce', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "025d66b3c08f678fdb82be314d64feef72758449a5c00972d101663a99dc9cc0a5", + "m/84'/0'/1'/0/0": "03e3acd42ead311915b2a01e15676a94c9eee7c23f131f5f56b39e5e56bc64e787", + "m/84'/0'/21234567'/0/0": "03c018f5ae1908f85a3e9d14c298525019162e55489a58be66884650c2dbc66adb", + "m/84'/0'/2147483646'/0/0": "03029abf7eb2d9467b43d95e384faa91b9c90bbe40a0e0e8c0afbafba42448c385", + "m/84'/0'/2147483647'/0/0": "039cff6e2457a4e6299709f9055b4764026800846229d6593748a974265cc5a9c9" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '03d94da5243c4ebc0f279ecbdb1d190a874c584738bdd398444c7bc4802e603baf', - "m/86'/0'/1'/0/0": '031013ecb79b4710defb9206f1186fa087afdd104b5a3d3a86d64e9c03c3a208fd', - "m/86'/0'/21234567'/0/0": - '028e85e477e70cdb8b6b517f6195304c280d1513115c0815e4d08da27ecc1e5b5b', - "m/86'/0'/2147483646'/0/0": - '03e730f9e700ff36ec9df3e49f825426e048f5267cb9bab9663f7541d6b476d9c3', - "m/86'/0'/2147483647'/0/0": - '03691738d50fd259ec4fe09e49b7514ee4de61a1916be0af3f8063b7bcc15daca8', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02d28400c80f5445a63d492bceada6a994e5a70c6bfd4c8597705c1cd70df2a7e5", + "m/86'/0'/1'/0/0": "03a8bee36973eed67b79a8ae3e310f572781e9e9a7627b1edbd6315e9008011637", + "m/86'/0'/21234567'/0/0": "03fcd5c5f0be41107019281d5de218dffc6c011b0333756e2e598c937501e374f2", + "m/86'/0'/2147483646'/0/0": "0222690d5186466a89a24d3d65bd6e6c4bcb1597ccf683cd5b2c7cede692aa0cf4", + "m/86'/0'/2147483647'/0/0": "037860a9860a7a0d2b0536074dc43e643a7333351a94e15b05f4fc3ec843d06834" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03bb09efc64a487a02e5eed6c0c14390b356a2ae185cc99342d4f8e78d9baceda5', - "m/44'/60'/1'/0/0": '0x039dd84cc0c40a41cd6efad55dfacb8b39033359a74a2847132b18261970308f5b', - "m/44'/60'/21234567'/0/0": - '0x028d4e453a1dfe9f87e27891b8d705ae1795226e4be8fe5c17bad0245f77aa16cf', - "m/44'/60'/2147483646'/0/0": - '0x03ad7169bc229c1534e839071e451054467ba4f9a1cef3b9e2b79c5ea268f909ce', - "m/44'/60'/2147483647'/0/0": - '0x0300843f48d7eac0645c4cc54d4f30e5c99133efac63a7c0c4441e44cd601bae78', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03410b9d1ab2104f77b15bf79bba78c1081edef4361e992054dcbded7e54a9ea55", + "m/44'/60'/1'/0/0": "0x03ea527915362097066d294a44ae8d8181f39d1f51103f19bc17e72a8f33e791b4", + "m/44'/60'/21234567'/0/0": "0x03d8490674fb481c6115de959d54763724e19a757a56b6aa449e9231d261f186dd", + "m/44'/60'/2147483646'/0/0": "0x026c983e54f9e98ca6bbed829ed4d755ad066f0e66fd347b0827691f5bba9e8fc7", + "m/44'/60'/2147483647'/0/0": "0x0210fd8bb8b569f1f9a967d28b7edbfee9675c7336c2829b44d90c89313dccdc01" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '03b961c8fc59ad8f6bc30582cd12c0f4ba19f33976763981e8f53cb0c2a51ac1e6', - "m/44'/118'/1'/0/0": '0371217287d274d147e61256959c56531b66008bcb48c0bca393ee288b5c759e36', - "m/44'/118'/21234567'/0/0": - '03d8a30f9611827c99de894d67e4dc4c56115a9f01b82b05d072b4b555eee98aca', - "m/44'/118'/2147483646'/0/0": - '03f03aeaf9bdbeefcf934cf9dbff84a2973b91c1fcd85bbb4babeffc9ba01168dd', - "m/44'/118'/2147483647'/0/0": - '021560375947edcba2c1d942d9e30dc40987e4a1b2b82d1c16a4692172722e55f4', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "024f4b89fd931d7a54947c0ae217f29d236d50eb43f5156406b1f9381d6a95b7ea", + "m/44'/118'/1'/0/0": "022e629ecdcaf261f1f47c7ad00ddc52a566878641a568257dc5dc029de5cd597c", + "m/44'/118'/21234567'/0/0": "02c3bf26ac01c1aea618e125f6ef7f2e5933957930289f2215c2f6bd3c9f1f71f7", + "m/44'/118'/2147483646'/0/0": "037b5bff23ef35c3f431a1b6636d1471723781f3c8952828403daa0df85dab3a48", + "m/44'/118'/2147483647'/0/0": "0230eaf6b8760b0721aa7855280f545731ddbcdce180f5d73567b569d207d2f809" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00c74387458be04f878b96c5980e9098c21c614c5a79151782b0b970b3e4be109b', - "m/44'/784'/1'/0'/0'": '001a9b9f2a8b0464d64d34bbba0c905267e46d1f2b18e2b9bc5f7ee71ef050c5d2', - "m/44'/784'/21234567'/0'/0'": - '004aa9ec29234b2e5e8460bfbdf0a9cb37a1527fc9c1cb9a1df3ed6f29313b3985', - "m/44'/784'/2147483646'/0'/0'": - '0078744521e6ec682b97de3de5d3453fa52b7c4116edc31b52b8bc4c3bb82baf1a', - "m/44'/784'/2147483647'/0'/0'": - '004e6389de4ac9a53a5694dc42bce48f2fcd5ffc1e648d1dfceb3ec852a417dfa4', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00abf95e5f4a6579425d2366f73a5277853812fa7ea36b4af03d86fdbe99f27014", + "m/44'/784'/1'/0'/0'": "0041206cbc51e57b1187105c2af8bc7f1fafd5eec97e526e7ed48f72ff024d91e5", + "m/44'/784'/21234567'/0'/0'": "0032d76f592b5278477ec6837d72860b95c41d87a2001d2eb1d3a3de5a8f310267", + "m/44'/784'/2147483646'/0'/0'": "006f6dfe374c1ed75aa422130d3a6ac09bd63999c7a3a19705132440d317f7cdc3", + "m/44'/784'/2147483647'/0'/0'": "00fac46a8bff78370f0c70b880833057c1886a2a228f0dd60523f57a776bde4e79" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '396548eb853ef5170887394fd6219bcf21dbb079996415f5b5cec65cc074d969', - "m/44'/637'/1'/0'/0'": '81f984940f0449c373eec532c8af990f5c531c7b4ed4cdec0940b2fd0ee74d4e', - "m/44'/637'/21234567'/0'/0'": - '4656b43205160de2bf7c589bbd09bf25c75de922677dfa5979764f5a5551e5aa', - "m/44'/637'/2147483646'/0'/0'": - 'c1065d0a0ea97d2d1c874ed2f71528a43e2f7d2c0c49e025bd725a89586ada84', - "m/44'/637'/2147483647'/0'/0'": - '1ef4fd9fbc2e4e397cb88fd5dea2bc24b82bd5558b902ffb17d98c092681f3fc', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "98d4821c46d40b8a0b9f03ee0fe9846bd537ba748f59a510acd93974efb38a41", + "m/44'/637'/1'/0'/0'": "0a5bfac5aace42ed9ed56a8a3428ef0992387bd66561fc69c8ed6a499ed467f3", + "m/44'/637'/21234567'/0'/0'": "b4d9d83f02f26218291781c8d7d70d591b17c877d344caebdaee044a57712030", + "m/44'/637'/2147483646'/0'/0'": "d5f66aea9aa666b670ab20bc22f3604170b2bf11f23239d733e93cc151398ab6", + "m/44'/637'/2147483647'/0'/0'": "99306d437b0260d999474ed9f521585988a8ebee2c2cda4eff172349b4ef3496" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '29e4c907bddbde1208fe92a4a580223503f64e74cea9f69822628ea6500f964b', - "m/44'/1237'/1'/0/0": '8fdd83053491223c262d53fb2efb7f0eb58dbc9e27cc147169df175a9b948d76', - "m/44'/1237'/21234567'/0/0": - 'eb4bb448b220f4994a19334fbb5a89df102844afc86f5d2e41235f01427223af', - "m/44'/1237'/2147483646'/0/0": - '53ebc06bfa4ad73f139d00239b87803746ac473708cf60159a325391cddc6f49', - "m/44'/1237'/2147483647'/0/0": - '0ca0c6653842c249dffc7405aac57564b2493c459ba57b9eaa970ef924d94ff7', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "1c252494c111d5010b9ede740bed2e62aaa4d31dc74646464f0b099608f4f89d", + "m/44'/1237'/1'/0/0": "798f431edd48481920d7baa1236bec0f9f7195abaab7a877826443c00ad38e9b", + "m/44'/1237'/21234567'/0/0": "e79eb83961f571ccf78f3281eafb7969c5d85b454a656dbfadaecb6d81e0008b", + "m/44'/1237'/2147483646'/0/0": "41121af7e15848408716e00e68c6fb5621bfcbc9c8be8babf14263eeb55b2282", + "m/44'/1237'/2147483647'/0/0": "bfb875bdcb2576a74f3ba6be873919e81df39f1f48b8e761850798e0f22e435a" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_empty.ts index 3f197fd21..0d74584f5 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_one/passphrase_empty.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20OnePassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_one_passphrase_empty', - name: 'count20_one_passphrase_empty', - description: '1-of-1 (20 words) + passphrase_empty', - passphrase: '', - shares: [ - 'fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis', + "id": "count20_one_passphrase_empty", + "name": "count20_one_passphrase_empty", + "description": "1-of-1 (20 words) + passphrase_empty", + "passphrase": "", + "shares": [ + "fake kidney academic academic dwarf orange primary secret mixed auction priority daughter script smell smear judicial ceramic glen theory emphasis" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '023b56ad511a1bb36109bb38d26b90257544606347c2d74985f6b62dfada7d8057', - "m/44'/0'/1'/0/0": '02b1509bae399ba44f62143a1124040e4b29e17e17931fc20eb4c9d01990640625', - "m/44'/0'/21234567'/0/0": - '02cb00b5d48d19108d81ce6107a2d7ef1f422dbbbb596f77058bef0b2725c72f18', - "m/44'/0'/2147483646'/0/0": - '024d99ee7dab3579d823e882114df11955814eb63953e5001b9e2f88fc18c5c453', - "m/44'/0'/2147483647'/0/0": - '025ddadfd93ba71156c69828d12a196f9c39e0715d0ce276e70c94e79edfb942cc', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "023b56ad511a1bb36109bb38d26b90257544606347c2d74985f6b62dfada7d8057", + "m/44'/0'/1'/0/0": "02b1509bae399ba44f62143a1124040e4b29e17e17931fc20eb4c9d01990640625", + "m/44'/0'/21234567'/0/0": "02cb00b5d48d19108d81ce6107a2d7ef1f422dbbbb596f77058bef0b2725c72f18", + "m/44'/0'/2147483646'/0/0": "024d99ee7dab3579d823e882114df11955814eb63953e5001b9e2f88fc18c5c453", + "m/44'/0'/2147483647'/0/0": "025ddadfd93ba71156c69828d12a196f9c39e0715d0ce276e70c94e79edfb942cc" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '038590480c9dfea4fc2acfc211472410eeefb7be82cb4ba525d5a1fb26d4912eae', - "m/49'/0'/1'/0/0": '0281f3e6610714f338e8f6076a93d788b6b6552225555e99ac1857f35d48834e4e', - "m/49'/0'/21234567'/0/0": - '0260f5b5602d052ad78d3b5f78f812932ccf7a2d057dce40da89c774fdb24801f9', - "m/49'/0'/2147483646'/0/0": - '031bca0510449495a354ae302f8adecc488edbfdb04f8f2d6e0afca98e8c69a5de', - "m/49'/0'/2147483647'/0/0": - '03a79bafe3ffb9756116f9398c3c4a40cf513e8db07b6c3967a8091ea5ff69dc5b', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "038590480c9dfea4fc2acfc211472410eeefb7be82cb4ba525d5a1fb26d4912eae", + "m/49'/0'/1'/0/0": "0281f3e6610714f338e8f6076a93d788b6b6552225555e99ac1857f35d48834e4e", + "m/49'/0'/21234567'/0/0": "0260f5b5602d052ad78d3b5f78f812932ccf7a2d057dce40da89c774fdb24801f9", + "m/49'/0'/2147483646'/0/0": "031bca0510449495a354ae302f8adecc488edbfdb04f8f2d6e0afca98e8c69a5de", + "m/49'/0'/2147483647'/0/0": "03a79bafe3ffb9756116f9398c3c4a40cf513e8db07b6c3967a8091ea5ff69dc5b" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02077d532889074478a89b707cf5f09228152e093d499d95674fa80a52fa3206d7', - "m/84'/0'/1'/0/0": '02a866564591c5a25eba0730cd26564a41145e09de07f64897413730acd71c6b95', - "m/84'/0'/21234567'/0/0": - '0205732cd7a6056699a38f7b6b4327c2103f382f67e6a3c71f008f5db6ae4e8277', - "m/84'/0'/2147483646'/0/0": - '03871f1a1f245090c49fdccbcb61af1fe9339ef819d4aa213f70542ca3ac9d5678', - "m/84'/0'/2147483647'/0/0": - '03bdf20b5a0af9e22aaf68d4bae2ff98f5df12ea52e4a6be4ecad491f1983bb9ee', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02077d532889074478a89b707cf5f09228152e093d499d95674fa80a52fa3206d7", + "m/84'/0'/1'/0/0": "02a866564591c5a25eba0730cd26564a41145e09de07f64897413730acd71c6b95", + "m/84'/0'/21234567'/0/0": "0205732cd7a6056699a38f7b6b4327c2103f382f67e6a3c71f008f5db6ae4e8277", + "m/84'/0'/2147483646'/0/0": "03871f1a1f245090c49fdccbcb61af1fe9339ef819d4aa213f70542ca3ac9d5678", + "m/84'/0'/2147483647'/0/0": "03bdf20b5a0af9e22aaf68d4bae2ff98f5df12ea52e4a6be4ecad491f1983bb9ee" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '03ac922f162c4c423215e5b015a7462553c2dd9d2adcf5ac1f5db1c485c047511c', - "m/86'/0'/1'/0/0": '02c08285d7dc83aa24de96976e9a4ceeb4a51d6cae1e2ec1d96fd341030e7bbd0d', - "m/86'/0'/21234567'/0/0": - '025dc37549fc4cc6b1d0909635ad7d6184c82bff1683f9bad6145ce78825d3fd87', - "m/86'/0'/2147483646'/0/0": - '02b8ca271c6e1f81233f506456599129d33538fc1c675d22cf0a78e4d3a58b9985', - "m/86'/0'/2147483647'/0/0": - '03044978ce92166c4557ac313ba3e9ea9538bb5c231fb62a7b4596e00af6cedd13', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "03ac922f162c4c423215e5b015a7462553c2dd9d2adcf5ac1f5db1c485c047511c", + "m/86'/0'/1'/0/0": "02c08285d7dc83aa24de96976e9a4ceeb4a51d6cae1e2ec1d96fd341030e7bbd0d", + "m/86'/0'/21234567'/0/0": "025dc37549fc4cc6b1d0909635ad7d6184c82bff1683f9bad6145ce78825d3fd87", + "m/86'/0'/2147483646'/0/0": "02b8ca271c6e1f81233f506456599129d33538fc1c675d22cf0a78e4d3a58b9985", + "m/86'/0'/2147483647'/0/0": "03044978ce92166c4557ac313ba3e9ea9538bb5c231fb62a7b4596e00af6cedd13" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0323e2bad2e6d341a997a8290b5f6d0e52720c34bc7193ea8cfb0e537925219466', - "m/44'/60'/1'/0/0": '0x025ce17cf54c64252d2ae46c4c0aab8abaa929bf78b2ba4b9f6dd1f73bf5c8e18b', - "m/44'/60'/21234567'/0/0": - '0x022fc0b5ef9f9ef7b27407581981d14b100700c278dd806ae8649d4ec2140d4138', - "m/44'/60'/2147483646'/0/0": - '0x0210bf9ea441eca8b22f16a0dbb2024d5df80a79d0b8fc9a27fb6985074840183f', - "m/44'/60'/2147483647'/0/0": - '0x03d4f4bc0c45129485c4bdd991d78f75e9e972cfa0ff187cdb9c799d297d86452a', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0323e2bad2e6d341a997a8290b5f6d0e52720c34bc7193ea8cfb0e537925219466", + "m/44'/60'/1'/0/0": "0x025ce17cf54c64252d2ae46c4c0aab8abaa929bf78b2ba4b9f6dd1f73bf5c8e18b", + "m/44'/60'/21234567'/0/0": "0x022fc0b5ef9f9ef7b27407581981d14b100700c278dd806ae8649d4ec2140d4138", + "m/44'/60'/2147483646'/0/0": "0x0210bf9ea441eca8b22f16a0dbb2024d5df80a79d0b8fc9a27fb6985074840183f", + "m/44'/60'/2147483647'/0/0": "0x03d4f4bc0c45129485c4bdd991d78f75e9e972cfa0ff187cdb9c799d297d86452a" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '034821b4744dbc8c236b1f0b392a4ebb195340d78cd0e228b12febbe21cecda810', - "m/44'/118'/1'/0/0": '02a880a46a4d6ffacd7e8cf167473d5b573e0f63786bb7abef9f12c52f3d107f7e', - "m/44'/118'/21234567'/0/0": - '033d45aaaf2adf92e0fa75bf82f61c424b50554af9a478dc5441c9dcb887b8d94e', - "m/44'/118'/2147483646'/0/0": - '022cd9a33eaa89c529d36088e40a2816970f30ac0f6a052313c12be91437e7bfa5', - "m/44'/118'/2147483647'/0/0": - '0227d6f9b5f410decf982ca541fcd23aa138bcf1209e6a2f9dbcc6cbb2f41efaa6', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "034821b4744dbc8c236b1f0b392a4ebb195340d78cd0e228b12febbe21cecda810", + "m/44'/118'/1'/0/0": "02a880a46a4d6ffacd7e8cf167473d5b573e0f63786bb7abef9f12c52f3d107f7e", + "m/44'/118'/21234567'/0/0": "033d45aaaf2adf92e0fa75bf82f61c424b50554af9a478dc5441c9dcb887b8d94e", + "m/44'/118'/2147483646'/0/0": "022cd9a33eaa89c529d36088e40a2816970f30ac0f6a052313c12be91437e7bfa5", + "m/44'/118'/2147483647'/0/0": "0227d6f9b5f410decf982ca541fcd23aa138bcf1209e6a2f9dbcc6cbb2f41efaa6" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00da569eee03fba319e6bc5bef5cf95a49d58b86ffcda1cc6a524a75e0681f413f', - "m/44'/784'/1'/0'/0'": '0002d74b86ce645627c23ac9c369d688700530ac4617a3d00c62cac64b5db7b72f', - "m/44'/784'/21234567'/0'/0'": - '00d567a5bd823b8129570092efdf8a663096d77abe36aaf84492c7271843e51bdc', - "m/44'/784'/2147483646'/0'/0'": - '005cf429f9b6ff963a2497accce278c574a999f0e902a6b48436c1daca6f1059eb', - "m/44'/784'/2147483647'/0'/0'": - '00cd8306ecdf880e6eb60b4e8880f724ca8a70c4d1fdccb2d1ad7e2215b61d96f7', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00da569eee03fba319e6bc5bef5cf95a49d58b86ffcda1cc6a524a75e0681f413f", + "m/44'/784'/1'/0'/0'": "0002d74b86ce645627c23ac9c369d688700530ac4617a3d00c62cac64b5db7b72f", + "m/44'/784'/21234567'/0'/0'": "00d567a5bd823b8129570092efdf8a663096d77abe36aaf84492c7271843e51bdc", + "m/44'/784'/2147483646'/0'/0'": "005cf429f9b6ff963a2497accce278c574a999f0e902a6b48436c1daca6f1059eb", + "m/44'/784'/2147483647'/0'/0'": "00cd8306ecdf880e6eb60b4e8880f724ca8a70c4d1fdccb2d1ad7e2215b61d96f7" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '4a88aa7b9ce75aa29cb39984ab6a796bddaeb6233d8bcc2111ee8a46c98e8f2b', - "m/44'/637'/1'/0'/0'": 'ed60216f1d95e754e9d309e704162cce2cb4fd9e2f7c80e959e7cb5ee688d356', - "m/44'/637'/21234567'/0'/0'": - '89b93285e84a00bad8e95f62332756619b0c22927816c8cdb0bed2cd6cc8bd50', - "m/44'/637'/2147483646'/0'/0'": - '35bc6b69a35dcc6e4878b6c9756eaafd164f7f23be7d06d0a2b9f39b3c4da6cc', - "m/44'/637'/2147483647'/0'/0'": - '631ebb93880d6ca548e1cf7906fe1280452a5a6f2928dfe703e3160e37faaedc', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "4a88aa7b9ce75aa29cb39984ab6a796bddaeb6233d8bcc2111ee8a46c98e8f2b", + "m/44'/637'/1'/0'/0'": "ed60216f1d95e754e9d309e704162cce2cb4fd9e2f7c80e959e7cb5ee688d356", + "m/44'/637'/21234567'/0'/0'": "89b93285e84a00bad8e95f62332756619b0c22927816c8cdb0bed2cd6cc8bd50", + "m/44'/637'/2147483646'/0'/0'": "35bc6b69a35dcc6e4878b6c9756eaafd164f7f23be7d06d0a2b9f39b3c4da6cc", + "m/44'/637'/2147483647'/0'/0'": "631ebb93880d6ca548e1cf7906fe1280452a5a6f2928dfe703e3160e37faaedc" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '1f0c649acc7c805d1152810f59f0f092824d44c9e2550cdd30ae7ebd22732f01', - "m/44'/1237'/1'/0/0": 'ec8bbaa405af8b959786eac67f47c3ca69ca64a8e142a3576966d4fdbe493ae8', - "m/44'/1237'/21234567'/0/0": - '0949eee87279a86a65cd76b04c2d54074da54fc81b6b97181aae3f120c16a940', - "m/44'/1237'/2147483646'/0/0": - '8c0b1a3b9c6aa52997580630fb056928c7ccc9c34f60386146b69f1b83695fc2', - "m/44'/1237'/2147483647'/0/0": - 'ebab4fd360a5cdff30c3298e5e965b75c93fd16a540d97bf7945b784deadc827', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "1f0c649acc7c805d1152810f59f0f092824d44c9e2550cdd30ae7ebd22732f01", + "m/44'/1237'/1'/0/0": "ec8bbaa405af8b959786eac67f47c3ca69ca64a8e142a3576966d4fdbe493ae8", + "m/44'/1237'/21234567'/0/0": "0949eee87279a86a65cd76b04c2d54074da54fc81b6b97181aae3f120c16a940", + "m/44'/1237'/2147483646'/0/0": "8c0b1a3b9c6aa52997580630fb056928c7ccc9c34f60386146b69f1b83695fc2", + "m/44'/1237'/2147483647'/0/0": "ebab4fd360a5cdff30c3298e5e965b75c93fd16a540d97bf7945b784deadc827" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/normal.ts index 5d9353ab8..43d4f019f 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/normal.ts @@ -1,188 +1,161 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreeNormal: SLIP39TestCaseData = { - id: 'count20_three_normal', - name: 'count20_three_normal', - description: '16-of-16 (20 words each) + normal', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_normal", + "name": "count20_three_normal", + "description": "16-of-16 (20 words each) + normal", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '02143fc4f6a694616d567936fe3a38620ae96deb8ddee2e367a2fe9ba6c38a6e24', - "m/44'/0'/1'/0/0": '03cfac6b9d15b41da43d8da5eb985117270412e86f6c340db82d0bbe669fed783b', - "m/44'/0'/21234567'/0/0": - '03e9cbef3f02bd238d5ced4586f2004656bd34cf3b047e27796277f4d54b677b8a', - "m/44'/0'/2147483646'/0/0": - '020e49b30a5ff2478152444875278897db2d9ef4189b826cf058a011ac615ad532', - "m/44'/0'/2147483647'/0/0": - '038331bfaa73fc3ae8735471694fd4828e5c32a06cbce6867eb9ce3b2c88fda9db', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "02143fc4f6a694616d567936fe3a38620ae96deb8ddee2e367a2fe9ba6c38a6e24", + "m/44'/0'/1'/0/0": "03cfac6b9d15b41da43d8da5eb985117270412e86f6c340db82d0bbe669fed783b", + "m/44'/0'/21234567'/0/0": "03e9cbef3f02bd238d5ced4586f2004656bd34cf3b047e27796277f4d54b677b8a", + "m/44'/0'/2147483646'/0/0": "020e49b30a5ff2478152444875278897db2d9ef4189b826cf058a011ac615ad532", + "m/44'/0'/2147483647'/0/0": "038331bfaa73fc3ae8735471694fd4828e5c32a06cbce6867eb9ce3b2c88fda9db" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02f929d186ef402d2b503d03534c667fa7ca2e5ed4d035e491674ad28692af9ab9', - "m/49'/0'/1'/0/0": '0235e2f44affc9481f0165a19d04791553bf89cb38236a23e18e7b9775254bb493', - "m/49'/0'/21234567'/0/0": - '03d72acb4b0dfc43181200984cfe5f34a304b25e27f9f71bcec6cf001481b7442e', - "m/49'/0'/2147483646'/0/0": - '038a55f1e02402ef27f507cf869213e24937cd98a10450ecaaa359f55641272126', - "m/49'/0'/2147483647'/0/0": - '0232cef290700ed47f4b3ed382b61a626cbf6a81a72dec51f315e0feffce859479', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02f929d186ef402d2b503d03534c667fa7ca2e5ed4d035e491674ad28692af9ab9", + "m/49'/0'/1'/0/0": "0235e2f44affc9481f0165a19d04791553bf89cb38236a23e18e7b9775254bb493", + "m/49'/0'/21234567'/0/0": "03d72acb4b0dfc43181200984cfe5f34a304b25e27f9f71bcec6cf001481b7442e", + "m/49'/0'/2147483646'/0/0": "038a55f1e02402ef27f507cf869213e24937cd98a10450ecaaa359f55641272126", + "m/49'/0'/2147483647'/0/0": "0232cef290700ed47f4b3ed382b61a626cbf6a81a72dec51f315e0feffce859479" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '03a99e99b159711e43def2ed4bc068bec8d07b954c36f2c6e8f823aa82bcc60312', - "m/84'/0'/1'/0/0": '036ef761383115f20884a3fd5179b60b000c55675b9814152f4431da169f878bc2', - "m/84'/0'/21234567'/0/0": - '02f845c5cfcb0aa4b788a33a03f35a513434b79b80579b1e89b7b050480893b82e', - "m/84'/0'/2147483646'/0/0": - '02c731869bb639b12f47ff64fc0c88be0a6ab2705073cec372e2ab59ad89ab3f45', - "m/84'/0'/2147483647'/0/0": - '02c7232468690848d3533cdef2884c07bbaf661ec3e0b6f77ada7e9a95e7daf5d7', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "03a99e99b159711e43def2ed4bc068bec8d07b954c36f2c6e8f823aa82bcc60312", + "m/84'/0'/1'/0/0": "036ef761383115f20884a3fd5179b60b000c55675b9814152f4431da169f878bc2", + "m/84'/0'/21234567'/0/0": "02f845c5cfcb0aa4b788a33a03f35a513434b79b80579b1e89b7b050480893b82e", + "m/84'/0'/2147483646'/0/0": "02c731869bb639b12f47ff64fc0c88be0a6ab2705073cec372e2ab59ad89ab3f45", + "m/84'/0'/2147483647'/0/0": "02c7232468690848d3533cdef2884c07bbaf661ec3e0b6f77ada7e9a95e7daf5d7" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0371562350c7676c96dc4cfd13e3784977d3b851dbb44d987b84e5201f80aac72c', - "m/86'/0'/1'/0/0": '035b4c5fc522838eefa1987b2e81d3765491fb1f141e9d0bb826edd399ab509507', - "m/86'/0'/21234567'/0/0": - '025b6f25a7516d37bc1a1fd4aa65d18fcb98a16f558515fb2bdd6d899c004f3492', - "m/86'/0'/2147483646'/0/0": - '03ee280f9f293555d0abbdbd53622148d9b5a6cf4b5e87fe720ef05cf8145c36f3', - "m/86'/0'/2147483647'/0/0": - '025cd7c45e789e9e7854700c5a00436eeadfd81fdf4720cd786d2fb932d9b8ba22', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "0371562350c7676c96dc4cfd13e3784977d3b851dbb44d987b84e5201f80aac72c", + "m/86'/0'/1'/0/0": "035b4c5fc522838eefa1987b2e81d3765491fb1f141e9d0bb826edd399ab509507", + "m/86'/0'/21234567'/0/0": "025b6f25a7516d37bc1a1fd4aa65d18fcb98a16f558515fb2bdd6d899c004f3492", + "m/86'/0'/2147483646'/0/0": "03ee280f9f293555d0abbdbd53622148d9b5a6cf4b5e87fe720ef05cf8145c36f3", + "m/86'/0'/2147483647'/0/0": "025cd7c45e789e9e7854700c5a00436eeadfd81fdf4720cd786d2fb932d9b8ba22" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x029027e33e221084e230f8a2bbf3a524da453aa3ce192307ee4b4853f1009ff30a', - "m/44'/60'/1'/0/0": '0x0245bbe25ab666144cdb6b835b88685ffea515b9d53f366cf861a421d4295434c2', - "m/44'/60'/21234567'/0/0": - '0x024713f6c1e5bf0bad5723985f9769b486e973598b5534de7df5eadc14685f98b6', - "m/44'/60'/2147483646'/0/0": - '0x03dd3db9ac528149c86c58b8b6144cba82ccf5f25715da56f77a4d93be43cd6bbb', - "m/44'/60'/2147483647'/0/0": - '0x034fd968a161143aa198e8ae356b4d4afc7b2a19ffcde5a24a614dfe400781abe3', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x029027e33e221084e230f8a2bbf3a524da453aa3ce192307ee4b4853f1009ff30a", + "m/44'/60'/1'/0/0": "0x0245bbe25ab666144cdb6b835b88685ffea515b9d53f366cf861a421d4295434c2", + "m/44'/60'/21234567'/0/0": "0x024713f6c1e5bf0bad5723985f9769b486e973598b5534de7df5eadc14685f98b6", + "m/44'/60'/2147483646'/0/0": "0x03dd3db9ac528149c86c58b8b6144cba82ccf5f25715da56f77a4d93be43cd6bbb", + "m/44'/60'/2147483647'/0/0": "0x034fd968a161143aa198e8ae356b4d4afc7b2a19ffcde5a24a614dfe400781abe3" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '0389e15511f680e6392fc0d99c8ca70e3b2ccab097229a39632f888502d980e0ad', - "m/44'/118'/1'/0/0": '031eec40a6724f64f4b9a656bfc9b5502356f19987091d30f2d5fa0cb8a4c8f85a', - "m/44'/118'/21234567'/0/0": - '02102d129eea49ac302afc320ae0a93928e7e7ad62f1a4ef4d67165b664dccd1b9', - "m/44'/118'/2147483646'/0/0": - '02fa73cbfa48cbc744f14d2022a4271738c8a6821498102420e55ec96ca42353a6', - "m/44'/118'/2147483647'/0/0": - '02f07d1f7d1dc8ce8fd3ea631b495c97a9ee9e5450855ba1712fddd5b806f3cf64', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "0389e15511f680e6392fc0d99c8ca70e3b2ccab097229a39632f888502d980e0ad", + "m/44'/118'/1'/0/0": "031eec40a6724f64f4b9a656bfc9b5502356f19987091d30f2d5fa0cb8a4c8f85a", + "m/44'/118'/21234567'/0/0": "02102d129eea49ac302afc320ae0a93928e7e7ad62f1a4ef4d67165b664dccd1b9", + "m/44'/118'/2147483646'/0/0": "02fa73cbfa48cbc744f14d2022a4271738c8a6821498102420e55ec96ca42353a6", + "m/44'/118'/2147483647'/0/0": "02f07d1f7d1dc8ce8fd3ea631b495c97a9ee9e5450855ba1712fddd5b806f3cf64" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00b5e2de24066e5c57f65fe520a6b6838b5080863c5c0c11227ce62738b09c0def', - "m/44'/784'/1'/0'/0'": '00d8139d689c6d3d261fb98cadfdb81e96c227967f4544bdc927a543ba62a6ac7b', - "m/44'/784'/21234567'/0'/0'": - '004820ad6031284d95a365ecbee67086aac67fbaf88b022a6f6b5d7833851a7e00', - "m/44'/784'/2147483646'/0'/0'": - '00abe52959336c19a10d6c9ba345d12a297b1c448a8fb6f39222bc2b8730d607af', - "m/44'/784'/2147483647'/0'/0'": - '00418356448284c912c1d36b729f1817f0b8d1a6d38bfd8907d4fc3fdd606887da', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00b5e2de24066e5c57f65fe520a6b6838b5080863c5c0c11227ce62738b09c0def", + "m/44'/784'/1'/0'/0'": "00d8139d689c6d3d261fb98cadfdb81e96c227967f4544bdc927a543ba62a6ac7b", + "m/44'/784'/21234567'/0'/0'": "004820ad6031284d95a365ecbee67086aac67fbaf88b022a6f6b5d7833851a7e00", + "m/44'/784'/2147483646'/0'/0'": "00abe52959336c19a10d6c9ba345d12a297b1c448a8fb6f39222bc2b8730d607af", + "m/44'/784'/2147483647'/0'/0'": "00418356448284c912c1d36b729f1817f0b8d1a6d38bfd8907d4fc3fdd606887da" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '85fb2801343dd5705d7901226d30706ed64ca4bcbd5ef5edcaa8df31bafc12e9', - "m/44'/637'/1'/0'/0'": '0ccbbd34b0cfde7b10768a1103faf36e0f765325587ce26bfcc379c9c45d9f64', - "m/44'/637'/21234567'/0'/0'": - '306a1d4c71227b3f06b215050d3a6a539a78adb29ce59173937492e527a31bac', - "m/44'/637'/2147483646'/0'/0'": - 'bdba0e946a3e36729097a8982d6af16821831abd2bd742a2633140961e81f08d', - "m/44'/637'/2147483647'/0'/0'": - 'c88500335427fc67ce3221ff65cff0d6ffc26b0c40e352451ecd9ea99f1c5507', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "85fb2801343dd5705d7901226d30706ed64ca4bcbd5ef5edcaa8df31bafc12e9", + "m/44'/637'/1'/0'/0'": "0ccbbd34b0cfde7b10768a1103faf36e0f765325587ce26bfcc379c9c45d9f64", + "m/44'/637'/21234567'/0'/0'": "306a1d4c71227b3f06b215050d3a6a539a78adb29ce59173937492e527a31bac", + "m/44'/637'/2147483646'/0'/0'": "bdba0e946a3e36729097a8982d6af16821831abd2bd742a2633140961e81f08d", + "m/44'/637'/2147483647'/0'/0'": "c88500335427fc67ce3221ff65cff0d6ffc26b0c40e352451ecd9ea99f1c5507" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '7150ca9f944c8dfad335ce6b96af6bb92daac7384b133f243095d68fc39c9c16', - "m/44'/1237'/1'/0/0": '96e99d2453959a0ae361209013b931878d894012faacb52e9cec69861712700d', - "m/44'/1237'/21234567'/0/0": - '0fade7a7cc98361585b22c4fe9452f6236a1ae6aa81d17889cb6b352b9c148c7', - "m/44'/1237'/2147483646'/0/0": - '5d5472f5c362cd60061bba5341cb71b09bd1fb11923addf3e1d42ca1d2403fa0', - "m/44'/1237'/2147483647'/0/0": - '3b946459fc2e0d57a9bd57dc6349f24c70c1e6d3762665668fc5eca9ef9683a6', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "7150ca9f944c8dfad335ce6b96af6bb92daac7384b133f243095d68fc39c9c16", + "m/44'/1237'/1'/0/0": "96e99d2453959a0ae361209013b931878d894012faacb52e9cec69861712700d", + "m/44'/1237'/21234567'/0/0": "0fade7a7cc98361585b22c4fe9452f6236a1ae6aa81d17889cb6b352b9c148c7", + "m/44'/1237'/2147483646'/0/0": "5d5472f5c362cd60061bba5341cb71b09bd1fb11923addf3e1d42ca1d2403fa0", + "m/44'/1237'/2147483647'/0/0": "3b946459fc2e0d57a9bd57dc6349f24c70c1e6d3762665668fc5eca9ef9683a6" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_1.ts index 343c671d2..89b2f6060 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_1.ts @@ -1,189 +1,162 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphrase1: SLIP39TestCaseData = { - id: 'count20_three_passphrase_1', - name: 'count20_three_passphrase_1', - description: '16-of-16 (20 words each) + passphrase_1', - passphrase: 'onekey', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_1", + "name": "count20_three_passphrase_1", + "description": "16-of-16 (20 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '0356688a8c67084ffa53be9f2653711f103b996ddd35fef6d52bf131ef45130066', - "m/44'/0'/1'/0/0": '021d147e05d5bce7ef3b97290e2d94f5f5cbe7a6d1958663032c57d9f444f3eb3d', - "m/44'/0'/21234567'/0/0": - '028957384c110d555cbc943c6934c1e9f0f129db65265b1b42620a0ca05945dd11', - "m/44'/0'/2147483646'/0/0": - '03e31bb50650875e3e4659aa8d7ea0f3520fe6d2bea1ed48998288562b15658a72', - "m/44'/0'/2147483647'/0/0": - '02d79c1a6f72155356a8fc926d7a06ce14c54eb13ce27facea76d62960121ee167', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "038a5f5a8cab1f0d972c3dcb61f9972a244f8568bc730361293c288bb9b2d9c5c9", + "m/44'/0'/1'/0/0": "036981a04faa3374c5701b52c79bcbd89082b2d8f5ec63c500c2d5a4508ce7b95e", + "m/44'/0'/21234567'/0/0": "027d250eb33485e67c118ecc51aa2c435f7606a60677f55b06f3a44d8186b1df98", + "m/44'/0'/2147483646'/0/0": "030e3a99dc65addc2322a6550834a8b8d49ce7de1ee12a91cdbeac5c1b74aef693", + "m/44'/0'/2147483647'/0/0": "0321e6f86bd76b8ad93280658a70f3d6a68ca68b010e45a087f0efe01d3ecd5dd5" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03eccc59d5f5fa7698fbf7591e2279478b092154d60983c4e0261520945843dfff', - "m/49'/0'/1'/0/0": '038c7bcedc2c9bb90c9eb5f0c7ae8492db1dadee901695bad959f4ce3ea089e248', - "m/49'/0'/21234567'/0/0": - '0344f3131842f6ed4f18d1f0adb57530ceb200f4d91924135419ff8047d75f8d78', - "m/49'/0'/2147483646'/0/0": - '02b3e0e35cb34c0346c30ab5e2801e66a79bdf9790a3ef470224d47bd56848f8c8', - "m/49'/0'/2147483647'/0/0": - '02b652e6d915aef0f22fa15d1e5bf56322e1509928bb597d29619db94eeff51f56', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02c9653bcb33dce181579f625734c94eb97e6a10df0fa4958df9a3e686e9c456e5", + "m/49'/0'/1'/0/0": "03c22ebda44dca847a6bb181c5f1cd079a85512ff42128f9586dadf24dce7d059a", + "m/49'/0'/21234567'/0/0": "022d214fc9bc74868e5d42113b550f5cd1e5c1c93b170e19aa1d6c7cf68217a7dc", + "m/49'/0'/2147483646'/0/0": "028369dbc217758e378f2efa8f5506cd71fb9774d8779cdc8e66398c542d69e8f1", + "m/49'/0'/2147483647'/0/0": "02c7286a49e361aa63a2b861c9fb919fc579fec0c43fbca1c9ef8a955c7ab8c9b6" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '03df4862ebefd7284c318b61c02194d2ab4636a42e10d90d642516684e1d71286c', - "m/84'/0'/1'/0/0": '03e3d395f9661004d7149641793affe914afee92b4825dbc72da1b8960f9559215', - "m/84'/0'/21234567'/0/0": - '024ce2f9f67af4d17f0c8c681e787379706668dabc60faa3a1bc7938ba4a16a6ca', - "m/84'/0'/2147483646'/0/0": - '031359812abd98a50524efd6776d5aa6f55c2b45fdc7c0253992ac0ec04e85f6e8', - "m/84'/0'/2147483647'/0/0": - '02e33eb999f99ddfd8ec8c5badb9787d7a667816f455e09ff3abd53194e40c437d', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "030d898772dcf65f597831d05ef8139c4656bdbf43fb61bbdd5408c9a562d5759a", + "m/84'/0'/1'/0/0": "035737728fd41a2e4293a04b7255ea22f571796c1056bd39650e3c49728f4d0298", + "m/84'/0'/21234567'/0/0": "028fe47d7fdfbb30146b0d8bda2e0c44e41a98784bea0619f2ee1651ae5d1e71f5", + "m/84'/0'/2147483646'/0/0": "03cbbd5324ce9ea2bf29009b115d50e520a7a1a8fa5e3da3b6860f24f3c45a25ec", + "m/84'/0'/2147483647'/0/0": "036467aa286c7f1ef2bab75696111be63d86febbfd25dddc940504051470039f1f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '02727fe10fc10670b4bdcda80a6cc25bd8984f241f1765159a67e10702b7629b25', - "m/86'/0'/1'/0/0": '02c8f11c62bd99783e3328a0fae0c1be56bdbeb6c18f60c4d24ef9b161eaf0e7e0', - "m/86'/0'/21234567'/0/0": - '0329db8072ed6c21c651c51f967428751b5d957ef4e9d6eca42711f0d2bed52304', - "m/86'/0'/2147483646'/0/0": - '02bd10d34744503818812ceb7f43b8ebbd73f3d73e41a858fde79c2f1898411e5b', - "m/86'/0'/2147483647'/0/0": - '020f01959e7273e31b2f92325ac52c2cd5f04c35114cfa720fdeed2d8bf64dee3c', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02b7cd15a7099c70f1217fbf0adafedae46e30abb2dcd222340701dc4e63bc7519", + "m/86'/0'/1'/0/0": "03e38d3a9a3d482a354236426673718c3e8d4edce2058e348622384daae0f5f22c", + "m/86'/0'/21234567'/0/0": "022e3555e43febc25f80991167ca9dabbf96a9b302d13ab805c26198e834000ba9", + "m/86'/0'/2147483646'/0/0": "036039d0f2e61c641237a0690c8415ee84bd7df6bab716f25a64146d98e69b440f", + "m/86'/0'/2147483647'/0/0": "02aac7a8100b41ee495c94fceb6a9c552d96ceb9270af0e6392ab80dd816435653" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x038f20805ab8990d709a10c82198a64cf1664c63384c9a5ee5bb2b0796fd3e3e28', - "m/44'/60'/1'/0/0": '0x03ad4e51562da8084dee4e636ec6adfc6b646fd41c88a1ba738e5147c285641b92', - "m/44'/60'/21234567'/0/0": - '0x031db49ca6a3e3fa61a53ec64cfac8519a7c7609e8ec3f812ab7341b8faa45f470', - "m/44'/60'/2147483646'/0/0": - '0x03fe778c08f8d3c6c76a47d9a7a5a4999b1f13ecadd030efcc1ba6676fa8ea60e7', - "m/44'/60'/2147483647'/0/0": - '0x02d7b03289c1c0095c1e4117ac4e25f18328e0413adbd577c599ba8798a5b2abee', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0343dbb11709dc0fca56fe0f901f15af4333728563e89dd077dba3df76920a5843", + "m/44'/60'/1'/0/0": "0x02960c087e1e2d1b78b21453897bd0eadef4ecbe9b6069dc1838620b009cb809a0", + "m/44'/60'/21234567'/0/0": "0x030ad67e36315f1b7a610e52d0f044072d27bd9a36fd40bf5925b54da430072e01", + "m/44'/60'/2147483646'/0/0": "0x038dd4e27dbf8216b46acf43ea7559bda9aeb6b4f80b9d783931583568da5ba40b", + "m/44'/60'/2147483647'/0/0": "0x03bd5d253750a122591b6662ac49c19d437018945a7e50e4bf096703fa267b3be9" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '0288d7d13214d85ba36cd9655ce7e4ca371c6bdc877d9a9eea36ada268fca34465', - "m/44'/118'/1'/0/0": '0394ef29e6af2a0ab8d7060ff1952c57e7f71a236d72472aeaa2ee18124d06ace2', - "m/44'/118'/21234567'/0/0": - '0287f43073ed8a1756a20fab826bde36442a0c94335bb2d2d894ea58adfa5c3fe7', - "m/44'/118'/2147483646'/0/0": - '029fa60102da0e2d9191c285af7e506e18a6c1d1895f456ff6370e43a9416671cb', - "m/44'/118'/2147483647'/0/0": - '02baf478eebe8df992baaaf09f68a85ba04d74954ac511f23b12f1d61b7f0115c7', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "02222e1fd25ff9e5572bd2ee395ba30c824f97ef5ed72d100427cb344f0de3e9ef", + "m/44'/118'/1'/0/0": "033548e7a331ef1738706474ff80b4b2d323b7933e94b076fcf5558a66647715be", + "m/44'/118'/21234567'/0/0": "02dda997d53ca03e964814429e7fbbba8980d336044b607667fa796b0a4ccb9853", + "m/44'/118'/2147483646'/0/0": "037eaaf2ce5a90f48562cc4463800fefb4e367f6d5cd9364702084d7f797ea3743", + "m/44'/118'/2147483647'/0/0": "03718fdb4ff97e6b86c847ea5dc2c9f0fd6140477493e122637878ba5e3cc1f839" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00a4aaeaaf7121348e571e6f5456904ab125d4c06af0b55329de54173ee7b8f3c6', - "m/44'/784'/1'/0'/0'": '007089dd807c52488b4841c3add304ed2152462c9952212f4e4d743c4470502337', - "m/44'/784'/21234567'/0'/0'": - '000273b21eb768d8c1e27a3e078786c5602474aef6190c428693d608ab29106741', - "m/44'/784'/2147483646'/0'/0'": - '000d82b61e5c8b46d78bf7fe23e0e967e73c7adc6244c2875ed2276c60735f4b7e', - "m/44'/784'/2147483647'/0'/0'": - '0012b1259ffea08ae7653b62d7dac7b1c396d8421b07e4c8698b72ed80dd1ac41d', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00aebf8272fdac41d5822b13274c05a31761eb8da454aa9d3df8114cd3a59b0bce", + "m/44'/784'/1'/0'/0'": "00c41809bee42d6cb8f5fe664909c38e152956dd5fc748053902901d418473521c", + "m/44'/784'/21234567'/0'/0'": "00c42e6ed1ff52e91c55ab383f398ae548cf66783b03f31ef421f2de6d40e6ea43", + "m/44'/784'/2147483646'/0'/0'": "006a3b6f3445be3dde993ab1986fcb6b84c058284b23041f26d590a24d4ffd81f0", + "m/44'/784'/2147483647'/0'/0'": "00d58506810d93619b5f0a252d5d0fddc3e7787bfaa465112d1bf358aa6f0d5ff9" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '022c3d08691444d49808e507894c568024a7e7f3a1bea88213cfca93b5663919', - "m/44'/637'/1'/0'/0'": 'e668c52e3983985bdffc3a1f44db083b54f7140f4620dbef7c981003a637f923', - "m/44'/637'/21234567'/0'/0'": - '67c2bfa1a9e8008ce2f1468db336826f3cfa16d27e4c9377a86b3ca127f4d059', - "m/44'/637'/2147483646'/0'/0'": - '8f6f9835e142c4a2ed28980757f35498994fb4fe611736248bd49789258fd81a', - "m/44'/637'/2147483647'/0'/0'": - 'afda99b5c655bfb55e0da4d44b6c3c2da4cd6a8d28dc37cfe3bef6f92dfbfb19', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "c032d0586bfef49345e293fde436813637c7b97adbe92c9aa4f5ce3e6f319043", + "m/44'/637'/1'/0'/0'": "50c3f9d400374a300ef820cff7c49a6e4ea16cd9e1b995610e04317068699397", + "m/44'/637'/21234567'/0'/0'": "103086a0bd0c163195eb333d29b2749d494818ff0ebf69f3d06fdf80f32b2c42", + "m/44'/637'/2147483646'/0'/0'": "19a3ce975d1fd0a1d74462b72f89091a1ec1b54d9cf15e2bc47aecb1e08a1de0", + "m/44'/637'/2147483647'/0'/0'": "a538629b8f74e680fc578756a9622cd67bd5c53407cc31589c58ca0339e923ba" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '1edb159f21d7939454c8ccf8f74af3662e14e7e451f18a20431072d951e06499', - "m/44'/1237'/1'/0/0": '3c7aa65f16034d79b90b4ca404d7e6d394be807a4bc3e763a323b0addb64c7ff', - "m/44'/1237'/21234567'/0/0": - '846a3db69b2e29d3b0498bdd5341aefe5052cfe8b175ac9a65d30e2e0b6bd14d', - "m/44'/1237'/2147483646'/0/0": - 'f24daaed21e9694e1af9ba613d8cb61f834eb31cae89e4fe47c7d94f3be82979', - "m/44'/1237'/2147483647'/0/0": - '8c8530a839eed5ce0bd0de29fef0a44071617a51bce007cf7b5a241cdcd325de', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "9a0313b8513df65cb869a35083fec37c3a80761f6d91ed8b2e24f90674d354b4", + "m/44'/1237'/1'/0/0": "9e84f801800c56bdb9edc112f24d9282a8fa09ac44aa40ad2514a2670792be62", + "m/44'/1237'/21234567'/0/0": "b8a58d1d4e68999936074f5a7d7563e79512fee0fda99ccdf94a74c7508ff3d1", + "m/44'/1237'/2147483646'/0/0": "2bb24de2ab08b2e074b4089dc6a8ba23138551dcddc30547a69410b9bf988a3d", + "m/44'/1237'/2147483647'/0/0": "d095df76249786a9bef2d78548c0628a270e90301095ba46745d4e07ca49d630" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_2.ts index ccc5759d8..82dd2d408 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_2.ts @@ -1,189 +1,162 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphrase2: SLIP39TestCaseData = { - id: 'count20_three_passphrase_2', - name: 'count20_three_passphrase_2', - description: '16-of-16 (20 words each) + passphrase_2', - passphrase: "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_2", + "name": "count20_three_passphrase_2", + "description": "16-of-16 (20 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '020c9dee4d495c89d75d0bfc15d45afe2cd1fa452dae3896c819a00262e92ea972', - "m/44'/0'/1'/0/0": '03496cbf9b5dc98759780cd6090e183edaf90b1b68bc88e8a453330ba06aa13e8f', - "m/44'/0'/21234567'/0/0": - '037c60b18b53a8c3ea1a8bda97db7c2c1333b6626625b54b0979445a6e082c277d', - "m/44'/0'/2147483646'/0/0": - '03934878376e295b93d976f51ec0d9c05e6fa14e079a5e0aafe8e16c9b393bf507', - "m/44'/0'/2147483647'/0/0": - '03a6d0f96dfbb770061e9bd19acac90c3c4f866a2af206c0336060aedece58cdcf', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "0356688a8c67084ffa53be9f2653711f103b996ddd35fef6d52bf131ef45130066", + "m/44'/0'/1'/0/0": "021d147e05d5bce7ef3b97290e2d94f5f5cbe7a6d1958663032c57d9f444f3eb3d", + "m/44'/0'/21234567'/0/0": "028957384c110d555cbc943c6934c1e9f0f129db65265b1b42620a0ca05945dd11", + "m/44'/0'/2147483646'/0/0": "03e31bb50650875e3e4659aa8d7ea0f3520fe6d2bea1ed48998288562b15658a72", + "m/44'/0'/2147483647'/0/0": "02d79c1a6f72155356a8fc926d7a06ce14c54eb13ce27facea76d62960121ee167" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '031b4fe8a21b171436fe3ed748900efda81f1ecf1da345a76950a1b71d68195df5', - "m/49'/0'/1'/0/0": '024085586306345eb6b4a415ce46f2ab46ca45283b9559ff60df1feb00bdba912a', - "m/49'/0'/21234567'/0/0": - '033b44b1d578541afd43267e3629d103b7346ad1387e510c1ae3d21f5f50e9c5bb', - "m/49'/0'/2147483646'/0/0": - '0374a682a2caa575bcadd0c291ca2cab9fa64cddb2155db8bc896cf351e84fbc13', - "m/49'/0'/2147483647'/0/0": - '034b25657c9a67d44344ac3a4edc01c27daa6e69b37a7a56b030d8694afa68d8e0', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03eccc59d5f5fa7698fbf7591e2279478b092154d60983c4e0261520945843dfff", + "m/49'/0'/1'/0/0": "038c7bcedc2c9bb90c9eb5f0c7ae8492db1dadee901695bad959f4ce3ea089e248", + "m/49'/0'/21234567'/0/0": "0344f3131842f6ed4f18d1f0adb57530ceb200f4d91924135419ff8047d75f8d78", + "m/49'/0'/2147483646'/0/0": "02b3e0e35cb34c0346c30ab5e2801e66a79bdf9790a3ef470224d47bd56848f8c8", + "m/49'/0'/2147483647'/0/0": "02b652e6d915aef0f22fa15d1e5bf56322e1509928bb597d29619db94eeff51f56" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '03f106ebcf555b55c2c65d99a372aeeb7dea72512d281874614fd5cd95f405e52f', - "m/84'/0'/1'/0/0": '02aeb5c2981e76b93042b4b8671a602bc944c9868b7d95b3bd0e55e796420a047e', - "m/84'/0'/21234567'/0/0": - '0383ef87ef7ae419528c94a9852ffd1dadc078a11bc88ca04f1b3e8b9b77986d79', - "m/84'/0'/2147483646'/0/0": - '03cd1f1f61f092b7e08d0ad57752d1780a2bbe815eb831dc9c037f774dfcab3b7d', - "m/84'/0'/2147483647'/0/0": - '03eff712595762ca6bc98f4e3d44d6706c5ba8591ca80e68b89ae5ce8a0d7f2190', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "03df4862ebefd7284c318b61c02194d2ab4636a42e10d90d642516684e1d71286c", + "m/84'/0'/1'/0/0": "03e3d395f9661004d7149641793affe914afee92b4825dbc72da1b8960f9559215", + "m/84'/0'/21234567'/0/0": "024ce2f9f67af4d17f0c8c681e787379706668dabc60faa3a1bc7938ba4a16a6ca", + "m/84'/0'/2147483646'/0/0": "031359812abd98a50524efd6776d5aa6f55c2b45fdc7c0253992ac0ec04e85f6e8", + "m/84'/0'/2147483647'/0/0": "02e33eb999f99ddfd8ec8c5badb9787d7a667816f455e09ff3abd53194e40c437d" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '032f6fae57f323e65e1724874b39fb7fafbe3f2bc1a14515d5f14848ce36c02c5d', - "m/86'/0'/1'/0/0": '02bb05ce9149e0f39fbd0b55fc91fdf527d0cff777b86203a802bddc937cecff67', - "m/86'/0'/21234567'/0/0": - '02babb522b38c8ff51ac21ccee345ece92a6b9a59e8db528f0d7387a257c616580', - "m/86'/0'/2147483646'/0/0": - '0389511cd5d544cd899d673cffed9fe07ab6492936414942212dc31fae476ed64d', - "m/86'/0'/2147483647'/0/0": - '02bcd4359f60ad2c9d86259b555b0ea856e1c01d9eae58687fd49b4d96eb755b3f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02727fe10fc10670b4bdcda80a6cc25bd8984f241f1765159a67e10702b7629b25", + "m/86'/0'/1'/0/0": "02c8f11c62bd99783e3328a0fae0c1be56bdbeb6c18f60c4d24ef9b161eaf0e7e0", + "m/86'/0'/21234567'/0/0": "0329db8072ed6c21c651c51f967428751b5d957ef4e9d6eca42711f0d2bed52304", + "m/86'/0'/2147483646'/0/0": "02bd10d34744503818812ceb7f43b8ebbd73f3d73e41a858fde79c2f1898411e5b", + "m/86'/0'/2147483647'/0/0": "020f01959e7273e31b2f92325ac52c2cd5f04c35114cfa720fdeed2d8bf64dee3c" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x031a7d1769d515a9b826417d28a9f4d50a0b5bd1d6c139b718c194b6b20b142a74', - "m/44'/60'/1'/0/0": '0x03e75de1a98ecfbb966ef4117075a08ed23753da088e33ad0eab5efc10767ae651', - "m/44'/60'/21234567'/0/0": - '0x026df021cb06a0409cdb647c6bc730b18b49dffb14592ed268ad2b9faa0d9d1222', - "m/44'/60'/2147483646'/0/0": - '0x022a5f06cf40e08946bb8c2c0f57f0a16f4f0463d9e90fe32a0438e28e01ab6ae2', - "m/44'/60'/2147483647'/0/0": - '0x037530572c1d9bff0588335b72c7f6cda265ec61d02b51978db258be028c58e2e9', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x038f20805ab8990d709a10c82198a64cf1664c63384c9a5ee5bb2b0796fd3e3e28", + "m/44'/60'/1'/0/0": "0x03ad4e51562da8084dee4e636ec6adfc6b646fd41c88a1ba738e5147c285641b92", + "m/44'/60'/21234567'/0/0": "0x031db49ca6a3e3fa61a53ec64cfac8519a7c7609e8ec3f812ab7341b8faa45f470", + "m/44'/60'/2147483646'/0/0": "0x03fe778c08f8d3c6c76a47d9a7a5a4999b1f13ecadd030efcc1ba6676fa8ea60e7", + "m/44'/60'/2147483647'/0/0": "0x02d7b03289c1c0095c1e4117ac4e25f18328e0413adbd577c599ba8798a5b2abee" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '02b074394506254c9aa1e79b9e60ad4dd6d8e33c25da66237ecd8b502731bbe0f7', - "m/44'/118'/1'/0/0": '026fe47d237674f521595ac3e4900fe58e1b3d285ac9ff786aabae8bae01fd6c74', - "m/44'/118'/21234567'/0/0": - '02f65e42ce2f7135cd03db759157fbad830c5b457c965d01b6e83d254dfef2106a', - "m/44'/118'/2147483646'/0/0": - '020670a441b0901f4fa145f39173c39f0145c708f012dcd63f52c2df272d35d40d', - "m/44'/118'/2147483647'/0/0": - '030c30df7805e66b47142a3a88a3964b737ff6815446c9f612531a442533275a8a', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "0288d7d13214d85ba36cd9655ce7e4ca371c6bdc877d9a9eea36ada268fca34465", + "m/44'/118'/1'/0/0": "0394ef29e6af2a0ab8d7060ff1952c57e7f71a236d72472aeaa2ee18124d06ace2", + "m/44'/118'/21234567'/0/0": "0287f43073ed8a1756a20fab826bde36442a0c94335bb2d2d894ea58adfa5c3fe7", + "m/44'/118'/2147483646'/0/0": "029fa60102da0e2d9191c285af7e506e18a6c1d1895f456ff6370e43a9416671cb", + "m/44'/118'/2147483647'/0/0": "02baf478eebe8df992baaaf09f68a85ba04d74954ac511f23b12f1d61b7f0115c7" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '000e8b343cb76c61f2d38479d47ebc2bd47d30d1bd2c7a360fe6ce4d3a759f4b3c', - "m/44'/784'/1'/0'/0'": '000f08766d6a5a9b2b9abb45c30dff12de33c094c86206356faacc777cf9c12803', - "m/44'/784'/21234567'/0'/0'": - '0088694e4b49522b9522d4f74744c5f8e4541f62966d85619e483c1cd443ca3121', - "m/44'/784'/2147483646'/0'/0'": - '005fffb9187810489d70e75f8b59bce5b94b7d1bd9541011aeaee544db6608ff8f', - "m/44'/784'/2147483647'/0'/0'": - '00d21f22271ec1b8f685c3f1ae44d8cf339e26a27024d7f04b8cc93c6e3e60c06a', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00a4aaeaaf7121348e571e6f5456904ab125d4c06af0b55329de54173ee7b8f3c6", + "m/44'/784'/1'/0'/0'": "007089dd807c52488b4841c3add304ed2152462c9952212f4e4d743c4470502337", + "m/44'/784'/21234567'/0'/0'": "000273b21eb768d8c1e27a3e078786c5602474aef6190c428693d608ab29106741", + "m/44'/784'/2147483646'/0'/0'": "000d82b61e5c8b46d78bf7fe23e0e967e73c7adc6244c2875ed2276c60735f4b7e", + "m/44'/784'/2147483647'/0'/0'": "0012b1259ffea08ae7653b62d7dac7b1c396d8421b07e4c8698b72ed80dd1ac41d" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '2ec54d71eedced9640fb8bb2fef7ec2fbcba63374d64347e73b7b4eb5d9f2d3c', - "m/44'/637'/1'/0'/0'": '466f6c3673b9211efcd6ff50f233dbc34b69f2b8911b91105010151ebf0dd377', - "m/44'/637'/21234567'/0'/0'": - '8e18b3b040fdd8109efe5fcfc9f0ff51cd70d85ca293436fda194f74806a2343', - "m/44'/637'/2147483646'/0'/0'": - '2efb03364ddce4a45db3765cab9494d8257886e53b48a886e23de086d48cdcc0', - "m/44'/637'/2147483647'/0'/0'": - '0a4a972a80eca1305f3c0c68781d9c919f497715a567afe954794c052ecd29ae', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "022c3d08691444d49808e507894c568024a7e7f3a1bea88213cfca93b5663919", + "m/44'/637'/1'/0'/0'": "e668c52e3983985bdffc3a1f44db083b54f7140f4620dbef7c981003a637f923", + "m/44'/637'/21234567'/0'/0'": "67c2bfa1a9e8008ce2f1468db336826f3cfa16d27e4c9377a86b3ca127f4d059", + "m/44'/637'/2147483646'/0'/0'": "8f6f9835e142c4a2ed28980757f35498994fb4fe611736248bd49789258fd81a", + "m/44'/637'/2147483647'/0'/0'": "afda99b5c655bfb55e0da4d44b6c3c2da4cd6a8d28dc37cfe3bef6f92dfbfb19" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '579fb90ab82a942835bc25e56563e296c643039d7a674a0335a717e219773fb0', - "m/44'/1237'/1'/0/0": '1e707d8206b28aad31a4d2f1943162150fb4c9505321d973dad264f55fca3feb', - "m/44'/1237'/21234567'/0/0": - 'af698cea5b1bbd57a53dbec75f615846a2c586ef94c880fc9f8baf3f797fdc5e', - "m/44'/1237'/2147483646'/0/0": - '96abc0685f231d22424b7bd80841df00fb384179f3861b9731486150d0ee66a6', - "m/44'/1237'/2147483647'/0/0": - '5fa6ac446273f988f0f01b5cc4be170bd3b80af478337fbfdeed9afef836c82b', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "1edb159f21d7939454c8ccf8f74af3662e14e7e451f18a20431072d951e06499", + "m/44'/1237'/1'/0/0": "3c7aa65f16034d79b90b4ca404d7e6d394be807a4bc3e763a323b0addb64c7ff", + "m/44'/1237'/21234567'/0/0": "846a3db69b2e29d3b0498bdd5341aefe5052cfe8b175ac9a65d30e2e0b6bd14d", + "m/44'/1237'/2147483646'/0/0": "f24daaed21e9694e1af9ba613d8cb61f834eb31cae89e4fe47c7d94f3be82979", + "m/44'/1237'/2147483647'/0/0": "8c8530a839eed5ce0bd0de29fef0a44071617a51bce007cf7b5a241cdcd325de" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_empty.ts index 3a66a9a8a..e89f2e671 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_three/passphrase_empty.ts @@ -1,189 +1,162 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20ThreePassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_three_passphrase_empty', - name: 'count20_three_passphrase_empty', - description: '16-of-16 (20 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught', - 'platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal', - 'platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto', - 'platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic', - 'platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield', - 'platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate', - 'platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august', - 'platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic', - 'platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak', - 'platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer', - 'platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold', - 'platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk', - 'platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle', - 'platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact', - 'platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor', - 'platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash', + "id": "count20_three_passphrase_empty", + "name": "count20_three_passphrase_empty", + "description": "16-of-16 (20 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "platform helpful academic afraid custody blind shaft burning visual prune knit clay mason genuine march crisis smug wits woman taught", + "platform helpful academic alto armed theory alpha paces welcome quick quiet device craft strike chemical ocean briefing space phantom legal", + "platform helpful academic anxiety cage sympathy dramatic western acrobat transfer oral spew package style scroll pajamas curious grant center alto", + "platform helpful academic award cards category salt guest pharmacy devote pistol focus identify infant evoke recall shaft empty hazard romantic", + "platform helpful academic bike clogs estate duke thank bolt floral race phrase preach seafood strategy industry crowd length grant yield", + "platform helpful academic bracelet clock daughter memory visitor result blanket garbage starting speak clay junction pitch ladybug jacket fluff ultimate", + "platform helpful academic burning credit install sidewalk level museum evening permit duke cards findings aunt document improve woman general august", + "platform helpful academic carve ajar edge similar glance darkness random envelope glen ancestor gums view venture wealthy learn ivory exotic", + "platform helpful academic class depend gather story empty harvest overall craft leaves nuclear reject kernel that temple width presence speak", + "platform helpful academic company adequate western resident dismiss mortgage emperor coastal sack example ancestor mason length mama timber rhythm buyer", + "platform helpful academic crucial domain bedroom violence mental multiple language sympathy grin beaver salt excuse pants worthy vegan prepare unfold", + "platform helpful academic deadline crush depart thank pregnant treat salon ambition miracle sidewalk speak practice taxi soldier scholar vitamins junk", + "platform helpful academic deploy chemical afraid justice undergo deny excuse famous entrance scene early photo glance salon platform wildlife ladle", + "platform helpful academic diploma cricket trend loud replace rapids payment paces theory easel spine cultural dictate hormone necklace blimp exact", + "platform helpful academic dragon company true volume carve dough endorse force plot cinema remember skin transfer criminal hunting axle mayor", + "platform helpful academic easel deadline evil museum spill funding muscle retreat smart timely oven transfer grownup deal armed merchant flash" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '02143fc4f6a694616d567936fe3a38620ae96deb8ddee2e367a2fe9ba6c38a6e24', - "m/44'/0'/1'/0/0": '03cfac6b9d15b41da43d8da5eb985117270412e86f6c340db82d0bbe669fed783b', - "m/44'/0'/21234567'/0/0": - '03e9cbef3f02bd238d5ced4586f2004656bd34cf3b047e27796277f4d54b677b8a', - "m/44'/0'/2147483646'/0/0": - '020e49b30a5ff2478152444875278897db2d9ef4189b826cf058a011ac615ad532', - "m/44'/0'/2147483647'/0/0": - '038331bfaa73fc3ae8735471694fd4828e5c32a06cbce6867eb9ce3b2c88fda9db', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "02143fc4f6a694616d567936fe3a38620ae96deb8ddee2e367a2fe9ba6c38a6e24", + "m/44'/0'/1'/0/0": "03cfac6b9d15b41da43d8da5eb985117270412e86f6c340db82d0bbe669fed783b", + "m/44'/0'/21234567'/0/0": "03e9cbef3f02bd238d5ced4586f2004656bd34cf3b047e27796277f4d54b677b8a", + "m/44'/0'/2147483646'/0/0": "020e49b30a5ff2478152444875278897db2d9ef4189b826cf058a011ac615ad532", + "m/44'/0'/2147483647'/0/0": "038331bfaa73fc3ae8735471694fd4828e5c32a06cbce6867eb9ce3b2c88fda9db" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02f929d186ef402d2b503d03534c667fa7ca2e5ed4d035e491674ad28692af9ab9', - "m/49'/0'/1'/0/0": '0235e2f44affc9481f0165a19d04791553bf89cb38236a23e18e7b9775254bb493', - "m/49'/0'/21234567'/0/0": - '03d72acb4b0dfc43181200984cfe5f34a304b25e27f9f71bcec6cf001481b7442e', - "m/49'/0'/2147483646'/0/0": - '038a55f1e02402ef27f507cf869213e24937cd98a10450ecaaa359f55641272126', - "m/49'/0'/2147483647'/0/0": - '0232cef290700ed47f4b3ed382b61a626cbf6a81a72dec51f315e0feffce859479', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02f929d186ef402d2b503d03534c667fa7ca2e5ed4d035e491674ad28692af9ab9", + "m/49'/0'/1'/0/0": "0235e2f44affc9481f0165a19d04791553bf89cb38236a23e18e7b9775254bb493", + "m/49'/0'/21234567'/0/0": "03d72acb4b0dfc43181200984cfe5f34a304b25e27f9f71bcec6cf001481b7442e", + "m/49'/0'/2147483646'/0/0": "038a55f1e02402ef27f507cf869213e24937cd98a10450ecaaa359f55641272126", + "m/49'/0'/2147483647'/0/0": "0232cef290700ed47f4b3ed382b61a626cbf6a81a72dec51f315e0feffce859479" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '03a99e99b159711e43def2ed4bc068bec8d07b954c36f2c6e8f823aa82bcc60312', - "m/84'/0'/1'/0/0": '036ef761383115f20884a3fd5179b60b000c55675b9814152f4431da169f878bc2', - "m/84'/0'/21234567'/0/0": - '02f845c5cfcb0aa4b788a33a03f35a513434b79b80579b1e89b7b050480893b82e', - "m/84'/0'/2147483646'/0/0": - '02c731869bb639b12f47ff64fc0c88be0a6ab2705073cec372e2ab59ad89ab3f45', - "m/84'/0'/2147483647'/0/0": - '02c7232468690848d3533cdef2884c07bbaf661ec3e0b6f77ada7e9a95e7daf5d7', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "03a99e99b159711e43def2ed4bc068bec8d07b954c36f2c6e8f823aa82bcc60312", + "m/84'/0'/1'/0/0": "036ef761383115f20884a3fd5179b60b000c55675b9814152f4431da169f878bc2", + "m/84'/0'/21234567'/0/0": "02f845c5cfcb0aa4b788a33a03f35a513434b79b80579b1e89b7b050480893b82e", + "m/84'/0'/2147483646'/0/0": "02c731869bb639b12f47ff64fc0c88be0a6ab2705073cec372e2ab59ad89ab3f45", + "m/84'/0'/2147483647'/0/0": "02c7232468690848d3533cdef2884c07bbaf661ec3e0b6f77ada7e9a95e7daf5d7" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0371562350c7676c96dc4cfd13e3784977d3b851dbb44d987b84e5201f80aac72c', - "m/86'/0'/1'/0/0": '035b4c5fc522838eefa1987b2e81d3765491fb1f141e9d0bb826edd399ab509507', - "m/86'/0'/21234567'/0/0": - '025b6f25a7516d37bc1a1fd4aa65d18fcb98a16f558515fb2bdd6d899c004f3492', - "m/86'/0'/2147483646'/0/0": - '03ee280f9f293555d0abbdbd53622148d9b5a6cf4b5e87fe720ef05cf8145c36f3', - "m/86'/0'/2147483647'/0/0": - '025cd7c45e789e9e7854700c5a00436eeadfd81fdf4720cd786d2fb932d9b8ba22', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "0371562350c7676c96dc4cfd13e3784977d3b851dbb44d987b84e5201f80aac72c", + "m/86'/0'/1'/0/0": "035b4c5fc522838eefa1987b2e81d3765491fb1f141e9d0bb826edd399ab509507", + "m/86'/0'/21234567'/0/0": "025b6f25a7516d37bc1a1fd4aa65d18fcb98a16f558515fb2bdd6d899c004f3492", + "m/86'/0'/2147483646'/0/0": "03ee280f9f293555d0abbdbd53622148d9b5a6cf4b5e87fe720ef05cf8145c36f3", + "m/86'/0'/2147483647'/0/0": "025cd7c45e789e9e7854700c5a00436eeadfd81fdf4720cd786d2fb932d9b8ba22" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x029027e33e221084e230f8a2bbf3a524da453aa3ce192307ee4b4853f1009ff30a', - "m/44'/60'/1'/0/0": '0x0245bbe25ab666144cdb6b835b88685ffea515b9d53f366cf861a421d4295434c2', - "m/44'/60'/21234567'/0/0": - '0x024713f6c1e5bf0bad5723985f9769b486e973598b5534de7df5eadc14685f98b6', - "m/44'/60'/2147483646'/0/0": - '0x03dd3db9ac528149c86c58b8b6144cba82ccf5f25715da56f77a4d93be43cd6bbb', - "m/44'/60'/2147483647'/0/0": - '0x034fd968a161143aa198e8ae356b4d4afc7b2a19ffcde5a24a614dfe400781abe3', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x029027e33e221084e230f8a2bbf3a524da453aa3ce192307ee4b4853f1009ff30a", + "m/44'/60'/1'/0/0": "0x0245bbe25ab666144cdb6b835b88685ffea515b9d53f366cf861a421d4295434c2", + "m/44'/60'/21234567'/0/0": "0x024713f6c1e5bf0bad5723985f9769b486e973598b5534de7df5eadc14685f98b6", + "m/44'/60'/2147483646'/0/0": "0x03dd3db9ac528149c86c58b8b6144cba82ccf5f25715da56f77a4d93be43cd6bbb", + "m/44'/60'/2147483647'/0/0": "0x034fd968a161143aa198e8ae356b4d4afc7b2a19ffcde5a24a614dfe400781abe3" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '0389e15511f680e6392fc0d99c8ca70e3b2ccab097229a39632f888502d980e0ad', - "m/44'/118'/1'/0/0": '031eec40a6724f64f4b9a656bfc9b5502356f19987091d30f2d5fa0cb8a4c8f85a', - "m/44'/118'/21234567'/0/0": - '02102d129eea49ac302afc320ae0a93928e7e7ad62f1a4ef4d67165b664dccd1b9', - "m/44'/118'/2147483646'/0/0": - '02fa73cbfa48cbc744f14d2022a4271738c8a6821498102420e55ec96ca42353a6', - "m/44'/118'/2147483647'/0/0": - '02f07d1f7d1dc8ce8fd3ea631b495c97a9ee9e5450855ba1712fddd5b806f3cf64', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "0389e15511f680e6392fc0d99c8ca70e3b2ccab097229a39632f888502d980e0ad", + "m/44'/118'/1'/0/0": "031eec40a6724f64f4b9a656bfc9b5502356f19987091d30f2d5fa0cb8a4c8f85a", + "m/44'/118'/21234567'/0/0": "02102d129eea49ac302afc320ae0a93928e7e7ad62f1a4ef4d67165b664dccd1b9", + "m/44'/118'/2147483646'/0/0": "02fa73cbfa48cbc744f14d2022a4271738c8a6821498102420e55ec96ca42353a6", + "m/44'/118'/2147483647'/0/0": "02f07d1f7d1dc8ce8fd3ea631b495c97a9ee9e5450855ba1712fddd5b806f3cf64" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00b5e2de24066e5c57f65fe520a6b6838b5080863c5c0c11227ce62738b09c0def', - "m/44'/784'/1'/0'/0'": '00d8139d689c6d3d261fb98cadfdb81e96c227967f4544bdc927a543ba62a6ac7b', - "m/44'/784'/21234567'/0'/0'": - '004820ad6031284d95a365ecbee67086aac67fbaf88b022a6f6b5d7833851a7e00', - "m/44'/784'/2147483646'/0'/0'": - '00abe52959336c19a10d6c9ba345d12a297b1c448a8fb6f39222bc2b8730d607af', - "m/44'/784'/2147483647'/0'/0'": - '00418356448284c912c1d36b729f1817f0b8d1a6d38bfd8907d4fc3fdd606887da', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00b5e2de24066e5c57f65fe520a6b6838b5080863c5c0c11227ce62738b09c0def", + "m/44'/784'/1'/0'/0'": "00d8139d689c6d3d261fb98cadfdb81e96c227967f4544bdc927a543ba62a6ac7b", + "m/44'/784'/21234567'/0'/0'": "004820ad6031284d95a365ecbee67086aac67fbaf88b022a6f6b5d7833851a7e00", + "m/44'/784'/2147483646'/0'/0'": "00abe52959336c19a10d6c9ba345d12a297b1c448a8fb6f39222bc2b8730d607af", + "m/44'/784'/2147483647'/0'/0'": "00418356448284c912c1d36b729f1817f0b8d1a6d38bfd8907d4fc3fdd606887da" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '85fb2801343dd5705d7901226d30706ed64ca4bcbd5ef5edcaa8df31bafc12e9', - "m/44'/637'/1'/0'/0'": '0ccbbd34b0cfde7b10768a1103faf36e0f765325587ce26bfcc379c9c45d9f64', - "m/44'/637'/21234567'/0'/0'": - '306a1d4c71227b3f06b215050d3a6a539a78adb29ce59173937492e527a31bac', - "m/44'/637'/2147483646'/0'/0'": - 'bdba0e946a3e36729097a8982d6af16821831abd2bd742a2633140961e81f08d', - "m/44'/637'/2147483647'/0'/0'": - 'c88500335427fc67ce3221ff65cff0d6ffc26b0c40e352451ecd9ea99f1c5507', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "85fb2801343dd5705d7901226d30706ed64ca4bcbd5ef5edcaa8df31bafc12e9", + "m/44'/637'/1'/0'/0'": "0ccbbd34b0cfde7b10768a1103faf36e0f765325587ce26bfcc379c9c45d9f64", + "m/44'/637'/21234567'/0'/0'": "306a1d4c71227b3f06b215050d3a6a539a78adb29ce59173937492e527a31bac", + "m/44'/637'/2147483646'/0'/0'": "bdba0e946a3e36729097a8982d6af16821831abd2bd742a2633140961e81f08d", + "m/44'/637'/2147483647'/0'/0'": "c88500335427fc67ce3221ff65cff0d6ffc26b0c40e352451ecd9ea99f1c5507" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '7150ca9f944c8dfad335ce6b96af6bb92daac7384b133f243095d68fc39c9c16', - "m/44'/1237'/1'/0/0": '96e99d2453959a0ae361209013b931878d894012faacb52e9cec69861712700d', - "m/44'/1237'/21234567'/0/0": - '0fade7a7cc98361585b22c4fe9452f6236a1ae6aa81d17889cb6b352b9c148c7', - "m/44'/1237'/2147483646'/0/0": - '5d5472f5c362cd60061bba5341cb71b09bd1fb11923addf3e1d42ca1d2403fa0', - "m/44'/1237'/2147483647'/0/0": - '3b946459fc2e0d57a9bd57dc6349f24c70c1e6d3762665668fc5eca9ef9683a6', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "7150ca9f944c8dfad335ce6b96af6bb92daac7384b133f243095d68fc39c9c16", + "m/44'/1237'/1'/0/0": "96e99d2453959a0ae361209013b931878d894012faacb52e9cec69861712700d", + "m/44'/1237'/21234567'/0/0": "0fade7a7cc98361585b22c4fe9452f6236a1ae6aa81d17889cb6b352b9c148c7", + "m/44'/1237'/2147483646'/0/0": "5d5472f5c362cd60061bba5341cb71b09bd1fb11923addf3e1d42ca1d2403fa0", + "m/44'/1237'/2147483647'/0/0": "3b946459fc2e0d57a9bd57dc6349f24c70c1e6d3762665668fc5eca9ef9683a6" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/normal.ts index b57847301..14f3b237c 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/normal.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoNormal: SLIP39TestCaseData = { - id: 'count20_two_normal', - name: 'count20_two_normal', - description: '2-of-3 (20 words each) + normal', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_normal", + "name": "count20_two_normal", + "description": "2-of-3 (20 words each) + normal", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '023b964f624177ba39ae9559d67dd65d23e238650bf0b23f3d1d135ae122c500bd', - "m/44'/0'/1'/0/0": '02417da471ff535c8c9d2550653ab6110ddeeda60b7c007e15f766b0420ded815f', - "m/44'/0'/21234567'/0/0": - '02565ec89aa337345dd0283ec9265b2feaf91c0bcf3e7330ce78aacdc440741aae', - "m/44'/0'/2147483646'/0/0": - '03d2cd3a5ed441c66b9fddeb0f4ac39c765a985424d3c8bc3fc233363fbf8de4be', - "m/44'/0'/2147483647'/0/0": - '027385cf0d6c5846f968479823fabe0656f7183898896f2e19edc8292bfd39ca93', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "023b964f624177ba39ae9559d67dd65d23e238650bf0b23f3d1d135ae122c500bd", + "m/44'/0'/1'/0/0": "02417da471ff535c8c9d2550653ab6110ddeeda60b7c007e15f766b0420ded815f", + "m/44'/0'/21234567'/0/0": "02565ec89aa337345dd0283ec9265b2feaf91c0bcf3e7330ce78aacdc440741aae", + "m/44'/0'/2147483646'/0/0": "03d2cd3a5ed441c66b9fddeb0f4ac39c765a985424d3c8bc3fc233363fbf8de4be", + "m/44'/0'/2147483647'/0/0": "027385cf0d6c5846f968479823fabe0656f7183898896f2e19edc8292bfd39ca93" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03a83966f77a3ee841a45749c6c49254671189ac04d6998e28df381055552098c7', - "m/49'/0'/1'/0/0": '0337867d4eac990de640d7629f73a62c473e3f295e9700d0a9c54903242a2a4ef7', - "m/49'/0'/21234567'/0/0": - '035e872ec70075916d9ebc8f52322863e99ded6ff9f194a1b30b34c09e05f53e6d', - "m/49'/0'/2147483646'/0/0": - '03cf4516ce106b47a802573e236b1d3db22f6dc43be5ba2e6a9861496696cb277f', - "m/49'/0'/2147483647'/0/0": - '02758a57902c50e80ea213074be38a45bdc9b368009ed91b4958634f2d548944c4', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03a83966f77a3ee841a45749c6c49254671189ac04d6998e28df381055552098c7", + "m/49'/0'/1'/0/0": "0337867d4eac990de640d7629f73a62c473e3f295e9700d0a9c54903242a2a4ef7", + "m/49'/0'/21234567'/0/0": "035e872ec70075916d9ebc8f52322863e99ded6ff9f194a1b30b34c09e05f53e6d", + "m/49'/0'/2147483646'/0/0": "03cf4516ce106b47a802573e236b1d3db22f6dc43be5ba2e6a9861496696cb277f", + "m/49'/0'/2147483647'/0/0": "02758a57902c50e80ea213074be38a45bdc9b368009ed91b4958634f2d548944c4" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02b66e343785cceec02ed6ecddae4cf4f07d8aa0a08ec154bb68b73262fbb0f490', - "m/84'/0'/1'/0/0": '031e52e5365e876c05d1d4d9534eac287b9ae5c6636bc80c297b5a123e36ed9c86', - "m/84'/0'/21234567'/0/0": - '02f697981e3eef1bfb08e7c0405b045db603172fd42e36ffbf76bd1bea7838f9ee', - "m/84'/0'/2147483646'/0/0": - '03c9305dbfe4e13086a05326d3f0dff8b2ff20db8a85c145887855bcadf7aea4b8', - "m/84'/0'/2147483647'/0/0": - '03a804b36cc945de2ce762cacf2f036c1e47a42309c2fecff1b58bfc0d2d9c5f78', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02b66e343785cceec02ed6ecddae4cf4f07d8aa0a08ec154bb68b73262fbb0f490", + "m/84'/0'/1'/0/0": "031e52e5365e876c05d1d4d9534eac287b9ae5c6636bc80c297b5a123e36ed9c86", + "m/84'/0'/21234567'/0/0": "02f697981e3eef1bfb08e7c0405b045db603172fd42e36ffbf76bd1bea7838f9ee", + "m/84'/0'/2147483646'/0/0": "03c9305dbfe4e13086a05326d3f0dff8b2ff20db8a85c145887855bcadf7aea4b8", + "m/84'/0'/2147483647'/0/0": "03a804b36cc945de2ce762cacf2f036c1e47a42309c2fecff1b58bfc0d2d9c5f78" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '028f487d48ff35dd0c860cc5e54e58912c0851705fb827fc5a473d888baead2c74', - "m/86'/0'/1'/0/0": '036e757db94a8df505c6985b43dc1023fe2c1ab52c9f2112d3b573d2d9eb256c34', - "m/86'/0'/21234567'/0/0": - '030878e4b8da2d17d10194f28b3573d75dcbc69cce6eaec882534edc6957a17873', - "m/86'/0'/2147483646'/0/0": - '03aefaa77690ded12d9b6c26c8093af6440c199efb77e7fb014b2ae0afd859f8ce', - "m/86'/0'/2147483647'/0/0": - '02cf0c228e66c58d66e0a0311a15009c650a72a12f9057ff9d043bc95557c04305', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "028f487d48ff35dd0c860cc5e54e58912c0851705fb827fc5a473d888baead2c74", + "m/86'/0'/1'/0/0": "036e757db94a8df505c6985b43dc1023fe2c1ab52c9f2112d3b573d2d9eb256c34", + "m/86'/0'/21234567'/0/0": "030878e4b8da2d17d10194f28b3573d75dcbc69cce6eaec882534edc6957a17873", + "m/86'/0'/2147483646'/0/0": "03aefaa77690ded12d9b6c26c8093af6440c199efb77e7fb014b2ae0afd859f8ce", + "m/86'/0'/2147483647'/0/0": "02cf0c228e66c58d66e0a0311a15009c650a72a12f9057ff9d043bc95557c04305" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03ce7e525e88f94a8b856cdada60d30e6f19e6c3922ab9818cb9cbddf2ddd8499b', - "m/44'/60'/1'/0/0": '0x03274f36e50cd41886d16cdd39e32ce203aeb50d926aced20c8dd09ed83f49ad50', - "m/44'/60'/21234567'/0/0": - '0x0357b71c1875f60b0859fb8244bb32d30332a0021e03946be16cf849e1a11cc06e', - "m/44'/60'/2147483646'/0/0": - '0x02ce091d91ab3ed5fa7c9a3682fb0fdcffc49a703b5b415120f6ab6376f8d58f35', - "m/44'/60'/2147483647'/0/0": - '0x03bf47188fbe4b305ef76ec750994811a899ff6348fd17f09d91ffcd476e6c942e', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03ce7e525e88f94a8b856cdada60d30e6f19e6c3922ab9818cb9cbddf2ddd8499b", + "m/44'/60'/1'/0/0": "0x03274f36e50cd41886d16cdd39e32ce203aeb50d926aced20c8dd09ed83f49ad50", + "m/44'/60'/21234567'/0/0": "0x0357b71c1875f60b0859fb8244bb32d30332a0021e03946be16cf849e1a11cc06e", + "m/44'/60'/2147483646'/0/0": "0x02ce091d91ab3ed5fa7c9a3682fb0fdcffc49a703b5b415120f6ab6376f8d58f35", + "m/44'/60'/2147483647'/0/0": "0x03bf47188fbe4b305ef76ec750994811a899ff6348fd17f09d91ffcd476e6c942e" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '020083a68f6e50cbd3c239361d813d322e99aa0ca9f2699a699e639fa145ef8c05', - "m/44'/118'/1'/0/0": '02b64cb7ffce9f9e39e119defbceb5cebb43193421fc0dcea8ebeaeb46c40085c6', - "m/44'/118'/21234567'/0/0": - '032e9635a997eab80817ce2dbaece409d304ccf7fa2a2a05d9051711dbced9d6a4', - "m/44'/118'/2147483646'/0/0": - '02188ad03d2b0d94c5ae862b8909f4e248bd6c96bd44861fc049ec07c02c037070', - "m/44'/118'/2147483647'/0/0": - '020353d8169f520cb1636d4297fe671d9be818fbd9f10079b4fee844948c60e806', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "020083a68f6e50cbd3c239361d813d322e99aa0ca9f2699a699e639fa145ef8c05", + "m/44'/118'/1'/0/0": "02b64cb7ffce9f9e39e119defbceb5cebb43193421fc0dcea8ebeaeb46c40085c6", + "m/44'/118'/21234567'/0/0": "032e9635a997eab80817ce2dbaece409d304ccf7fa2a2a05d9051711dbced9d6a4", + "m/44'/118'/2147483646'/0/0": "02188ad03d2b0d94c5ae862b8909f4e248bd6c96bd44861fc049ec07c02c037070", + "m/44'/118'/2147483647'/0/0": "020353d8169f520cb1636d4297fe671d9be818fbd9f10079b4fee844948c60e806" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00143aedd0d52f9f44a15a0fa2ca99da501bd3f6b24cc8cb8e5e2c05e879fa4fc0', - "m/44'/784'/1'/0'/0'": '00d4d337f202a90a86cce1d487f802149a8401a8598c4de8cfea8167617ae540f2', - "m/44'/784'/21234567'/0'/0'": - '00f6e8e89071742a01b7e981b6da8557dce864326bc203d13511ebf3cea488607c', - "m/44'/784'/2147483646'/0'/0'": - '0014736272dd7663c03db549279304a6e280813ce130e5afca980084d2d93b1fcb', - "m/44'/784'/2147483647'/0'/0'": - '009c332f959d7517a4aa7d31e6d2915eab19e2d943169446124de0d3ec31595d25', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00143aedd0d52f9f44a15a0fa2ca99da501bd3f6b24cc8cb8e5e2c05e879fa4fc0", + "m/44'/784'/1'/0'/0'": "00d4d337f202a90a86cce1d487f802149a8401a8598c4de8cfea8167617ae540f2", + "m/44'/784'/21234567'/0'/0'": "00f6e8e89071742a01b7e981b6da8557dce864326bc203d13511ebf3cea488607c", + "m/44'/784'/2147483646'/0'/0'": "0014736272dd7663c03db549279304a6e280813ce130e5afca980084d2d93b1fcb", + "m/44'/784'/2147483647'/0'/0'": "009c332f959d7517a4aa7d31e6d2915eab19e2d943169446124de0d3ec31595d25" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": 'f2865c8398d5847c7b0dcf150e2779e44db9da6506eb9c43fa5947ba3023a576', - "m/44'/637'/1'/0'/0'": '1c010381385274521cd75ec85577dcfa52239845361575fcf13087e85a59e913', - "m/44'/637'/21234567'/0'/0'": - 'a544bacc43199c54a1fe0d934ff3f0bb79f3465e4893da4b36aba87ea72d3ad9', - "m/44'/637'/2147483646'/0'/0'": - '31eee816640b36b134ef50361712fe223e650b7289de4d18af7e361154b3fb74', - "m/44'/637'/2147483647'/0'/0'": - 'c795555410956db74e2de1f32c76a0dc53a2726da59173c154e63eac230fcb9d', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "f2865c8398d5847c7b0dcf150e2779e44db9da6506eb9c43fa5947ba3023a576", + "m/44'/637'/1'/0'/0'": "1c010381385274521cd75ec85577dcfa52239845361575fcf13087e85a59e913", + "m/44'/637'/21234567'/0'/0'": "a544bacc43199c54a1fe0d934ff3f0bb79f3465e4893da4b36aba87ea72d3ad9", + "m/44'/637'/2147483646'/0'/0'": "31eee816640b36b134ef50361712fe223e650b7289de4d18af7e361154b3fb74", + "m/44'/637'/2147483647'/0'/0'": "c795555410956db74e2de1f32c76a0dc53a2726da59173c154e63eac230fcb9d" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '62da2ae6660c5c12302b42d96cafcd56b381626d32ba9302db685206f71e2571', - "m/44'/1237'/1'/0/0": 'f87ac803c8585bfdf89d6d3c6b710a246d425771ec79f0506f0e77436253dfa5', - "m/44'/1237'/21234567'/0/0": - '8a746dd232f9c0627c1d4f1279eeb5009a020780f3b217f097854318dd246f73', - "m/44'/1237'/2147483646'/0/0": - '5fff2d85706686e80a4c3f81676e87ce6a2b4d10f5412f67b5ebe4cdf2839341', - "m/44'/1237'/2147483647'/0/0": - '4303cec393566887a8dac71a211a690b026d7f86a23c2d39c9bbd39ac65c0797', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "62da2ae6660c5c12302b42d96cafcd56b381626d32ba9302db685206f71e2571", + "m/44'/1237'/1'/0/0": "f87ac803c8585bfdf89d6d3c6b710a246d425771ec79f0506f0e77436253dfa5", + "m/44'/1237'/21234567'/0/0": "8a746dd232f9c0627c1d4f1279eeb5009a020780f3b217f097854318dd246f73", + "m/44'/1237'/2147483646'/0/0": "5fff2d85706686e80a4c3f81676e87ce6a2b4d10f5412f67b5ebe4cdf2839341", + "m/44'/1237'/2147483647'/0/0": "4303cec393566887a8dac71a211a690b026d7f86a23c2d39c9bbd39ac65c0797" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_1.ts index f04a881c1..842702e4b 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_1.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphrase1: SLIP39TestCaseData = { - id: 'count20_two_passphrase_1', - name: 'count20_two_passphrase_1', - description: '2-of-3 (20 words each) + passphrase_1', - passphrase: 'onekey', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_1", + "name": "count20_two_passphrase_1", + "description": "2-of-3 (20 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '022926ec93a6350c651cd4a24c9dd04eefe986deecd9bbb34d78c543df3bb3b171', - "m/44'/0'/1'/0/0": '02535c0b824ec1f0de4c8e93adf5fb3802953ea465e25a1a358f6322ed868620d5', - "m/44'/0'/21234567'/0/0": - '03e69f5b062d4913ae3c69419f8ce719d805c3eae9e615f8164362708469040f11', - "m/44'/0'/2147483646'/0/0": - '0327128a7e64d376bbc0b97641fd0bacccd89c286fd6fcc54eff0e6e685a1c943e', - "m/44'/0'/2147483647'/0/0": - '02de2c58c1f93b034d1e1bcaef1829cb817635d0ff1b650ae7addcf18e281a0981', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "039bb9398ad358c58c5574a005fc24804d54b99a4b9008012e17882f33d2bf4e3d", + "m/44'/0'/1'/0/0": "03e4edc14e387286a59a7bc0ec4d9f5bfbbe24e80e56c074a3eb7d94f48c224352", + "m/44'/0'/21234567'/0/0": "03af11fb0e7d1f488111819dfccadc97a4a434b6f764cced5a65f03fbc682f1902", + "m/44'/0'/2147483646'/0/0": "025bcd315227dc138220eb19157b91e97f62a3027219dc4b2ab5e5e864b4b42393", + "m/44'/0'/2147483647'/0/0": "0343a15a9ecbfbc68ffd7bf0ed812677172dbdedd21bb8b461116bb160299457b0" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03afb324054ba060b1582638439d86cf4cff778a9008dbedfbe8efd01e91b52c3a', - "m/49'/0'/1'/0/0": '03e91535a2608a3dd40642caf3d6361b76c82f4e2bd87ed04c3de8fc46af5cdc60', - "m/49'/0'/21234567'/0/0": - '0271a4cfe6c373be9a16dcd13c47500ff4431703d23ad193fa241de6e75cfcd62c', - "m/49'/0'/2147483646'/0/0": - '032c346d5a190f926a947e71884aa060e756a3b29b40e1e9009ea269dd9ca62e86', - "m/49'/0'/2147483647'/0/0": - '0248f42c9af61752c09a7d8eabf17a18cd6eab0b41e76e8ec8c4725f70d863b94e', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02b22311c7402a9a8647381e6e31c47e0e6bad00c1aaee0978f22eadce376e8283", + "m/49'/0'/1'/0/0": "020cd6c727e1359a6e20d95ab4ed876e63db418fab1ce745e95b96be33676e9b1c", + "m/49'/0'/21234567'/0/0": "0256b89cbf20bfb97acef045d2c7767d03ebfc436ceb85c14315cbabebf50db45f", + "m/49'/0'/2147483646'/0/0": "033fd1b257e2d92937b9e7a64f71952b96675799ad698b5fc5f5f97664463f60c9", + "m/49'/0'/2147483647'/0/0": "028b9e073ea79b899aa8b1eaae8f16e9b53e7e307df79bca32d93dcf9c86763e26" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '0216f18dc0411cf267e8fd1667b99b33e830dafb8a045f94a1bc920dc6407bd7b0', - "m/84'/0'/1'/0/0": '03cfa69227f4abb0428a46806f9546fa2d17ad60ed296735f4448aff14cd1c8659', - "m/84'/0'/21234567'/0/0": - '02c5b495e53e4899e08ac2351789c772f95b1790733a77b4321d6db62dcc2b81ff', - "m/84'/0'/2147483646'/0/0": - '0360e49a6805ca56fffed7d145dc42dc0210e73393677c4b2438d74962ea19c8a3', - "m/84'/0'/2147483647'/0/0": - '039d5aef74c9661f095ade6dda392d4faac0cd719a035a1f289a30c0438a7577ae', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "0344aaab9fecee94e3095a864ef54ad3038842158c4908e7f8f882d47c8629e095", + "m/84'/0'/1'/0/0": "0332e6a55c0f9714afc7dd89232e499b7b2e7329c52a31eb6ab564be01b1c59e0d", + "m/84'/0'/21234567'/0/0": "031890a5d811a6a9a3887c6eecb1dccea1de9c59aae1f3207cc89957fe1c4de7d5", + "m/84'/0'/2147483646'/0/0": "03765fc500fc09c1cf326b0f9a1d97bd016f92e50e3fa6070d7c85b58cacc83b56", + "m/84'/0'/2147483647'/0/0": "03a625671ab845616ce68018fb53e85c600bca09aff351281de29fe02fde22f459" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '02f9e2ead6cc285d7732f1aa8f02be8d8a12ee543c87bd77d9dda7e615026f328f', - "m/86'/0'/1'/0/0": '02dc7e79b6e4d2a2d43bffa35f71dce35c167426868087d361675e4f1d75f6faac', - "m/86'/0'/21234567'/0/0": - '03284246761976af1d896fc6eb49bf77d941fd7d20a647d0327fac0745721ed5c5', - "m/86'/0'/2147483646'/0/0": - '026d75a3ebd8bb3acd837c8c665b81a7110ae7dbe76b134db6e05da01d59b659de', - "m/86'/0'/2147483647'/0/0": - '021a784a480b67dce072083a81f0aa5f4b6a38abc6ec608bbf676c49875fd0a62c', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "027185ffe92c501d418fd0097e41014bae5e27d042a6e005b1b7bb2501fb002723", + "m/86'/0'/1'/0/0": "032b94c2eab5524fd40206a70fe3ac9d62948378d97f02263e3b1befa835a519ad", + "m/86'/0'/21234567'/0/0": "0296e82776c275894ac7d4092d4448158b3999507e95de49cba8c877ee31c0d2ae", + "m/86'/0'/2147483646'/0/0": "028eeae17051557c626a82b325c45272e783813efbaf80bc14efb63c41e5d23921", + "m/86'/0'/2147483647'/0/0": "03f1db31526427462ba2173748e2159c7221abc42e58d1bc1618981bc603930cd0" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03149223c6988ea893a618731124e2c69dde282426c08d241f656d5abd6819388c', - "m/44'/60'/1'/0/0": '0x032c18d87969e418468b079c8ad402a46a69e4417940b68be4fba81f4200f8acb7', - "m/44'/60'/21234567'/0/0": - '0x02bb38ab8d52b2c28329de9db7aae498159b342c23e7064df0411cac2c74d0761c', - "m/44'/60'/2147483646'/0/0": - '0x02fe1d1a98d30c288c1a661e7fafb90f9064b954c2936e54452e01e3fa17282309', - "m/44'/60'/2147483647'/0/0": - '0x027f6f6fd7320fd4d0d8165a1abf030f90e02fdff90aa258096ca47950ef30740a', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x036d6b17da1cf8cdca71c7fd70c906406bc1537cd02cd280c2952eb47ce82c3de3", + "m/44'/60'/1'/0/0": "0x02ec04fbf64e8e6987d25859ec28188ab76fe611e273495a14ee7847c739b66039", + "m/44'/60'/21234567'/0/0": "0x02d1d8e122a48fda3e0d35473ab51edde3248841c5631451a5e156286f3cb6447b", + "m/44'/60'/2147483646'/0/0": "0x0314cf10764ec69c07ab232c0a135fd258ba56c80deaed5d6664eec35e0c8bfd5b", + "m/44'/60'/2147483647'/0/0": "0x037c8a46ce02dcaafa92fd6300f5a3a766eb3731e217d0d0076be60902f822f68d" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '03559f0977dcc7c84f169f87bb59fcd0706e4ecf627286e59f0a0437ef2461dca2', - "m/44'/118'/1'/0/0": '02fc84cae49cdf01b4aa284d88ce730c90e5883af6f1272c03d222d5e634203564', - "m/44'/118'/21234567'/0/0": - '03d7ea3a7ba9a7760da0560ee01488f89e0d87137abb768d9cf4c3d2dc2fe32369', - "m/44'/118'/2147483646'/0/0": - '031b41967752e30a9b1996b0b62a120bced35a1befea90912f8a999fc131e85bff', - "m/44'/118'/2147483647'/0/0": - '0201eb3c3cfc44aabc53197c14c46b220a6d2068e6ee00707cd7ac00eb7a20424d', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "0299dd4df2119bbceacd4133d50040bda69b84a25c9d8aca80e22cd7db85bbc534", + "m/44'/118'/1'/0/0": "02b6167893f7735cbe4910ab4df8e3ed84e20b6125a5f933ef8d2f3a771b4d4f9a", + "m/44'/118'/21234567'/0/0": "03e88e4044857d26e3e99623c41f92d6112bd3c47df3341b55d5ce74dbfd1fab69", + "m/44'/118'/2147483646'/0/0": "03150d3a55730f0ec11ecebe8864bac7557e8be7b980ee88c71d83e3780b0adf5b", + "m/44'/118'/2147483647'/0/0": "03e7873f4ecf69ad5e3638ca495f7e45cf59a634e308be0b7b43686bd1b7fa5130" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0075bc84ebc9c06d0e77d00dbc8658dd5bc3960b00610171d923745902c468c0c8', - "m/44'/784'/1'/0'/0'": '00b00162e180c6e685d518efdc96ac281de98dd1b7c9a93d313128dba8123c1087', - "m/44'/784'/21234567'/0'/0'": - '00dbfef1aecff88f9864458627ebcf796ab40be91077464d0898ea87b8a5b604a0', - "m/44'/784'/2147483646'/0'/0'": - '00574b23a59df14a6efa033abca36536a388128e72251dd932df00222e90778a49', - "m/44'/784'/2147483647'/0'/0'": - '004631644c19ce3fae6f01c31cdffa644d308f86df51e63de50bf925028c05e856', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00a2ca5f29d927a4daf7225b756e1abc96a1a66a1e550630c4473070ad2020a3a9", + "m/44'/784'/1'/0'/0'": "002bd2a7d61b397cec624c853c169031d122ecdfb0836cccf5acdc800c36acf018", + "m/44'/784'/21234567'/0'/0'": "000edc122c17a3a9f0d2fab439dd3d8cc99523c9de843c88e84dc4b7a98ed3f940", + "m/44'/784'/2147483646'/0'/0'": "006b7d1897f138ab666381921d4ddbc9abf1ec4c4c5a12ba6e8e8bc51696985b89", + "m/44'/784'/2147483647'/0'/0'": "00ffe57c4ec7eb6ae6b114b8f456ee8751869d8b2edab2d8bfce5c8546c5d930d8" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": 'c33a4f26bec9419f6cb269d5b008af6b7f21f80aea8428bbc6a218d9e6247990', - "m/44'/637'/1'/0'/0'": '4d2e71fcbb91134835372459b1076e8462639686c9fd137547d3d320e673706b', - "m/44'/637'/21234567'/0'/0'": - 'dde177c6eb7a1a924c48c4287bb5e439ec9cb7d6a53c1257d2c3ca0234a4053e', - "m/44'/637'/2147483646'/0'/0'": - '9d7b87ea04966ca8c02a2278d05434191b64edd3aa6c6615fd08dab00255aecc', - "m/44'/637'/2147483647'/0'/0'": - '3af02d9a371b4ee44a983f76a410293e265b391b704b77301bbd7bf89d6be6c5', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "03dcc05a38c47f327ca38bc303286dc53e2d4f689c3afdb1f81cb5e1353b795d", + "m/44'/637'/1'/0'/0'": "42555ed29469bf6152fa9533ff339f05b853796f41bc3817f97524a823bccead", + "m/44'/637'/21234567'/0'/0'": "e69803e456822233316dabcd3471168a9dd870d7035b356a18d008e9d245b2ee", + "m/44'/637'/2147483646'/0'/0'": "21ac4d2fbfa2e33c6d5877b11a181fcf2cb0fc8c0496501a534bc71b3057bbd8", + "m/44'/637'/2147483647'/0'/0'": "10b6fbac063c6f0711b33039908bea52f43f582e6256f61237dbaea188407ba8" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": 'a367ad9b8eea3cfe2fb0ffdca9326fa93ae7de07c5a4942b8d701e87e82193cf', - "m/44'/1237'/1'/0/0": '03897631ef7c5f4605e92f0290d724516ab6535b3fdf97a5398015843dafa055', - "m/44'/1237'/21234567'/0/0": - 'be19297de9dd07dbd1375300215b6a40d51320033dfa3193844a260b76ef58d6', - "m/44'/1237'/2147483646'/0/0": - 'bfa481a61ea7ce3209c70c3594c603ccfd05902b80a254e8b88881b7283fc2e3', - "m/44'/1237'/2147483647'/0/0": - '1e48ae95ef9a0671d8b7a83ee11ad980f731b647fc25e034c28fb12f8d0c5d88', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "9334cd2b6a863fc5eb6d09a24b17f280b793736d5c5f191b026a14ad6d1e1d4a", + "m/44'/1237'/1'/0/0": "0736a374134c312d25ccd0a78a0f6db5612ef1b9cbfa607d6b4309baff1eb12e", + "m/44'/1237'/21234567'/0/0": "b23ac0ccf84a8f1240688e9cd9012f081214f187d869b20e7967c724da0bf940", + "m/44'/1237'/2147483646'/0/0": "9ae88fd9c0a0f184ad9aa4cfd29b49478570039f437e86f280011e9eaa370dd5", + "m/44'/1237'/2147483647'/0/0": "dda15bd0f289b295777a2e98a2b61d6a1efb8c1a4744d5038109f9e9486bff1b" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_2.ts index c20625dfe..b573d82de 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_2.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphrase2: SLIP39TestCaseData = { - id: 'count20_two_passphrase_2', - name: 'count20_two_passphrase_2', - description: '2-of-3 (20 words each) + passphrase_2', - passphrase: "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_2", + "name": "count20_two_passphrase_2", + "description": "2-of-3 (20 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '0359f52a39fce3ba44e8a84866bc4fe9233cd9a1cd4c699b54d26192dcba579adf', - "m/44'/0'/1'/0/0": '02e380ec44f1639dc7bdf48451d7a02f5fd7d80250c1cb23da527f4a03be3285bd', - "m/44'/0'/21234567'/0/0": - '039c374a836a9e0da87ddc56391fbf3043bcb82c76af1bf856051f8423c9e107ba', - "m/44'/0'/2147483646'/0/0": - '03f728d24540ca8db8216573743428bc05f1b579d4781b44ece1f97dc58e71e0a8', - "m/44'/0'/2147483647'/0/0": - '02bf2cda28556b749630738eeb02ae7f161b6485553f1cf4fea44c7a35f3846188', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "022926ec93a6350c651cd4a24c9dd04eefe986deecd9bbb34d78c543df3bb3b171", + "m/44'/0'/1'/0/0": "02535c0b824ec1f0de4c8e93adf5fb3802953ea465e25a1a358f6322ed868620d5", + "m/44'/0'/21234567'/0/0": "03e69f5b062d4913ae3c69419f8ce719d805c3eae9e615f8164362708469040f11", + "m/44'/0'/2147483646'/0/0": "0327128a7e64d376bbc0b97641fd0bacccd89c286fd6fcc54eff0e6e685a1c943e", + "m/44'/0'/2147483647'/0/0": "02de2c58c1f93b034d1e1bcaef1829cb817635d0ff1b650ae7addcf18e281a0981" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '039829bbac25babf180604495c3b1eae84aba6e0b22b568f8b3c5943598544b7d5', - "m/49'/0'/1'/0/0": '03ebaaa1885cc5111aff630b90e301c09e61542e54901478aa2346f69b94a658b7', - "m/49'/0'/21234567'/0/0": - '03942a7c122ff8fc9b8afdd0b9c791c52da9da7028d5c95fb01797f18ecc803872', - "m/49'/0'/2147483646'/0/0": - '03166d16e853de6d7ad0fddb41f32e3029bd28d7a95f0939f27d93748cebd56fc9', - "m/49'/0'/2147483647'/0/0": - '0302a78205ba2b6fbe7ee789e3aea620d6f0a72c729a8a5d74afcf82a972ad3723', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03afb324054ba060b1582638439d86cf4cff778a9008dbedfbe8efd01e91b52c3a", + "m/49'/0'/1'/0/0": "03e91535a2608a3dd40642caf3d6361b76c82f4e2bd87ed04c3de8fc46af5cdc60", + "m/49'/0'/21234567'/0/0": "0271a4cfe6c373be9a16dcd13c47500ff4431703d23ad193fa241de6e75cfcd62c", + "m/49'/0'/2147483646'/0/0": "032c346d5a190f926a947e71884aa060e756a3b29b40e1e9009ea269dd9ca62e86", + "m/49'/0'/2147483647'/0/0": "0248f42c9af61752c09a7d8eabf17a18cd6eab0b41e76e8ec8c4725f70d863b94e" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '027492aa01fbd13561c63b3c351a634e09b28b17e69d539f6e525059d42d41c172', - "m/84'/0'/1'/0/0": '024ef8c1502bdb403ddf72ea83e9e3b6d6e92e9e123f63eb7b277ffaf5cb7fa9b8', - "m/84'/0'/21234567'/0/0": - '038696121b4445582e0b8898b0c826f1bc36de9d01056e8fab4129902962332f63', - "m/84'/0'/2147483646'/0/0": - '034ac50abaa5b98ff1c5707a2a2bdec03dd2c0582971ad1cd8f1be66ba1a8abf22', - "m/84'/0'/2147483647'/0/0": - '02034404bb8cb3ff8844721d48c2cd51aac08b35fd560f367c733c238efe1e4fe6', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "0216f18dc0411cf267e8fd1667b99b33e830dafb8a045f94a1bc920dc6407bd7b0", + "m/84'/0'/1'/0/0": "03cfa69227f4abb0428a46806f9546fa2d17ad60ed296735f4448aff14cd1c8659", + "m/84'/0'/21234567'/0/0": "02c5b495e53e4899e08ac2351789c772f95b1790733a77b4321d6db62dcc2b81ff", + "m/84'/0'/2147483646'/0/0": "0360e49a6805ca56fffed7d145dc42dc0210e73393677c4b2438d74962ea19c8a3", + "m/84'/0'/2147483647'/0/0": "039d5aef74c9661f095ade6dda392d4faac0cd719a035a1f289a30c0438a7577ae" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '03c88ab32769682fa86a2386da20aea66f63f0c40dbdbd2d6b74d83a1f972c3521', - "m/86'/0'/1'/0/0": '021e29f6cf975dce0f8c91a752a0a685b2e8e98d3e6f53afe513f69d01e850a3e1', - "m/86'/0'/21234567'/0/0": - '03b4a4081f2b7182490c107e2184d8cbb83b3a552f4a96781272e89b67d49e6a8f', - "m/86'/0'/2147483646'/0/0": - '02db41c22f92dd861b632517eb911cc7edcdf03549b7d564bdb8ac3aef078e5c3f', - "m/86'/0'/2147483647'/0/0": - '02af09290d655b4eeb906b1608cfe4a74f2e479879fd3442933bf22fca92781737', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02f9e2ead6cc285d7732f1aa8f02be8d8a12ee543c87bd77d9dda7e615026f328f", + "m/86'/0'/1'/0/0": "02dc7e79b6e4d2a2d43bffa35f71dce35c167426868087d361675e4f1d75f6faac", + "m/86'/0'/21234567'/0/0": "03284246761976af1d896fc6eb49bf77d941fd7d20a647d0327fac0745721ed5c5", + "m/86'/0'/2147483646'/0/0": "026d75a3ebd8bb3acd837c8c665b81a7110ae7dbe76b134db6e05da01d59b659de", + "m/86'/0'/2147483647'/0/0": "021a784a480b67dce072083a81f0aa5f4b6a38abc6ec608bbf676c49875fd0a62c" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03a01c8a6fbde0cbde94c9228383fad1bd54f09aa85bfe9e087c6b783ec286a33e', - "m/44'/60'/1'/0/0": '0x0396aedb44990b4892172d3c22b57889394889b75784ab8ad8b1179303ed38e70c', - "m/44'/60'/21234567'/0/0": - '0x02c854e2c7cf0ffef1e4577837212c966ff1ebfdf8aa4afe6c18dd75fe0ca4ed5e', - "m/44'/60'/2147483646'/0/0": - '0x0334a60fc32dbbb18ca666229e6d14dfc2f3d0568f6da20aa0dd86bb2d994f924d', - "m/44'/60'/2147483647'/0/0": - '0x03e20b557daf9b8f32a3650468b1975abc850a4173269990f8f3f8a51e9e5f149f', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03149223c6988ea893a618731124e2c69dde282426c08d241f656d5abd6819388c", + "m/44'/60'/1'/0/0": "0x032c18d87969e418468b079c8ad402a46a69e4417940b68be4fba81f4200f8acb7", + "m/44'/60'/21234567'/0/0": "0x02bb38ab8d52b2c28329de9db7aae498159b342c23e7064df0411cac2c74d0761c", + "m/44'/60'/2147483646'/0/0": "0x02fe1d1a98d30c288c1a661e7fafb90f9064b954c2936e54452e01e3fa17282309", + "m/44'/60'/2147483647'/0/0": "0x027f6f6fd7320fd4d0d8165a1abf030f90e02fdff90aa258096ca47950ef30740a" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '03d5e2fb2f18a61c45c64ee625c1543e09bf2eacec1fb1a050660bed36732fe0ca', - "m/44'/118'/1'/0/0": '0231a68788fb436ca64bb2530249bfc819efc9963c9d568c949ffbffb78840c334', - "m/44'/118'/21234567'/0/0": - '035c2118f818cd15dd4c51e7d5f6dcd27c08a08d96c0d5f4ec44c4249bd5c84c03', - "m/44'/118'/2147483646'/0/0": - '03d265c66abbfd28fc2a0b960356975db62685209e854c60b1fca5c9957c5b208f', - "m/44'/118'/2147483647'/0/0": - '028a34d1965af0a2bd2130aa57b89c98f0b5f0a2d0ec0d61b0fffb03e20ace294d', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "03559f0977dcc7c84f169f87bb59fcd0706e4ecf627286e59f0a0437ef2461dca2", + "m/44'/118'/1'/0/0": "02fc84cae49cdf01b4aa284d88ce730c90e5883af6f1272c03d222d5e634203564", + "m/44'/118'/21234567'/0/0": "03d7ea3a7ba9a7760da0560ee01488f89e0d87137abb768d9cf4c3d2dc2fe32369", + "m/44'/118'/2147483646'/0/0": "031b41967752e30a9b1996b0b62a120bced35a1befea90912f8a999fc131e85bff", + "m/44'/118'/2147483647'/0/0": "0201eb3c3cfc44aabc53197c14c46b220a6d2068e6ee00707cd7ac00eb7a20424d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '002b9b3794c6bf3e1c92181d9c84fd78db9bc735961e5453d679e17b48d9381870', - "m/44'/784'/1'/0'/0'": '008c52a765b2ded6108807e67354330784fe45b008098bfde103164fabb00bf19d', - "m/44'/784'/21234567'/0'/0'": - '0095473c62c8c34326c7939b0f9b547bc39452c7fd20753f261ff5b8ea58b4ded0', - "m/44'/784'/2147483646'/0'/0'": - '0075270d4ea439f84ce2f6e8fe25cd9b9d5152ab216bc01d1eba0ed82e69d25173', - "m/44'/784'/2147483647'/0'/0'": - '0088b06025ac61537e9fe3a0e58075b6b73a47b0a52597663dcf850338a53d0227', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0075bc84ebc9c06d0e77d00dbc8658dd5bc3960b00610171d923745902c468c0c8", + "m/44'/784'/1'/0'/0'": "00b00162e180c6e685d518efdc96ac281de98dd1b7c9a93d313128dba8123c1087", + "m/44'/784'/21234567'/0'/0'": "00dbfef1aecff88f9864458627ebcf796ab40be91077464d0898ea87b8a5b604a0", + "m/44'/784'/2147483646'/0'/0'": "00574b23a59df14a6efa033abca36536a388128e72251dd932df00222e90778a49", + "m/44'/784'/2147483647'/0'/0'": "004631644c19ce3fae6f01c31cdffa644d308f86df51e63de50bf925028c05e856" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '8dd24ec86d1f3ca54101701d94e2aa30988f60b03b8363aca92fa5c3a5d724fc', - "m/44'/637'/1'/0'/0'": '23c39fe161231cf2dce239978622d03e09da8c48164ea367d3368c507480c40f', - "m/44'/637'/21234567'/0'/0'": - '7a6e982e5380d85dafdadd2f346d28a7c02c071f4d40358a10856ec09ae03529', - "m/44'/637'/2147483646'/0'/0'": - 'dc9612bcc11c427474ee90b192b8536b17dd61a3842d0efb83e3bacef36a37cc', - "m/44'/637'/2147483647'/0'/0'": - '664876a664436d37804c89b24e874064bedeeee71fdcc291101f1ca03fe8f7df', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "c33a4f26bec9419f6cb269d5b008af6b7f21f80aea8428bbc6a218d9e6247990", + "m/44'/637'/1'/0'/0'": "4d2e71fcbb91134835372459b1076e8462639686c9fd137547d3d320e673706b", + "m/44'/637'/21234567'/0'/0'": "dde177c6eb7a1a924c48c4287bb5e439ec9cb7d6a53c1257d2c3ca0234a4053e", + "m/44'/637'/2147483646'/0'/0'": "9d7b87ea04966ca8c02a2278d05434191b64edd3aa6c6615fd08dab00255aecc", + "m/44'/637'/2147483647'/0'/0'": "3af02d9a371b4ee44a983f76a410293e265b391b704b77301bbd7bf89d6be6c5" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '9405b4fca5cd4b9219b292753af19caec2961b7f74cb0186f46d08b944526b7c', - "m/44'/1237'/1'/0/0": '7f10509b1db61923fffecfb697b7f9712d97849a80b9d8fe1dc77e11bc6867cc', - "m/44'/1237'/21234567'/0/0": - '17c7febab452684168c22d0a3bf64377e46ab8b0e1886a57334ccf6435e1ab30', - "m/44'/1237'/2147483646'/0/0": - 'c081651d3e2d2e3b7dc2fa9713602bf1b19649ad641fc555610ab7b92b06421a', - "m/44'/1237'/2147483647'/0/0": - '702e79ba82ef47d1c92ff2846bf7162d4ee25b1e87bf6a696ca5fee77db34158', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "a367ad9b8eea3cfe2fb0ffdca9326fa93ae7de07c5a4942b8d701e87e82193cf", + "m/44'/1237'/1'/0/0": "03897631ef7c5f4605e92f0290d724516ab6535b3fdf97a5398015843dafa055", + "m/44'/1237'/21234567'/0/0": "be19297de9dd07dbd1375300215b6a40d51320033dfa3193844a260b76ef58d6", + "m/44'/1237'/2147483646'/0/0": "bfa481a61ea7ce3209c70c3594c603ccfd05902b80a254e8b88881b7283fc2e3", + "m/44'/1237'/2147483647'/0/0": "1e48ae95ef9a0671d8b7a83ee11ad980f731b647fc25e034c28fb12f8d0c5d88" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_empty.ts index 51a547db5..0b73ee302 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count20_two/passphrase_empty.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count20TwoPassphraseEmpty: SLIP39TestCaseData = { - id: 'count20_two_passphrase_empty', - name: 'count20_two_passphrase_empty', - description: '2-of-3 (20 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash', - 'network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw', + "id": "count20_two_passphrase_empty", + "name": "count20_two_passphrase_empty", + "description": "2-of-3 (20 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "network vexed academic acid alive forbid database equation average advocate golden careful exhaust dance texture satisfy lair negative earth flash", + "network vexed academic agency calcium memory elegant merchant welcome oral evidence bulb union company suitable spend loud miracle story withdraw" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '023b964f624177ba39ae9559d67dd65d23e238650bf0b23f3d1d135ae122c500bd', - "m/44'/0'/1'/0/0": '02417da471ff535c8c9d2550653ab6110ddeeda60b7c007e15f766b0420ded815f', - "m/44'/0'/21234567'/0/0": - '02565ec89aa337345dd0283ec9265b2feaf91c0bcf3e7330ce78aacdc440741aae', - "m/44'/0'/2147483646'/0/0": - '03d2cd3a5ed441c66b9fddeb0f4ac39c765a985424d3c8bc3fc233363fbf8de4be', - "m/44'/0'/2147483647'/0/0": - '027385cf0d6c5846f968479823fabe0656f7183898896f2e19edc8292bfd39ca93', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "023b964f624177ba39ae9559d67dd65d23e238650bf0b23f3d1d135ae122c500bd", + "m/44'/0'/1'/0/0": "02417da471ff535c8c9d2550653ab6110ddeeda60b7c007e15f766b0420ded815f", + "m/44'/0'/21234567'/0/0": "02565ec89aa337345dd0283ec9265b2feaf91c0bcf3e7330ce78aacdc440741aae", + "m/44'/0'/2147483646'/0/0": "03d2cd3a5ed441c66b9fddeb0f4ac39c765a985424d3c8bc3fc233363fbf8de4be", + "m/44'/0'/2147483647'/0/0": "027385cf0d6c5846f968479823fabe0656f7183898896f2e19edc8292bfd39ca93" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03a83966f77a3ee841a45749c6c49254671189ac04d6998e28df381055552098c7', - "m/49'/0'/1'/0/0": '0337867d4eac990de640d7629f73a62c473e3f295e9700d0a9c54903242a2a4ef7', - "m/49'/0'/21234567'/0/0": - '035e872ec70075916d9ebc8f52322863e99ded6ff9f194a1b30b34c09e05f53e6d', - "m/49'/0'/2147483646'/0/0": - '03cf4516ce106b47a802573e236b1d3db22f6dc43be5ba2e6a9861496696cb277f', - "m/49'/0'/2147483647'/0/0": - '02758a57902c50e80ea213074be38a45bdc9b368009ed91b4958634f2d548944c4', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03a83966f77a3ee841a45749c6c49254671189ac04d6998e28df381055552098c7", + "m/49'/0'/1'/0/0": "0337867d4eac990de640d7629f73a62c473e3f295e9700d0a9c54903242a2a4ef7", + "m/49'/0'/21234567'/0/0": "035e872ec70075916d9ebc8f52322863e99ded6ff9f194a1b30b34c09e05f53e6d", + "m/49'/0'/2147483646'/0/0": "03cf4516ce106b47a802573e236b1d3db22f6dc43be5ba2e6a9861496696cb277f", + "m/49'/0'/2147483647'/0/0": "02758a57902c50e80ea213074be38a45bdc9b368009ed91b4958634f2d548944c4" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02b66e343785cceec02ed6ecddae4cf4f07d8aa0a08ec154bb68b73262fbb0f490', - "m/84'/0'/1'/0/0": '031e52e5365e876c05d1d4d9534eac287b9ae5c6636bc80c297b5a123e36ed9c86', - "m/84'/0'/21234567'/0/0": - '02f697981e3eef1bfb08e7c0405b045db603172fd42e36ffbf76bd1bea7838f9ee', - "m/84'/0'/2147483646'/0/0": - '03c9305dbfe4e13086a05326d3f0dff8b2ff20db8a85c145887855bcadf7aea4b8', - "m/84'/0'/2147483647'/0/0": - '03a804b36cc945de2ce762cacf2f036c1e47a42309c2fecff1b58bfc0d2d9c5f78', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02b66e343785cceec02ed6ecddae4cf4f07d8aa0a08ec154bb68b73262fbb0f490", + "m/84'/0'/1'/0/0": "031e52e5365e876c05d1d4d9534eac287b9ae5c6636bc80c297b5a123e36ed9c86", + "m/84'/0'/21234567'/0/0": "02f697981e3eef1bfb08e7c0405b045db603172fd42e36ffbf76bd1bea7838f9ee", + "m/84'/0'/2147483646'/0/0": "03c9305dbfe4e13086a05326d3f0dff8b2ff20db8a85c145887855bcadf7aea4b8", + "m/84'/0'/2147483647'/0/0": "03a804b36cc945de2ce762cacf2f036c1e47a42309c2fecff1b58bfc0d2d9c5f78" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '028f487d48ff35dd0c860cc5e54e58912c0851705fb827fc5a473d888baead2c74', - "m/86'/0'/1'/0/0": '036e757db94a8df505c6985b43dc1023fe2c1ab52c9f2112d3b573d2d9eb256c34', - "m/86'/0'/21234567'/0/0": - '030878e4b8da2d17d10194f28b3573d75dcbc69cce6eaec882534edc6957a17873', - "m/86'/0'/2147483646'/0/0": - '03aefaa77690ded12d9b6c26c8093af6440c199efb77e7fb014b2ae0afd859f8ce', - "m/86'/0'/2147483647'/0/0": - '02cf0c228e66c58d66e0a0311a15009c650a72a12f9057ff9d043bc95557c04305', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "028f487d48ff35dd0c860cc5e54e58912c0851705fb827fc5a473d888baead2c74", + "m/86'/0'/1'/0/0": "036e757db94a8df505c6985b43dc1023fe2c1ab52c9f2112d3b573d2d9eb256c34", + "m/86'/0'/21234567'/0/0": "030878e4b8da2d17d10194f28b3573d75dcbc69cce6eaec882534edc6957a17873", + "m/86'/0'/2147483646'/0/0": "03aefaa77690ded12d9b6c26c8093af6440c199efb77e7fb014b2ae0afd859f8ce", + "m/86'/0'/2147483647'/0/0": "02cf0c228e66c58d66e0a0311a15009c650a72a12f9057ff9d043bc95557c04305" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03ce7e525e88f94a8b856cdada60d30e6f19e6c3922ab9818cb9cbddf2ddd8499b', - "m/44'/60'/1'/0/0": '0x03274f36e50cd41886d16cdd39e32ce203aeb50d926aced20c8dd09ed83f49ad50', - "m/44'/60'/21234567'/0/0": - '0x0357b71c1875f60b0859fb8244bb32d30332a0021e03946be16cf849e1a11cc06e', - "m/44'/60'/2147483646'/0/0": - '0x02ce091d91ab3ed5fa7c9a3682fb0fdcffc49a703b5b415120f6ab6376f8d58f35', - "m/44'/60'/2147483647'/0/0": - '0x03bf47188fbe4b305ef76ec750994811a899ff6348fd17f09d91ffcd476e6c942e', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03ce7e525e88f94a8b856cdada60d30e6f19e6c3922ab9818cb9cbddf2ddd8499b", + "m/44'/60'/1'/0/0": "0x03274f36e50cd41886d16cdd39e32ce203aeb50d926aced20c8dd09ed83f49ad50", + "m/44'/60'/21234567'/0/0": "0x0357b71c1875f60b0859fb8244bb32d30332a0021e03946be16cf849e1a11cc06e", + "m/44'/60'/2147483646'/0/0": "0x02ce091d91ab3ed5fa7c9a3682fb0fdcffc49a703b5b415120f6ab6376f8d58f35", + "m/44'/60'/2147483647'/0/0": "0x03bf47188fbe4b305ef76ec750994811a899ff6348fd17f09d91ffcd476e6c942e" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '020083a68f6e50cbd3c239361d813d322e99aa0ca9f2699a699e639fa145ef8c05', - "m/44'/118'/1'/0/0": '02b64cb7ffce9f9e39e119defbceb5cebb43193421fc0dcea8ebeaeb46c40085c6', - "m/44'/118'/21234567'/0/0": - '032e9635a997eab80817ce2dbaece409d304ccf7fa2a2a05d9051711dbced9d6a4', - "m/44'/118'/2147483646'/0/0": - '02188ad03d2b0d94c5ae862b8909f4e248bd6c96bd44861fc049ec07c02c037070', - "m/44'/118'/2147483647'/0/0": - '020353d8169f520cb1636d4297fe671d9be818fbd9f10079b4fee844948c60e806', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "020083a68f6e50cbd3c239361d813d322e99aa0ca9f2699a699e639fa145ef8c05", + "m/44'/118'/1'/0/0": "02b64cb7ffce9f9e39e119defbceb5cebb43193421fc0dcea8ebeaeb46c40085c6", + "m/44'/118'/21234567'/0/0": "032e9635a997eab80817ce2dbaece409d304ccf7fa2a2a05d9051711dbced9d6a4", + "m/44'/118'/2147483646'/0/0": "02188ad03d2b0d94c5ae862b8909f4e248bd6c96bd44861fc049ec07c02c037070", + "m/44'/118'/2147483647'/0/0": "020353d8169f520cb1636d4297fe671d9be818fbd9f10079b4fee844948c60e806" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00143aedd0d52f9f44a15a0fa2ca99da501bd3f6b24cc8cb8e5e2c05e879fa4fc0', - "m/44'/784'/1'/0'/0'": '00d4d337f202a90a86cce1d487f802149a8401a8598c4de8cfea8167617ae540f2', - "m/44'/784'/21234567'/0'/0'": - '00f6e8e89071742a01b7e981b6da8557dce864326bc203d13511ebf3cea488607c', - "m/44'/784'/2147483646'/0'/0'": - '0014736272dd7663c03db549279304a6e280813ce130e5afca980084d2d93b1fcb', - "m/44'/784'/2147483647'/0'/0'": - '009c332f959d7517a4aa7d31e6d2915eab19e2d943169446124de0d3ec31595d25', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00143aedd0d52f9f44a15a0fa2ca99da501bd3f6b24cc8cb8e5e2c05e879fa4fc0", + "m/44'/784'/1'/0'/0'": "00d4d337f202a90a86cce1d487f802149a8401a8598c4de8cfea8167617ae540f2", + "m/44'/784'/21234567'/0'/0'": "00f6e8e89071742a01b7e981b6da8557dce864326bc203d13511ebf3cea488607c", + "m/44'/784'/2147483646'/0'/0'": "0014736272dd7663c03db549279304a6e280813ce130e5afca980084d2d93b1fcb", + "m/44'/784'/2147483647'/0'/0'": "009c332f959d7517a4aa7d31e6d2915eab19e2d943169446124de0d3ec31595d25" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": 'f2865c8398d5847c7b0dcf150e2779e44db9da6506eb9c43fa5947ba3023a576', - "m/44'/637'/1'/0'/0'": '1c010381385274521cd75ec85577dcfa52239845361575fcf13087e85a59e913', - "m/44'/637'/21234567'/0'/0'": - 'a544bacc43199c54a1fe0d934ff3f0bb79f3465e4893da4b36aba87ea72d3ad9', - "m/44'/637'/2147483646'/0'/0'": - '31eee816640b36b134ef50361712fe223e650b7289de4d18af7e361154b3fb74', - "m/44'/637'/2147483647'/0'/0'": - 'c795555410956db74e2de1f32c76a0dc53a2726da59173c154e63eac230fcb9d', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "f2865c8398d5847c7b0dcf150e2779e44db9da6506eb9c43fa5947ba3023a576", + "m/44'/637'/1'/0'/0'": "1c010381385274521cd75ec85577dcfa52239845361575fcf13087e85a59e913", + "m/44'/637'/21234567'/0'/0'": "a544bacc43199c54a1fe0d934ff3f0bb79f3465e4893da4b36aba87ea72d3ad9", + "m/44'/637'/2147483646'/0'/0'": "31eee816640b36b134ef50361712fe223e650b7289de4d18af7e361154b3fb74", + "m/44'/637'/2147483647'/0'/0'": "c795555410956db74e2de1f32c76a0dc53a2726da59173c154e63eac230fcb9d" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '62da2ae6660c5c12302b42d96cafcd56b381626d32ba9302db685206f71e2571', - "m/44'/1237'/1'/0/0": 'f87ac803c8585bfdf89d6d3c6b710a246d425771ec79f0506f0e77436253dfa5', - "m/44'/1237'/21234567'/0/0": - '8a746dd232f9c0627c1d4f1279eeb5009a020780f3b217f097854318dd246f73', - "m/44'/1237'/2147483646'/0/0": - '5fff2d85706686e80a4c3f81676e87ce6a2b4d10f5412f67b5ebe4cdf2839341', - "m/44'/1237'/2147483647'/0/0": - '4303cec393566887a8dac71a211a690b026d7f86a23c2d39c9bbd39ac65c0797', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "62da2ae6660c5c12302b42d96cafcd56b381626d32ba9302db685206f71e2571", + "m/44'/1237'/1'/0/0": "f87ac803c8585bfdf89d6d3c6b710a246d425771ec79f0506f0e77436253dfa5", + "m/44'/1237'/21234567'/0/0": "8a746dd232f9c0627c1d4f1279eeb5009a020780f3b217f097854318dd246f73", + "m/44'/1237'/2147483646'/0/0": "5fff2d85706686e80a4c3f81676e87ce6a2b4d10f5412f67b5ebe4cdf2839341", + "m/44'/1237'/2147483647'/0/0": "4303cec393566887a8dac71a211a690b026d7f86a23c2d39c9bbd39ac65c0797" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/normal.ts index 27d5345f3..965151abc 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/normal.ts @@ -1,173 +1,146 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OneNormal: SLIP39TestCaseData = { - id: 'count33_one_normal', - name: 'count33_one_normal', - description: '1-of-1 (33 words) + normal', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_normal", + "name": "count33_one_normal", + "description": "1-of-1 (33 words) + normal", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff', - "m/44'/0'/1'/0/0": '03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da', - "m/44'/0'/21234567'/0/0": - '029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce', - "m/44'/0'/2147483646'/0/0": - '0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20', - "m/44'/0'/2147483647'/0/0": - '0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff", + "m/44'/0'/1'/0/0": "03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da", + "m/44'/0'/21234567'/0/0": "029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce", + "m/44'/0'/2147483646'/0/0": "0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20", + "m/44'/0'/2147483647'/0/0": "0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6', - "m/49'/0'/1'/0/0": '028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072', - "m/49'/0'/21234567'/0/0": - '0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282', - "m/49'/0'/2147483646'/0/0": - '024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb', - "m/49'/0'/2147483647'/0/0": - '0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6", + "m/49'/0'/1'/0/0": "028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072", + "m/49'/0'/21234567'/0/0": "0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282", + "m/49'/0'/2147483646'/0/0": "024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb", + "m/49'/0'/2147483647'/0/0": "0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5', - "m/84'/0'/1'/0/0": '03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7', - "m/84'/0'/21234567'/0/0": - '02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816', - "m/84'/0'/2147483646'/0/0": - '02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258', - "m/84'/0'/2147483647'/0/0": - '020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5", + "m/84'/0'/1'/0/0": "03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7", + "m/84'/0'/21234567'/0/0": "02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816", + "m/84'/0'/2147483646'/0/0": "02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258", + "m/84'/0'/2147483647'/0/0": "020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147', - "m/86'/0'/1'/0/0": '03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4', - "m/86'/0'/21234567'/0/0": - '03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e', - "m/86'/0'/2147483646'/0/0": - '028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147', - "m/86'/0'/2147483647'/0/0": - '034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147", + "m/86'/0'/1'/0/0": "03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4", + "m/86'/0'/21234567'/0/0": "03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e", + "m/86'/0'/2147483646'/0/0": "028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147", + "m/86'/0'/2147483647'/0/0": "034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6', - "m/44'/60'/1'/0/0": '0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9', - "m/44'/60'/21234567'/0/0": - '0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73', - "m/44'/60'/2147483646'/0/0": - '0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292', - "m/44'/60'/2147483647'/0/0": - '0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6", + "m/44'/60'/1'/0/0": "0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9", + "m/44'/60'/21234567'/0/0": "0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73", + "m/44'/60'/2147483646'/0/0": "0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292", + "m/44'/60'/2147483647'/0/0": "0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff', - "m/44'/118'/1'/0/0": '027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8', - "m/44'/118'/21234567'/0/0": - '03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d', - "m/44'/118'/2147483646'/0/0": - '02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd', - "m/44'/118'/2147483647'/0/0": - '0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff", + "m/44'/118'/1'/0/0": "027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8", + "m/44'/118'/21234567'/0/0": "03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d", + "m/44'/118'/2147483646'/0/0": "02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd", + "m/44'/118'/2147483647'/0/0": "0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5', - "m/44'/784'/1'/0'/0'": '0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f', - "m/44'/784'/21234567'/0'/0'": - '009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21', - "m/44'/784'/2147483646'/0'/0'": - '00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1', - "m/44'/784'/2147483647'/0'/0'": - '00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5", + "m/44'/784'/1'/0'/0'": "0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f", + "m/44'/784'/21234567'/0'/0'": "009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21", + "m/44'/784'/2147483646'/0'/0'": "00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1", + "m/44'/784'/2147483647'/0'/0'": "00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72', - "m/44'/637'/1'/0'/0'": '64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049', - "m/44'/637'/21234567'/0'/0'": - 'b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f', - "m/44'/637'/2147483646'/0'/0'": - '6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c', - "m/44'/637'/2147483647'/0'/0'": - 'd7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72", + "m/44'/637'/1'/0'/0'": "64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049", + "m/44'/637'/21234567'/0'/0'": "b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f", + "m/44'/637'/2147483646'/0'/0'": "6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c", + "m/44'/637'/2147483647'/0'/0'": "d7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a', - "m/44'/1237'/1'/0/0": '491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766', - "m/44'/1237'/21234567'/0/0": - '7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca', - "m/44'/1237'/2147483646'/0/0": - 'a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1', - "m/44'/1237'/2147483647'/0/0": - '02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a", + "m/44'/1237'/1'/0/0": "491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766", + "m/44'/1237'/21234567'/0/0": "7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca", + "m/44'/1237'/2147483646'/0/0": "a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1", + "m/44'/1237'/2147483647'/0/0": "02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_1.ts index e6e2bc28b..fe0a398ed 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_1.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphrase1: SLIP39TestCaseData = { - id: 'count33_one_passphrase_1', - name: 'count33_one_passphrase_1', - description: '1-of-1 (33 words) + passphrase_1', - passphrase: 'onekey', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_1", + "name": "count33_one_passphrase_1", + "description": "1-of-1 (33 words) + passphrase_1", + "passphrase": "12345", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '0313eb0b2801a5648d7e3a207cf37ce7582db5f985b94ca4b036d1401d664e1783', - "m/44'/0'/1'/0/0": '0363e6b050458f1ff2cd349c498750da97f4b99899410b19c445bee34ed6f6a89d', - "m/44'/0'/21234567'/0/0": - '029980bd457c2a524fd3e2630b3ffad823435fa89bde97b59d9d198de38d543c60', - "m/44'/0'/2147483646'/0/0": - '030676129f52529e8a96306ef110b8bbcd84eb85100d98fde4f58283ba7f921c26', - "m/44'/0'/2147483647'/0/0": - '0287fd4a64c873b2f25865b59dccc94e32fa31bec5898adc96df9bedfca40ed455', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "02d6821c1ca15bbb943833a80f298b6dbb7b05e9d61555e60e4fff2040ad2cb91c", + "m/44'/0'/1'/0/0": "035bd5772c39435fefdce6e152b6d602453949c1dc6e32da97f0d4c7cb6f5100cc", + "m/44'/0'/21234567'/0/0": "03782541bee1ad35bbbf2ad475b96d52138f843613867d724ce22230d0a68f0ae4", + "m/44'/0'/2147483646'/0/0": "039f890ab81d1e1a289b1638302539b5b6898f6d9f70895c8b565a97461b174b51", + "m/44'/0'/2147483647'/0/0": "0324e318e7a8fdd73048f21218a728dbdb3069562ed1d7ffeda8ef659cacb512b0" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03c5b99930fdac227d4852c165a8f244173aa6256caf98bb2556664a19cfd0fd3c', - "m/49'/0'/1'/0/0": '0217f98ae4e9ee30af1c0f909a653f035d5bbb6a545ab002982a99cba4cc21573b', - "m/49'/0'/21234567'/0/0": - '025c983aaf8f8aefc8d4a74fb8c1356f277c0f7bcd21f941d43c8617acc99406d2', - "m/49'/0'/2147483646'/0/0": - '0326b104b1fb339ae80a87adb62f3ee5b0109be5fe7fdcc214b058892e2a1f4e38', - "m/49'/0'/2147483647'/0/0": - '03712b317513fb2c0eea8f9d1701268f3ded4a012c0096e8fe6778dfea9ff95769', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02437e6141f650bf6a64a0bd1dba6a1d32d1d18c83c14173af877d7c849e2cccb1", + "m/49'/0'/1'/0/0": "03bee6b08af279a660b49671dc171bd789c8498f07b5e236c111700dc703d10049", + "m/49'/0'/21234567'/0/0": "02710e10ac5d2d44c9c2b2ef862675566f05de8401deb32c6bf24e3785ea26e099", + "m/49'/0'/2147483646'/0/0": "03d5737dec5d52bfa3d6eb4ae6e83c9d50f1f2af696fbb709e4ef1789a43f1b6c6", + "m/49'/0'/2147483647'/0/0": "03623ba3d12ef3ce8c64096f64efafcbd21e321c7676e4bdfffb65cbd691ae1f9f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02dadad21f2f12cf9603d6e61d7d6cec5d35d3a2c5ea7211a1c46eee17e2113d2f', - "m/84'/0'/1'/0/0": '0221d5c9c7179b0b507968a2ac2aca4b194977b408d98f438a7725f121624207e3', - "m/84'/0'/21234567'/0/0": - '022600e7392430f071811bb887904f283062484db8aeda25eebec92427fac6552b', - "m/84'/0'/2147483646'/0/0": - '0229b595ecf2834df5e23301a859f04546301f99f6120362fa9979054fdde9a634', - "m/84'/0'/2147483647'/0/0": - '03e16b4926a36c7f99f19e527e98bf56e1cff2fc626cae20c91c0180fc90bea7d5', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "0257b6413ebe2d2948806ced07248bf8a787b1304674aa3ad6485cea2481cfde9b", + "m/84'/0'/1'/0/0": "02be36d135428d6d6fec3806fa300453e592e254da89e2050c9bf10669ad079a2e", + "m/84'/0'/21234567'/0/0": "02a3e1cee6be44e7478d9a07715b0e97b4a92ac96bc8d70767bd7c47cfeedbb957", + "m/84'/0'/2147483646'/0/0": "0312ed81ac5b589cc8b57405cad28ced25e218c2732d84733fd5965fa55a3f4cc3", + "m/84'/0'/2147483647'/0/0": "023d0ebbedc5550ac2634686fc4d08d863fb9390f62fc72998b9ac63df35e1833f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0241368328d67af432c51754484d9ba76b398cb0ac35a865d3ab13e82442fcde09', - "m/86'/0'/1'/0/0": '0304d00f7dfefdc0f345bc10c3f237fe195d17830cda2efd7586e5236134bdc53c', - "m/86'/0'/21234567'/0/0": - '0382ca276a00cd619b24466b1517a8683e95be0681b978c13da8900414da6cd013', - "m/86'/0'/2147483646'/0/0": - '03526c41f33f7972d7d723b6d32559ce4e775022e56babcfebf785a6e0bfd3ead7', - "m/86'/0'/2147483647'/0/0": - '03d47a48a47f7b2289ebed82cd51515abec138c7a6c3ace9cc3883dc085aa4295a', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02c9cc33da794d21d1959477ed3de32b9b16464c997021fd88e509bf91b1cb60b1", + "m/86'/0'/1'/0/0": "03e7c4767fb0541b3dd8ec2fc954499a85c2a65acd68ec830e526719dcf490b508", + "m/86'/0'/21234567'/0/0": "03c0a8fa45065030e45f2c8cef44679c749479e169e0d5c9d6bb9692f65870cac7", + "m/86'/0'/2147483646'/0/0": "03ef64965128ebbb8aaf75875fc8b103faf85edecae2662dbc40019f7651fa6dd0", + "m/86'/0'/2147483647'/0/0": "039147f8018d14221bfe5da3c42bb2db627719db950bf0d4cb64a86040a52af0c7" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03975cfdda92f3dbc2afed8d2f659c589e8fd2428ac96fff579689bfd5e617635e', - "m/44'/60'/1'/0/0": '0x02bcee90b49a9b8b463fe159be8baae126c363906fca3638e03f32a0d26c2f1248', - "m/44'/60'/21234567'/0/0": - '0x03e8f33eaca2fc79291daeb96b593dad4d85ba5601a0ef11716e12b12eb5511649', - "m/44'/60'/2147483646'/0/0": - '0x0248a8dd8c52e37a6a16522798fd3f26751c801f7b700e1eee6ce8648e6c42e65f', - "m/44'/60'/2147483647'/0/0": - '0x02363c6703d8515842d54cba714a569409c43749ec14de9fe022132c4b3cf0708d', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03a47c6fc2ceb5bfb2d87e86e03c295a1376a0fbb73cc8ad1496739b71a86d9c2f", + "m/44'/60'/1'/0/0": "0x02ba3093c02b2842cfdcdd9594f43aea67c4a2caba7de92eae15e03a7b5ebda37c", + "m/44'/60'/21234567'/0/0": "0x03ba064e950b0915a700ea09ec13472d6de24cb4a2d3fecd5b2294e31024155c30", + "m/44'/60'/2147483646'/0/0": "0x039022c2779644393b3bd1644c85cdee178a907290e5e0f6e78b354be83775bdba", + "m/44'/60'/2147483647'/0/0": "0x02be5369eef72c5bfcfc0316e3f5a1fe5095b3b5beebefa20892d67af26e01c003" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '03111318f730de68f874d786f6cd52c81828006e7c5afe0fa94073307b6d376c90', - "m/44'/118'/1'/0/0": '03718d1987ba9c0e943a97845d561016ead0ac4087add13c0c1351d721e1734bf9', - "m/44'/118'/21234567'/0/0": - '02c5bbec92d98bdb91c7ee971cba4c4eec48484c4f4768113c2455d6b241c469f1', - "m/44'/118'/2147483646'/0/0": - '022aa44a071cd64b9f2e941cf997794dec3f36aef3284092e953ee4a4e96f78879', - "m/44'/118'/2147483647'/0/0": - '02d0c8797827d9c0e0e70b385eb1f7b8d1f21cd5d4111b74a2be6875960b8e997d', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "037f43945b461215ef6be4806932fd3b5a8d8739a09227e3158a8197313d88421c", + "m/44'/118'/1'/0/0": "034d3f01acc1d62c524c353ed6cee0781f80c0820a238c42af7ee8e5fb76799c08", + "m/44'/118'/21234567'/0/0": "032fbb3e1b1e5fb8b2be3e1fd71cdeb890749ffcd376f67fdca2af6efaee41befd", + "m/44'/118'/2147483646'/0/0": "02fb0079e483c10a45f5d1fc61e837070c30d9055156f9cc2d0763390773b215d9", + "m/44'/118'/2147483647'/0/0": "03636a83e34835ec9f65075f0a79728056f701dea729540579788e0d68a55e090d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00d79997dded7adb9f078196832892a460b0579a710db5d1f667bd6f8d84ef2a17', - "m/44'/784'/1'/0'/0'": '005529d584e360b42fa5b796484d104c844c1863b13bdb96b2d9047aff9b2a1981', - "m/44'/784'/21234567'/0'/0'": - '008757168bdef065f421afe959104648a93f0cadd82e04b713068639d0492d1a14', - "m/44'/784'/2147483646'/0'/0'": - '00435b11f98989696641a328aa7612c54ffcc2822de0ba83a4c15fa383353445a1', - "m/44'/784'/2147483647'/0'/0'": - '00649ff9bf929b7f6547e78ea3692adf18bfee09d25d6f582501f3b0fb9b1d1ee0', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0099b128049cc5b3888275da7dc8429657f21f5706f9af15c3b448f474890d9d90", + "m/44'/784'/1'/0'/0'": "00447d8fbe0620d409743f21c2b179380d339dbd0da664027275d3a4bc4d494470", + "m/44'/784'/21234567'/0'/0'": "00e6e1af4cf3fcdfeeac9ed1f24cf2ef60a656dc7b91d3f5179c1fe135d2e9eae5", + "m/44'/784'/2147483646'/0'/0'": "00c4c9a894fdf7bf2dbbc1c9483e58598712548eb436415a19d2f946050ce3fadc", + "m/44'/784'/2147483647'/0'/0'": "0027d739db03c884fa91350c2c2cf699052ef34938c8472216a30a03061ffa9629" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": 'c136f9f7f484a966d53e939f3285b85ff442c39c48c71e255ff602be4800f215', - "m/44'/637'/1'/0'/0'": '367401ae88ec4cb5aa715a3d04ab738c2cd02f7872a70a73170061ea3773c87f', - "m/44'/637'/21234567'/0'/0'": - '906dfc1caa28f3fa8731e7afc4a0e380abab2270e42371c8305024bdc244db74', - "m/44'/637'/2147483646'/0'/0'": - '7b841e71f6f829f2906948d4caff1777cdd81e8c14c5dfff78c46c5685aa9e45', - "m/44'/637'/2147483647'/0'/0'": - 'e844cebd822002e820fe1e6139f00876a7fa7d4a2a538135667e5084866e022a', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "cf2a131132e229887b2bc306c48d902583f30be40178a830b71e476c8b0872a7", + "m/44'/637'/1'/0'/0'": "56a5d37f348649f99bb75166e43a10c8548f4bb105380b84d75caecaed93cb42", + "m/44'/637'/21234567'/0'/0'": "e91e2cdb1a2d71a85da75a289d74c4a70e716c8b2a847ad700f993f8e03b28d7", + "m/44'/637'/2147483646'/0'/0'": "ae956c82d8d0acaa85c74cdca007c19618231ec77b0dc58a5c1dfdf98a6b1b71", + "m/44'/637'/2147483647'/0'/0'": "31d3e6adde7d92eefe51c3429b9b829770bc59aa656fe86b836a9265d1d0aed4" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '9d5ac58f09c12012e0dabdf08245d790582026de8b653836b5e7a5bcd811a45f', - "m/44'/1237'/1'/0/0": 'a5acee753770333469a0b43922800e90218001d7a7ced46f7687fc73619b330a', - "m/44'/1237'/21234567'/0/0": - '5e7d5ca8021e260d47e801c17932e893855ccf76833aed9e881f47f431234909', - "m/44'/1237'/2147483646'/0/0": - '5eb5f41a24958a6391200323005b4984a0f906be6e8a69e2c220f448fe0afc15', - "m/44'/1237'/2147483647'/0/0": - 'c2cd2021ceb6e09304c3bd9dc03d108733ab79e6bb059a9bfdc0ba3d25f3ce98', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "5a8a97f74738266eb5f70c6c7c465392e2f58834d0a9640402b0855e8853e9e4", + "m/44'/1237'/1'/0/0": "0fdc2cdef3e79cb87e7a903833758de51f1d13cdafc21f67fe07be6eec3e052b", + "m/44'/1237'/21234567'/0/0": "414803080632992345c36434bf8cf748b3c124ccab7f53d9de4e2f53a06a44f6", + "m/44'/1237'/2147483646'/0/0": "dce1e80e6369bd38f9f2d1944bd98c7583ea4dc7cf332de55337904fe3b71997", + "m/44'/1237'/2147483647'/0/0": "42b1a8d969441e898253a432e9ef792fc7f4a184d2ab3cddd6b90882ff7baee4" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_2.ts index f18149f19..f1ac55a84 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_2.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphrase2: SLIP39TestCaseData = { - id: 'count33_one_passphrase_2', - name: 'count33_one_passphrase_2', - description: '1-of-1 (33 words) + passphrase_2', - passphrase: "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_2", + "name": "count33_one_passphrase_2", + "description": "1-of-1 (33 words) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '02ba1f9d3d03767c55f567cc3aa8160b14148683fce336c357acfb8620240e68ef', - "m/44'/0'/1'/0/0": '03116435a07e618a81d50f0b216e5c582f9270a8a3e7d84c59d9f2a4fbb6b34dbb', - "m/44'/0'/21234567'/0/0": - '032557e2c2fa698000b79f46c740a77a7561c92361ab511a10d015f33d885489f8', - "m/44'/0'/2147483646'/0/0": - '022f21581505063781dddbc26546b327d440f02dbc5dcf9f5a4c6fb60f4742d639', - "m/44'/0'/2147483647'/0/0": - '03d7fde364d0b4f9f792c3a8e8b519f297d9136b0ea6ac7fdfe9b6cf59bdd7a02f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "0313eb0b2801a5648d7e3a207cf37ce7582db5f985b94ca4b036d1401d664e1783", + "m/44'/0'/1'/0/0": "0363e6b050458f1ff2cd349c498750da97f4b99899410b19c445bee34ed6f6a89d", + "m/44'/0'/21234567'/0/0": "029980bd457c2a524fd3e2630b3ffad823435fa89bde97b59d9d198de38d543c60", + "m/44'/0'/2147483646'/0/0": "030676129f52529e8a96306ef110b8bbcd84eb85100d98fde4f58283ba7f921c26", + "m/44'/0'/2147483647'/0/0": "0287fd4a64c873b2f25865b59dccc94e32fa31bec5898adc96df9bedfca40ed455" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '0211441cf49550e286194290a8f6129f09ce19cba3a130142304a6606b8b46de19', - "m/49'/0'/1'/0/0": '02d05177fb3900eb194912f4c139d8a983830979c09971dbb18eb12cd881f24ad0', - "m/49'/0'/21234567'/0/0": - '02b52667e027572013d2d0c196e66da742428792505b920863fb083dea8f865150', - "m/49'/0'/2147483646'/0/0": - '032e374f580b249c090ecbc3af8b0a76519bef94f553836f1c181df3d74932ea6d', - "m/49'/0'/2147483647'/0/0": - '02c36f19c4b1f9c40bd3c13a63402b3bd4e6024ba7debe018131a6ce04d9412d2e', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03c5b99930fdac227d4852c165a8f244173aa6256caf98bb2556664a19cfd0fd3c", + "m/49'/0'/1'/0/0": "0217f98ae4e9ee30af1c0f909a653f035d5bbb6a545ab002982a99cba4cc21573b", + "m/49'/0'/21234567'/0/0": "025c983aaf8f8aefc8d4a74fb8c1356f277c0f7bcd21f941d43c8617acc99406d2", + "m/49'/0'/2147483646'/0/0": "0326b104b1fb339ae80a87adb62f3ee5b0109be5fe7fdcc214b058892e2a1f4e38", + "m/49'/0'/2147483647'/0/0": "03712b317513fb2c0eea8f9d1701268f3ded4a012c0096e8fe6778dfea9ff95769" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02d8421685abf49a5aae2c84775470a41390465b14f68e8241cd88303593b808f4', - "m/84'/0'/1'/0/0": '029c0d07df38e98a076bd36cd767ee93d40ee92f392afb935be4e23876fa37cb9d', - "m/84'/0'/21234567'/0/0": - '02695bedeb8d4fe54b8a8f973c45cc3e04383a193361a75e06351fc983bd0a82d7', - "m/84'/0'/2147483646'/0/0": - '03f9db74fe432ae08a18085a0539cb4bf7656470108a83f2382693c3290a7e2c03', - "m/84'/0'/2147483647'/0/0": - '02225038499f83c83370be5633f8c28b9cdda98a124f73b606d66bf3e98d7e3b8f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02dadad21f2f12cf9603d6e61d7d6cec5d35d3a2c5ea7211a1c46eee17e2113d2f", + "m/84'/0'/1'/0/0": "0221d5c9c7179b0b507968a2ac2aca4b194977b408d98f438a7725f121624207e3", + "m/84'/0'/21234567'/0/0": "022600e7392430f071811bb887904f283062484db8aeda25eebec92427fac6552b", + "m/84'/0'/2147483646'/0/0": "0229b595ecf2834df5e23301a859f04546301f99f6120362fa9979054fdde9a634", + "m/84'/0'/2147483647'/0/0": "03e16b4926a36c7f99f19e527e98bf56e1cff2fc626cae20c91c0180fc90bea7d5" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0209d0b7845991aa326fd3d703dc5ff0da05b92d20b57d6da58e39ea9426974488', - "m/86'/0'/1'/0/0": '03f03086c5e6b4abadfd848a5144ce865f178afc5469defc5d19adc84f8952225b', - "m/86'/0'/21234567'/0/0": - '03892b15bba5ca05a35cc32841115123c2de387a7825b3335762083be568459706', - "m/86'/0'/2147483646'/0/0": - '02ef54a576ef54316c2919824e20ad0482da7fe660f42fff73f6f88dc8d01369fb', - "m/86'/0'/2147483647'/0/0": - '03c31f1c0d7f2b713bd89b88c7b29ac2e004fe3ec8b67ca30318c06d325c1c1684', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "0241368328d67af432c51754484d9ba76b398cb0ac35a865d3ab13e82442fcde09", + "m/86'/0'/1'/0/0": "0304d00f7dfefdc0f345bc10c3f237fe195d17830cda2efd7586e5236134bdc53c", + "m/86'/0'/21234567'/0/0": "0382ca276a00cd619b24466b1517a8683e95be0681b978c13da8900414da6cd013", + "m/86'/0'/2147483646'/0/0": "03526c41f33f7972d7d723b6d32559ce4e775022e56babcfebf785a6e0bfd3ead7", + "m/86'/0'/2147483647'/0/0": "03d47a48a47f7b2289ebed82cd51515abec138c7a6c3ace9cc3883dc085aa4295a" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03b520ddf9f36bfb0149c1a6cf9316d55b060d0eeb368d2a74411b93f578141380', - "m/44'/60'/1'/0/0": '0x03840f87734bd382f6d09a8a1001428871247e38dd9b8d8c3f38d39ecfc0df2f71', - "m/44'/60'/21234567'/0/0": - '0x02faca8f2b09f10a16b7ff9df92dab11fab43ab0c2a33f79bd9052c85bec6f070c', - "m/44'/60'/2147483646'/0/0": - '0x03d4912aee7553c9014438b07f465f331b4e3f42054426052a17263f11aac720a2', - "m/44'/60'/2147483647'/0/0": - '0x03d274729cfb54f88002d4ec3b6d907389188fea2fb9149bcac69f2c2b0ced0386', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03975cfdda92f3dbc2afed8d2f659c589e8fd2428ac96fff579689bfd5e617635e", + "m/44'/60'/1'/0/0": "0x02bcee90b49a9b8b463fe159be8baae126c363906fca3638e03f32a0d26c2f1248", + "m/44'/60'/21234567'/0/0": "0x03e8f33eaca2fc79291daeb96b593dad4d85ba5601a0ef11716e12b12eb5511649", + "m/44'/60'/2147483646'/0/0": "0x0248a8dd8c52e37a6a16522798fd3f26751c801f7b700e1eee6ce8648e6c42e65f", + "m/44'/60'/2147483647'/0/0": "0x02363c6703d8515842d54cba714a569409c43749ec14de9fe022132c4b3cf0708d" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '025a2f6fe5d8c487b824bc7fbd47dd86da4957e9a4dbba362de176263f739432d8', - "m/44'/118'/1'/0/0": '03226b673fec7b63b51c8c1058da911efd9ec4ef6169216438522d50498431e4a5', - "m/44'/118'/21234567'/0/0": - '02fa5afe1e7943af3992f99f91b99778b4e79686acc4857bf766153ed828c21383', - "m/44'/118'/2147483646'/0/0": - '0348ec7d338d4b02c87caff156010401bdbb4cb567421f3bfab53f0021070fad94', - "m/44'/118'/2147483647'/0/0": - '02602d10892d439d97abb70b043bcdc7aa0e96038bb627cc080788a5647f2c62ad', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "03111318f730de68f874d786f6cd52c81828006e7c5afe0fa94073307b6d376c90", + "m/44'/118'/1'/0/0": "03718d1987ba9c0e943a97845d561016ead0ac4087add13c0c1351d721e1734bf9", + "m/44'/118'/21234567'/0/0": "02c5bbec92d98bdb91c7ee971cba4c4eec48484c4f4768113c2455d6b241c469f1", + "m/44'/118'/2147483646'/0/0": "022aa44a071cd64b9f2e941cf997794dec3f36aef3284092e953ee4a4e96f78879", + "m/44'/118'/2147483647'/0/0": "02d0c8797827d9c0e0e70b385eb1f7b8d1f21cd5d4111b74a2be6875960b8e997d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0065ffff6ebdbed8cb16bc802e56fc73e04649660b151de146ec34e5f4bcfefeb8', - "m/44'/784'/1'/0'/0'": '00196e64b6087e3598220991d68329c31de0a1ab6b811bf122d709f8ee39d9f3da', - "m/44'/784'/21234567'/0'/0'": - '00526e4ce5db5281d03e71e23d28403a841b2eb5fe295d5cd48d2c55ab1fc613bc', - "m/44'/784'/2147483646'/0'/0'": - '00a9813eda0f2a85f65a838de030302eae256553d67440423e5244e78b32583906', - "m/44'/784'/2147483647'/0'/0'": - '00d40e62024d762e0a22821cf48f7f3170483ca41384fb11eca7274468437ad780', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00d79997dded7adb9f078196832892a460b0579a710db5d1f667bd6f8d84ef2a17", + "m/44'/784'/1'/0'/0'": "005529d584e360b42fa5b796484d104c844c1863b13bdb96b2d9047aff9b2a1981", + "m/44'/784'/21234567'/0'/0'": "008757168bdef065f421afe959104648a93f0cadd82e04b713068639d0492d1a14", + "m/44'/784'/2147483646'/0'/0'": "00435b11f98989696641a328aa7612c54ffcc2822de0ba83a4c15fa383353445a1", + "m/44'/784'/2147483647'/0'/0'": "00649ff9bf929b7f6547e78ea3692adf18bfee09d25d6f582501f3b0fb9b1d1ee0" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '6efd0336ec39f654dbd9326ba0237bc0865cf7f8cab2a25465cb5aa7bc25c546', - "m/44'/637'/1'/0'/0'": '008f18c5b60d3d41782c5cc7a287818eac19009c825f6ab3995b1beb965e9873', - "m/44'/637'/21234567'/0'/0'": - '5836fbb3d95c59dc05cdf8e2e9f8792aeeed5be92d192ec0e4fd373415962b44', - "m/44'/637'/2147483646'/0'/0'": - 'af79969fa7aecd1f5bbca1cebdb38e1cabc39b619a48eb4d858c6affac9d5620', - "m/44'/637'/2147483647'/0'/0'": - '5e8d61969bab70ca5157e75c46c09596a174d064f33d7c5f317dbf0308e1483b', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "c136f9f7f484a966d53e939f3285b85ff442c39c48c71e255ff602be4800f215", + "m/44'/637'/1'/0'/0'": "367401ae88ec4cb5aa715a3d04ab738c2cd02f7872a70a73170061ea3773c87f", + "m/44'/637'/21234567'/0'/0'": "906dfc1caa28f3fa8731e7afc4a0e380abab2270e42371c8305024bdc244db74", + "m/44'/637'/2147483646'/0'/0'": "7b841e71f6f829f2906948d4caff1777cdd81e8c14c5dfff78c46c5685aa9e45", + "m/44'/637'/2147483647'/0'/0'": "e844cebd822002e820fe1e6139f00876a7fa7d4a2a538135667e5084866e022a" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": 'cccf9df61d687f819b4d32244b34bd52b4a7a23d04e0c6284e350599b4801efe', - "m/44'/1237'/1'/0/0": 'b8ac24abff798f8d30ccddfdceeba4264f8e3ce114677e612d5f20873a4981d2', - "m/44'/1237'/21234567'/0/0": - 'b177b914b436b0541b2b1d736f70f1c1eca8f37f92167cd0ea940bd97addd755', - "m/44'/1237'/2147483646'/0/0": - 'f37fe74c12f892f3fa65481cc664bc9203fcd2122e118a4ecfb30b2faf789344', - "m/44'/1237'/2147483647'/0/0": - 'ffe502520f95aaa71ca68a09ac3349fe25ab0d7fdae862b93a87b81b42d6c913', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "9d5ac58f09c12012e0dabdf08245d790582026de8b653836b5e7a5bcd811a45f", + "m/44'/1237'/1'/0/0": "a5acee753770333469a0b43922800e90218001d7a7ced46f7687fc73619b330a", + "m/44'/1237'/21234567'/0/0": "5e7d5ca8021e260d47e801c17932e893855ccf76833aed9e881f47f431234909", + "m/44'/1237'/2147483646'/0/0": "5eb5f41a24958a6391200323005b4984a0f906be6e8a69e2c220f448fe0afc15", + "m/44'/1237'/2147483647'/0/0": "c2cd2021ceb6e09304c3bd9dc03d108733ab79e6bb059a9bfdc0ba3d25f3ce98" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_empty.ts index a9c23d47c..2681f9fb0 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_one/passphrase_empty.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33OnePassphraseEmpty: SLIP39TestCaseData = { - id: 'count33_one_passphrase_empty', - name: 'count33_one_passphrase_empty', - description: '1-of-1 (33 words) + passphrase_empty', - passphrase: '', - shares: [ - 'station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue', + "id": "count33_one_passphrase_empty", + "name": "count33_one_passphrase_empty", + "description": "1-of-1 (33 words) + passphrase_empty", + "passphrase": "", + "shares": [ + "station industry academic academic aunt similar picture filter chubby vintage insect hairy charity priority ugly mandate credit faint segment mobile cage junior receiver reject crazy sympathy extra helpful expand force counter lamp rescue" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff', - "m/44'/0'/1'/0/0": '03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da', - "m/44'/0'/21234567'/0/0": - '029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce', - "m/44'/0'/2147483646'/0/0": - '0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20', - "m/44'/0'/2147483647'/0/0": - '0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff", + "m/44'/0'/1'/0/0": "03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da", + "m/44'/0'/21234567'/0/0": "029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce", + "m/44'/0'/2147483646'/0/0": "0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20", + "m/44'/0'/2147483647'/0/0": "0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6', - "m/49'/0'/1'/0/0": '028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072', - "m/49'/0'/21234567'/0/0": - '0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282', - "m/49'/0'/2147483646'/0/0": - '024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb', - "m/49'/0'/2147483647'/0/0": - '0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6", + "m/49'/0'/1'/0/0": "028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072", + "m/49'/0'/21234567'/0/0": "0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282", + "m/49'/0'/2147483646'/0/0": "024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb", + "m/49'/0'/2147483647'/0/0": "0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5', - "m/84'/0'/1'/0/0": '03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7', - "m/84'/0'/21234567'/0/0": - '02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816', - "m/84'/0'/2147483646'/0/0": - '02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258', - "m/84'/0'/2147483647'/0/0": - '020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5", + "m/84'/0'/1'/0/0": "03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7", + "m/84'/0'/21234567'/0/0": "02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816", + "m/84'/0'/2147483646'/0/0": "02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258", + "m/84'/0'/2147483647'/0/0": "020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147', - "m/86'/0'/1'/0/0": '03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4', - "m/86'/0'/21234567'/0/0": - '03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e', - "m/86'/0'/2147483646'/0/0": - '028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147', - "m/86'/0'/2147483647'/0/0": - '034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147", + "m/86'/0'/1'/0/0": "03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4", + "m/86'/0'/21234567'/0/0": "03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e", + "m/86'/0'/2147483646'/0/0": "028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147", + "m/86'/0'/2147483647'/0/0": "034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6', - "m/44'/60'/1'/0/0": '0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9', - "m/44'/60'/21234567'/0/0": - '0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73', - "m/44'/60'/2147483646'/0/0": - '0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292', - "m/44'/60'/2147483647'/0/0": - '0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6", + "m/44'/60'/1'/0/0": "0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9", + "m/44'/60'/21234567'/0/0": "0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73", + "m/44'/60'/2147483646'/0/0": "0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292", + "m/44'/60'/2147483647'/0/0": "0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff', - "m/44'/118'/1'/0/0": '027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8', - "m/44'/118'/21234567'/0/0": - '03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d', - "m/44'/118'/2147483646'/0/0": - '02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd', - "m/44'/118'/2147483647'/0/0": - '0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff", + "m/44'/118'/1'/0/0": "027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8", + "m/44'/118'/21234567'/0/0": "03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d", + "m/44'/118'/2147483646'/0/0": "02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd", + "m/44'/118'/2147483647'/0/0": "0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5', - "m/44'/784'/1'/0'/0'": '0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f', - "m/44'/784'/21234567'/0'/0'": - '009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21', - "m/44'/784'/2147483646'/0'/0'": - '00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1', - "m/44'/784'/2147483647'/0'/0'": - '00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5", + "m/44'/784'/1'/0'/0'": "0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f", + "m/44'/784'/21234567'/0'/0'": "009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21", + "m/44'/784'/2147483646'/0'/0'": "00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1", + "m/44'/784'/2147483647'/0'/0'": "00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72', - "m/44'/637'/1'/0'/0'": '64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049', - "m/44'/637'/21234567'/0'/0'": - 'b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f', - "m/44'/637'/2147483646'/0'/0'": - '6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c', - "m/44'/637'/2147483647'/0'/0'": - 'd7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72", + "m/44'/637'/1'/0'/0'": "64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049", + "m/44'/637'/21234567'/0'/0'": "b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f", + "m/44'/637'/2147483646'/0'/0'": "6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c", + "m/44'/637'/2147483647'/0'/0'": "d7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a', - "m/44'/1237'/1'/0/0": '491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766', - "m/44'/1237'/21234567'/0/0": - '7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca', - "m/44'/1237'/2147483646'/0/0": - 'a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1', - "m/44'/1237'/2147483647'/0/0": - '02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a", + "m/44'/1237'/1'/0/0": "491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766", + "m/44'/1237'/21234567'/0/0": "7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca", + "m/44'/1237'/2147483646'/0/0": "a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1", + "m/44'/1237'/2147483647'/0/0": "02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/normal.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/normal.ts index f1daf289d..7b0d619ec 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/normal.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/normal.ts @@ -1,174 +1,147 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoNormal: SLIP39TestCaseData = { - id: 'count33_two_normal', - name: 'count33_two_normal', - description: '2-of-3 (33 words each) + normal', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_normal", + "name": "count33_two_normal", + "description": "2-of-3 (33 words each) + normal", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff', - "m/44'/0'/1'/0/0": '03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da', - "m/44'/0'/21234567'/0/0": - '029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce', - "m/44'/0'/2147483646'/0/0": - '0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20', - "m/44'/0'/2147483647'/0/0": - '0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff", + "m/44'/0'/1'/0/0": "03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da", + "m/44'/0'/21234567'/0/0": "029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce", + "m/44'/0'/2147483646'/0/0": "0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20", + "m/44'/0'/2147483647'/0/0": "0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6', - "m/49'/0'/1'/0/0": '028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072', - "m/49'/0'/21234567'/0/0": - '0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282', - "m/49'/0'/2147483646'/0/0": - '024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb', - "m/49'/0'/2147483647'/0/0": - '0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6", + "m/49'/0'/1'/0/0": "028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072", + "m/49'/0'/21234567'/0/0": "0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282", + "m/49'/0'/2147483646'/0/0": "024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb", + "m/49'/0'/2147483647'/0/0": "0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5', - "m/84'/0'/1'/0/0": '03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7', - "m/84'/0'/21234567'/0/0": - '02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816', - "m/84'/0'/2147483646'/0/0": - '02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258', - "m/84'/0'/2147483647'/0/0": - '020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5", + "m/84'/0'/1'/0/0": "03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7", + "m/84'/0'/21234567'/0/0": "02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816", + "m/84'/0'/2147483646'/0/0": "02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258", + "m/84'/0'/2147483647'/0/0": "020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147', - "m/86'/0'/1'/0/0": '03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4', - "m/86'/0'/21234567'/0/0": - '03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e', - "m/86'/0'/2147483646'/0/0": - '028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147', - "m/86'/0'/2147483647'/0/0": - '034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147", + "m/86'/0'/1'/0/0": "03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4", + "m/86'/0'/21234567'/0/0": "03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e", + "m/86'/0'/2147483646'/0/0": "028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147", + "m/86'/0'/2147483647'/0/0": "034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6', - "m/44'/60'/1'/0/0": '0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9', - "m/44'/60'/21234567'/0/0": - '0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73', - "m/44'/60'/2147483646'/0/0": - '0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292', - "m/44'/60'/2147483647'/0/0": - '0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6", + "m/44'/60'/1'/0/0": "0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9", + "m/44'/60'/21234567'/0/0": "0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73", + "m/44'/60'/2147483646'/0/0": "0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292", + "m/44'/60'/2147483647'/0/0": "0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff', - "m/44'/118'/1'/0/0": '027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8', - "m/44'/118'/21234567'/0/0": - '03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d', - "m/44'/118'/2147483646'/0/0": - '02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd', - "m/44'/118'/2147483647'/0/0": - '0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff", + "m/44'/118'/1'/0/0": "027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8", + "m/44'/118'/21234567'/0/0": "03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d", + "m/44'/118'/2147483646'/0/0": "02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd", + "m/44'/118'/2147483647'/0/0": "0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5', - "m/44'/784'/1'/0'/0'": '0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f', - "m/44'/784'/21234567'/0'/0'": - '009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21', - "m/44'/784'/2147483646'/0'/0'": - '00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1', - "m/44'/784'/2147483647'/0'/0'": - '00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5", + "m/44'/784'/1'/0'/0'": "0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f", + "m/44'/784'/21234567'/0'/0'": "009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21", + "m/44'/784'/2147483646'/0'/0'": "00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1", + "m/44'/784'/2147483647'/0'/0'": "00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72', - "m/44'/637'/1'/0'/0'": '64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049', - "m/44'/637'/21234567'/0'/0'": - 'b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f', - "m/44'/637'/2147483646'/0'/0'": - '6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c', - "m/44'/637'/2147483647'/0'/0'": - 'd7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72", + "m/44'/637'/1'/0'/0'": "64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049", + "m/44'/637'/21234567'/0'/0'": "b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f", + "m/44'/637'/2147483646'/0'/0'": "6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c", + "m/44'/637'/2147483647'/0'/0'": "d7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a', - "m/44'/1237'/1'/0/0": '491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766', - "m/44'/1237'/21234567'/0/0": - '7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca', - "m/44'/1237'/2147483646'/0/0": - 'a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1', - "m/44'/1237'/2147483647'/0/0": - '02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a", + "m/44'/1237'/1'/0/0": "491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766", + "m/44'/1237'/21234567'/0/0": "7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca", + "m/44'/1237'/2147483646'/0/0": "a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1", + "m/44'/1237'/2147483647'/0/0": "02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_1.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_1.ts index b155852bd..e39e81a22 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_1.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_1.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphrase1: SLIP39TestCaseData = { - id: 'count33_two_passphrase_1', - name: 'count33_two_passphrase_1', - description: '2-of-3 (33 words each) + passphrase_1', - passphrase: 'onekey', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_1", + "name": "count33_two_passphrase_1", + "description": "2-of-3 (33 words each) + passphrase_1", + "passphrase": "12345", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '0313eb0b2801a5648d7e3a207cf37ce7582db5f985b94ca4b036d1401d664e1783', - "m/44'/0'/1'/0/0": '0363e6b050458f1ff2cd349c498750da97f4b99899410b19c445bee34ed6f6a89d', - "m/44'/0'/21234567'/0/0": - '029980bd457c2a524fd3e2630b3ffad823435fa89bde97b59d9d198de38d543c60', - "m/44'/0'/2147483646'/0/0": - '030676129f52529e8a96306ef110b8bbcd84eb85100d98fde4f58283ba7f921c26', - "m/44'/0'/2147483647'/0/0": - '0287fd4a64c873b2f25865b59dccc94e32fa31bec5898adc96df9bedfca40ed455', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "02d6821c1ca15bbb943833a80f298b6dbb7b05e9d61555e60e4fff2040ad2cb91c", + "m/44'/0'/1'/0/0": "035bd5772c39435fefdce6e152b6d602453949c1dc6e32da97f0d4c7cb6f5100cc", + "m/44'/0'/21234567'/0/0": "03782541bee1ad35bbbf2ad475b96d52138f843613867d724ce22230d0a68f0ae4", + "m/44'/0'/2147483646'/0/0": "039f890ab81d1e1a289b1638302539b5b6898f6d9f70895c8b565a97461b174b51", + "m/44'/0'/2147483647'/0/0": "0324e318e7a8fdd73048f21218a728dbdb3069562ed1d7ffeda8ef659cacb512b0" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '03c5b99930fdac227d4852c165a8f244173aa6256caf98bb2556664a19cfd0fd3c', - "m/49'/0'/1'/0/0": '0217f98ae4e9ee30af1c0f909a653f035d5bbb6a545ab002982a99cba4cc21573b', - "m/49'/0'/21234567'/0/0": - '025c983aaf8f8aefc8d4a74fb8c1356f277c0f7bcd21f941d43c8617acc99406d2', - "m/49'/0'/2147483646'/0/0": - '0326b104b1fb339ae80a87adb62f3ee5b0109be5fe7fdcc214b058892e2a1f4e38', - "m/49'/0'/2147483647'/0/0": - '03712b317513fb2c0eea8f9d1701268f3ded4a012c0096e8fe6778dfea9ff95769', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02437e6141f650bf6a64a0bd1dba6a1d32d1d18c83c14173af877d7c849e2cccb1", + "m/49'/0'/1'/0/0": "03bee6b08af279a660b49671dc171bd789c8498f07b5e236c111700dc703d10049", + "m/49'/0'/21234567'/0/0": "02710e10ac5d2d44c9c2b2ef862675566f05de8401deb32c6bf24e3785ea26e099", + "m/49'/0'/2147483646'/0/0": "03d5737dec5d52bfa3d6eb4ae6e83c9d50f1f2af696fbb709e4ef1789a43f1b6c6", + "m/49'/0'/2147483647'/0/0": "03623ba3d12ef3ce8c64096f64efafcbd21e321c7676e4bdfffb65cbd691ae1f9f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02dadad21f2f12cf9603d6e61d7d6cec5d35d3a2c5ea7211a1c46eee17e2113d2f', - "m/84'/0'/1'/0/0": '0221d5c9c7179b0b507968a2ac2aca4b194977b408d98f438a7725f121624207e3', - "m/84'/0'/21234567'/0/0": - '022600e7392430f071811bb887904f283062484db8aeda25eebec92427fac6552b', - "m/84'/0'/2147483646'/0/0": - '0229b595ecf2834df5e23301a859f04546301f99f6120362fa9979054fdde9a634', - "m/84'/0'/2147483647'/0/0": - '03e16b4926a36c7f99f19e527e98bf56e1cff2fc626cae20c91c0180fc90bea7d5', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "0257b6413ebe2d2948806ced07248bf8a787b1304674aa3ad6485cea2481cfde9b", + "m/84'/0'/1'/0/0": "02be36d135428d6d6fec3806fa300453e592e254da89e2050c9bf10669ad079a2e", + "m/84'/0'/21234567'/0/0": "02a3e1cee6be44e7478d9a07715b0e97b4a92ac96bc8d70767bd7c47cfeedbb957", + "m/84'/0'/2147483646'/0/0": "0312ed81ac5b589cc8b57405cad28ced25e218c2732d84733fd5965fa55a3f4cc3", + "m/84'/0'/2147483647'/0/0": "023d0ebbedc5550ac2634686fc4d08d863fb9390f62fc72998b9ac63df35e1833f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0241368328d67af432c51754484d9ba76b398cb0ac35a865d3ab13e82442fcde09', - "m/86'/0'/1'/0/0": '0304d00f7dfefdc0f345bc10c3f237fe195d17830cda2efd7586e5236134bdc53c', - "m/86'/0'/21234567'/0/0": - '0382ca276a00cd619b24466b1517a8683e95be0681b978c13da8900414da6cd013', - "m/86'/0'/2147483646'/0/0": - '03526c41f33f7972d7d723b6d32559ce4e775022e56babcfebf785a6e0bfd3ead7', - "m/86'/0'/2147483647'/0/0": - '03d47a48a47f7b2289ebed82cd51515abec138c7a6c3ace9cc3883dc085aa4295a', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "02c9cc33da794d21d1959477ed3de32b9b16464c997021fd88e509bf91b1cb60b1", + "m/86'/0'/1'/0/0": "03e7c4767fb0541b3dd8ec2fc954499a85c2a65acd68ec830e526719dcf490b508", + "m/86'/0'/21234567'/0/0": "03c0a8fa45065030e45f2c8cef44679c749479e169e0d5c9d6bb9692f65870cac7", + "m/86'/0'/2147483646'/0/0": "03ef64965128ebbb8aaf75875fc8b103faf85edecae2662dbc40019f7651fa6dd0", + "m/86'/0'/2147483647'/0/0": "039147f8018d14221bfe5da3c42bb2db627719db950bf0d4cb64a86040a52af0c7" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03975cfdda92f3dbc2afed8d2f659c589e8fd2428ac96fff579689bfd5e617635e', - "m/44'/60'/1'/0/0": '0x02bcee90b49a9b8b463fe159be8baae126c363906fca3638e03f32a0d26c2f1248', - "m/44'/60'/21234567'/0/0": - '0x03e8f33eaca2fc79291daeb96b593dad4d85ba5601a0ef11716e12b12eb5511649', - "m/44'/60'/2147483646'/0/0": - '0x0248a8dd8c52e37a6a16522798fd3f26751c801f7b700e1eee6ce8648e6c42e65f', - "m/44'/60'/2147483647'/0/0": - '0x02363c6703d8515842d54cba714a569409c43749ec14de9fe022132c4b3cf0708d', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03a47c6fc2ceb5bfb2d87e86e03c295a1376a0fbb73cc8ad1496739b71a86d9c2f", + "m/44'/60'/1'/0/0": "0x02ba3093c02b2842cfdcdd9594f43aea67c4a2caba7de92eae15e03a7b5ebda37c", + "m/44'/60'/21234567'/0/0": "0x03ba064e950b0915a700ea09ec13472d6de24cb4a2d3fecd5b2294e31024155c30", + "m/44'/60'/2147483646'/0/0": "0x039022c2779644393b3bd1644c85cdee178a907290e5e0f6e78b354be83775bdba", + "m/44'/60'/2147483647'/0/0": "0x02be5369eef72c5bfcfc0316e3f5a1fe5095b3b5beebefa20892d67af26e01c003" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '03111318f730de68f874d786f6cd52c81828006e7c5afe0fa94073307b6d376c90', - "m/44'/118'/1'/0/0": '03718d1987ba9c0e943a97845d561016ead0ac4087add13c0c1351d721e1734bf9', - "m/44'/118'/21234567'/0/0": - '02c5bbec92d98bdb91c7ee971cba4c4eec48484c4f4768113c2455d6b241c469f1', - "m/44'/118'/2147483646'/0/0": - '022aa44a071cd64b9f2e941cf997794dec3f36aef3284092e953ee4a4e96f78879', - "m/44'/118'/2147483647'/0/0": - '02d0c8797827d9c0e0e70b385eb1f7b8d1f21cd5d4111b74a2be6875960b8e997d', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "037f43945b461215ef6be4806932fd3b5a8d8739a09227e3158a8197313d88421c", + "m/44'/118'/1'/0/0": "034d3f01acc1d62c524c353ed6cee0781f80c0820a238c42af7ee8e5fb76799c08", + "m/44'/118'/21234567'/0/0": "032fbb3e1b1e5fb8b2be3e1fd71cdeb890749ffcd376f67fdca2af6efaee41befd", + "m/44'/118'/2147483646'/0/0": "02fb0079e483c10a45f5d1fc61e837070c30d9055156f9cc2d0763390773b215d9", + "m/44'/118'/2147483647'/0/0": "03636a83e34835ec9f65075f0a79728056f701dea729540579788e0d68a55e090d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '00d79997dded7adb9f078196832892a460b0579a710db5d1f667bd6f8d84ef2a17', - "m/44'/784'/1'/0'/0'": '005529d584e360b42fa5b796484d104c844c1863b13bdb96b2d9047aff9b2a1981', - "m/44'/784'/21234567'/0'/0'": - '008757168bdef065f421afe959104648a93f0cadd82e04b713068639d0492d1a14', - "m/44'/784'/2147483646'/0'/0'": - '00435b11f98989696641a328aa7612c54ffcc2822de0ba83a4c15fa383353445a1', - "m/44'/784'/2147483647'/0'/0'": - '00649ff9bf929b7f6547e78ea3692adf18bfee09d25d6f582501f3b0fb9b1d1ee0', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0099b128049cc5b3888275da7dc8429657f21f5706f9af15c3b448f474890d9d90", + "m/44'/784'/1'/0'/0'": "00447d8fbe0620d409743f21c2b179380d339dbd0da664027275d3a4bc4d494470", + "m/44'/784'/21234567'/0'/0'": "00e6e1af4cf3fcdfeeac9ed1f24cf2ef60a656dc7b91d3f5179c1fe135d2e9eae5", + "m/44'/784'/2147483646'/0'/0'": "00c4c9a894fdf7bf2dbbc1c9483e58598712548eb436415a19d2f946050ce3fadc", + "m/44'/784'/2147483647'/0'/0'": "0027d739db03c884fa91350c2c2cf699052ef34938c8472216a30a03061ffa9629" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": 'c136f9f7f484a966d53e939f3285b85ff442c39c48c71e255ff602be4800f215', - "m/44'/637'/1'/0'/0'": '367401ae88ec4cb5aa715a3d04ab738c2cd02f7872a70a73170061ea3773c87f', - "m/44'/637'/21234567'/0'/0'": - '906dfc1caa28f3fa8731e7afc4a0e380abab2270e42371c8305024bdc244db74', - "m/44'/637'/2147483646'/0'/0'": - '7b841e71f6f829f2906948d4caff1777cdd81e8c14c5dfff78c46c5685aa9e45', - "m/44'/637'/2147483647'/0'/0'": - 'e844cebd822002e820fe1e6139f00876a7fa7d4a2a538135667e5084866e022a', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "cf2a131132e229887b2bc306c48d902583f30be40178a830b71e476c8b0872a7", + "m/44'/637'/1'/0'/0'": "56a5d37f348649f99bb75166e43a10c8548f4bb105380b84d75caecaed93cb42", + "m/44'/637'/21234567'/0'/0'": "e91e2cdb1a2d71a85da75a289d74c4a70e716c8b2a847ad700f993f8e03b28d7", + "m/44'/637'/2147483646'/0'/0'": "ae956c82d8d0acaa85c74cdca007c19618231ec77b0dc58a5c1dfdf98a6b1b71", + "m/44'/637'/2147483647'/0'/0'": "31d3e6adde7d92eefe51c3429b9b829770bc59aa656fe86b836a9265d1d0aed4" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '9d5ac58f09c12012e0dabdf08245d790582026de8b653836b5e7a5bcd811a45f', - "m/44'/1237'/1'/0/0": 'a5acee753770333469a0b43922800e90218001d7a7ced46f7687fc73619b330a', - "m/44'/1237'/21234567'/0/0": - '5e7d5ca8021e260d47e801c17932e893855ccf76833aed9e881f47f431234909', - "m/44'/1237'/2147483646'/0/0": - '5eb5f41a24958a6391200323005b4984a0f906be6e8a69e2c220f448fe0afc15', - "m/44'/1237'/2147483647'/0/0": - 'c2cd2021ceb6e09304c3bd9dc03d108733ab79e6bb059a9bfdc0ba3d25f3ce98', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "5a8a97f74738266eb5f70c6c7c465392e2f58834d0a9640402b0855e8853e9e4", + "m/44'/1237'/1'/0/0": "0fdc2cdef3e79cb87e7a903833758de51f1d13cdafc21f67fe07be6eec3e052b", + "m/44'/1237'/21234567'/0/0": "414803080632992345c36434bf8cf748b3c124ccab7f53d9de4e2f53a06a44f6", + "m/44'/1237'/2147483646'/0/0": "dce1e80e6369bd38f9f2d1944bd98c7583ea4dc7cf332de55337904fe3b71997", + "m/44'/1237'/2147483647'/0/0": "42b1a8d969441e898253a432e9ef792fc7f4a184d2ab3cddd6b90882ff7baee4" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_2.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_2.ts index 16c53a162..2b935becb 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_2.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_2.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphrase2: SLIP39TestCaseData = { - id: 'count33_two_passphrase_2', - name: 'count33_two_passphrase_2', - description: '2-of-3 (33 words each) + passphrase_2', - passphrase: "qwertyuiopasdfghjklzxcvbnm1234567890-=[];',./12345", - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_2", + "name": "count33_two_passphrase_2", + "description": "2-of-3 (33 words each) + passphrase_2", + "passphrase": "onekey", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '02ba1f9d3d03767c55f567cc3aa8160b14148683fce336c357acfb8620240e68ef', - "m/44'/0'/1'/0/0": '03116435a07e618a81d50f0b216e5c582f9270a8a3e7d84c59d9f2a4fbb6b34dbb', - "m/44'/0'/21234567'/0/0": - '032557e2c2fa698000b79f46c740a77a7561c92361ab511a10d015f33d885489f8', - "m/44'/0'/2147483646'/0/0": - '022f21581505063781dddbc26546b327d440f02dbc5dcf9f5a4c6fb60f4742d639', - "m/44'/0'/2147483647'/0/0": - '03d7fde364d0b4f9f792c3a8e8b519f297d9136b0ea6ac7fdfe9b6cf59bdd7a02f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "0313eb0b2801a5648d7e3a207cf37ce7582db5f985b94ca4b036d1401d664e1783", + "m/44'/0'/1'/0/0": "0363e6b050458f1ff2cd349c498750da97f4b99899410b19c445bee34ed6f6a89d", + "m/44'/0'/21234567'/0/0": "029980bd457c2a524fd3e2630b3ffad823435fa89bde97b59d9d198de38d543c60", + "m/44'/0'/2147483646'/0/0": "030676129f52529e8a96306ef110b8bbcd84eb85100d98fde4f58283ba7f921c26", + "m/44'/0'/2147483647'/0/0": "0287fd4a64c873b2f25865b59dccc94e32fa31bec5898adc96df9bedfca40ed455" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '0211441cf49550e286194290a8f6129f09ce19cba3a130142304a6606b8b46de19', - "m/49'/0'/1'/0/0": '02d05177fb3900eb194912f4c139d8a983830979c09971dbb18eb12cd881f24ad0', - "m/49'/0'/21234567'/0/0": - '02b52667e027572013d2d0c196e66da742428792505b920863fb083dea8f865150', - "m/49'/0'/2147483646'/0/0": - '032e374f580b249c090ecbc3af8b0a76519bef94f553836f1c181df3d74932ea6d', - "m/49'/0'/2147483647'/0/0": - '02c36f19c4b1f9c40bd3c13a63402b3bd4e6024ba7debe018131a6ce04d9412d2e', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "03c5b99930fdac227d4852c165a8f244173aa6256caf98bb2556664a19cfd0fd3c", + "m/49'/0'/1'/0/0": "0217f98ae4e9ee30af1c0f909a653f035d5bbb6a545ab002982a99cba4cc21573b", + "m/49'/0'/21234567'/0/0": "025c983aaf8f8aefc8d4a74fb8c1356f277c0f7bcd21f941d43c8617acc99406d2", + "m/49'/0'/2147483646'/0/0": "0326b104b1fb339ae80a87adb62f3ee5b0109be5fe7fdcc214b058892e2a1f4e38", + "m/49'/0'/2147483647'/0/0": "03712b317513fb2c0eea8f9d1701268f3ded4a012c0096e8fe6778dfea9ff95769" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '02d8421685abf49a5aae2c84775470a41390465b14f68e8241cd88303593b808f4', - "m/84'/0'/1'/0/0": '029c0d07df38e98a076bd36cd767ee93d40ee92f392afb935be4e23876fa37cb9d', - "m/84'/0'/21234567'/0/0": - '02695bedeb8d4fe54b8a8f973c45cc3e04383a193361a75e06351fc983bd0a82d7', - "m/84'/0'/2147483646'/0/0": - '03f9db74fe432ae08a18085a0539cb4bf7656470108a83f2382693c3290a7e2c03', - "m/84'/0'/2147483647'/0/0": - '02225038499f83c83370be5633f8c28b9cdda98a124f73b606d66bf3e98d7e3b8f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "02dadad21f2f12cf9603d6e61d7d6cec5d35d3a2c5ea7211a1c46eee17e2113d2f", + "m/84'/0'/1'/0/0": "0221d5c9c7179b0b507968a2ac2aca4b194977b408d98f438a7725f121624207e3", + "m/84'/0'/21234567'/0/0": "022600e7392430f071811bb887904f283062484db8aeda25eebec92427fac6552b", + "m/84'/0'/2147483646'/0/0": "0229b595ecf2834df5e23301a859f04546301f99f6120362fa9979054fdde9a634", + "m/84'/0'/2147483647'/0/0": "03e16b4926a36c7f99f19e527e98bf56e1cff2fc626cae20c91c0180fc90bea7d5" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '0209d0b7845991aa326fd3d703dc5ff0da05b92d20b57d6da58e39ea9426974488', - "m/86'/0'/1'/0/0": '03f03086c5e6b4abadfd848a5144ce865f178afc5469defc5d19adc84f8952225b', - "m/86'/0'/21234567'/0/0": - '03892b15bba5ca05a35cc32841115123c2de387a7825b3335762083be568459706', - "m/86'/0'/2147483646'/0/0": - '02ef54a576ef54316c2919824e20ad0482da7fe660f42fff73f6f88dc8d01369fb', - "m/86'/0'/2147483647'/0/0": - '03c31f1c0d7f2b713bd89b88c7b29ac2e004fe3ec8b67ca30318c06d325c1c1684', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "0241368328d67af432c51754484d9ba76b398cb0ac35a865d3ab13e82442fcde09", + "m/86'/0'/1'/0/0": "0304d00f7dfefdc0f345bc10c3f237fe195d17830cda2efd7586e5236134bdc53c", + "m/86'/0'/21234567'/0/0": "0382ca276a00cd619b24466b1517a8683e95be0681b978c13da8900414da6cd013", + "m/86'/0'/2147483646'/0/0": "03526c41f33f7972d7d723b6d32559ce4e775022e56babcfebf785a6e0bfd3ead7", + "m/86'/0'/2147483647'/0/0": "03d47a48a47f7b2289ebed82cd51515abec138c7a6c3ace9cc3883dc085aa4295a" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x03b520ddf9f36bfb0149c1a6cf9316d55b060d0eeb368d2a74411b93f578141380', - "m/44'/60'/1'/0/0": '0x03840f87734bd382f6d09a8a1001428871247e38dd9b8d8c3f38d39ecfc0df2f71', - "m/44'/60'/21234567'/0/0": - '0x02faca8f2b09f10a16b7ff9df92dab11fab43ab0c2a33f79bd9052c85bec6f070c', - "m/44'/60'/2147483646'/0/0": - '0x03d4912aee7553c9014438b07f465f331b4e3f42054426052a17263f11aac720a2', - "m/44'/60'/2147483647'/0/0": - '0x03d274729cfb54f88002d4ec3b6d907389188fea2fb9149bcac69f2c2b0ced0386', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x03975cfdda92f3dbc2afed8d2f659c589e8fd2428ac96fff579689bfd5e617635e", + "m/44'/60'/1'/0/0": "0x02bcee90b49a9b8b463fe159be8baae126c363906fca3638e03f32a0d26c2f1248", + "m/44'/60'/21234567'/0/0": "0x03e8f33eaca2fc79291daeb96b593dad4d85ba5601a0ef11716e12b12eb5511649", + "m/44'/60'/2147483646'/0/0": "0x0248a8dd8c52e37a6a16522798fd3f26751c801f7b700e1eee6ce8648e6c42e65f", + "m/44'/60'/2147483647'/0/0": "0x02363c6703d8515842d54cba714a569409c43749ec14de9fe022132c4b3cf0708d" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '025a2f6fe5d8c487b824bc7fbd47dd86da4957e9a4dbba362de176263f739432d8', - "m/44'/118'/1'/0/0": '03226b673fec7b63b51c8c1058da911efd9ec4ef6169216438522d50498431e4a5', - "m/44'/118'/21234567'/0/0": - '02fa5afe1e7943af3992f99f91b99778b4e79686acc4857bf766153ed828c21383', - "m/44'/118'/2147483646'/0/0": - '0348ec7d338d4b02c87caff156010401bdbb4cb567421f3bfab53f0021070fad94', - "m/44'/118'/2147483647'/0/0": - '02602d10892d439d97abb70b043bcdc7aa0e96038bb627cc080788a5647f2c62ad', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "03111318f730de68f874d786f6cd52c81828006e7c5afe0fa94073307b6d376c90", + "m/44'/118'/1'/0/0": "03718d1987ba9c0e943a97845d561016ead0ac4087add13c0c1351d721e1734bf9", + "m/44'/118'/21234567'/0/0": "02c5bbec92d98bdb91c7ee971cba4c4eec48484c4f4768113c2455d6b241c469f1", + "m/44'/118'/2147483646'/0/0": "022aa44a071cd64b9f2e941cf997794dec3f36aef3284092e953ee4a4e96f78879", + "m/44'/118'/2147483647'/0/0": "02d0c8797827d9c0e0e70b385eb1f7b8d1f21cd5d4111b74a2be6875960b8e997d" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0065ffff6ebdbed8cb16bc802e56fc73e04649660b151de146ec34e5f4bcfefeb8', - "m/44'/784'/1'/0'/0'": '00196e64b6087e3598220991d68329c31de0a1ab6b811bf122d709f8ee39d9f3da', - "m/44'/784'/21234567'/0'/0'": - '00526e4ce5db5281d03e71e23d28403a841b2eb5fe295d5cd48d2c55ab1fc613bc', - "m/44'/784'/2147483646'/0'/0'": - '00a9813eda0f2a85f65a838de030302eae256553d67440423e5244e78b32583906', - "m/44'/784'/2147483647'/0'/0'": - '00d40e62024d762e0a22821cf48f7f3170483ca41384fb11eca7274468437ad780', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "00d79997dded7adb9f078196832892a460b0579a710db5d1f667bd6f8d84ef2a17", + "m/44'/784'/1'/0'/0'": "005529d584e360b42fa5b796484d104c844c1863b13bdb96b2d9047aff9b2a1981", + "m/44'/784'/21234567'/0'/0'": "008757168bdef065f421afe959104648a93f0cadd82e04b713068639d0492d1a14", + "m/44'/784'/2147483646'/0'/0'": "00435b11f98989696641a328aa7612c54ffcc2822de0ba83a4c15fa383353445a1", + "m/44'/784'/2147483647'/0'/0'": "00649ff9bf929b7f6547e78ea3692adf18bfee09d25d6f582501f3b0fb9b1d1ee0" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '6efd0336ec39f654dbd9326ba0237bc0865cf7f8cab2a25465cb5aa7bc25c546', - "m/44'/637'/1'/0'/0'": '008f18c5b60d3d41782c5cc7a287818eac19009c825f6ab3995b1beb965e9873', - "m/44'/637'/21234567'/0'/0'": - '5836fbb3d95c59dc05cdf8e2e9f8792aeeed5be92d192ec0e4fd373415962b44', - "m/44'/637'/2147483646'/0'/0'": - 'af79969fa7aecd1f5bbca1cebdb38e1cabc39b619a48eb4d858c6affac9d5620', - "m/44'/637'/2147483647'/0'/0'": - '5e8d61969bab70ca5157e75c46c09596a174d064f33d7c5f317dbf0308e1483b', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "c136f9f7f484a966d53e939f3285b85ff442c39c48c71e255ff602be4800f215", + "m/44'/637'/1'/0'/0'": "367401ae88ec4cb5aa715a3d04ab738c2cd02f7872a70a73170061ea3773c87f", + "m/44'/637'/21234567'/0'/0'": "906dfc1caa28f3fa8731e7afc4a0e380abab2270e42371c8305024bdc244db74", + "m/44'/637'/2147483646'/0'/0'": "7b841e71f6f829f2906948d4caff1777cdd81e8c14c5dfff78c46c5685aa9e45", + "m/44'/637'/2147483647'/0'/0'": "e844cebd822002e820fe1e6139f00876a7fa7d4a2a538135667e5084866e022a" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": 'cccf9df61d687f819b4d32244b34bd52b4a7a23d04e0c6284e350599b4801efe', - "m/44'/1237'/1'/0/0": 'b8ac24abff798f8d30ccddfdceeba4264f8e3ce114677e612d5f20873a4981d2', - "m/44'/1237'/21234567'/0/0": - 'b177b914b436b0541b2b1d736f70f1c1eca8f37f92167cd0ea940bd97addd755', - "m/44'/1237'/2147483646'/0/0": - 'f37fe74c12f892f3fa65481cc664bc9203fcd2122e118a4ecfb30b2faf789344', - "m/44'/1237'/2147483647'/0/0": - 'ffe502520f95aaa71ca68a09ac3349fe25ab0d7fdae862b93a87b81b42d6c913', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "9d5ac58f09c12012e0dabdf08245d790582026de8b653836b5e7a5bcd811a45f", + "m/44'/1237'/1'/0/0": "a5acee753770333469a0b43922800e90218001d7a7ced46f7687fc73619b330a", + "m/44'/1237'/21234567'/0/0": "5e7d5ca8021e260d47e801c17932e893855ccf76833aed9e881f47f431234909", + "m/44'/1237'/2147483646'/0/0": "5eb5f41a24958a6391200323005b4984a0f906be6e8a69e2c220f448fe0afc15", + "m/44'/1237'/2147483647'/0/0": "c2cd2021ceb6e09304c3bd9dc03d108733ab79e6bb059a9bfdc0ba3d25f3ce98" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_empty.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_empty.ts index 85b1a8e0a..e39f71c36 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_empty.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/count33_two/passphrase_empty.ts @@ -1,175 +1,148 @@ import type { SLIP39TestCaseData } from '../../types'; export const count33TwoPassphraseEmpty: SLIP39TestCaseData = { - id: 'count33_two_passphrase_empty', - name: 'count33_two_passphrase_empty', - description: '2-of-3 (33 words each) + passphrase_empty', - passphrase: '', - shares: [ - 'yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various', - 'yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven', + "id": "count33_two_passphrase_empty", + "name": "count33_two_passphrase_empty", + "description": "2-of-3 (33 words each) + passphrase_empty", + "passphrase": "", + "shares": [ + "yoga racism academic acid average silent year kind package pitch bracelet desert aide guilt render belong density forbid spark benefit trend junior fake dough silver spray adequate western liberty hearing strike prepare various", + "yoga racism academic agency antenna aircraft nervous biology buyer invasion satoshi angry darkness skin guilt market fatal violence item platform painting width involve marathon parking duration pancake wildlife should execute silver metric oven" ], - data: [ + "data": [ { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Legacy', - params: { - path: "m/44'/0'/$$INDEX$$'/0/0", - coin: 'btc', - }, - expectedPublicKey: { - "m/44'/0'/0'/0/0": '032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff', - "m/44'/0'/1'/0/0": '03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da', - "m/44'/0'/21234567'/0/0": - '029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce', - "m/44'/0'/2147483646'/0/0": - '0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20', - "m/44'/0'/2147483647'/0/0": - '0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Legacy", + "params": { + "path": "m/44'/0'/$$INDEX$$'/0/0", + "coin": "btc" + }, + "expectedPublicKey": { + "m/44'/0'/0'/0/0": "032eeaeb5cf0b96cb394b694806dad0856427b1935c46d3699c742fa050f8e14ff", + "m/44'/0'/1'/0/0": "03e878d665e3d8982419f15676db7449dec949ab85ce7f33a82b4c60832550b8da", + "m/44'/0'/21234567'/0/0": "029a0b98cf90e531cfd4d8a727eef8b5e8cbd7a7913c8c412611f4574f3388c8ce", + "m/44'/0'/2147483646'/0/0": "0370fadace8cc227da94c17d65565658716b1dfd06c47a8c4f23319e55f80ede20", + "m/44'/0'/2147483647'/0/0": "0256eb460ae5e1bf16174707c2880f593011c94d2c61899376c695cd23e6e83105" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Nested SegWit', - params: { - path: "m/49'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDP2SHWITNESS', - }, - expectedPublicKey: { - "m/49'/0'/0'/0/0": '02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6', - "m/49'/0'/1'/0/0": '028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072', - "m/49'/0'/21234567'/0/0": - '0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282', - "m/49'/0'/2147483646'/0/0": - '024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb', - "m/49'/0'/2147483647'/0/0": - '0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Nested SegWit", + "params": { + "path": "m/49'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDP2SHWITNESS" + }, + "expectedPublicKey": { + "m/49'/0'/0'/0/0": "02dea6c5fdc99d5cf13ff9ef3f5e75e2ef3c415f9a35bb2ef4bb8ba36055b558b6", + "m/49'/0'/1'/0/0": "028ed6f4457fc3f402d7a4e12f51e6548c85214b22351aadc4f28f9676029ef072", + "m/49'/0'/21234567'/0/0": "0346cba82183a75b5b743871618f7915f292a79f7e0b5a0dadc67a15f2800fe282", + "m/49'/0'/2147483646'/0/0": "024efb64f1284a66582ce537d6f0923a8fab5646da683668b8ffdfd69a669e05cb", + "m/49'/0'/2147483647'/0/0": "0368bbe0c3e65bd7ed50c3123df2813548c723142847b4f2050fc71cafd478675f" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Native SegWit', - params: { - path: "m/84'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDWITNESS', - }, - expectedPublicKey: { - "m/84'/0'/0'/0/0": '026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5', - "m/84'/0'/1'/0/0": '03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7', - "m/84'/0'/21234567'/0/0": - '02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816', - "m/84'/0'/2147483646'/0/0": - '02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258', - "m/84'/0'/2147483647'/0/0": - '020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Native SegWit", + "params": { + "path": "m/84'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDWITNESS" + }, + "expectedPublicKey": { + "m/84'/0'/0'/0/0": "026fb51e61596ba341bf994f26698e69830cda142d36d7c20b7190fe8cd3fb87d5", + "m/84'/0'/1'/0/0": "03d0c56b6d802524aa51a623be8d5dc1fd74c4b47a0b61485de987c974b362fca7", + "m/84'/0'/21234567'/0/0": "02b9b3464f8cf45abd9a72a088bf41ef8f3d271e4e1cd843bc0a153bea2a0c7816", + "m/84'/0'/2147483646'/0/0": "02863932f7b3463825815b45a17be39f82eabcedc84cd5d8955daa664787516258", + "m/84'/0'/2147483647'/0/0": "020414321bee58332306974546e12afaf631b375dc0c5b0a4f8efdbd2a8fa8ae44" + } }, { - method: 'btcGetPublicKey', - name: 'btcGetPublicKey-Taproot', - params: { - path: "m/86'/0'/$$INDEX$$'/0/0", - coin: 'btc', - scriptType: 'SPENDTAPROOT', - }, - expectedPublicKey: { - "m/86'/0'/0'/0/0": '032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147', - "m/86'/0'/1'/0/0": '03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4', - "m/86'/0'/21234567'/0/0": - '03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e', - "m/86'/0'/2147483646'/0/0": - '028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147', - "m/86'/0'/2147483647'/0/0": - '034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2', - }, + "method": "btcGetPublicKey", + "name": "btcGetPublicKey-Taproot", + "params": { + "path": "m/86'/0'/$$INDEX$$'/0/0", + "coin": "btc", + "scriptType": "SPENDTAPROOT" + }, + "expectedPublicKey": { + "m/86'/0'/0'/0/0": "032060c1428b026aa4f8d8a66efd72345f4c8a68b8ab6433ede6bcda3119121147", + "m/86'/0'/1'/0/0": "03f2f97c46f3f3a920f1f72a42b9a7c0e89a495a5720236cf5fa8cb7b2b3bdf4f4", + "m/86'/0'/21234567'/0/0": "03adda785f069bcb87059f564f29cc1cf19a29ee88d3f7d736ce269dc3666b671e", + "m/86'/0'/2147483646'/0/0": "028d377d65d86d99dcd1b883766f3eded3baaff4758523740b0e6bcbe9971d0147", + "m/86'/0'/2147483647'/0/0": "034386a16793f36902ef338e33ed47a85a3ffd0dd0457a4350ad60bc841be651b2" + } }, { - method: 'evmGetPublicKey', - name: 'evmGetPublicKey-Ethereum', - params: { - path: "m/44'/60'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/60'/0'/0/0": '0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6', - "m/44'/60'/1'/0/0": '0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9', - "m/44'/60'/21234567'/0/0": - '0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73', - "m/44'/60'/2147483646'/0/0": - '0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292', - "m/44'/60'/2147483647'/0/0": - '0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0', - }, + "method": "evmGetPublicKey", + "name": "evmGetPublicKey-Ethereum", + "params": { + "path": "m/44'/60'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/60'/0'/0/0": "0x0390c70f4f63b36b67e60120ef8d6028501ff1888358b325072756f65f4b564cd6", + "m/44'/60'/1'/0/0": "0x021c349bd3dea8d97e804b2bc6d0e694438ea1b7a87d5c04787c2949a98988fbf9", + "m/44'/60'/21234567'/0/0": "0x0358727406a5f75fb844a27ed3608b154bf8b9edfdf0d39a06589604eb31aadd73", + "m/44'/60'/2147483646'/0/0": "0x02c7e350db7dce0723fb4f8925eb83fa19c8f9c1da7ea475610963a37610ef6292", + "m/44'/60'/2147483647'/0/0": "0x03c27ed8d8ec74769065cd72197ebb79d7777a8215516e78da049cd1622d0b53b0" + } }, { - method: 'cosmosGetPublicKey', - name: 'cosmosGetPublicKey-cosmos', - params: { - hrp: 'cosmos', - path: "m/44'/118'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/118'/0'/0/0": '023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff', - "m/44'/118'/1'/0/0": '027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8', - "m/44'/118'/21234567'/0/0": - '03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d', - "m/44'/118'/2147483646'/0/0": - '02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd', - "m/44'/118'/2147483647'/0/0": - '0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32', - }, + "method": "cosmosGetPublicKey", + "name": "cosmosGetPublicKey-cosmos", + "params": { + "hrp": "cosmos", + "path": "m/44'/118'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/118'/0'/0/0": "023c792ed5b5e88b0c2223c44162e3c295c4b06603e6e3bf7531e56a879bde71ff", + "m/44'/118'/1'/0/0": "027881adc499385980680846a0d79657e1fd1d519454095477cc07a272326412f8", + "m/44'/118'/21234567'/0/0": "03c257c3fcbd2ec3e02fdcaf657fc0f0ab34477da8da31248a271543a29fa4ee7d", + "m/44'/118'/2147483646'/0/0": "02c86b334c6a05b49c05d6ec56e7bd47f36d5bdb842189741e73004192692012cd", + "m/44'/118'/2147483647'/0/0": "0250db42fefdeafa9a9043f6add3c2046131a8af06c69697008a18afbf91222e32" + } }, { - method: 'suiGetPublicKey', - name: 'suiGetPublicKey', - params: { - path: "m/44'/784'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/784'/0'/0'/0'": '0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5', - "m/44'/784'/1'/0'/0'": '0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f', - "m/44'/784'/21234567'/0'/0'": - '009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21', - "m/44'/784'/2147483646'/0'/0'": - '00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1', - "m/44'/784'/2147483647'/0'/0'": - '00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b', - }, + "method": "suiGetPublicKey", + "name": "suiGetPublicKey", + "params": { + "path": "m/44'/784'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/784'/0'/0'/0'": "0082eeedb7980191e19fb54429c00879c72a47dec40055e0f3388751a4df4b40b5", + "m/44'/784'/1'/0'/0'": "0000a3a860eb893135842949c8c6a59cdc4e7779da4ac4a2d55733fc06b51acf8f", + "m/44'/784'/21234567'/0'/0'": "009feffd50da0b68292f044f8766f25753431b40fe5f3a73c8ec9cb518f78f4f21", + "m/44'/784'/2147483646'/0'/0'": "00063a7c99234428dfa0ffb3cc324f2890a9294fe424a873e0512041016c4ec4a1", + "m/44'/784'/2147483647'/0'/0'": "00985076a406d7d3e311a76060421f52853e28559f18df3ea254850f58f74bff4b" + } }, { - method: 'aptosGetPublicKey', - name: 'aptosGetPublicKey', - params: { - path: "m/44'/637'/$$INDEX$$'/0'/0'", - }, - expectedPublicKey: { - "m/44'/637'/0'/0'/0'": '451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72', - "m/44'/637'/1'/0'/0'": '64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049', - "m/44'/637'/21234567'/0'/0'": - 'b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f', - "m/44'/637'/2147483646'/0'/0'": - '6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c', - "m/44'/637'/2147483647'/0'/0'": - 'd7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098', - }, + "method": "aptosGetPublicKey", + "name": "aptosGetPublicKey", + "params": { + "path": "m/44'/637'/$$INDEX$$'/0'/0'" + }, + "expectedPublicKey": { + "m/44'/637'/0'/0'/0'": "451ed07b4494b84c62b0049e625d43d3195641f44b38aadac4666b4561178f72", + "m/44'/637'/1'/0'/0'": "64db5ac51b8778e7230ff89b987b6132010d93700222893fb726da0214e15049", + "m/44'/637'/21234567'/0'/0'": "b592cc6d37af271d6023651e916c2e99f1b219cab352956f5921e46db078419f", + "m/44'/637'/2147483646'/0'/0'": "6ac7497c615cfb65de05914efe20f260becf1bba52814fa70ef5ba967b88506c", + "m/44'/637'/2147483647'/0'/0'": "d7c637f684a9bdd02361cae7128827215730c5d24819d8f33acf3cf3c2f65098" + } }, { - method: 'nostrGetPublicKey', - name: 'nostrGetPublicKey', - params: { - path: "m/44'/1237'/$$INDEX$$'/0/0", - }, - expectedPublicKey: { - "m/44'/1237'/0'/0/0": '54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a', - "m/44'/1237'/1'/0/0": '491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766', - "m/44'/1237'/21234567'/0/0": - '7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca', - "m/44'/1237'/2147483646'/0/0": - 'a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1', - "m/44'/1237'/2147483647'/0/0": - '02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b', - }, - }, - ], + "method": "nostrGetPublicKey", + "name": "nostrGetPublicKey", + "params": { + "path": "m/44'/1237'/$$INDEX$$'/0/0" + }, + "expectedPublicKey": { + "m/44'/1237'/0'/0/0": "54898c201f852b4b5d36ab2a91442e2aeae4b3ba2059678a5fb8dbe2604a1e2a", + "m/44'/1237'/1'/0/0": "491a9c1be8d463c8afb9690396144b2cfce837c0fe0a48a636985ab3549af766", + "m/44'/1237'/21234567'/0/0": "7aad9885f3e4bb42fb8c8c3dfbf352e5c3c9b4f8f19675787c8564d04cf892ca", + "m/44'/1237'/2147483646'/0/0": "a994f3379fcd30f898059971a15bb39d223cd6e20fbc5a1ea98d7211f64fa0b1", + "m/44'/1237'/2147483647'/0/0": "02fe97a37d7dd623cbbe8c96c0a84c778e77cc07faf621e8de4cb74cdee34b6b" + } + } + ] }; diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/index.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/index.ts index 404cf01fb..567dc21e4 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/index.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/pubKeyData/index.ts @@ -1,3 +1,5 @@ +import type { SLIP39TestCaseData } from '../types'; + import { count20OneNormal } from './count20_one/normal'; import { count20OnePassphraseEmpty } from './count20_one/passphrase_empty'; import { count20OnePassphrase1 } from './count20_one/passphrase_1'; @@ -19,8 +21,6 @@ import { count33TwoPassphraseEmpty } from './count33_two/passphrase_empty'; import { count33TwoPassphrase1 } from './count33_two/passphrase_1'; import { count33TwoPassphrase2 } from './count33_two/passphrase_2'; -import type { SLIP39TestCaseData } from '../types'; - export const allPubkeyTestCases: SLIP39TestCaseData[] = [ count20OneNormal, count20OnePassphraseEmpty, diff --git a/packages/connect-examples/expo-example/src/testTools/slip39Test/slip39Utils.ts b/packages/connect-examples/expo-example/src/testTools/slip39Test/slip39Utils.ts index 0e793f126..bc58d2efe 100644 --- a/packages/connect-examples/expo-example/src/testTools/slip39Test/slip39Utils.ts +++ b/packages/connect-examples/expo-example/src/testTools/slip39Test/slip39Utils.ts @@ -22,6 +22,7 @@ import { generateScdoAddressFromSeed } from '../../utils/mockDevice/method/scdoG import { generateXrpAddressFromSeed } from '../../utils/mockDevice/method/xrpGetAddress'; import { generateBenfenAddressFromSeed } from '../../utils/mockDevice/method/benfenGetAddress'; import { generateTonAddressFromSeed } from '../../utils/mockDevice/method/tonGetAddress'; +import { generatePolkadotAddressFromSeed } from '../../utils/mockDevice/method/polkadotGetAddress'; // Import public key generators import { generateAptosPublicKeyFromSeed } from '../../utils/mockDevice/method/aptosGetPublicKey'; @@ -110,9 +111,10 @@ const GENERATORS: Record = { try { const keyPair = deriveKeyPairWithPath(seed, params.path, 'secp256k1'); const publicKey = keyPair.publicKey ? Buffer.from(keyPair.publicKey).toString('hex') : ''; + const xpub = (keyPair as { publicExtendedKey?: string }).publicExtendedKey || ''; return Promise.resolve({ success: true, - payload: { publicKey, node: { public_key: publicKey } }, + payload: { publicKey, xpub, node: { public_key: publicKey } }, }); } catch (error) { return Promise.resolve({ @@ -142,9 +144,10 @@ const GENERATORS: Record = { const publicKey = keyPair.publicKey ? `0x${Buffer.from(keyPair.publicKey).toString('hex')}` : ''; + const xpub = (keyPair as { publicExtendedKey?: string }).publicExtendedKey || ''; return Promise.resolve({ success: true, - payload: { publicKey }, + payload: { publicKey, xpub }, }); } catch (error) { return Promise.resolve({ @@ -350,7 +353,7 @@ const GENERATORS: Record = { polkadotGetAddress: { address: (seed: Buffer, params: any) => { try { - const result = generatePolkadotPublicKeyFromSeed(seed, params.path); + const result = generatePolkadotAddressFromSeed(seed, params.path, params.prefix); return Promise.resolve({ success: true, payload: { address: result } }); } catch (error) { return Promise.resolve({ diff --git a/packages/connect-examples/expo-example/src/types/external-modules.d.ts b/packages/connect-examples/expo-example/src/types/external-modules.d.ts new file mode 100644 index 000000000..8b7c200bb --- /dev/null +++ b/packages/connect-examples/expo-example/src/types/external-modules.d.ts @@ -0,0 +1,17 @@ +declare module '@onekeyfe/hd-common-connect-sdk' { + const sdk: any; + export default sdk; +} + +declare module '@nexajs/address' { + export function encodeAddress( + prefix: string, + type: string, + payload: Uint8Array | Buffer + ): string; +} + +declare module '@nexajs/script' { + export const OP: Record; + export function encodeDataPush(data: Uint8Array): Uint8Array; +} diff --git a/packages/connect-examples/expo-example/src/utils/mockDevice/method/nostrGetPublicKey.ts b/packages/connect-examples/expo-example/src/utils/mockDevice/method/nostrGetPublicKey.ts index e638e3541..6c49f9bcd 100644 --- a/packages/connect-examples/expo-example/src/utils/mockDevice/method/nostrGetPublicKey.ts +++ b/packages/connect-examples/expo-example/src/utils/mockDevice/method/nostrGetPublicKey.ts @@ -1,6 +1,9 @@ import { deriveKeyPairWithPath, mnemonicToSeed } from '../helper'; -import type { NostrGetPublicKeyParams } from '@onekeyfe/hd-core'; +type NostrGetPublicKeyParams = { + path: string | number[]; + showOnOneKey?: boolean; +}; /** * 抽离的核心逻辑:从 seed 生成 Nostr 公钥 diff --git a/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetAddress.ts b/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetAddress.ts index 35919a190..7bdf2d954 100644 --- a/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetAddress.ts +++ b/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetAddress.ts @@ -1,7 +1,10 @@ /* eslint-disable no-bitwise */ -import { encodeAddress, hdLedger } from '@polkadot/util-crypto'; +import { ed25519PairFromSeed, encodeAddress } from '@polkadot/util-crypto'; +import { ledgerDerivePrivate } from '@polkadot/util-crypto/hd/ledger/derivePrivate'; +import { ledgerMaster } from '@polkadot/util-crypto/hd/ledger/master'; import { deriveKeyPairWithPath } from '../helper'; +import { mnemonicToSeed } from '../helper'; import type { PolkadotGetAddressParams } from '@onekeyfe/hd-core'; @@ -36,8 +39,18 @@ export function generatePolkadotAddressFromMnemonic( prefix = 0, passphrase = '' ): string { - const secret = hdLedger(mnemonic, path, passphrase); - return encodeAddress(secret.publicKey, prefix); + let extendedPrivateKey = ledgerMaster(mnemonic, passphrase); + + for (const segment of path.split('/').slice(1)) { + const index = Number.parseInt(segment.replace(/'$/, ''), 10); + if (Number.isNaN(index)) { + throw new Error(`Invalid derivation index: ${segment}`); + } + extendedPrivateKey = ledgerDerivePrivate(extendedPrivateKey, index + 0x80000000); + } + + const keyPair = ed25519PairFromSeed(extendedPrivateKey.slice(0, 32)); + return encodeAddress(keyPair.publicKey, prefix); } export default function polkadotGetAddress( diff --git a/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetPublicKey.ts b/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetPublicKey.ts index fb0dc3e69..a8beb6a53 100644 --- a/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetPublicKey.ts +++ b/packages/connect-examples/expo-example/src/utils/mockDevice/method/polkadotGetPublicKey.ts @@ -1,6 +1,9 @@ import { deriveKeyPairWithPath, mnemonicToSeed } from '../helper'; -import type { PolkadotGetPublicKeyParams } from '@onekeyfe/hd-core'; +type PolkadotGetPublicKeyParams = { + path: string | number[]; + showOnOneKey?: boolean; +}; /** * 抽离的核心逻辑:从 seed 生成 Polkadot 公钥 diff --git a/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx b/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx index 2a85ab908..0647d1702 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx @@ -1,1000 +1,882 @@ -/** - * Automation Test Screen - * - * Provides UI for configuring and running automated hardware wallet tests - * with PhonePilot MCP integration. - */ - -import React, { useCallback, useMemo } from 'react'; +import React, { useMemo } from 'react'; +import { Check as CheckIcon } from '@tamagui/lucide-icons'; +import { useAtom, useAtomValue } from 'jotai'; import { Button, Card, - Input, + Checkbox, Image, - ScrollView, + Input, + Label, Separator, Stack, Text, XStack, YStack, - styled, } from 'tamagui'; -import { useAtom, useAtomValue, useSetAtom } from 'jotai'; -import { DeviceProvider } from '../provider/DeviceProvider'; -import { HardwareInputPinDialogProvider } from '../provider/HardwareInputPinProvider'; -import PageView from '../components/ui/Page'; -import PanelView from '../components/ui/Panel'; - -import { useAutomationTest } from '../testTools/automationTest/useAutomationTest'; -import { - getMnemonicsOrganizedByWordCount, - ALL_PASSPHRASE_VARIANT_IDS, -} from '../testTools/automationTest/mnemonicGroups'; -import { PASSPHRASE_VARIANT_INFO } from '../services/phonePilotMcp/types'; import { automationConfigAtom, + automationLogsAtom, automationReportAtom, cameraFrameAtom, + canStartAutomationAtom, isAutomationRunningAtom, - isPhonePilotConnectedAtom, + phonePilotConnectionStateAtom, + phonePilotHealthAtom, progressPercentageAtom, - phonePilotUrlAtom, } from '../atoms/automationAtoms'; +import AutoWrapperTextArea from '../components/ui/AutoWrapperTextArea'; +import PageView from '../components/ui/Page'; +import PanelView from '../components/ui/Panel'; +import { DeviceProvider } from '../provider/DeviceProvider'; +import { HardwareInputPinDialogProvider } from '../provider/HardwareInputPinProvider'; +import { + ALL_PASSPHRASE_VARIANT_IDS, + PASSPHRASE_VARIANT_INFO, + TEST_SUITE_INFO, +} from '../services/phonePilotMcp/types'; +import { useAutomationTest } from '../testTools/automationTest/useAutomationTest'; -import type { MnemonicGroupId, TestSuiteType, PassphraseVariantId } from '../services/phonePilotMcp/types'; - -/** Available test suite types */ -const TEST_SUITE_OPTIONS: { id: TestSuiteType; label: string }[] = [ - { id: 'address', label: 'Address Test' }, - { id: 'pubkey', label: 'Public Key Test' }, - { id: 'passphrase', label: 'Passphrase Test' }, - { id: 'slip39', label: 'SLIP39 Test' }, - { id: 'security', label: 'Security Check' }, - { id: 'functional', label: 'Functional Test' }, - { id: 'attachToPin', label: 'Attach to PIN' }, - { id: 'chainMethod', label: 'Chain Method' }, -]; - -/** Styled link button */ -const LinkButton = styled(Text, { - fontSize: 12, - color: '$blue10', - cursor: 'pointer', - pressStyle: { opacity: 0.7 }, - hoverStyle: { textDecorationLine: 'underline' }, -}); - -/** Styled table cell for checkbox */ -const TableCheckCell = styled(YStack, { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - paddingVertical: '$1', -}); - -export default function AutomationTestScreen() { - return ( - - - - - {/* Connection Panel */} - +import type { + AutomationScenario, + AutomationScenarioId, + AutomationTestConfig, + ConnectionState, + HealthCheckResponse, + PassphraseVariantId, + ScenarioReportResult, + TestCaseResult, + TestProgress, + TestReport, + TestSuiteResult, + TestSuiteType, +} from '../services/phonePilotMcp/types'; + +const JIRA_ORDER = ['OK-26053', 'OK-26054', 'OK-5504', 'OK-40090'] as const; + +function toggleValue(list: T[], value: T): T[] { + return list.includes(value) ? list.filter(item => item !== value) : [...list, value]; +} - {/* Configuration Panel */} - +function formatDuration(ms: number): string { + if (ms < 1000) { + return `${ms}ms`; + } + return `${(ms / 1000).toFixed(1)}s`; +} - {/* Progress Panel */} - +function getStatusColor(status: 'passed' | 'failed' | 'skipped' | 'idle' | 'running'): string { + if (status === 'passed') { + return '$green10'; + } + if (status === 'failed') { + return '$red10'; + } + if (status === 'skipped') { + return '$gray10'; + } + return '$blue10'; +} - {/* Logs Panel */} - +function getConnectionColor(connectionState: ConnectionState): string { + if (connectionState === 'connected') { + return getStatusColor('passed'); + } + if (connectionState === 'error') { + return getStatusColor('failed'); + } + return getStatusColor('running'); +} - {/* Results Panel */} - - - - - - ); +function getReadyColor(ready: boolean | null | undefined): string { + if (ready === true) { + return getStatusColor('passed'); + } + if (ready === false) { + return getStatusColor('failed'); + } + return getStatusColor('running'); } -/** - * PhonePilot Connection Panel - */ -function ConnectionPanel() { - const { - connectionState, - connectPhonePilot, - disconnectPhonePilot, - captureFrame, - } = useAutomationTest(); - - const serverUrl = useAtomValue(phonePilotUrlAtom); - const isConnected = connectionState === 'connected'; - const isConnecting = connectionState === 'connecting'; - const isError = connectionState === 'error'; +function formatReadyLabel(ready: boolean | null | undefined): string { + if (ready === true) { + return 'ready'; + } + if (ready === false) { + return 'not ready'; + } + return '未检测'; +} - return ( - - - {/* Left: Status */} - - - - - {isConnected - ? 'Connected' - : isError - ? 'Failed' - : isConnecting - ? 'Connecting...' - : 'Disconnected'} - - - {serverUrl} - - - +function getCaseStatusIcon(testCase: TestCaseResult): string { + if (testCase.skipped) { + return '⏭️'; + } + if (testCase.passed) { + return '✅'; + } + return '❌'; +} - {/* Right: Actions */} - - {!isConnected ? ( - - - {isConnecting ? 'Connecting...' : 'Connect'} - - - ) : ( - - Disconnect - - )} - - - - ); +function getFrameUri(frame?: string | null): string | null { + if (!frame) { + return null; + } + return frame.startsWith('data:') ? frame : `data:image/png;base64,${frame}`; } -/** - * Test Configuration Panel - */ -function ConfigurationPanel() { - const [config, setConfig] = useAtom(automationConfigAtom); - const isRunning = useAtomValue(isAutomationRunningAtom); +function formatScenarioSuiteSummary(scenario: AutomationScenario): string { + const labelMap: Record = { + deviceFlow: 'Device Flow', + sdkAddressBatch: 'Address', + sdkPubkeyBatch: 'Pubkey', + }; - const mnemonicsByWordCount = useMemo(() => getMnemonicsOrganizedByWordCount(), []); - const standardMnemonics = useMemo( - () => mnemonicsByWordCount.filter((m) => m.type === 'standard'), - [mnemonicsByWordCount] - ); - const slip39Mnemonics = useMemo( - () => mnemonicsByWordCount.filter((m) => m.type === 'slip39'), - [mnemonicsByWordCount] + return scenario.supportedSuites.map(suiteType => labelMap[suiteType]).join(' + '); +} + +function SelectableRow({ + checked, + disabled, + title, + description, + onToggle, +}: { + checked: boolean; + disabled?: boolean; + title: string; + description?: string; + onToggle: () => void; +}) { + return ( + + + + + + + + + {title} + + {description ? ( + + {description} + + ) : null} + + ); +} - const allTestSuites = useMemo(() => TEST_SUITE_OPTIONS.map((s) => s.id), []); - const allMnemonicIds = useMemo( - () => mnemonicsByWordCount.flatMap((m) => m.groups.map((g) => g.id)), - [mnemonicsByWordCount] +function PanelActions({ + disabled, + onSelectAll, + onClear, +}: { + disabled?: boolean; + onSelectAll: () => void; + onClear: () => void; +}) { + return ( + + + + ); +} - // Toggle functions - const toggleMnemonicGroup = useCallback( - (groupId: MnemonicGroupId) => { - const newGroups = config.mnemonicGroups.includes(groupId) - ? config.mnemonicGroups.filter((g) => g !== groupId) - : [...config.mnemonicGroups, groupId]; - setConfig({ ...config, mnemonicGroups: newGroups }); - }, - [config, setConfig] +function ReportCase({ testCase }: { testCase: TestCaseResult }) { + return ( + + + + + {getCaseStatusIcon(testCase)} {testCase.title} + + + {formatDuration(testCase.duration)} + + + {testCase.method ? ( + + 方法: {testCase.method} + + ) : null} + {testCase.expected ? ( + + 期望: {testCase.expected} + + ) : null} + {testCase.actual ? ( + + 实际: {testCase.actual} + + ) : null} + {testCase.error ? ( + + 错误: {testCase.error} + + ) : null} + {testCase.metadata ? ( + + 元数据:{' '} + {Object.entries(testCase.metadata) + .map(([key, value]) => `${key}=${value}`) + .join(',')} + + ) : null} + + ); +} - const togglePassphraseVariant = useCallback( - (variantId: PassphraseVariantId) => { - const newVariants = config.passphraseVariants.includes(variantId) - ? config.passphraseVariants.filter((v) => v !== variantId) - : [...config.passphraseVariants, variantId]; - setConfig({ ...config, passphraseVariants: newVariants }); - }, - [config, setConfig] +function ReportSuite({ suite }: { suite: TestSuiteResult }) { + return ( + + + + + {suite.suiteName} + + + 状态: {suite.status} · 用例{' '} + {suite.passedTests}/{suite.totalTests} · 耗时 {formatDuration(suite.duration)} + + + + {suite.results.map(testCase => ( + + ))} + + + ); +} - const toggleTestSuite = useCallback( - (suiteId: TestSuiteType) => { - const newSuites = config.testSuites.includes(suiteId) - ? config.testSuites.filter((s) => s !== suiteId) - : [...config.testSuites, suiteId]; - setConfig({ ...config, testSuites: newSuites }); - }, - [config, setConfig] +function ReportScenario({ scenario }: { scenario: ScenarioReportResult }) { + return ( + + + + + + {scenario.scenarioTitle} + + + {scenario.status} + + + + {scenario.jiraKey} · {scenario.flowType} · {scenario.walletType} · {scenario.caseLabel}{' '} + · 耗时 {formatDuration(scenario.duration)} + + + + {scenario.suiteResults.map(suite => ( + + ))} + + + ); +} - // Batch select functions - const selectAllMnemonics = useCallback(() => { - setConfig({ ...config, mnemonicGroups: allMnemonicIds }); - }, [config, setConfig, allMnemonicIds]); +function ConnectionPanel({ + connectionState, + health, + frameUri, + onCaptureFrame, + onConnect, + onDisconnect, + phonePilotUrl, + setPhonePilotUrl, +}: { + connectionState: ConnectionState; + health: HealthCheckResponse | null; + frameUri: string | null; + onCaptureFrame: () => Promise; + onConnect: () => Promise; + onDisconnect: () => Promise; + phonePilotUrl: string; + setPhonePilotUrl: (value: string) => void; +}) { + const isConnected = connectionState === 'connected'; + const statusLabelMap: Record = { + connected: '已连接', + connecting: '连接中', + disconnected: '未连接', + error: '连接失败', + }; - const clearMnemonics = useCallback(() => { - setConfig({ ...config, mnemonicGroups: [] }); - }, [config, setConfig]); + return ( + + + + + MCP 地址 + + + - const selectAllPassphraseVariants = useCallback(() => { - setConfig({ ...config, passphraseVariants: [...ALL_PASSPHRASE_VARIANT_IDS] }); - }, [config, setConfig]); + + + 当前状态: {statusLabelMap[connectionState]} + + + + + + - const clearPassphraseVariants = useCallback(() => { - setConfig({ ...config, passphraseVariants: [] }); - }, [config, setConfig]); + + + + MCP: {formatReadyLabel(health?.mcpReady)} + + + OCR: {formatReadyLabel(health?.ocrReady)} + + {health?.message ? ( + + 健康信息: {health.message} + + ) : null} + {health?.ocr?.pythonBin ? ( + + Python: {health.ocr.pythonBin} + {health.ocr.pythonVersion ? ` (${health.ocr.pythonVersion})` : ''} + + ) : null} + {health?.sequenceIds?.length ? ( + + Sequences: {health.sequenceIds.length} + + ) : null} + + - const selectAllTestSuites = useCallback(() => { - setConfig({ ...config, testSuites: allTestSuites }); - }, [config, setConfig, allTestSuites]); + {frameUri ? ( + + + 最近一帧 + + + + ) : null} + + + ); +} - const clearTestSuites = useCallback(() => { - setConfig({ ...config, testSuites: [] }); - }, [config, setConfig]); +function ConfigurationPanel({ + config, + isRunning, + scenarios, + setConfig, +}: { + config: AutomationTestConfig; + isRunning: boolean; + scenarios: AutomationScenario[]; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; +}) { + const scenariosByJira = useMemo(() => { + const groupMap = new Map(); + scenarios.forEach(scenario => { + const currentScenarios = groupMap.get(scenario.jiraKey) || []; + currentScenarios.push(scenario); + groupMap.set(scenario.jiraKey, currentScenarios); + }); + + return JIRA_ORDER.map(jiraKey => ({ + jiraKey, + scenarios: groupMap.get(jiraKey) || [], + })); + }, [scenarios]); + + const selectedScenarioObjects = useMemo( + () => scenarios.filter(item => config.scenarioIds.includes(item.id)), + [config.scenarioIds, scenarios] + ); - return ( - - - {/* 1. Mnemonic Selection */} - - - - - - - 1 - - - - Mnemonic Selection - - - - Requires device reset when switching - - - - - Select All - - | - - Clear - - - + const estimatedSuiteCount = useMemo( + () => + selectedScenarioObjects.reduce( + (count, scenario) => + count + + scenario.supportedSuites.filter(suiteType => config.testSuites.includes(suiteType)) + .length, + 0 + ), + [config.testSuites, selectedScenarioObjects] + ); - {/* Standard Mnemonics Table */} - - Standard Mnemonics - - - {/* Header */} - - - Share - - {standardMnemonics.map((m) => ( - - {m.label} - - ))} - - {/* Rows */} - {['one', 'two', 'three'].map((shareLabel, rowIndex) => ( - - - {shareLabel} - - {standardMnemonics.map((m) => { - const group = m.groups.find((g) => g.shareLabel === shareLabel); - if (!group) return ; - const isSelected = config.mnemonicGroups.includes(group.id); - return ( - !isRunning && toggleMnemonicGroup(group.id)} - cursor={isRunning ? 'not-allowed' : 'pointer'} - > - - {isSelected && ( - - ✓ - - )} - - - ); - })} - - ))} - + const toggleScenario = (scenarioId: AutomationScenarioId) => { + setConfig(prev => ({ + ...prev, + scenarioIds: toggleValue(prev.scenarioIds, scenarioId), + })); + }; + + const toggleTestSuite = (suiteType: TestSuiteType) => { + setConfig(prev => ({ + ...prev, + testSuites: toggleValue(prev.testSuites, suiteType), + })); + }; + + const togglePassphraseVariant = (variantId: PassphraseVariantId) => { + setConfig(prev => ({ + ...prev, + passphraseVariants: toggleValue(prev.passphraseVariants, variantId), + })); + }; - {/* SLIP39 Mnemonics Table */} - - SLIP39 Mnemonics + return ( + + + + + 已选场景 {config.scenarioIds.length} 个 · 已选 suite {config.testSuites.length} 个 · + 预计执行 {estimatedSuiteCount} 个 suite - - {/* Header */} - - - Share - - {slip39Mnemonics.map((m) => ( - - {m.label} - - ))} - - {/* Rows */} - {['one', 'two', 'three'].map((shareLabel, rowIndex) => ( - - - {shareLabel} - - {slip39Mnemonics.map((m) => { - const group = m.groups.find((g) => g.shareLabel === shareLabel); - if (!group) { - return ( - - - - ); - } - const isSelected = config.mnemonicGroups.includes(group.id); - return ( - !isRunning && toggleMnemonicGroup(group.id)} - cursor={isRunning ? 'not-allowed' : 'pointer'} - > - - {isSelected && ( - - ✓ - - )} - - - ); - })} - - ))} - - + - - - {/* 2. Passphrase Variants */} - - - - - - - 2 - - - - Passphrase Variants - - - - No device reset needed between variants - - - - - Select All - - | - - Clear - - + + + + Jira 场景矩阵 + + + setConfig(prev => ({ + ...prev, + scenarioIds: scenarios.map(item => item.id), + })) + } + onClear={() => setConfig(prev => ({ ...prev, scenarioIds: [] }))} + /> - - - {ALL_PASSPHRASE_VARIANT_IDS.map((variantId) => { - const info = PASSPHRASE_VARIANT_INFO[variantId]; - const isSelected = config.passphraseVariants.includes(variantId); - return ( - !isRunning && togglePassphraseVariant(variantId)} - opacity={isRunning ? 0.5 : 1} - cursor={isRunning ? 'not-allowed' : 'pointer'} - minWidth={140} - > - - {isSelected && ( - - ✓ - - )} - - - - {info.label} + {scenariosByJira.map(group => ( + + + + + + {group.jiraKey} - - {info.description} + + {group.scenarios.length} 个 concrete case + + setConfig(prev => ({ + ...prev, + scenarioIds: Array.from( + new Set([...prev.scenarioIds, ...group.scenarios.map(item => item.id)]) + ), + })) + } + onClear={() => + setConfig(prev => ({ + ...prev, + scenarioIds: prev.scenarioIds.filter( + id => !group.scenarios.some(item => item.id === id) + ), + })) + } + /> - ); - })} - + + {group.scenarios.map(scenario => ( + toggleScenario(scenario.id)} + /> + ))} + + + + ))} - - - {/* 3. Test Types */} - - - - - - 3 - - - - Test Types - - - - - Select All - - | - - Clear - - + + + + + + 执行 suite + + + setConfig(prev => ({ + ...prev, + testSuites: Object.keys(TEST_SUITE_INFO) as TestSuiteType[], + })) + } + onClear={() => setConfig(prev => ({ ...prev, testSuites: [] }))} + /> + + {(Object.keys(TEST_SUITE_INFO) as TestSuiteType[]).map(suiteType => ( + toggleTestSuite(suiteType)} + /> + ))} + + - - {TEST_SUITE_OPTIONS.map((suite) => { - const isSelected = config.testSuites.includes(suite.id); - return ( - !isRunning && toggleTestSuite(suite.id)} - opacity={isRunning ? 0.5 : 1} - cursor={isRunning ? 'not-allowed' : 'pointer'} - > - - {isSelected && ( - - ✓ - - )} - - - {suite.label} - - - ); - })} + + + + + + 隐藏钱包密码短语变体 + + + setConfig(prev => ({ + ...prev, + passphraseVariants: [...ALL_PASSPHRASE_VARIANT_IDS], + })) + } + onClear={() => setConfig(prev => ({ ...prev, passphraseVariants: [] }))} + /> + + + 当前自动化报告会展示 literal。SLIP39 约定:`passphrase_1 = 12345`,`passphrase_2 = + onekey`。 + + + + {ALL_PASSPHRASE_VARIANT_IDS.map(variantId => ( + togglePassphraseVariant(variantId)} + /> + ))} + + + + + + + Runner 行为 + + + setConfig(prev => ({ + ...prev, + stopOnFirstError: !prev.stopOnFirstError, + })) + } + /> + + + + setConfig(prev => ({ + ...prev, + retryCount: Number(value) || 1, + })) + } + disabled={isRunning} + /> + + + + + setConfig(prev => ({ + ...prev, + delayBetweenTests: Number(value) || 0, + })) + } + disabled={isRunning} + /> + ); } -/** - * Progress Panel - */ -function ProgressPanel() { - const { progress, startAutomation, stopAutomation } = useAutomationTest(); - const isConnected = useAtomValue(isPhonePilotConnectedAtom); - const isRunning = useAtomValue(isAutomationRunningAtom); - const progressPercent = useAtomValue(progressPercentageAtom); - const config = useAtomValue(automationConfigAtom); - - const canStart = - isConnected && - !isRunning && - config.mnemonicGroups.length > 0 && - config.passphraseVariants.length > 0 && - config.testSuites.length > 0; - +function ProgressPanel({ + canStart, + isRunning, + onStart, + onStartDebug, + onStop, + progress, + progressPercentage, +}: { + canStart: boolean; + isRunning: boolean; + onStart: () => Promise; + onStartDebug: () => Promise; + onStop: () => Promise; + progress: TestProgress; + progressPercentage: number; +}) { return ( - + - {/* Configuration Summary */} - {!isRunning && ( - - - - - {config.mnemonicGroups.length} - - - - Mnemonics - - - - - - {config.passphraseVariants.length} - - - - Passphrases - - - - - - {config.testSuites.length} - - - - Test Types - - - - )} - - {/* Status and Controls */} - - - - - - {progress.status.charAt(0).toUpperCase() + progress.status.slice(1)} - - - {progress.currentMnemonicGroup && ( - - {progress.currentMnemonicGroup} - {progress.currentPassphrase && ` → ${progress.currentPassphrase}`} - - )} - - - - - - + + + + {progressPercentage}% + + + Suite 进度 + + + + + {progress.completedScenarios}/{progress.totalScenarios} + + + 场景进度 + + + + + {progress.completedSuites}/{progress.totalSuites} + + + Suite 计数 + + - {/* Progress bar */} - {isRunning && ( - - - - - - {progress.completedMnemonicGroups}/{progress.totalMnemonicGroups} mnemonic - groups completed ({progressPercent}%) + + + + 状态: {progress.status} + + 当前场景: {progress.currentScenarioTitle || '—'} + + + 当前 suite: {progress.currentTestSuite || '—'} + + + 当前 passphrase: {progress.currentPassphrase || '—'} + + {progress.errorMessage ? ( + + 错误: {progress.errorMessage} + + ) : null} - )} + + + + + + + ); } -/** - * Logs Panel - */ -function LogsPanel() { - const { logs } = useAutomationTest(); - +function LogsPanel({ logs }: { logs: string[] }) { return ( - - - - {logs.length === 0 ? ( - - No logs yet - - ) : ( - logs.map((log, index) => ( - - {log} - - )) - )} - - + + ); } -/** - * Results Panel - */ -function ResultsPanel() { - const report = useAtomValue(automationReportAtom); - const [expandedSuite, setExpandedSuite] = React.useState(null); - +function ResultsPanel({ report }: { report: TestReport | null }) { if (!report) { - return null; + return ( + + + 还没有执行结果。 + + + ); } return ( - + - {/* Summary */} - - - - - {report.passedTests} - - - Passed - - - - - {report.failedTests} - - - Failed - - - - - {report.skippedTests} - - - Skipped - - - - - {report.totalTests} - - - Total - - - - + + + + {report.totalScenarios} + + + 总场景 + + + + + {report.passedScenarios} + + + 通过 + + + + + {report.failedScenarios} + + + 失败 + + + + + {report.skippedScenarios} + + + 跳过 + + + - {/* Duration */} - - Duration: {Math.round(report.duration / 1000)}s + + 总耗时: {formatDuration(report.duration)} - {/* Suite details */} - - Suite Results - {report.suiteResults.map((suite, index) => ( - - {/* Suite header */} - setExpandedSuite(expandedSuite === index ? null : index)} - cursor="pointer" - > - - - {expandedSuite === index ? '▼' : '▶'} - - {suite.suiteName} - - - 0 ? '$red10' : '$green10'} fontWeight="600"> - {suite.passedTests}/{suite.totalTests} - - - {Math.round(suite.duration / 1000)}s - - - - - {/* Test case details - expanded */} - {expandedSuite === index && suite.results && suite.results.length > 0 && ( - - {suite.results.map((testCase, testIndex) => ( - - - - {testCase.passed ? '✅' : '❌'} - - - {testCase.testName || testCase.method} - - - {testCase.duration}ms - - - - {/* Test details */} - - - Method: - {testCase.method} - - - Expected: - - {testCase.expected} - - - - Actual: - - {testCase.actual || '(empty)'} - - - {testCase.error && ( - - Error: - - {testCase.error} - - - )} - - - ))} - - )} - + + {report.scenarioResults.map(scenario => ( + ))} ); } + +function AutomationTestScreenContent() { + const [config, setConfig] = useAtom(automationConfigAtom); + const cameraFrame = useAtomValue(cameraFrameAtom); + const canStart = useAtomValue(canStartAutomationAtom); + const connectionState = useAtomValue(phonePilotConnectionStateAtom); + const phonePilotHealth = useAtomValue(phonePilotHealthAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + const logs = useAtomValue(automationLogsAtom); + const progressPercentage = useAtomValue(progressPercentageAtom); + const report = useAtomValue(automationReportAtom); + + const automation = useAutomationTest(); + + return ( + + setConfig(prev => ({ ...prev, phonePilotUrl: value }))} + /> + + + + + + + + + ); +} + +export default function AutomationTestScreen() { + return ( + + + + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/FirmwareScreen/ExportDeviceInfo.tsx b/packages/connect-examples/expo-example/src/views/FirmwareScreen/ExportDeviceInfo.tsx index 5e482d2a9..ce3ef4a7e 100644 --- a/packages/connect-examples/expo-example/src/views/FirmwareScreen/ExportDeviceInfo.tsx +++ b/packages/connect-examples/expo-example/src/views/FirmwareScreen/ExportDeviceInfo.tsx @@ -66,7 +66,12 @@ export function ExportDeviceInfo() { const intl = useIntl(); const { features, onekeyFeatures } = useDeviceFieldContext(); - const getFieldValue = (field: string) => onekeyFeatures?.[field] ?? features?.[field] ?? ''; + const getFieldValue = (field: string) => { + const onekeyFeatureRecord = onekeyFeatures as Record | undefined; + const featureRecord = features as Record | undefined; + + return onekeyFeatureRecord?.[field] ?? featureRecord?.[field] ?? ''; + }; const exportInfo = () => { const markdown = []; From b1a2acdb3ba30412c14a7a0fbbf7cb830c26917e Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 12 Mar 2026 23:46:15 +0800 Subject: [PATCH 3/7] feat: AutomationTest UI redesign + passphraseWalletSwitch & specialPassphrase suites MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace 882-line AutomationTestScreen monolith with 20 focused components in a two-column layout (live output panel + config sidebar). Add two new test suite types: passphraseWalletSwitch (create N wallets, cycle switch, verify address consistency) and specialPassphrase (9 edge-case passphrases × 3 methods). Harden PhonePilotClient with fetch timeouts, scoped event listeners, concurrent-run guard, and bounded log buffer. Co-Authored-By: Claude Opus 4.6 --- .../connect-examples/expo-example/App.tsx | 2 +- .../expo-example/src/atoms/automationAtoms.ts | 8 +- .../expo-example/src/components/ui/Page.tsx | 2 +- .../src/services/phonePilotMcp/index.ts | 182 ++-- .../src/services/phonePilotMcp/types.ts | 15 +- .../automationTest/scenarioCatalog.ts | 8 +- .../automationTest/useAutomationTest.ts | 364 +++++++- .../views/AutomationTest/ConfigSidebar.tsx | 56 ++ .../views/AutomationTest/LiveOutputPanel.tsx | 17 + .../views/AutomationTest/StickyHeaderBar.tsx | 75 ++ .../components/ConnectionConfig.tsx | 83 ++ .../components/CurrentScenarioCard.tsx | 36 + .../AutomationTest/components/LogsSection.tsx | 23 + .../components/PanelActions.tsx | 22 + .../components/PassphraseSelector.tsx | 71 ++ .../AutomationTest/components/ProgressBar.tsx | 17 + .../components/ReportCaseRow.tsx | 53 ++ .../components/ReportScenarioNode.tsx | 68 ++ .../components/ReportSuiteNode.tsx | 64 ++ .../components/ReportSummaryBar.tsx | 39 + .../AutomationTest/components/ReportTree.tsx | 54 ++ .../components/RunnerBehaviorConfig.tsx | 73 ++ .../components/ScenarioSelector.tsx | 133 +++ .../components/SelectableRow.tsx | 50 + .../components/SuiteSelector.tsx | 59 ++ .../src/views/AutomationTest/index.tsx | 41 + .../src/views/AutomationTest/utils.ts | 67 ++ .../src/views/AutomationTestScreen.tsx | 882 ------------------ 28 files changed, 1609 insertions(+), 955 deletions(-) create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/CurrentScenarioCard.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/PanelActions.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ProgressBar.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportCaseRow.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportScenarioNode.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSuiteNode.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSummaryBar.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/SelectableRow.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/utils.ts delete mode 100644 packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx diff --git a/packages/connect-examples/expo-example/App.tsx b/packages/connect-examples/expo-example/App.tsx index af1aeb4c1..4b36ce2eb 100644 --- a/packages/connect-examples/expo-example/App.tsx +++ b/packages/connect-examples/expo-example/App.tsx @@ -25,7 +25,7 @@ const FunctionalTestingScreen = lazy(() => import('./src/views/FunctionalTesting const AttachToPinTestingScreen = lazy(() => import('./src/views/AttachToPinTestingScreen')); const SLIP39TestScreen = lazy(() => import('./src/views/SLIP39TestScreen')); const ChainMethodTestScreen = lazy(() => import('./src/views/ChainMethodTestScreen')); -const AutomationTestScreen = lazy(() => import('./src/views/AutomationTestScreen')); +const AutomationTestScreen = lazy(() => import('./src/views/AutomationTest')); // React Navigation v6 linking 配置 const linking: LinkingOptions = { diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts index 8491333a1..bab32dea5 100644 --- a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -44,10 +44,13 @@ export const automationProgressAtom = atom(defaultProgress); export const automationReportAtom = atom(null); export const automationLogsAtom = atom([]); +const MAX_LOG_ENTRIES = 2000; + export const addLogAtom = atom(null, (get, set, log: string) => { const timestamp = new Date().toLocaleTimeString('zh-CN', { hour12: false }); const logs = get(automationLogsAtom); - set(automationLogsAtom, [...logs, `[${timestamp}] ${log}`]); + const next = [...logs, `[${timestamp}] ${log}`]; + set(automationLogsAtom, next.length > MAX_LOG_ENTRIES ? next.slice(-MAX_LOG_ENTRIES) : next); }); export const clearLogsAtom = atom(null, (_get, set) => { @@ -77,3 +80,6 @@ export const progressPercentageAtom = atom(get => { } return Math.round((progress.completedSuites / progress.totalSuites) * 100); }); + +export const reportFilterAtom = atom<'all' | 'failed'>('all'); +export const reportExpandAllAtom = atom(false); diff --git a/packages/connect-examples/expo-example/src/components/ui/Page.tsx b/packages/connect-examples/expo-example/src/components/ui/Page.tsx index 9bbb584e3..96f65f549 100644 --- a/packages/connect-examples/expo-example/src/components/ui/Page.tsx +++ b/packages/connect-examples/expo-example/src/components/ui/Page.tsx @@ -15,7 +15,7 @@ const PageView = ({ children, scrollable = true }: PageViewProps) => ( {children} ) : ( - {children} + {children} )} ); diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts index 4e3454ca7..95824f85a 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/index.ts @@ -20,8 +20,27 @@ import type { /** PhonePilot 默认服务地址 */ const DEFAULT_SERVER_URL = 'http://localhost:3847'; -/** MCP JSON-RPC 请求 ID 计数器 */ -let requestId = 0; +/** 默认请求超时(30 秒) */ +const DEFAULT_TIMEOUT_MS = 30_000; + +/** 长时间操作超时(5 分钟,用于 executeSequence 等) */ +const LONG_TIMEOUT_MS = 300_000; + +/** + * 带超时的 fetch 封装 + */ +function fetchWithTimeout( + url: string, + options: RequestInit, + timeoutMs: number +): Promise { + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), timeoutMs); + + return fetch(url, { ...options, signal: controller.signal }).finally(() => + clearTimeout(timer) + ); +} /** * PhonePilot MCP 客户端 @@ -37,6 +56,8 @@ export class PhonePilotClient { private onStateChange?: (state: ConnectionState) => void; + private requestId = 0; + constructor(serverUrl: string = DEFAULT_SERVER_URL) { this.serverUrl = serverUrl; } @@ -52,20 +73,21 @@ export class PhonePilotClient { private parseSSEResponse(sseText: string): { result?: unknown; error?: { message: string } } { const lines = sseText.trim().split('\n'); - let jsonData = ''; + const dataLines: string[] = []; - for (let i = 0; i < lines.length; i++) { - const line = lines[i].trim(); + for (const rawLine of lines) { + const line = rawLine.trim(); if (line.startsWith('data: ')) { - jsonData = line.substring(6); - break; + dataLines.push(line.substring(6)); } } - if (!jsonData) { + if (dataLines.length === 0) { return { error: { message: 'No data field in SSE response' } }; } + const jsonData = dataLines.join('\n'); + try { return JSON.parse(jsonData); } catch (error) { @@ -75,7 +97,11 @@ export class PhonePilotClient { async healthCheck(): Promise { try { - const response = await fetch(`${this.serverUrl}/health`); + const response = await fetchWithTimeout( + `${this.serverUrl}/health`, + {}, + DEFAULT_TIMEOUT_MS + ); if (response.ok) { return await response.json(); } @@ -90,9 +116,10 @@ export class PhonePilotClient { this.updateState('connecting'); try { + this.requestId += 1; const initRequest = { jsonrpc: '2.0', - id: ++requestId, + id: this.requestId, method: 'initialize', params: { protocolVersion: '2025-03-26', @@ -104,14 +131,18 @@ export class PhonePilotClient { }, }; - const response = await fetch(`${this.serverUrl}/mcp`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json, text/event-stream', + const response = await fetchWithTimeout( + `${this.serverUrl}/mcp`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json, text/event-stream', + }, + body: JSON.stringify(initRequest), }, - body: JSON.stringify(initRequest), - }); + DEFAULT_TIMEOUT_MS + ); if (!response.ok) { throw new Error(`MCP connection failed: ${response.status}`); @@ -136,12 +167,16 @@ export class PhonePilotClient { async disconnect(): Promise { if (this.sessionId) { try { - await fetch(`${this.serverUrl}/mcp`, { - method: 'DELETE', - headers: { - 'mcp-session-id': this.sessionId, + await fetchWithTimeout( + `${this.serverUrl}/mcp`, + { + method: 'DELETE', + headers: { + 'mcp-session-id': this.sessionId, + }, }, - }); + DEFAULT_TIMEOUT_MS + ); } catch (error) { console.error('PhonePilot MCP disconnect error:', error); } @@ -150,27 +185,36 @@ export class PhonePilotClient { this.updateState('disconnected'); } - private async sendRequest(method: string, params: Record = {}): Promise { + private async sendRequest( + method: string, + params: Record = {}, + timeoutMs: number = DEFAULT_TIMEOUT_MS + ): Promise { if (!this.sessionId) { throw new Error('Not connected to PhonePilot MCP'); } + this.requestId += 1; const request = { jsonrpc: '2.0', - id: ++requestId, + id: this.requestId, method, params, }; - const response = await fetch(`${this.serverUrl}/mcp`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json, text/event-stream', - 'mcp-session-id': this.sessionId, + const response = await fetchWithTimeout( + `${this.serverUrl}/mcp`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json, text/event-stream', + 'mcp-session-id': this.sessionId, + }, + body: JSON.stringify(request), }, - body: JSON.stringify(request), - }); + timeoutMs + ); if (!response.ok) { throw new Error(`MCP request failed: ${response.status}`); @@ -208,18 +252,34 @@ export class PhonePilotClient { params, }; - await fetch(`${this.serverUrl}/mcp`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json, text/event-stream', - 'mcp-session-id': this.sessionId, - }, - body: JSON.stringify(notification), - }); + try { + const response = await fetchWithTimeout( + `${this.serverUrl}/mcp`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json, text/event-stream', + 'mcp-session-id': this.sessionId, + }, + body: JSON.stringify(notification), + }, + DEFAULT_TIMEOUT_MS + ); + + if (!response.ok) { + console.warn(`PhonePilot notification ${method} failed: ${response.status}`); + } + } catch (error) { + console.warn(`PhonePilot notification ${method} error:`, error); + } } - private async callTool(toolName: string, args: Record = {}): Promise { + private async callTool( + toolName: string, + args: Record = {}, + timeoutMs: number = DEFAULT_TIMEOUT_MS + ): Promise { const result = await this.sendRequest<{ content: Array<{ type: string; @@ -227,14 +287,17 @@ export class PhonePilotClient { data?: string; mimeType?: string; }>; - }>('tools/call', { - name: toolName, - arguments: args, - }); + }>('tools/call', { name: toolName, arguments: args }, timeoutMs); const textContent = result.content.find(c => c.type === 'text'); if (textContent?.text) { - return JSON.parse(textContent.text) as T; + try { + return JSON.parse(textContent.text) as T; + } catch (error) { + throw new Error( + `Failed to parse tool ${toolName} response: ${error instanceof Error ? error.message : error}` + ); + } } throw new Error(`Tool ${toolName} returned no text content`); @@ -242,7 +305,8 @@ export class PhonePilotClient { private async callToolWithImage( toolName: string, - args: Record = {} + args: Record = {}, + timeoutMs: number = DEFAULT_TIMEOUT_MS ): Promise<{ result: T; frame?: string }> { const response = await this.sendRequest<{ content: Array<{ @@ -251,10 +315,7 @@ export class PhonePilotClient { data?: string; mimeType?: string; }>; - }>('tools/call', { - name: toolName, - arguments: args, - }); + }>('tools/call', { name: toolName, arguments: args }, timeoutMs); const textContent = response.content.find(c => c.type === 'text'); const imageContent = response.content.find(c => c.type === 'image'); @@ -263,10 +324,16 @@ export class PhonePilotClient { throw new Error(`Tool ${toolName} returned no text content`); } - return { - result: JSON.parse(textContent.text) as T, - frame: imageContent?.data, - }; + try { + return { + result: JSON.parse(textContent.text) as T, + frame: imageContent?.data, + }; + } catch (error) { + throw new Error( + `Failed to parse tool ${toolName} response: ${error instanceof Error ? error.message : error}` + ); + } } async armConnect(): Promise { @@ -319,7 +386,8 @@ export class PhonePilotClient { async executeSequence(sequenceId: string): Promise { const { result, frame } = await this.callToolWithImage( 'execute-sequence', - { sequenceId } + { sequenceId }, + LONG_TIMEOUT_MS ); return { ...result, diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts index 8ee98d3a3..dd5ca5277 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -113,7 +113,12 @@ export const ALL_PASSPHRASE_VARIANT_IDS: PassphraseVariantId[] = [ 'passphrase_2', ]; -export type TestSuiteType = 'deviceFlow' | 'sdkAddressBatch' | 'sdkPubkeyBatch'; +export type TestSuiteType = + | 'deviceFlow' + | 'sdkAddressBatch' + | 'sdkPubkeyBatch' + | 'passphraseWalletSwitch' + | 'specialPassphrase'; export const TEST_SUITE_INFO: Record = { deviceFlow: { label: 'Device Flow', description: 'PhonePilot 设备端创建/导入流程执行是否成功' }, @@ -125,6 +130,14 @@ export const TEST_SUITE_INFO: Record = { + deviceFlow: 'Device Flow', + sdkAddressBatch: 'SDK Address Batch', + sdkPubkeyBatch: 'SDK Pubkey Batch', + passphraseWalletSwitch: 'Passphrase Wallet Switch', + specialPassphrase: 'Special Passphrase', + }; + return names[suiteType] || suiteType; } function getBip39ImportProbeAddress(scenario: AutomationScenario): string { @@ -640,10 +649,15 @@ export function useAutomationTest() { } }, [addLog, updateHealthState]); + const uiListenerRef = useRef<((message: { type: string }) => void) | null>(null); + const setupUIListener = useCallback( (sdk: CoreApi) => { - sdk.removeAllListeners(UI_EVENT); - sdk.on(UI_EVENT, async (message: { type: string }) => { + if (uiListenerRef.current) { + sdk.off(UI_EVENT, uiListenerRef.current); + } + + const listener = async (message: { type: string }) => { addLog(`UI Event: ${message.type}`); switch (message.type) { @@ -685,7 +699,10 @@ export function useAutomationTest() { default: break; } - }); + }; + + uiListenerRef.current = listener; + sdk.on(UI_EVENT, listener); }, [addLog] ); @@ -1538,6 +1555,292 @@ export function useAutomationTest() { [runWithRetry, setProgress, updateSuiteProgress] ); + const runPassphraseWalletSwitchSuite = useCallback( + async ( + scenario: AutomationScenario, + sdk: CoreApi, + connectId: string, + deviceId: string + ): Promise => { + updateSuiteProgress('passphraseWalletSwitch', scenario); + const startedAt = Date.now(); + const results: TestCaseResult[] = []; + const walletCount = 5; + const switchCount = 20; + + const cacheAddress = new Map(); + + try { + for (let i = 0; i < walletCount; i += 1) { + const passphrase = i === 0 ? '' : String(i); + const useEmpty = i === 0; + currentPassphraseRef.current = passphrase; + addLog(`Creating wallet ${i}, passphrase: 「${passphrase}」`); + + const psResult = (await runWithRetry(`getPassphraseState:wallet-${i}`, () => + sdk.getPassphraseState(connectId, { + initSession: true, + useEmptyPassphrase: useEmpty, + }) + )) as { success: boolean; payload?: string }; + + if (!psResult.success) { + results.push({ + title: `Create wallet-${i}`, + passed: false, + error: 'getPassphraseState failed', + duration: Date.now() - startedAt, + }); + break; + } + + const passphraseState = psResult.payload || ''; + const addrResult = (await runWithRetry(`evmGetAddress:wallet-${i}`, () => + sdk.evmGetAddress(connectId, deviceId, { + path: EVM_ADDRESS_PATH, + showOnOneKey: false, + passphraseState, + useEmptyPassphrase: useEmpty, + }) + )) as { success: boolean; payload?: { address?: string } }; + + if (!addrResult.success) { + results.push({ + title: `Create wallet-${i}`, + passed: false, + error: 'evmGetAddress failed during wallet creation', + duration: Date.now() - startedAt, + }); + break; + } + + const address = addrResult.payload?.address || ''; + cacheAddress.set(`wallet-${i}`, { address, passphraseState }); + addLog(` wallet-${i} address: ${address}`); + } + + if (cacheAddress.size < walletCount) { + addLog( + `Wallet creation incomplete (${cacheAddress.size}/${walletCount}), aborting switch phase` + ); + } + + for (let switchIdx = 0; switchIdx < switchCount && cacheAddress.size === walletCount; switchIdx += 1) { + if (!runningRef.current) { + break; + } + const walletIdx = switchIdx % walletCount; + const walletKey = `wallet-${walletIdx}`; + const cached = cacheAddress.get(walletKey); + if (!cached) { + continue; + } + + const passphrase = walletIdx === 0 ? '' : String(walletIdx); + currentPassphraseRef.current = passphrase; + + const caseStart = Date.now(); + const addrResult = (await runWithRetry(`evmGetAddress:switch-${switchIdx}`, () => + sdk.evmGetAddress(connectId, deviceId, { + path: EVM_ADDRESS_PATH, + showOnOneKey: false, + passphraseState: cached.passphraseState, + useEmptyPassphrase: walletIdx === 0, + }) + )) as { success: boolean; payload?: { address?: string } }; + + const actual = addrResult.payload?.address || ''; + results.push({ + title: `Switch ${switchIdx} → ${walletKey}`, + method: 'evmGetAddress', + expected: cached.address, + actual, + passed: actual === cached.address, + duration: Date.now() - caseStart, + metadata: { passphrase }, + }); + + await delay(80); + } + } catch (error) { + results.push({ + title: 'passphraseWalletSwitch unexpected error', + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAt, + }); + } + + currentPassphraseRef.current = ''; + return createSuiteResult( + 'passphraseWalletSwitch', + 'Passphrase Wallet Switch', + results, + Date.now() - startedAt + ); + }, + [addLog, runWithRetry, updateSuiteProgress] + ); + + const runSpecialPassphraseSuite = useCallback( + async ( + scenario: AutomationScenario, + sdk: CoreApi, + connectId: string, + deviceId: string + ): Promise => { + updateSuiteProgress('specialPassphrase', scenario); + const startedAt = Date.now(); + const results: TestCaseResult[] = []; + + const specialPassphrases = [ + 'Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵', + '¥Øÿ', + 'P@sswôrd€', + ' My Passphrase ', + '私のパスワード', + 'myسياسةpassphrase', + '你好passphrase', + 'mi política de frase de contraseña', + String.fromCharCode(...Array.from({ length: 25 }, (_, i) => i + 96)), + ]; + + const SPECIAL_PP_METHOD_PATHS: Record = { + btcGetAddress: "m/44'/0'/0'/0/0", + evmGetAddress: "m/44'/60'/0'/0/0", + dnxGetAddress: "m/44'/29538'/0'/0/0", + }; + const methods = Object.keys(SPECIAL_PP_METHOD_PATHS); + const mnemonic = scenario.bip39ImportMnemonicWords?.join(' '); + + if (!mnemonic) { + return createSkippedSuiteResult( + 'specialPassphrase', + 'Special Passphrase', + 'No mnemonic words available for special passphrase test (import scenario required)' + ); + } + + try { + const { default: mockDevice } = await import('../../utils/mockDevice'); + + for (const passphrase of specialPassphrases) { + currentPassphraseRef.current = passphrase; + addLog(`Testing special passphrase: 「${passphrase}」`); + + const psResult = (await runWithRetry(`getPassphraseState:special`, () => + sdk.getPassphraseState(connectId, { + initSession: true, + useEmptyPassphrase: false, + }) + )) as { success: boolean; payload?: string }; + + if (!psResult.success) { + results.push({ + title: `getPassphraseState for 「${passphrase}」`, + passed: false, + error: 'getPassphraseState failed', + duration: Date.now() - startedAt, + }); + continue; + } + + const passphraseState = psResult.payload || ''; + + for (const method of methods) { + if (!runningRef.current) { + break; + } + + const caseStart = Date.now(); + try { + const mockFn = (mockDevice as Record)[method]; + if (typeof mockFn !== 'function') { + results.push({ + title: `${method} / 「${passphrase}」`, + method, + passed: false, + error: `mockDevice.${method} not found`, + duration: Date.now() - caseStart, + }); + continue; + } + + const mockRes = (await mockFn('', '', { + path: SPECIAL_PP_METHOD_PATHS[method], + mnemonic: mnemonic.trim(), + passphrase, + })) as { payload?: { address?: string } }; + + const expected = mockRes?.payload?.address || ''; + + const sdkMethod = (sdk as Record)[method]; + if (typeof sdkMethod !== 'function') { + results.push({ + title: `${method} / 「${passphrase}」`, + method, + expected, + passed: false, + error: `SDK method ${method} not found`, + duration: Date.now() - caseStart, + }); + continue; + } + + const sdkResult = (await runWithRetry(`${method}:special`, () => + (sdkMethod as (...args: unknown[]) => Promise)(connectId, deviceId, { + path: SPECIAL_PP_METHOD_PATHS[method], + showOnOneKey: false, + passphraseState, + useEmptyPassphrase: false, + }) + )) as { success: boolean; payload?: { address?: string } }; + + const actual = sdkResult.payload?.address || ''; + const passed = actual.toLowerCase() === expected.toLowerCase(); + + results.push({ + title: `${method} / 「${passphrase}」`, + method, + expected, + actual, + passed, + duration: Date.now() - caseStart, + metadata: { passphrase }, + }); + } catch (error) { + results.push({ + title: `${method} / 「${passphrase}」`, + method, + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - caseStart, + }); + } + + await delay(80); + } + } + } catch (error) { + results.push({ + title: 'specialPassphrase unexpected error', + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: Date.now() - startedAt, + }); + } + + currentPassphraseRef.current = ''; + return createSuiteResult( + 'specialPassphrase', + 'Special Passphrase', + results, + Date.now() - startedAt + ); + }, + [addLog, runWithRetry, updateSuiteProgress] + ); + const runSelectedSdkSuites = useCallback( async ( scenario: AutomationScenario, @@ -1642,6 +1945,36 @@ export function useAutomationTest() { markSuiteCompleted(); } + if ( + selectedSuites.includes('passphraseWalletSwitch') && + scenario.supportedSuites.includes('passphraseWalletSwitch') && + !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) + ) { + const ppSwitchResult = await runPassphraseWalletSwitchSuite( + scenario, + sdk, + connectId, + deviceId + ); + nextSuiteResults.push(ppSwitchResult); + markSuiteCompleted(); + } + + if ( + selectedSuites.includes('specialPassphrase') && + scenario.supportedSuites.includes('specialPassphrase') && + !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) + ) { + const specialPPResult = await runSpecialPassphraseSuite( + scenario, + sdk, + connectId, + deviceId + ); + nextSuiteResults.push(specialPPResult); + markSuiteCompleted(); + } + return nextSuiteResults; }, [ @@ -1650,8 +1983,10 @@ export function useAutomationTest() { markSuiteCompleted, runBip39CreateDynamicSuite, runBip39ImportSdkSuite, + runPassphraseWalletSwitchSuite, runSlip39CreateDynamicSuite, runSlip39SdkSuite, + runSpecialPassphraseSuite, ] ); @@ -1900,6 +2235,11 @@ export function useAutomationTest() { const runAutomation = useCallback( async (mode: AutomationRunMode): Promise => { + if (runningRef.current) { + addLog('Automation is already running'); + return; + } + if (!SDK || !selectedDevice?.connectId) { addLog('SDK or selected device is not available'); return; @@ -2202,7 +2542,10 @@ export function useAutomationTest() { fatalErrorMessage = error instanceof Error ? error.message : String(error); addLog(`Automation aborted by unexpected error: ${fatalErrorMessage}`); } finally { - SDK.removeAllListeners(UI_EVENT); + if (uiListenerRef.current) { + SDK.off(UI_EVENT, uiListenerRef.current); + uiListenerRef.current = null; + } runningRef.current = false; } @@ -2271,7 +2614,6 @@ export function useAutomationTest() { const stopAutomation = useCallback(async () => { runningRef.current = false; currentPassphraseRef.current = ''; - setProgress(prev => ({ ...prev, status: 'idle', currentPassphrase: null })); addLog('Stopping automation test...'); if (clientRef.current) { diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx new file mode 100644 index 000000000..e0053fda4 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx @@ -0,0 +1,56 @@ +import { useAtom, useAtomValue } from 'jotai'; +import { ScrollView, Separator, YStack } from 'tamagui'; + +import { automationConfigAtom, isAutomationRunningAtom } from '../../atoms/automationAtoms'; +import { ScenarioSelector } from './components/ScenarioSelector'; +import { SuiteSelector } from './components/SuiteSelector'; +import { PassphraseSelector } from './components/PassphraseSelector'; +import { RunnerBehaviorConfig } from './components/RunnerBehaviorConfig'; +import { ConnectionConfig } from './components/ConnectionConfig'; + +import type { AutomationScenario } from '../../services/phonePilotMcp/types'; + +export function ConfigSidebar({ + scenarios, + onConnect, + onDisconnect, +}: { + scenarios: AutomationScenario[]; + onConnect: () => Promise; + onDisconnect: () => Promise; +}) { + const [config, setConfig] = useAtom(automationConfigAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + + return ( + + + + + + + + + + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx new file mode 100644 index 000000000..72af4f7dc --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx @@ -0,0 +1,17 @@ +import { ScrollView, YStack } from 'tamagui'; + +import { CurrentScenarioCard } from './components/CurrentScenarioCard'; +import { ReportTree } from './components/ReportTree'; +import { LogsSection } from './components/LogsSection'; + +export function LiveOutputPanel() { + return ( + + + + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx new file mode 100644 index 000000000..e95972acb --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx @@ -0,0 +1,75 @@ +import { useAtomValue } from 'jotai'; +import { Button, Stack, Text, XStack } from 'tamagui'; + +import { + automationProgressAtom, + canStartAutomationAtom, + isAutomationRunningAtom, + phonePilotConnectionStateAtom, + progressPercentageAtom, +} from '../../atoms/automationAtoms'; +import { getConnectionColor } from './utils'; +import { ProgressBar } from './components/ProgressBar'; + +export function StickyHeaderBar({ + onStart, + onStartDebug, + onStop, +}: { + onStart: () => Promise; + onStartDebug: () => Promise; + onStop: () => Promise; +}) { + const connectionState = useAtomValue(phonePilotConnectionStateAtom); + const canStart = useAtomValue(canStartAutomationAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + const progress = useAtomValue(automationProgressAtom); + const progressPercentage = useAtomValue(progressPercentageAtom); + + return ( + + + + + + + + + + + + + {progressPercentage}% + + + + + + 场景 {progress.completedScenarios}/{progress.totalScenarios} + + + Suite {progress.completedSuites}/{progress.totalSuites} + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx new file mode 100644 index 000000000..9ea132441 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx @@ -0,0 +1,83 @@ +import { useAtomValue } from 'jotai'; +import { Button, Card, Input, Stack, Text, XStack, YStack } from 'tamagui'; + +import { + phonePilotConnectionStateAtom, + phonePilotHealthAtom, +} from '../../../atoms/automationAtoms'; +import { getConnectionColor, getReadyColor, formatReadyLabel } from '../utils'; + +import type { AutomationTestConfig } from '../../../services/phonePilotMcp/types'; + +export function ConnectionConfig({ + config, + setConfig, + onConnect, + onDisconnect, +}: { + config: AutomationTestConfig; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; + onConnect: () => Promise; + onDisconnect: () => Promise; +}) { + const connectionState = useAtomValue(phonePilotConnectionStateAtom); + const health = useAtomValue(phonePilotHealthAtom); + const isConnected = connectionState === 'connected'; + + const statusLabelMap = { + connected: '已连接', + connecting: '连接中', + disconnected: '未连接', + error: '连接失败', + } as const; + + return ( + + + PhonePilot 连接 + + + + MCP 地址 + + setConfig(prev => ({ ...prev, phonePilotUrl: value }))} + placeholder="http://localhost:3847" + /> + + + + + 当前状态: {statusLabelMap[connectionState]} + + + + + + + + MCP: {formatReadyLabel(health?.mcpReady)} + + + + OCR: {formatReadyLabel(health?.ocrReady)} + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/CurrentScenarioCard.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/CurrentScenarioCard.tsx new file mode 100644 index 000000000..41681540b --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/CurrentScenarioCard.tsx @@ -0,0 +1,36 @@ +import { useAtomValue } from 'jotai'; +import { Card, Text, YStack } from 'tamagui'; + +import { automationProgressAtom } from '../../../atoms/automationAtoms'; + +export function CurrentScenarioCard() { + const progress = useAtomValue(automationProgressAtom); + + if (progress.status === 'idle') { + return null; + } + + return ( + + + + 状态: {progress.status} + + + 当前场景: {progress.currentScenarioTitle || '—'} + + + 当前 suite: {progress.currentTestSuite || '—'} + + + 当前 passphrase: {progress.currentPassphrase || '—'} + + {progress.errorMessage ? ( + + 错误: {progress.errorMessage} + + ) : null} + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx new file mode 100644 index 000000000..4c49d4692 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx @@ -0,0 +1,23 @@ +import { useAtomValue } from 'jotai'; +import { Text, YStack } from 'tamagui'; + +import { automationLogsAtom } from '../../../atoms/automationAtoms'; +import AutoWrapperTextArea from '../../../components/ui/AutoWrapperTextArea'; + +export function LogsSection() { + const logs = useAtomValue(automationLogsAtom); + + return ( + + + 运行日志 + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/PanelActions.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PanelActions.tsx new file mode 100644 index 000000000..464d4710c --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PanelActions.tsx @@ -0,0 +1,22 @@ +import { Button, XStack } from 'tamagui'; + +export function PanelActions({ + disabled, + onSelectAll, + onClear, +}: { + disabled?: boolean; + onSelectAll: () => void; + onClear: () => void; +}) { + return ( + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx new file mode 100644 index 000000000..6b181771a --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx @@ -0,0 +1,71 @@ +import { Card, Text, XStack, YStack } from 'tamagui'; + +import { + ALL_PASSPHRASE_VARIANT_IDS, + PASSPHRASE_VARIANT_INFO, +} from '../../../services/phonePilotMcp/types'; +import { toggleValue } from '../utils'; +import { PanelActions } from './PanelActions'; +import { SelectableRow } from './SelectableRow'; + +import type { + AutomationTestConfig, + PassphraseVariantId, +} from '../../../services/phonePilotMcp/types'; + +export function PassphraseSelector({ + config, + isRunning, + setConfig, +}: { + config: AutomationTestConfig; + isRunning: boolean; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; +}) { + const togglePassphraseVariant = (variantId: PassphraseVariantId) => { + setConfig(prev => ({ + ...prev, + passphraseVariants: toggleValue(prev.passphraseVariants, variantId), + })); + }; + + return ( + + + + 隐藏钱包密码短语变体 + + + setConfig(prev => ({ + ...prev, + passphraseVariants: [...ALL_PASSPHRASE_VARIANT_IDS], + })) + } + onClear={() => setConfig(prev => ({ ...prev, passphraseVariants: [] }))} + /> + + + + 当前自动化报告会展示 literal。SLIP39 约定:`passphrase_1 = 12345`,`passphrase_2 = + onekey`。 + + + + {ALL_PASSPHRASE_VARIANT_IDS.map(variantId => ( + togglePassphraseVariant(variantId)} + /> + ))} + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ProgressBar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ProgressBar.tsx new file mode 100644 index 000000000..400971262 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ProgressBar.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Stack, XStack } from 'tamagui'; + +function ProgressBarInner({ percentage }: { percentage: number }) { + return ( + + = 100 ? '$green9' : '$blue9'} + width={`${Math.min(100, Math.max(0, percentage))}%`} + /> + + ); +} + +export const ProgressBar = React.memo(ProgressBarInner); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportCaseRow.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportCaseRow.tsx new file mode 100644 index 000000000..1ec261c78 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportCaseRow.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { Card, Text, XStack, YStack } from 'tamagui'; + +import { formatDuration, getCaseStatusIcon } from '../utils'; + +import type { TestCaseResult } from '../../../services/phonePilotMcp/types'; + +function ReportCaseRowInner({ testCase }: { testCase: TestCaseResult }) { + return ( + + + + + {getCaseStatusIcon(testCase)} {testCase.title} + + + {formatDuration(testCase.duration)} + + + {testCase.method ? ( + + 方法: {testCase.method} + + ) : null} + {testCase.expected ? ( + + 期望: {testCase.expected} + + ) : null} + {testCase.actual ? ( + + 实际: {testCase.actual} + + ) : null} + {testCase.error ? ( + + 错误: {testCase.error} + + ) : null} + {testCase.metadata ? ( + + 元数据:{' '} + {Object.entries(testCase.metadata) + .map(([key, value]) => `${key}=${value}`) + .join(',')} + + ) : null} + + + ); +} + +export const ReportCaseRow = React.memo(ReportCaseRowInner); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportScenarioNode.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportScenarioNode.tsx new file mode 100644 index 000000000..fbac9559f --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportScenarioNode.tsx @@ -0,0 +1,68 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Card, Text, XStack, YStack } from 'tamagui'; + +import { formatDuration, getStatusColor } from '../utils'; +import { ReportSuiteNode } from './ReportSuiteNode'; + +import type { ScenarioReportResult } from '../../../services/phonePilotMcp/types'; + +function ReportScenarioNodeInner({ + scenario, + expandAll, +}: { + scenario: ScenarioReportResult; + expandAll: boolean; +}) { + const autoExpand = scenario.status === 'failed'; + const [localExpanded, setLocalExpanded] = useState(autoExpand); + const prevExpandAllRef = useRef(expandAll); + + useEffect(() => { + if (prevExpandAllRef.current !== expandAll) { + prevExpandAllRef.current = expandAll; + setLocalExpanded(expandAll); + } + }, [expandAll]); + + const expanded = localExpanded; + + return ( + + + setLocalExpanded(prev => !prev)} + > + + + {expanded ? '▾' : '▸'} {scenario.scenarioTitle} + + + {scenario.jiraKey} · {scenario.flowType} · {scenario.walletType} ·{' '} + {scenario.caseLabel} · 耗时 {formatDuration(scenario.duration)} + + + + {scenario.status} + + + {expanded ? ( + + {scenario.suiteResults.map(suite => ( + + ))} + + ) : null} + + + ); +} + +export const ReportScenarioNode = React.memo(ReportScenarioNodeInner); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSuiteNode.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSuiteNode.tsx new file mode 100644 index 000000000..ef6037042 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSuiteNode.tsx @@ -0,0 +1,64 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Card, Text, XStack, YStack } from 'tamagui'; + +import { formatDuration, getStatusColor } from '../utils'; +import { ReportCaseRow } from './ReportCaseRow'; + +import type { TestSuiteResult } from '../../../services/phonePilotMcp/types'; + +function ReportSuiteNodeInner({ + suite, + expandAll, +}: { + suite: TestSuiteResult; + expandAll: boolean; +}) { + const autoExpand = suite.status === 'failed'; + const [localExpanded, setLocalExpanded] = useState(autoExpand); + const prevExpandAllRef = useRef(expandAll); + + useEffect(() => { + if (prevExpandAllRef.current !== expandAll) { + prevExpandAllRef.current = expandAll; + setLocalExpanded(expandAll); + } + }, [expandAll]); + + const expanded = localExpanded; + + return ( + + + setLocalExpanded(prev => !prev)} + > + + + {expanded ? '▾' : '▸'} {suite.suiteName} + + + 状态: {suite.status} · 用例{' '} + {suite.passedTests}/{suite.totalTests} · 耗时 {formatDuration(suite.duration)} + + + + {expanded ? ( + + {suite.results.map(testCase => ( + + ))} + + ) : null} + + + ); +} + +export const ReportSuiteNode = React.memo(ReportSuiteNodeInner); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSummaryBar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSummaryBar.tsx new file mode 100644 index 000000000..ee14a05f2 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportSummaryBar.tsx @@ -0,0 +1,39 @@ +import { useAtom } from 'jotai'; +import { Button, Text, XStack } from 'tamagui'; + +import { reportExpandAllAtom, reportFilterAtom } from '../../../atoms/automationAtoms'; + +import type { TestReport } from '../../../services/phonePilotMcp/types'; + +export function ReportSummaryBar({ report }: { report: TestReport }) { + const [filter, setFilter] = useAtom(reportFilterAtom); + const [expandAll, setExpandAll] = useAtom(reportExpandAllAtom); + + return ( + + + 总 {report.totalScenarios} + + + 通过 {report.passedScenarios} + + + 失败 {report.failedScenarios} + + + 跳过 {report.skippedScenarios} + + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx new file mode 100644 index 000000000..8f21a063d --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx @@ -0,0 +1,54 @@ +import { useMemo } from 'react'; +import { useAtomValue } from 'jotai'; +import { Text, YStack } from 'tamagui'; + +import { + automationReportAtom, + reportExpandAllAtom, + reportFilterAtom, +} from '../../../atoms/automationAtoms'; +import { formatDuration } from '../utils'; +import { ReportSummaryBar } from './ReportSummaryBar'; +import { ReportScenarioNode } from './ReportScenarioNode'; + +export function ReportTree() { + const report = useAtomValue(automationReportAtom); + const filter = useAtomValue(reportFilterAtom); + const expandAll = useAtomValue(reportExpandAllAtom); + + const filteredScenarios = useMemo(() => { + if (!report) { + return []; + } + if (filter === 'failed') { + return report.scenarioResults.filter(s => s.status === 'failed'); + } + return report.scenarioResults; + }, [report, filter]); + + if (!report) { + return ( + + 还没有执行结果。 + + ); + } + + return ( + + + + 总耗时: {formatDuration(report.duration)} + + + {filteredScenarios.map(scenario => ( + + ))} + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx new file mode 100644 index 000000000..4fc762005 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx @@ -0,0 +1,73 @@ +import { Input, Label, Text, YStack } from 'tamagui'; + +import { SelectableRow } from './SelectableRow'; + +import type { AutomationTestConfig } from '../../../services/phonePilotMcp/types'; + +export function RunnerBehaviorConfig({ + config, + isRunning, + setConfig, +}: { + config: AutomationTestConfig; + isRunning: boolean; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; +}) { + return ( + + + Runner 行为 + + + setConfig(prev => ({ + ...prev, + stopOnFirstError: !prev.stopOnFirstError, + })) + } + /> + + + { + const cleaned = value.replace(/[^0-9]/g, ''); + setConfig(prev => ({ + ...prev, + retryCount: cleaned === '' ? 0 : parseInt(cleaned, 10), + })); + }} + onBlur={() => + setConfig(prev => ({ + ...prev, + retryCount: Math.max(1, prev.retryCount), + })) + } + disabled={isRunning} + /> + + + + { + const cleaned = value.replace(/[^0-9]/g, ''); + setConfig(prev => ({ + ...prev, + delayBetweenTests: cleaned === '' ? 0 : parseInt(cleaned, 10), + })); + }} + disabled={isRunning} + /> + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx new file mode 100644 index 000000000..ea5fb1d35 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx @@ -0,0 +1,133 @@ +import { useMemo } from 'react'; +import { Card, Text, XStack, YStack } from 'tamagui'; + +import { TEST_SUITE_INFO } from '../../../services/phonePilotMcp/types'; +import { PanelActions } from './PanelActions'; +import { SelectableRow } from './SelectableRow'; + +import type { + AutomationScenario, + AutomationScenarioId, + AutomationTestConfig, + TestSuiteType, +} from '../../../services/phonePilotMcp/types'; + +const JIRA_ORDER = ['OK-26053', 'OK-26054', 'OK-5504', 'OK-40090'] as const; + +function formatScenarioSuiteSummary(scenario: AutomationScenario): string { + const labelMap: Record = { + deviceFlow: 'Device Flow', + sdkAddressBatch: 'Address', + sdkPubkeyBatch: 'Pubkey', + passphraseWalletSwitch: 'PP Switch', + specialPassphrase: 'Special PP', + }; + + return scenario.supportedSuites.map(suiteType => labelMap[suiteType] ?? suiteType).join(' + '); +} + +export function ScenarioSelector({ + config, + isRunning, + scenarios, + setConfig, +}: { + config: AutomationTestConfig; + isRunning: boolean; + scenarios: AutomationScenario[]; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; +}) { + const scenariosByJira = useMemo(() => { + const groupMap = new Map(); + scenarios.forEach(scenario => { + const current = groupMap.get(scenario.jiraKey) || []; + current.push(scenario); + groupMap.set(scenario.jiraKey, current); + }); + + return JIRA_ORDER.map(jiraKey => ({ + jiraKey, + scenarios: groupMap.get(jiraKey) || [], + })); + }, [scenarios]); + + const toggleScenario = (scenarioId: AutomationScenarioId) => { + setConfig(prev => ({ + ...prev, + scenarioIds: prev.scenarioIds.includes(scenarioId) + ? prev.scenarioIds.filter(id => id !== scenarioId) + : [...prev.scenarioIds, scenarioId], + })); + }; + + return ( + + + + Jira 场景矩阵 + + + setConfig(prev => ({ + ...prev, + scenarioIds: scenarios.map(item => item.id), + })) + } + onClear={() => setConfig(prev => ({ ...prev, scenarioIds: [] }))} + /> + + {scenariosByJira.map(group => ( + + + + + + {group.jiraKey} + + + {group.scenarios.length} 个 concrete case + + + + setConfig(prev => ({ + ...prev, + scenarioIds: Array.from( + new Set([...prev.scenarioIds, ...group.scenarios.map(item => item.id)]) + ), + })) + } + onClear={() => + setConfig(prev => ({ + ...prev, + scenarioIds: prev.scenarioIds.filter( + id => !group.scenarios.some(item => item.id === id) + ), + })) + } + /> + + + {group.scenarios.map(scenario => ( + toggleScenario(scenario.id)} + /> + ))} + + + + ))} + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/SelectableRow.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SelectableRow.tsx new file mode 100644 index 000000000..5e9ae6563 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SelectableRow.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import { Check as CheckIcon } from '@tamagui/lucide-icons'; +import { Checkbox, Text, XStack, YStack } from 'tamagui'; + +function SelectableRowInner({ + checked, + disabled, + title, + description, + onToggle, +}: { + checked: boolean; + disabled?: boolean; + title: string; + description?: string; + onToggle: () => void; +}) { + return ( + + + + + + + + + {title} + + {description ? ( + + {description} + + ) : null} + + + ); +} + +export const SelectableRow = React.memo(SelectableRowInner); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx new file mode 100644 index 000000000..9be445ca3 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx @@ -0,0 +1,59 @@ +import { Text, XStack, YStack } from 'tamagui'; + +import { TEST_SUITE_INFO } from '../../../services/phonePilotMcp/types'; +import { toggleValue } from '../utils'; +import { PanelActions } from './PanelActions'; +import { SelectableRow } from './SelectableRow'; + +import type { AutomationTestConfig, TestSuiteType } from '../../../services/phonePilotMcp/types'; + +export function SuiteSelector({ + config, + isRunning, + setConfig, +}: { + config: AutomationTestConfig; + isRunning: boolean; + setConfig: ( + updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) + ) => void; +}) { + const toggleTestSuite = (suiteType: TestSuiteType) => { + setConfig(prev => ({ + ...prev, + testSuites: toggleValue(prev.testSuites, suiteType), + })); + }; + + return ( + + + + 执行 suite + + + setConfig(prev => ({ + ...prev, + testSuites: Object.keys(TEST_SUITE_INFO) as TestSuiteType[], + })) + } + onClear={() => setConfig(prev => ({ ...prev, testSuites: [] }))} + /> + + + {(Object.keys(TEST_SUITE_INFO) as TestSuiteType[]).map(suiteType => ( + toggleTestSuite(suiteType)} + /> + ))} + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx new file mode 100644 index 000000000..be345380a --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx @@ -0,0 +1,41 @@ +import { XStack } from 'tamagui'; + +import PageView from '../../components/ui/Page'; +import { DeviceProvider } from '../../provider/DeviceProvider'; +import { HardwareInputPinDialogProvider } from '../../provider/HardwareInputPinProvider'; +import { useAutomationTest } from '../../testTools/automationTest/useAutomationTest'; +import { StickyHeaderBar } from './StickyHeaderBar'; +import { LiveOutputPanel } from './LiveOutputPanel'; +import { ConfigSidebar } from './ConfigSidebar'; + +function AutomationTestContent() { + const automation = useAutomationTest(); + + return ( + + + + + + + + ); +} + +export default function AutomationTestScreen() { + return ( + + + + + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/utils.ts b/packages/connect-examples/expo-example/src/views/AutomationTest/utils.ts new file mode 100644 index 000000000..cc956af7f --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/utils.ts @@ -0,0 +1,67 @@ +import type { ConnectionState, TestCaseResult } from '../../services/phonePilotMcp/types'; + +export function toggleValue(list: T[], value: T): T[] { + return list.includes(value) ? list.filter(item => item !== value) : [...list, value]; +} + +export function formatDuration(ms: number): string { + if (ms < 1000) { + return `${ms}ms`; + } + return `${(ms / 1000).toFixed(1)}s`; +} + +export function getStatusColor( + status: 'passed' | 'failed' | 'skipped' | 'idle' | 'running' +): string { + if (status === 'passed') { + return '$green10'; + } + if (status === 'failed') { + return '$red10'; + } + if (status === 'skipped') { + return '$gray10'; + } + return '$blue10'; +} + +export function getConnectionColor(connectionState: ConnectionState): string { + if (connectionState === 'connected') { + return getStatusColor('passed'); + } + if (connectionState === 'error') { + return getStatusColor('failed'); + } + return getStatusColor('running'); +} + +export function getReadyColor(ready: boolean | null | undefined): string { + if (ready === true) { + return getStatusColor('passed'); + } + if (ready === false) { + return getStatusColor('failed'); + } + return getStatusColor('running'); +} + +export function formatReadyLabel(ready: boolean | null | undefined): string { + if (ready === true) { + return 'ready'; + } + if (ready === false) { + return 'not ready'; + } + return '未检测'; +} + +export function getCaseStatusIcon(testCase: TestCaseResult): string { + if (testCase.skipped) { + return '⏭️'; + } + if (testCase.passed) { + return '✅'; + } + return '❌'; +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx b/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx deleted file mode 100644 index 0647d1702..000000000 --- a/packages/connect-examples/expo-example/src/views/AutomationTestScreen.tsx +++ /dev/null @@ -1,882 +0,0 @@ -import React, { useMemo } from 'react'; -import { Check as CheckIcon } from '@tamagui/lucide-icons'; -import { useAtom, useAtomValue } from 'jotai'; -import { - Button, - Card, - Checkbox, - Image, - Input, - Label, - Separator, - Stack, - Text, - XStack, - YStack, -} from 'tamagui'; - -import { - automationConfigAtom, - automationLogsAtom, - automationReportAtom, - cameraFrameAtom, - canStartAutomationAtom, - isAutomationRunningAtom, - phonePilotConnectionStateAtom, - phonePilotHealthAtom, - progressPercentageAtom, -} from '../atoms/automationAtoms'; -import AutoWrapperTextArea from '../components/ui/AutoWrapperTextArea'; -import PageView from '../components/ui/Page'; -import PanelView from '../components/ui/Panel'; -import { DeviceProvider } from '../provider/DeviceProvider'; -import { HardwareInputPinDialogProvider } from '../provider/HardwareInputPinProvider'; -import { - ALL_PASSPHRASE_VARIANT_IDS, - PASSPHRASE_VARIANT_INFO, - TEST_SUITE_INFO, -} from '../services/phonePilotMcp/types'; -import { useAutomationTest } from '../testTools/automationTest/useAutomationTest'; - -import type { - AutomationScenario, - AutomationScenarioId, - AutomationTestConfig, - ConnectionState, - HealthCheckResponse, - PassphraseVariantId, - ScenarioReportResult, - TestCaseResult, - TestProgress, - TestReport, - TestSuiteResult, - TestSuiteType, -} from '../services/phonePilotMcp/types'; - -const JIRA_ORDER = ['OK-26053', 'OK-26054', 'OK-5504', 'OK-40090'] as const; - -function toggleValue(list: T[], value: T): T[] { - return list.includes(value) ? list.filter(item => item !== value) : [...list, value]; -} - -function formatDuration(ms: number): string { - if (ms < 1000) { - return `${ms}ms`; - } - return `${(ms / 1000).toFixed(1)}s`; -} - -function getStatusColor(status: 'passed' | 'failed' | 'skipped' | 'idle' | 'running'): string { - if (status === 'passed') { - return '$green10'; - } - if (status === 'failed') { - return '$red10'; - } - if (status === 'skipped') { - return '$gray10'; - } - return '$blue10'; -} - -function getConnectionColor(connectionState: ConnectionState): string { - if (connectionState === 'connected') { - return getStatusColor('passed'); - } - if (connectionState === 'error') { - return getStatusColor('failed'); - } - return getStatusColor('running'); -} - -function getReadyColor(ready: boolean | null | undefined): string { - if (ready === true) { - return getStatusColor('passed'); - } - if (ready === false) { - return getStatusColor('failed'); - } - return getStatusColor('running'); -} - -function formatReadyLabel(ready: boolean | null | undefined): string { - if (ready === true) { - return 'ready'; - } - if (ready === false) { - return 'not ready'; - } - return '未检测'; -} - -function getCaseStatusIcon(testCase: TestCaseResult): string { - if (testCase.skipped) { - return '⏭️'; - } - if (testCase.passed) { - return '✅'; - } - return '❌'; -} - -function getFrameUri(frame?: string | null): string | null { - if (!frame) { - return null; - } - return frame.startsWith('data:') ? frame : `data:image/png;base64,${frame}`; -} - -function formatScenarioSuiteSummary(scenario: AutomationScenario): string { - const labelMap: Record = { - deviceFlow: 'Device Flow', - sdkAddressBatch: 'Address', - sdkPubkeyBatch: 'Pubkey', - }; - - return scenario.supportedSuites.map(suiteType => labelMap[suiteType]).join(' + '); -} - -function SelectableRow({ - checked, - disabled, - title, - description, - onToggle, -}: { - checked: boolean; - disabled?: boolean; - title: string; - description?: string; - onToggle: () => void; -}) { - return ( - - - - - - - - - {title} - - {description ? ( - - {description} - - ) : null} - - - ); -} - -function PanelActions({ - disabled, - onSelectAll, - onClear, -}: { - disabled?: boolean; - onSelectAll: () => void; - onClear: () => void; -}) { - return ( - - - - - ); -} - -function ReportCase({ testCase }: { testCase: TestCaseResult }) { - return ( - - - - - {getCaseStatusIcon(testCase)} {testCase.title} - - - {formatDuration(testCase.duration)} - - - {testCase.method ? ( - - 方法: {testCase.method} - - ) : null} - {testCase.expected ? ( - - 期望: {testCase.expected} - - ) : null} - {testCase.actual ? ( - - 实际: {testCase.actual} - - ) : null} - {testCase.error ? ( - - 错误: {testCase.error} - - ) : null} - {testCase.metadata ? ( - - 元数据:{' '} - {Object.entries(testCase.metadata) - .map(([key, value]) => `${key}=${value}`) - .join(',')} - - ) : null} - - - ); -} - -function ReportSuite({ suite }: { suite: TestSuiteResult }) { - return ( - - - - - {suite.suiteName} - - - 状态: {suite.status} · 用例{' '} - {suite.passedTests}/{suite.totalTests} · 耗时 {formatDuration(suite.duration)} - - - - {suite.results.map(testCase => ( - - ))} - - - - ); -} - -function ReportScenario({ scenario }: { scenario: ScenarioReportResult }) { - return ( - - - - - - {scenario.scenarioTitle} - - - {scenario.status} - - - - {scenario.jiraKey} · {scenario.flowType} · {scenario.walletType} · {scenario.caseLabel}{' '} - · 耗时 {formatDuration(scenario.duration)} - - - - {scenario.suiteResults.map(suite => ( - - ))} - - - - ); -} - -function ConnectionPanel({ - connectionState, - health, - frameUri, - onCaptureFrame, - onConnect, - onDisconnect, - phonePilotUrl, - setPhonePilotUrl, -}: { - connectionState: ConnectionState; - health: HealthCheckResponse | null; - frameUri: string | null; - onCaptureFrame: () => Promise; - onConnect: () => Promise; - onDisconnect: () => Promise; - phonePilotUrl: string; - setPhonePilotUrl: (value: string) => void; -}) { - const isConnected = connectionState === 'connected'; - const statusLabelMap: Record = { - connected: '已连接', - connecting: '连接中', - disconnected: '未连接', - error: '连接失败', - }; - - return ( - - - - - MCP 地址 - - - - - - - 当前状态: {statusLabelMap[connectionState]} - - - - - - - - - - - MCP: {formatReadyLabel(health?.mcpReady)} - - - OCR: {formatReadyLabel(health?.ocrReady)} - - {health?.message ? ( - - 健康信息: {health.message} - - ) : null} - {health?.ocr?.pythonBin ? ( - - Python: {health.ocr.pythonBin} - {health.ocr.pythonVersion ? ` (${health.ocr.pythonVersion})` : ''} - - ) : null} - {health?.sequenceIds?.length ? ( - - Sequences: {health.sequenceIds.length} - - ) : null} - - - - {frameUri ? ( - - - 最近一帧 - - - - ) : null} - - - ); -} - -function ConfigurationPanel({ - config, - isRunning, - scenarios, - setConfig, -}: { - config: AutomationTestConfig; - isRunning: boolean; - scenarios: AutomationScenario[]; - setConfig: ( - updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) - ) => void; -}) { - const scenariosByJira = useMemo(() => { - const groupMap = new Map(); - scenarios.forEach(scenario => { - const currentScenarios = groupMap.get(scenario.jiraKey) || []; - currentScenarios.push(scenario); - groupMap.set(scenario.jiraKey, currentScenarios); - }); - - return JIRA_ORDER.map(jiraKey => ({ - jiraKey, - scenarios: groupMap.get(jiraKey) || [], - })); - }, [scenarios]); - - const selectedScenarioObjects = useMemo( - () => scenarios.filter(item => config.scenarioIds.includes(item.id)), - [config.scenarioIds, scenarios] - ); - - const estimatedSuiteCount = useMemo( - () => - selectedScenarioObjects.reduce( - (count, scenario) => - count + - scenario.supportedSuites.filter(suiteType => config.testSuites.includes(suiteType)) - .length, - 0 - ), - [config.testSuites, selectedScenarioObjects] - ); - - const toggleScenario = (scenarioId: AutomationScenarioId) => { - setConfig(prev => ({ - ...prev, - scenarioIds: toggleValue(prev.scenarioIds, scenarioId), - })); - }; - - const toggleTestSuite = (suiteType: TestSuiteType) => { - setConfig(prev => ({ - ...prev, - testSuites: toggleValue(prev.testSuites, suiteType), - })); - }; - - const togglePassphraseVariant = (variantId: PassphraseVariantId) => { - setConfig(prev => ({ - ...prev, - passphraseVariants: toggleValue(prev.passphraseVariants, variantId), - })); - }; - - return ( - - - - - 已选场景 {config.scenarioIds.length} 个 · 已选 suite {config.testSuites.length} 个 · - 预计执行 {estimatedSuiteCount} 个 suite - - - - - - - Jira 场景矩阵 - - - setConfig(prev => ({ - ...prev, - scenarioIds: scenarios.map(item => item.id), - })) - } - onClear={() => setConfig(prev => ({ ...prev, scenarioIds: [] }))} - /> - - {scenariosByJira.map(group => ( - - - - - - {group.jiraKey} - - - {group.scenarios.length} 个 concrete case - - - - setConfig(prev => ({ - ...prev, - scenarioIds: Array.from( - new Set([...prev.scenarioIds, ...group.scenarios.map(item => item.id)]) - ), - })) - } - onClear={() => - setConfig(prev => ({ - ...prev, - scenarioIds: prev.scenarioIds.filter( - id => !group.scenarios.some(item => item.id === id) - ), - })) - } - /> - - - {group.scenarios.map(scenario => ( - toggleScenario(scenario.id)} - /> - ))} - - - - ))} - - - - - - - - 执行 suite - - - setConfig(prev => ({ - ...prev, - testSuites: Object.keys(TEST_SUITE_INFO) as TestSuiteType[], - })) - } - onClear={() => setConfig(prev => ({ ...prev, testSuites: [] }))} - /> - - - {(Object.keys(TEST_SUITE_INFO) as TestSuiteType[]).map(suiteType => ( - toggleTestSuite(suiteType)} - /> - ))} - - - - - - - - - 隐藏钱包密码短语变体 - - - setConfig(prev => ({ - ...prev, - passphraseVariants: [...ALL_PASSPHRASE_VARIANT_IDS], - })) - } - onClear={() => setConfig(prev => ({ ...prev, passphraseVariants: [] }))} - /> - - - - 当前自动化报告会展示 literal。SLIP39 约定:`passphrase_1 = 12345`,`passphrase_2 = - onekey`。 - - - - {ALL_PASSPHRASE_VARIANT_IDS.map(variantId => ( - togglePassphraseVariant(variantId)} - /> - ))} - - - - - - - Runner 行为 - - - setConfig(prev => ({ - ...prev, - stopOnFirstError: !prev.stopOnFirstError, - })) - } - /> - - - - setConfig(prev => ({ - ...prev, - retryCount: Number(value) || 1, - })) - } - disabled={isRunning} - /> - - - - - setConfig(prev => ({ - ...prev, - delayBetweenTests: Number(value) || 0, - })) - } - disabled={isRunning} - /> - - - - - ); -} - -function ProgressPanel({ - canStart, - isRunning, - onStart, - onStartDebug, - onStop, - progress, - progressPercentage, -}: { - canStart: boolean; - isRunning: boolean; - onStart: () => Promise; - onStartDebug: () => Promise; - onStop: () => Promise; - progress: TestProgress; - progressPercentage: number; -}) { - return ( - - - - - - {progressPercentage}% - - - Suite 进度 - - - - - {progress.completedScenarios}/{progress.totalScenarios} - - - 场景进度 - - - - - {progress.completedSuites}/{progress.totalSuites} - - - Suite 计数 - - - - - - - - 状态: {progress.status} - - - 当前场景: {progress.currentScenarioTitle || '—'} - - - 当前 suite: {progress.currentTestSuite || '—'} - - - 当前 passphrase: {progress.currentPassphrase || '—'} - - {progress.errorMessage ? ( - - 错误: {progress.errorMessage} - - ) : null} - - - - - - - - - - - ); -} - -function LogsPanel({ logs }: { logs: string[] }) { - return ( - - - - ); -} - -function ResultsPanel({ report }: { report: TestReport | null }) { - if (!report) { - return ( - - - 还没有执行结果。 - - - ); - } - - return ( - - - - - - {report.totalScenarios} - - - 总场景 - - - - - {report.passedScenarios} - - - 通过 - - - - - {report.failedScenarios} - - - 失败 - - - - - {report.skippedScenarios} - - - 跳过 - - - - - - 总耗时: {formatDuration(report.duration)} - - - - {report.scenarioResults.map(scenario => ( - - ))} - - - - ); -} - -function AutomationTestScreenContent() { - const [config, setConfig] = useAtom(automationConfigAtom); - const cameraFrame = useAtomValue(cameraFrameAtom); - const canStart = useAtomValue(canStartAutomationAtom); - const connectionState = useAtomValue(phonePilotConnectionStateAtom); - const phonePilotHealth = useAtomValue(phonePilotHealthAtom); - const isRunning = useAtomValue(isAutomationRunningAtom); - const logs = useAtomValue(automationLogsAtom); - const progressPercentage = useAtomValue(progressPercentageAtom); - const report = useAtomValue(automationReportAtom); - - const automation = useAutomationTest(); - - return ( - - setConfig(prev => ({ ...prev, phonePilotUrl: value }))} - /> - - - - - - - - - ); -} - -export default function AutomationTestScreen() { - return ( - - - - - - - - ); -} From ee6b3a74c733c7684e50cbb10cd304092d338283 Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 12 Mar 2026 23:52:06 +0800 Subject: [PATCH 4/7] fix: replace two-column layout with single-column PanelView cards The previous two-column layout (StickyHeaderBar + LiveOutputPanel + ConfigSidebar) was inconsistent with other pages and caused poor space distribution. Switch to standard scrollable PageView with PanelView cards matching the app's existing design pattern. Co-Authored-By: Claude Opus 4.6 --- .../views/AutomationTest/ConfigSidebar.tsx | 56 -------- .../views/AutomationTest/LiveOutputPanel.tsx | 17 --- .../views/AutomationTest/StickyHeaderBar.tsx | 75 ---------- .../AutomationTest/components/LogsSection.tsx | 18 +-- .../src/views/AutomationTest/index.tsx | 134 +++++++++++++++--- 5 files changed, 122 insertions(+), 178 deletions(-) delete mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx delete mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx delete mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx deleted file mode 100644 index e0053fda4..000000000 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/ConfigSidebar.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { useAtom, useAtomValue } from 'jotai'; -import { ScrollView, Separator, YStack } from 'tamagui'; - -import { automationConfigAtom, isAutomationRunningAtom } from '../../atoms/automationAtoms'; -import { ScenarioSelector } from './components/ScenarioSelector'; -import { SuiteSelector } from './components/SuiteSelector'; -import { PassphraseSelector } from './components/PassphraseSelector'; -import { RunnerBehaviorConfig } from './components/RunnerBehaviorConfig'; -import { ConnectionConfig } from './components/ConnectionConfig'; - -import type { AutomationScenario } from '../../services/phonePilotMcp/types'; - -export function ConfigSidebar({ - scenarios, - onConnect, - onDisconnect, -}: { - scenarios: AutomationScenario[]; - onConnect: () => Promise; - onDisconnect: () => Promise; -}) { - const [config, setConfig] = useAtom(automationConfigAtom); - const isRunning = useAtomValue(isAutomationRunningAtom); - - return ( - - - - - - - - - - - - - - ); -} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx deleted file mode 100644 index 72af4f7dc..000000000 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/LiveOutputPanel.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { ScrollView, YStack } from 'tamagui'; - -import { CurrentScenarioCard } from './components/CurrentScenarioCard'; -import { ReportTree } from './components/ReportTree'; -import { LogsSection } from './components/LogsSection'; - -export function LiveOutputPanel() { - return ( - - - - - - - - ); -} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx deleted file mode 100644 index e95972acb..000000000 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/StickyHeaderBar.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useAtomValue } from 'jotai'; -import { Button, Stack, Text, XStack } from 'tamagui'; - -import { - automationProgressAtom, - canStartAutomationAtom, - isAutomationRunningAtom, - phonePilotConnectionStateAtom, - progressPercentageAtom, -} from '../../atoms/automationAtoms'; -import { getConnectionColor } from './utils'; -import { ProgressBar } from './components/ProgressBar'; - -export function StickyHeaderBar({ - onStart, - onStartDebug, - onStop, -}: { - onStart: () => Promise; - onStartDebug: () => Promise; - onStop: () => Promise; -}) { - const connectionState = useAtomValue(phonePilotConnectionStateAtom); - const canStart = useAtomValue(canStartAutomationAtom); - const isRunning = useAtomValue(isAutomationRunningAtom); - const progress = useAtomValue(automationProgressAtom); - const progressPercentage = useAtomValue(progressPercentageAtom); - - return ( - - - - - - - - - - - - - {progressPercentage}% - - - - - - 场景 {progress.completedScenarios}/{progress.totalScenarios} - - - Suite {progress.completedSuites}/{progress.totalSuites} - - - - ); -} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx index 4c49d4692..257799505 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/LogsSection.tsx @@ -1,5 +1,4 @@ import { useAtomValue } from 'jotai'; -import { Text, YStack } from 'tamagui'; import { automationLogsAtom } from '../../../atoms/automationAtoms'; import AutoWrapperTextArea from '../../../components/ui/AutoWrapperTextArea'; @@ -8,16 +7,11 @@ export function LogsSection() { const logs = useAtomValue(automationLogsAtom); return ( - - - 运行日志 - - - + ); } diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx index be345380a..dfa3ae579 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx @@ -1,31 +1,129 @@ -import { XStack } from 'tamagui'; +import { useAtom, useAtomValue } from 'jotai'; +import { Button, Separator, Stack, Text, XStack, YStack } from 'tamagui'; import PageView from '../../components/ui/Page'; +import PanelView from '../../components/ui/Panel'; import { DeviceProvider } from '../../provider/DeviceProvider'; import { HardwareInputPinDialogProvider } from '../../provider/HardwareInputPinProvider'; import { useAutomationTest } from '../../testTools/automationTest/useAutomationTest'; -import { StickyHeaderBar } from './StickyHeaderBar'; -import { LiveOutputPanel } from './LiveOutputPanel'; -import { ConfigSidebar } from './ConfigSidebar'; +import { + automationConfigAtom, + automationProgressAtom, + canStartAutomationAtom, + isAutomationRunningAtom, + phonePilotConnectionStateAtom, + progressPercentageAtom, +} from '../../atoms/automationAtoms'; +import { getConnectionColor } from './utils'; +import { ProgressBar } from './components/ProgressBar'; +import { ConnectionConfig } from './components/ConnectionConfig'; +import { ScenarioSelector } from './components/ScenarioSelector'; +import { SuiteSelector } from './components/SuiteSelector'; +import { PassphraseSelector } from './components/PassphraseSelector'; +import { RunnerBehaviorConfig } from './components/RunnerBehaviorConfig'; +import { CurrentScenarioCard } from './components/CurrentScenarioCard'; +import { ReportTree } from './components/ReportTree'; +import { LogsSection } from './components/LogsSection'; function AutomationTestContent() { const automation = useAutomationTest(); + const [config, setConfig] = useAtom(automationConfigAtom); + const isRunning = useAtomValue(isAutomationRunningAtom); + const connectionState = useAtomValue(phonePilotConnectionStateAtom); + const canStart = useAtomValue(canStartAutomationAtom); + const progress = useAtomValue(automationProgressAtom); + const progressPercentage = useAtomValue(progressPercentageAtom); return ( - - - - - - + + + {/* Panel 1: Connection & Control */} + + + + + + + + + + + + + + {progressPercentage}% + + + + + 场景 {progress.completedScenarios}/{progress.totalScenarios} + + + Suite {progress.completedSuites}/{progress.totalSuites} + + + + + + {/* Panel 2: Test Configuration */} + + + + + + + + + + + {/* Panel 3: Current Progress */} + + + {/* Panel 4: Report */} + + + + + {/* Panel 5: Logs */} + + + + ); } From fa4ac80b8e406e6459cb0e7a0c24a4f1deb92c24 Mon Sep 17 00:00:00 2001 From: wabicai Date: Fri, 13 Mar 2026 09:31:34 +0800 Subject: [PATCH 5/7] fix: correct Provider nesting order, add mismatch logging, remove abbreviations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Fix PageView > DeviceProvider > HardwareInputPinDialogProvider nesting order to match all other screens (was reversed before). 2. Add [MISMATCH] logging with expected/actual values at all 6 address comparison points so failures are clearly visible in the run log. 3. Replace abbreviations: PP Switch → Passphrase Switch, Special PP → Special Passphrase, ppSwitchResult → passphraseWalletSwitchResult, SPECIAL_PP_METHOD_PATHS → SPECIAL_PASSPHRASE_METHOD_PATHS. Co-Authored-By: Claude Opus 4.6 --- .../automationTest/useAutomationTest.ts | 62 ++++-- .../components/ScenarioSelector.tsx | 4 +- .../src/views/AutomationTest/index.tsx | 180 +++++++++--------- 3 files changed, 141 insertions(+), 105 deletions(-) diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts index b74ede38b..8befcba2b 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -988,12 +988,19 @@ export function useAutomationTest() { methodData.name ); + const passed = actual === expected; + if (!passed) { + addLog(`[MISMATCH] ${slip39Case.id} / ${methodData.name || methodData.method}`); + addLog(` expected: ${expected}`); + addLog(` actual: ${actual}`); + } + return { title: `${slip39Case.id} / ${methodData.name || methodData.method} / ${expectedPath}`, method: methodData.method, expected, actual, - passed: actual === expected, + passed, duration: Date.now() - startedAt, metadata: { scenario: scenario.title, @@ -1136,12 +1143,18 @@ export function useAutomationTest() { methodCase.name ); + const passed = actual === expected; + if (!passed) { + addLog(`[MISMATCH] ${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`); + addLog(` expected: ${expected}`); + addLog(` actual: ${actual}`); + } return { title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, method: methodCase.method, expected, actual, - passed: actual === expected, + passed, duration: Date.now() - startedAt, metadata: { scenario: scenario.title, @@ -1313,12 +1326,18 @@ export function useAutomationTest() { probe.method, probe.caseName ); + const passed = actual === expected; + if (!passed) { + addLog(`[MISMATCH] ${scenario.id} / ${probe.caseName} / ${probe.path} / ${variantId}`); + addLog(` expected: ${expected}`); + addLog(` actual: ${actual}`); + } results.push({ title: `${scenario.id} / ${probe.caseName} / ${probe.path} / ${variantId}`, method: probe.method, expected, actual, - passed: actual === expected, + passed, duration: Date.now() - startedAtCase, metadata: { path: probe.path, @@ -1500,6 +1519,12 @@ export function useAutomationTest() { methodData.method, methodData.name ); + const passed = actual === expected; + if (!passed) { + addLog(`[MISMATCH] ${scenario.id} / ${methodData.name || methodData.method} / ${variantId} / ${expectedPath}`); + addLog(` expected: ${expected}`); + addLog(` actual: ${actual}`); + } results.push({ title: `${scenario.id} / ${ methodData.name || methodData.method @@ -1507,7 +1532,7 @@ export function useAutomationTest() { method: methodData.method, expected, actual, - passed: actual === expected, + passed, duration: Date.now() - startedAtCase, metadata: { passphrase: passphraseDisplay, @@ -1650,12 +1675,18 @@ export function useAutomationTest() { )) as { success: boolean; payload?: { address?: string } }; const actual = addrResult.payload?.address || ''; + const passed = actual === cached.address; + if (!passed) { + addLog(`[MISMATCH] Switch ${switchIdx} → ${walletKey}`); + addLog(` expected: ${cached.address}`); + addLog(` actual: ${actual}`); + } results.push({ title: `Switch ${switchIdx} → ${walletKey}`, method: 'evmGetAddress', expected: cached.address, actual, - passed: actual === cached.address, + passed, duration: Date.now() - caseStart, metadata: { passphrase }, }); @@ -1705,12 +1736,12 @@ export function useAutomationTest() { String.fromCharCode(...Array.from({ length: 25 }, (_, i) => i + 96)), ]; - const SPECIAL_PP_METHOD_PATHS: Record = { + const SPECIAL_PASSPHRASE_METHOD_PATHS: Record = { btcGetAddress: "m/44'/0'/0'/0/0", evmGetAddress: "m/44'/60'/0'/0/0", dnxGetAddress: "m/44'/29538'/0'/0/0", }; - const methods = Object.keys(SPECIAL_PP_METHOD_PATHS); + const methods = Object.keys(SPECIAL_PASSPHRASE_METHOD_PATHS); const mnemonic = scenario.bip39ImportMnemonicWords?.join(' '); if (!mnemonic) { @@ -1767,7 +1798,7 @@ export function useAutomationTest() { } const mockRes = (await mockFn('', '', { - path: SPECIAL_PP_METHOD_PATHS[method], + path: SPECIAL_PASSPHRASE_METHOD_PATHS[method], mnemonic: mnemonic.trim(), passphrase, })) as { payload?: { address?: string } }; @@ -1789,7 +1820,7 @@ export function useAutomationTest() { const sdkResult = (await runWithRetry(`${method}:special`, () => (sdkMethod as (...args: unknown[]) => Promise)(connectId, deviceId, { - path: SPECIAL_PP_METHOD_PATHS[method], + path: SPECIAL_PASSPHRASE_METHOD_PATHS[method], showOnOneKey: false, passphraseState, useEmptyPassphrase: false, @@ -1798,6 +1829,11 @@ export function useAutomationTest() { const actual = sdkResult.payload?.address || ''; const passed = actual.toLowerCase() === expected.toLowerCase(); + if (!passed) { + addLog(`[MISMATCH] ${method} / 「${passphrase}」`); + addLog(` expected: ${expected}`); + addLog(` actual: ${actual}`); + } results.push({ title: `${method} / 「${passphrase}」`, @@ -1950,13 +1986,13 @@ export function useAutomationTest() { scenario.supportedSuites.includes('passphraseWalletSwitch') && !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) ) { - const ppSwitchResult = await runPassphraseWalletSwitchSuite( + const passphraseWalletSwitchResult = await runPassphraseWalletSwitchSuite( scenario, sdk, connectId, deviceId ); - nextSuiteResults.push(ppSwitchResult); + nextSuiteResults.push(passphraseWalletSwitchResult); markSuiteCompleted(); } @@ -1965,13 +2001,13 @@ export function useAutomationTest() { scenario.supportedSuites.includes('specialPassphrase') && !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) ) { - const specialPPResult = await runSpecialPassphraseSuite( + const specialPassphraseResult = await runSpecialPassphraseSuite( scenario, sdk, connectId, deviceId ); - nextSuiteResults.push(specialPPResult); + nextSuiteResults.push(specialPassphraseResult); markSuiteCompleted(); } diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx index ea5fb1d35..edae6104c 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx @@ -19,8 +19,8 @@ function formatScenarioSuiteSummary(scenario: AutomationScenario): string { deviceFlow: 'Device Flow', sdkAddressBatch: 'Address', sdkPubkeyBatch: 'Pubkey', - passphraseWalletSwitch: 'PP Switch', - specialPassphrase: 'Special PP', + passphraseWalletSwitch: 'Passphrase Switch', + specialPassphrase: 'Special Passphrase', }; return scenario.supportedSuites.map(suiteType => labelMap[suiteType] ?? suiteType).join(' + '); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx index dfa3ae579..a68224fb9 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx @@ -1,5 +1,5 @@ import { useAtom, useAtomValue } from 'jotai'; -import { Button, Separator, Stack, Text, XStack, YStack } from 'tamagui'; +import { Button, Separator, Stack, Text, XStack } from 'tamagui'; import PageView from '../../components/ui/Page'; import PanelView from '../../components/ui/Panel'; @@ -35,105 +35,105 @@ function AutomationTestContent() { const progressPercentage = useAtomValue(progressPercentageAtom); return ( - - - {/* Panel 1: Connection & Control */} - - + {/* Panel 1: PhonePilot Connection & Test Control */} + + + + + - - - - - - - - - - - - {progressPercentage}% - - - - - 场景 {progress.completedScenarios}/{progress.totalScenarios} - - - Suite {progress.completedSuites}/{progress.totalSuites} - - + + + + + + + + + {progressPercentage}% + - + + + 场景 {progress.completedScenarios}/{progress.totalScenarios} + + + Suite {progress.completedSuites}/{progress.totalSuites} + + + + - {/* Panel 2: Test Configuration */} - - - - - - - - - + {/* Panel 2: Test Configuration */} + + + + + + + + + - {/* Panel 3: Current Progress */} - + {/* Panel 3: Current Progress */} + - {/* Panel 4: Report */} - - - + {/* Panel 4: Report */} + + + - {/* Panel 5: Logs */} - - - - - + {/* Panel 5: Logs */} + + + + ); } export default function AutomationTestScreen() { return ( - - - - - + + + + + + + ); } From 7780a999e02c14027e38573397c276bd2fabdf35 Mon Sep 17 00:00:00 2001 From: wabicai Date: Fri, 13 Mar 2026 10:29:40 +0800 Subject: [PATCH 6/7] refactor: remove passphraseWalletSwitch test suite Remove the passphraseWalletSwitch suite entirely as it does not correspond to any existing test case or Jira ticket. Cleaned up from types, scenarioCatalog, useAutomationTest, and ScenarioSelector. Co-Authored-By: Claude Opus 4.6 --- .../src/services/phonePilotMcp/types.ts | 5 - .../automationTest/scenarioCatalog.ts | 1 - .../automationTest/useAutomationTest.ts | 149 ------------------ .../components/ScenarioSelector.tsx | 1 - 4 files changed, 156 deletions(-) diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts index dd5ca5277..fdad4be62 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -117,7 +117,6 @@ export type TestSuiteType = | 'deviceFlow' | 'sdkAddressBatch' | 'sdkPubkeyBatch' - | 'passphraseWalletSwitch' | 'specialPassphrase'; export const TEST_SUITE_INFO: Record = { @@ -130,10 +129,6 @@ export const TEST_SUITE_INFO: Record => { - updateSuiteProgress('passphraseWalletSwitch', scenario); - const startedAt = Date.now(); - const results: TestCaseResult[] = []; - const walletCount = 5; - const switchCount = 20; - - const cacheAddress = new Map(); - - try { - for (let i = 0; i < walletCount; i += 1) { - const passphrase = i === 0 ? '' : String(i); - const useEmpty = i === 0; - currentPassphraseRef.current = passphrase; - addLog(`Creating wallet ${i}, passphrase: 「${passphrase}」`); - - const psResult = (await runWithRetry(`getPassphraseState:wallet-${i}`, () => - sdk.getPassphraseState(connectId, { - initSession: true, - useEmptyPassphrase: useEmpty, - }) - )) as { success: boolean; payload?: string }; - - if (!psResult.success) { - results.push({ - title: `Create wallet-${i}`, - passed: false, - error: 'getPassphraseState failed', - duration: Date.now() - startedAt, - }); - break; - } - - const passphraseState = psResult.payload || ''; - const addrResult = (await runWithRetry(`evmGetAddress:wallet-${i}`, () => - sdk.evmGetAddress(connectId, deviceId, { - path: EVM_ADDRESS_PATH, - showOnOneKey: false, - passphraseState, - useEmptyPassphrase: useEmpty, - }) - )) as { success: boolean; payload?: { address?: string } }; - - if (!addrResult.success) { - results.push({ - title: `Create wallet-${i}`, - passed: false, - error: 'evmGetAddress failed during wallet creation', - duration: Date.now() - startedAt, - }); - break; - } - - const address = addrResult.payload?.address || ''; - cacheAddress.set(`wallet-${i}`, { address, passphraseState }); - addLog(` wallet-${i} address: ${address}`); - } - - if (cacheAddress.size < walletCount) { - addLog( - `Wallet creation incomplete (${cacheAddress.size}/${walletCount}), aborting switch phase` - ); - } - - for (let switchIdx = 0; switchIdx < switchCount && cacheAddress.size === walletCount; switchIdx += 1) { - if (!runningRef.current) { - break; - } - const walletIdx = switchIdx % walletCount; - const walletKey = `wallet-${walletIdx}`; - const cached = cacheAddress.get(walletKey); - if (!cached) { - continue; - } - - const passphrase = walletIdx === 0 ? '' : String(walletIdx); - currentPassphraseRef.current = passphrase; - - const caseStart = Date.now(); - const addrResult = (await runWithRetry(`evmGetAddress:switch-${switchIdx}`, () => - sdk.evmGetAddress(connectId, deviceId, { - path: EVM_ADDRESS_PATH, - showOnOneKey: false, - passphraseState: cached.passphraseState, - useEmptyPassphrase: walletIdx === 0, - }) - )) as { success: boolean; payload?: { address?: string } }; - - const actual = addrResult.payload?.address || ''; - const passed = actual === cached.address; - if (!passed) { - addLog(`[MISMATCH] Switch ${switchIdx} → ${walletKey}`); - addLog(` expected: ${cached.address}`); - addLog(` actual: ${actual}`); - } - results.push({ - title: `Switch ${switchIdx} → ${walletKey}`, - method: 'evmGetAddress', - expected: cached.address, - actual, - passed, - duration: Date.now() - caseStart, - metadata: { passphrase }, - }); - - await delay(80); - } - } catch (error) { - results.push({ - title: 'passphraseWalletSwitch unexpected error', - passed: false, - error: error instanceof Error ? error.message : String(error), - duration: Date.now() - startedAt, - }); - } - - currentPassphraseRef.current = ''; - return createSuiteResult( - 'passphraseWalletSwitch', - 'Passphrase Wallet Switch', - results, - Date.now() - startedAt - ); - }, - [addLog, runWithRetry, updateSuiteProgress] - ); const runSpecialPassphraseSuite = useCallback( async ( @@ -1981,20 +1847,6 @@ export function useAutomationTest() { markSuiteCompleted(); } - if ( - selectedSuites.includes('passphraseWalletSwitch') && - scenario.supportedSuites.includes('passphraseWalletSwitch') && - !shouldStopBySuiteFailure(config.stopOnFirstError, nextSuiteResults) - ) { - const passphraseWalletSwitchResult = await runPassphraseWalletSwitchSuite( - scenario, - sdk, - connectId, - deviceId - ); - nextSuiteResults.push(passphraseWalletSwitchResult); - markSuiteCompleted(); - } if ( selectedSuites.includes('specialPassphrase') && @@ -2019,7 +1871,6 @@ export function useAutomationTest() { markSuiteCompleted, runBip39CreateDynamicSuite, runBip39ImportSdkSuite, - runPassphraseWalletSwitchSuite, runSlip39CreateDynamicSuite, runSlip39SdkSuite, runSpecialPassphraseSuite, diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx index edae6104c..864d5001f 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx @@ -19,7 +19,6 @@ function formatScenarioSuiteSummary(scenario: AutomationScenario): string { deviceFlow: 'Device Flow', sdkAddressBatch: 'Address', sdkPubkeyBatch: 'Pubkey', - passphraseWalletSwitch: 'Passphrase Switch', specialPassphrase: 'Special Passphrase', }; From 581748c0b1e120eb23ef0ef5ad0a97eb537b1159 Mon Sep 17 00:00:00 2001 From: wabicai Date: Sat, 14 Mar 2026 11:44:36 +0800 Subject: [PATCH 7/7] feat: redesign automation test UI and fix passphrase state handling - Redesign UI: two-column layout (config left, report+logs right), card-style checkboxes, collapsible scenario groups, tab-based report/logs toggle - Add real-time per-case live report via liveReportAtom + effectiveReportAtom - Fix passphrase bug: add ensurePassphraseState helper that toggles device passphrase_protection and obtains passphraseState before SDK calls, matching the pattern from SLIP39AddressValidation.tsx Co-Authored-By: Claude Opus 4.6 --- .../expo-example/src/atoms/automationAtoms.ts | 67 +++++ .../src/services/phonePilotMcp/types.ts | 17 +- .../automationTest/scenarioCatalog.ts | 8 +- .../automationTest/useAutomationTest.ts | 246 ++++++++++++++++-- .../components/PassphraseSelector.tsx | 54 ++-- .../AutomationTest/components/ReportTree.tsx | 4 +- .../components/RunnerBehaviorConfig.tsx | 2 +- .../components/ScenarioSelector.tsx | 185 ++++++++----- .../components/SuiteSelector.tsx | 55 ++-- .../AutomationTest/components/TabSelector.tsx | 43 +++ .../src/views/AutomationTest/index.tsx | 123 ++++++--- 11 files changed, 638 insertions(+), 166 deletions(-) create mode 100644 packages/connect-examples/expo-example/src/views/AutomationTest/components/TabSelector.tsx diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts index bab32dea5..5fc1ea6e2 100644 --- a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -8,6 +8,7 @@ import type { AutomationTestConfig, ConnectionState, HealthCheckResponse, + ScenarioReportResult, TestProgress, TestReport, } from '../services/phonePilotMcp/types'; @@ -42,8 +43,74 @@ export const cameraFrameAtom = atom(null); export const automationConfigAtom = atom(defaultConfig); export const automationProgressAtom = atom(defaultProgress); export const automationReportAtom = atom(null); +export const liveReportAtom = atom(null); export const automationLogsAtom = atom([]); +export const initLiveReportAtom = atom( + null, + (_get, set, params: { totalScenarios: number; startTime: number }) => { + set(liveReportAtom, { + startTime: params.startTime, + endTime: params.startTime, + duration: 0, + totalScenarios: params.totalScenarios, + passedScenarios: 0, + failedScenarios: 0, + skippedScenarios: 0, + scenarioResults: [], + }); + } +); + +export const updateLiveScenarioAtom = atom( + null, + (get, set, scenarioResult: ScenarioReportResult) => { + const current = get(liveReportAtom); + const now = Date.now(); + + if (!current) { + set(liveReportAtom, { + startTime: now, + endTime: now, + duration: 0, + totalScenarios: 1, + passedScenarios: scenarioResult.status === 'passed' ? 1 : 0, + failedScenarios: scenarioResult.status === 'failed' ? 1 : 0, + skippedScenarios: scenarioResult.status === 'skipped' ? 1 : 0, + scenarioResults: [scenarioResult], + }); + return; + } + + const existing = current.scenarioResults.findIndex( + s => s.scenarioId === scenarioResult.scenarioId + ); + const scenarioResults = + existing >= 0 + ? current.scenarioResults.map((s, i) => (i === existing ? scenarioResult : s)) + : [...current.scenarioResults, scenarioResult]; + + set(liveReportAtom, { + startTime: current.startTime, + endTime: now, + duration: now - current.startTime, + totalScenarios: current.totalScenarios, + passedScenarios: scenarioResults.filter(s => s.status === 'passed').length, + failedScenarios: scenarioResults.filter(s => s.status === 'failed').length, + skippedScenarios: scenarioResults.filter(s => s.status === 'skipped').length, + scenarioResults, + }); + } +); + +export const effectiveReportAtom = atom(get => { + const live = get(liveReportAtom); + if (live && live.scenarioResults.length > 0) { + return live; + } + return get(automationReportAtom); +}); + const MAX_LOG_ENTRIES = 2000; export const addLogAtom = atom(null, (get, set, log: string) => { diff --git a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts index fdad4be62..8f4619373 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -120,18 +120,21 @@ export type TestSuiteType = | 'specialPassphrase'; export const TEST_SUITE_INFO: Record = { - deviceFlow: { label: 'Device Flow', description: 'PhonePilot 设备端创建/导入流程执行是否成功' }, + deviceFlow: { + label: '设备流程', + description: '通过 PhonePilot 执行设备端创建/导入钱包操作', + }, sdkAddressBatch: { - label: 'SDK Address Batch', - description: '仅导入助记词场景执行地址结果核对', + label: '地址批量校验', + description: '多链地址 SDK 查询 vs 预期值比对(含 passphrase 变体)', }, sdkPubkeyBatch: { - label: 'SDK Pubkey Batch', - description: '仅导入助记词场景执行公钥结果核对', + label: '公钥批量校验', + description: '多链公钥 SDK 查询 vs 预期值比对(含 passphrase 变体)', }, specialPassphrase: { - label: 'Special Passphrase', - description: '9 种特殊密码短语 × 3 方法(btc/evm/dnx),mockDevice 期望 vs SDK 实际', + label: '特殊密码短语', + description: '9 组特殊字符 × 3 方法(BTC/EVM/DNX),mockDevice vs SDK', }, }; diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts index 698f3849e..cf18d3420 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts @@ -95,7 +95,7 @@ function createBip39CreateScenario( return { id, jiraKey: 'OK-26053', - title: `OK-26053 / create / ${caseLabel}`, + title: `BIP39 创建 / ${caseLabel}`, flowType: 'create', walletType: 'bip39', caseLabel, @@ -116,7 +116,7 @@ function createBip39ImportScenario( return { id, jiraKey: 'OK-26054', - title: `OK-26054 / import / ${caseLabel}`, + title: `BIP39 导入 / ${caseLabel}`, flowType: 'import', walletType: 'bip39', caseLabel, @@ -138,7 +138,7 @@ function createSlip39CreateScenario( return { id, jiraKey: 'OK-5504', - title: `OK-5504 / create / ${caseLabel}`, + title: `SLIP39 创建 / ${caseLabel}`, flowType: 'create', walletType: 'slip39', caseLabel, @@ -162,7 +162,7 @@ function createSlip39ImportScenario( return { id, jiraKey: 'OK-40090', - title: `OK-40090 / import / ${caseLabel}`, + title: `SLIP39 导入 / ${caseLabel}`, flowType: 'import', walletType: 'slip39', caseLabel, diff --git a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts index 797af1141..ef377a7a3 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -24,9 +24,12 @@ import { automationReportAtom, cameraFrameAtom, clearLogsAtom, + initLiveReportAtom, + liveReportAtom, phonePilotConnectionStateAtom, phonePilotHealthAtom, resetProgressAtom, + updateLiveScenarioAtom, } from '../../atoms/automationAtoms'; import HardwareSDKContext from '../../provider/HardwareSDKContext'; import { useDevice } from '../../provider/DeviceProvider'; @@ -511,6 +514,9 @@ export function useAutomationTest() { const config = useAtomValue(automationConfigAtom); const [progress, setProgress] = useAtom(automationProgressAtom); const setReport = useSetAtom(automationReportAtom); + const setLiveReport = useSetAtom(liveReportAtom); + const initLiveReport = useSetAtom(initLiveReportAtom); + const updateLiveScenario = useSetAtom(updateLiveScenarioAtom); const logs = useAtomValue(automationLogsAtom); const addLog = useSetAtom(addLogAtom); const clearLogs = useSetAtom(clearLogsAtom); @@ -527,6 +533,24 @@ export function useAutomationTest() { const lastUrlRef = useRef(config.phonePilotUrl); const phonePilotHealthRef = useRef(null); + const liveScenarioCtxRef = useRef<{ + scenario: AutomationScenario; + startedAt: number; + completedSuiteResults: TestSuiteResult[]; + } | null>(null); + + const notifyLiveCaseUpdate = useCallback( + (suiteType: TestSuiteType, suiteName: string, partialResults: TestCaseResult[]) => { + const ctx = liveScenarioCtxRef.current; + if (!ctx) return; + const partialSuite = createSuiteResult(suiteType, suiteName, partialResults, Date.now() - ctx.startedAt); + const allSuites = [...ctx.completedSuiteResults, partialSuite]; + const report = buildScenarioReport(ctx.scenario, allSuites, Date.now() - ctx.startedAt); + updateLiveScenario(report); + }, + [updateLiveScenario] + ); + const updateSuiteProgress = useCallback( (suiteType: TestSuiteType, scenario: AutomationScenario) => { setProgress(prev => ({ @@ -898,6 +922,60 @@ export function useAutomationTest() { return featuresResult.payload?.device_id ?? ''; }, []); + /** + * Ensure device passphrase_protection matches the need, then obtain passphraseState. + * - When passphrase is non-empty: enable passphrase_protection if off, call getPassphraseState + * - When passphrase is empty/undefined: disable passphrase_protection if on, return undefined + * + * Pattern from SLIP39AddressValidation.tsx lines 616-639. + */ + const ensurePassphraseState = useCallback( + async ( + sdk: CoreApi, + connectId: string, + passphrase: string | undefined, + label: string + ): Promise => { + const featuresResult = await sdk.getFeatures(connectId); + if (!featuresResult.success) { + throw new Error('Failed to get device features for passphrase check'); + } + const features = featuresResult.payload; + + if (!passphrase) { + // Normal wallet: disable passphrase_protection if it's on + if (features?.passphrase_protection) { + addLog(`[${label}] Disabling passphrase_protection for normal wallet`); + await sdk.deviceSettings(connectId, { usePassphrase: false }); + } + return undefined; + } + + // Passphrase wallet: enable passphrase_protection if it's off + if (!features?.passphrase_protection) { + addLog(`[${label}] Enabling passphrase_protection for passphrase wallet`); + await sdk.deviceSettings(connectId, { usePassphrase: true }); + } + + addLog(`[${label}] Getting passphraseState for 「${passphrase}」 (currentRef="${currentPassphraseRef.current}")`); + const psResult = (await runWithRetry(`getPassphraseState:${label}`, () => + sdk.getPassphraseState(connectId, { + initSession: true, + useEmptyPassphrase: false, + }) + )) as { success: boolean; payload?: string }; + + if (!psResult.success) { + throw new Error(`getPassphraseState failed for passphrase 「${passphrase}」`); + } + + const state = psResult.payload; + addLog(`[${label}] Got passphraseState: "${state}" (type=${typeof state})`); + return state; + }, + [addLog, runWithRetry] + ); + const readMnemonicStoreContext = useCallback(async (): Promise => { if (!clientRef.current) { return null; @@ -941,7 +1019,8 @@ export function useAutomationTest() { slip39Case: SLIP39TestCaseData, methodData: SLIP39MethodData, expectedPath: string, - caseType: 'address' | 'pubkey' + caseType: 'address' | 'pubkey', + passphraseState?: string ): Promise => { const startedAt = Date.now(); const expected = extractComparisonValue( @@ -954,11 +1033,16 @@ export function useAutomationTest() { ); try { - const params = { + const params: Record = { ...(methodData.params || {}), path: expectedPath, showOnOneKey: false, }; + if (passphraseState != null && passphraseState !== '') { + params.passphraseState = passphraseState; + params.useEmptyPassphrase = false; + } + addLog(`[SDK_CALL] ${methodData.method} path=${expectedPath} passphraseState=${passphraseState != null ? `"${passphraseState}"` : 'undefined'} hasPS=${!!params.passphraseState}`); const result = (await runWithRetry(`${methodData.method}:${expectedPath}`, () => { const method = (sdk as Record)[methodData.method]; if (typeof method !== 'function') { @@ -1051,6 +1135,22 @@ export function useAutomationTest() { currentPassphrase: passphraseDisplay, })); + // Ensure device passphrase_protection matches, then get passphraseState + let passphraseState: string | undefined; + try { + passphraseState = await ensurePassphraseState(sdk, connectId, slip39Case.passphrase, 'SLIP39'); + } catch (error) { + addLog(`[ERROR] ensurePassphraseState failed: ${error}`); + results.push({ + title: `passphraseState for 「${passphraseDisplay}」`, + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: 0, + }); + notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); + continue; + } + for (const methodData of slip39Case.data) { const expectedMap = caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; @@ -1068,9 +1168,11 @@ export function useAutomationTest() { slip39Case, methodData, expectedPath, - caseType + caseType, + passphraseState ); results.push(caseResult); + notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); await delay(80); } } @@ -1089,7 +1191,7 @@ export function useAutomationTest() { Date.now() - startedAt ); }, - [runSdkMethodCase, setProgress, updateSuiteProgress] + [runSdkMethodCase, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] ); const runAutomationSdkBatchCase = useCallback( @@ -1101,7 +1203,8 @@ export function useAutomationTest() { sdkCase: AutomationSdkCase, methodCase: AutomationSdkMethodCase, expectedPath: string, - caseType: 'address' | 'pubkey' + caseType: 'address' | 'pubkey', + passphraseState?: string ): Promise => { const startedAt = Date.now(); const expected = extractExpectedByPath( @@ -1114,6 +1217,10 @@ export function useAutomationTest() { try { const params = buildSdkParamsForPath(methodCase, expectedPath); + if (passphraseState != null && passphraseState !== '') { + params.passphraseState = passphraseState; + params.useEmptyPassphrase = false; + } const result = (await runWithRetry(`${methodCase.method}:${expectedPath}`, () => { const method = (sdk as Record)[methodCase.method]; if (typeof method !== 'function') { @@ -1206,6 +1313,22 @@ export function useAutomationTest() { currentPassphrase: passphraseDisplay, })); + // Ensure device passphrase_protection matches, then get passphraseState + let passphraseState: string | undefined; + try { + passphraseState = await ensurePassphraseState(sdk, connectId, bip39Case.passphrase, 'BIP39_IMPORT'); + } catch (error) { + addLog(`[ERROR] ensurePassphraseState failed: ${error}`); + results.push({ + title: `passphraseState for 「${passphraseDisplay}」`, + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: 0, + }); + notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); + continue; + } + for (const methodCase of bip39Case.data) { const expectedPaths = Object.keys(methodCase.expectedByPath || {}); for (const expectedPath of expectedPaths) { @@ -1220,9 +1343,11 @@ export function useAutomationTest() { bip39Case, methodCase, expectedPath, - caseType + caseType, + passphraseState ); results.push(caseResult); + notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); await delay(80); } } @@ -1236,7 +1361,7 @@ export function useAutomationTest() { return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); }, - [runAutomationSdkBatchCase, setProgress, updateSuiteProgress] + [runAutomationSdkBatchCase, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] ); const runBip39CreateDynamicSuite = useCallback( @@ -1281,6 +1406,22 @@ export function useAutomationTest() { currentPassphrase: passphraseDisplay, })); + // Ensure device passphrase_protection matches, then get passphraseState + let passphraseState: string | undefined; + try { + passphraseState = await ensurePassphraseState(sdk, connectId, passphraseLiteral, 'BIP39_CREATE'); + } catch (error) { + addLog(`[ERROR] ensurePassphraseState failed: ${error}`); + results.push({ + title: `passphraseState for 「${passphraseDisplay}」`, + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: 0, + }); + notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); + continue; + } + const seed = mnemonicToSeed(mnemonicWords.join(' '), passphraseLiteral); for (const probe of probes) { const startedAtCase = Date.now(); @@ -1292,15 +1433,21 @@ export function useAutomationTest() { throw new Error(`Missing expected ${caseType} value for ${probe.caseName}`); } + const sdkParams: Record = { + path: probe.path, + showOnOneKey: false, + }; + if (passphraseState != null && passphraseState !== '') { + sdkParams.passphraseState = passphraseState; + sdkParams.useEmptyPassphrase = false; + } + const result = (await runWithRetry(`${probe.method}:${probe.path}`, () => { const method = (sdk as Record)[probe.method]; if (typeof method !== 'function') { throw new Error(`SDK method not found: ${probe.method}`); } - return (method as (...args: unknown[]) => Promise)(connectId, deviceId, { - path: probe.path, - showOnOneKey: false, - }); + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, sdkParams); })) as { success: boolean; payload?: unknown }; if (!result.success) { @@ -1360,6 +1507,7 @@ export function useAutomationTest() { }); } + notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); await delay(80); } } @@ -1372,7 +1520,7 @@ export function useAutomationTest() { return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); }, - [runWithRetry, setProgress, updateSuiteProgress] + [runWithRetry, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] ); const runSlip39CreateDynamicSuite = useCallback( @@ -1432,6 +1580,22 @@ export function useAutomationTest() { currentPassphrase: passphraseDisplay, })); + // Ensure device passphrase_protection matches, then get passphraseState + let passphraseState: string | undefined; + try { + passphraseState = await ensurePassphraseState(sdk, connectId, passphraseLiteral, 'SLIP39_CREATE'); + } catch (error) { + addLog(`[ERROR] ensurePassphraseState failed: ${error}`); + results.push({ + title: `passphraseState for 「${passphraseDisplay}」`, + passed: false, + error: error instanceof Error ? error.message : String(error), + duration: 0, + }); + notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); + continue; + } + for (const methodData of templateCase.data) { const expectedMap = caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; @@ -1481,16 +1645,22 @@ export function useAutomationTest() { throw new Error('Generated expected value is empty'); } + const sdkMethodParams: Record = { + ...(methodData.params || {}), + path: expectedPath, + showOnOneKey: false, + }; + if (passphraseState != null && passphraseState !== '') { + sdkMethodParams.passphraseState = passphraseState; + sdkMethodParams.useEmptyPassphrase = false; + } + const sdkResult = (await runWithRetry(`${methodData.method}:${expectedPath}`, () => { const method = (sdk as Record)[methodData.method]; if (typeof method !== 'function') { throw new Error(`SDK method not found: ${methodData.method}`); } - return (method as (...args: unknown[]) => Promise)(connectId, deviceId, { - ...(methodData.params || {}), - path: expectedPath, - showOnOneKey: false, - }); + return (method as (...args: unknown[]) => Promise)(connectId, deviceId, sdkMethodParams); })) as { success: boolean; payload?: unknown }; if (!sdkResult.success) { @@ -1557,6 +1727,7 @@ export function useAutomationTest() { }); } + notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); await delay(80); } } @@ -1575,7 +1746,7 @@ export function useAutomationTest() { Date.now() - startedAt ); }, - [runWithRetry, setProgress, updateSuiteProgress] + [runWithRetry, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] ); @@ -1639,6 +1810,7 @@ export function useAutomationTest() { error: 'getPassphraseState failed', duration: Date.now() - startedAt, }); + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); continue; } @@ -1660,6 +1832,7 @@ export function useAutomationTest() { error: `mockDevice.${method} not found`, duration: Date.now() - caseStart, }); + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); continue; } @@ -1681,6 +1854,7 @@ export function useAutomationTest() { error: `SDK method ${method} not found`, duration: Date.now() - caseStart, }); + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); continue; } @@ -1720,6 +1894,7 @@ export function useAutomationTest() { }); } + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); await delay(80); } } @@ -1798,6 +1973,9 @@ export function useAutomationTest() { config.passphraseVariants ); nextSuiteResults.push(sdkAddressResult); + if (liveScenarioCtxRef.current) { + liveScenarioCtxRef.current.completedSuiteResults = [...nextSuiteResults]; + } markSuiteCompleted(); } @@ -1844,6 +2022,9 @@ export function useAutomationTest() { config.passphraseVariants ); nextSuiteResults.push(sdkPubkeyResult); + if (liveScenarioCtxRef.current) { + liveScenarioCtxRef.current.completedSuiteResults = [...nextSuiteResults]; + } markSuiteCompleted(); } @@ -1860,6 +2041,9 @@ export function useAutomationTest() { deviceId ); nextSuiteResults.push(specialPassphraseResult); + if (liveScenarioCtxRef.current) { + liveScenarioCtxRef.current.completedSuiteResults = [...nextSuiteResults]; + } markSuiteCompleted(); } @@ -2005,6 +2189,10 @@ export function useAutomationTest() { ? getBip39ImportProbeAddress(scenario) : getSlip39ImportProbeAddress(scenario); + addLog( + `Debug import probe [${scenario.id}]: expected=${expectedAddress || '(none)'}, actual=${currentEvmAddress || '(none)'}` + ); + if (!currentEvmAddress) { scenarioDecisions.set(scenario.id, { matched: false, @@ -2099,6 +2287,17 @@ export function useAutomationTest() { const matchedCount = Array.from(scenarioDecisions.values()).filter(item => item.matched).length; addLog(`Debug matched scenarios: ${matchedCount}/${selectedScenarios.length}`); + + addLog('--- Debug scenario match summary ---'); + for (const scenario of selectedScenarios) { + const decision = scenarioDecisions.get(scenario.id); + if (decision) { + const symbol = decision.matched ? '✓' : '✗'; + const detail = decision.reason || 'matched'; + addLog(` ${symbol} ${scenario.id}: ${detail}`); + } + } + if (matchedCount === 0) { addLog('Debug mode found no matching scenarios; only skipped reports will be generated'); } @@ -2156,6 +2355,7 @@ export function useAutomationTest() { ); const { connectId } = selectedDevice; const startTime = Date.now(); + initLiveReport({ totalScenarios: selectedScenarios.length, startTime }); const scenarioResults: ScenarioReportResult[] = []; let fatalErrorMessage = ''; @@ -2223,6 +2423,11 @@ export function useAutomationTest() { ); const selectedSuites = buildSelectedSuites(scenario, config.testSuites); const scenarioStartedAt = Date.now(); + liveScenarioCtxRef.current = { + scenario, + startedAt: scenarioStartedAt, + completedSuiteResults: [], + }; let suiteResults: TestSuiteResult[] = []; let scenarioReport: ScenarioReportResult; @@ -2414,6 +2619,7 @@ export function useAutomationTest() { } scenarioResults.push(scenarioReport); + updateLiveScenario(scenarioReport); markScenarioCompleted(); if (shouldStopBySuiteFailure(config.stopOnFirstError, scenarioReport.suiteResults)) { @@ -2449,6 +2655,7 @@ export function useAutomationTest() { }; setReport(report); + setLiveReport(report); setProgress(prev => ({ ...prev, status: fatalErrorMessage ? 'error' : 'done', @@ -2484,9 +2691,12 @@ export function useAutomationTest() { resolveDebugRunContext, runSelectedSdkSuites, selectedDevice, + initLiveReport, + setLiveReport, setProgress, setReport, setupUIListener, + updateLiveScenario, ] ); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx index 6b181771a..951e36584 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/PassphraseSelector.tsx @@ -1,4 +1,5 @@ -import { Card, Text, XStack, YStack } from 'tamagui'; +import { Check as CheckIcon } from '@tamagui/lucide-icons'; +import { Checkbox, Text, XStack, YStack } from 'tamagui'; import { ALL_PASSPHRASE_VARIANT_IDS, @@ -6,7 +7,6 @@ import { } from '../../../services/phonePilotMcp/types'; import { toggleValue } from '../utils'; import { PanelActions } from './PanelActions'; -import { SelectableRow } from './SelectableRow'; import type { AutomationTestConfig, @@ -32,10 +32,10 @@ export function PassphraseSelector({ }; return ( - + - 隐藏钱包密码短语变体 + Passphrase 变体 setConfig(prev => ({ ...prev, passphraseVariants: [] }))} /> - - - 当前自动化报告会展示 literal。SLIP39 约定:`passphrase_1 = 12345`,`passphrase_2 = - onekey`。 - - - - {ALL_PASSPHRASE_VARIANT_IDS.map(variantId => ( - togglePassphraseVariant(variantId)} - /> - ))} - + + {ALL_PASSPHRASE_VARIANT_IDS.map(variantId => { + const checked = config.passphraseVariants.includes(variantId); + return ( + togglePassphraseVariant(variantId)} + > + + + + + + {PASSPHRASE_VARIANT_INFO[variantId].label} + + ); + })} + ); } diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx index 8f21a063d..9ead21dd1 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ReportTree.tsx @@ -3,7 +3,7 @@ import { useAtomValue } from 'jotai'; import { Text, YStack } from 'tamagui'; import { - automationReportAtom, + effectiveReportAtom, reportExpandAllAtom, reportFilterAtom, } from '../../../atoms/automationAtoms'; @@ -12,7 +12,7 @@ import { ReportSummaryBar } from './ReportSummaryBar'; import { ReportScenarioNode } from './ReportScenarioNode'; export function ReportTree() { - const report = useAtomValue(automationReportAtom); + const report = useAtomValue(effectiveReportAtom); const filter = useAtomValue(reportFilterAtom); const expandAll = useAtomValue(reportExpandAllAtom); diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx index 4fc762005..f36bb880d 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/RunnerBehaviorConfig.tsx @@ -24,7 +24,7 @@ export function RunnerBehaviorConfig({ checked={config.stopOnFirstError} disabled={isRunning} title="首错即停" - description="默认按 suite 粒度继续执行;启用后任一场景失败即停止后续场景。" + description="启用后,任一 suite 失败将跳过当前场景剩余 suite 并停止后续场景。关闭则继续执行所有场景。" onToggle={() => setConfig(prev => ({ ...prev, diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx index 864d5001f..3a6aedcfe 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ScenarioSelector.tsx @@ -1,29 +1,23 @@ -import { useMemo } from 'react'; -import { Card, Text, XStack, YStack } from 'tamagui'; +import { useMemo, useState } from 'react'; +import { Check as CheckIcon } from '@tamagui/lucide-icons'; +import { Checkbox, Text, XStack, YStack } from 'tamagui'; -import { TEST_SUITE_INFO } from '../../../services/phonePilotMcp/types'; import { PanelActions } from './PanelActions'; -import { SelectableRow } from './SelectableRow'; import type { AutomationScenario, AutomationScenarioId, AutomationTestConfig, - TestSuiteType, } from '../../../services/phonePilotMcp/types'; const JIRA_ORDER = ['OK-26053', 'OK-26054', 'OK-5504', 'OK-40090'] as const; -function formatScenarioSuiteSummary(scenario: AutomationScenario): string { - const labelMap: Record = { - deviceFlow: 'Device Flow', - sdkAddressBatch: 'Address', - sdkPubkeyBatch: 'Pubkey', - specialPassphrase: 'Special Passphrase', - }; - - return scenario.supportedSuites.map(suiteType => labelMap[suiteType] ?? suiteType).join(' + '); -} +const JIRA_LABELS: Record = { + 'OK-26053': '创建 BIP39 钱包', + 'OK-26054': '导入 BIP39 钱包', + 'OK-5504': '创建 SLIP39 钱包', + 'OK-40090': '导入 SLIP39 钱包', +}; export function ScenarioSelector({ config, @@ -38,6 +32,8 @@ export function ScenarioSelector({ updater: AutomationTestConfig | ((prev: AutomationTestConfig) => AutomationTestConfig) ) => void; }) { + const [expandedGroups, setExpandedGroups] = useState>(new Set()); + const scenariosByJira = useMemo(() => { const groupMap = new Map(); scenarios.forEach(scenario => { @@ -61,8 +57,20 @@ export function ScenarioSelector({ })); }; + const toggleGroup = (jiraKey: string) => { + setExpandedGroups(prev => { + const next = new Set(prev); + if (next.has(jiraKey)) { + next.delete(jiraKey); + } else { + next.add(jiraKey); + } + return next; + }); + }; + return ( - + Jira 场景矩阵 @@ -78,55 +86,110 @@ export function ScenarioSelector({ onClear={() => setConfig(prev => ({ ...prev, scenarioIds: [] }))} /> - {scenariosByJira.map(group => ( - - - - - - {group.jiraKey} + {scenariosByJira.map(group => { + const isExpanded = expandedGroups.has(group.jiraKey); + const selectedCount = group.scenarios.filter(s => + config.scenarioIds.includes(s.id) + ).length; + + return ( + + toggleGroup(group.jiraKey)} + > + + {isExpanded ? '▾' : '▸'} + + + {JIRA_LABELS[group.jiraKey] || group.jiraKey} + + + ({selectedCount}/{group.scenarios.length}) + + + { + e.stopPropagation(); + }} + > + { + if (isRunning) return; + setConfig(prev => ({ + ...prev, + scenarioIds: Array.from( + new Set([...prev.scenarioIds, ...group.scenarios.map(item => item.id)]) + ), + })); + }} + > + 全选 - - {group.scenarios.length} 个 concrete case + + | - - - setConfig(prev => ({ - ...prev, - scenarioIds: Array.from( - new Set([...prev.scenarioIds, ...group.scenarios.map(item => item.id)]) - ), - })) - } - onClear={() => - setConfig(prev => ({ - ...prev, - scenarioIds: prev.scenarioIds.filter( - id => !group.scenarios.some(item => item.id === id) - ), - })) - } - /> + { + if (isRunning) return; + setConfig(prev => ({ + ...prev, + scenarioIds: prev.scenarioIds.filter( + id => !group.scenarios.some(item => item.id === id) + ), + })); + }} + > + 清空 + + - - {group.scenarios.map(scenario => ( - toggleScenario(scenario.id)} - /> - ))} - + {isExpanded && ( + + {group.scenarios.map(scenario => { + const checked = config.scenarioIds.includes(scenario.id); + return ( + toggleScenario(scenario.id)} + > + + + + + + {scenario.title} + + ); + })} + + )} - - ))} + ); + })} ); } diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx index 9be445ca3..625e58ea6 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/SuiteSelector.tsx @@ -1,9 +1,9 @@ -import { Text, XStack, YStack } from 'tamagui'; +import { Check as CheckIcon } from '@tamagui/lucide-icons'; +import { Checkbox, Text, XStack, YStack } from 'tamagui'; import { TEST_SUITE_INFO } from '../../../services/phonePilotMcp/types'; import { toggleValue } from '../utils'; import { PanelActions } from './PanelActions'; -import { SelectableRow } from './SelectableRow'; import type { AutomationTestConfig, TestSuiteType } from '../../../services/phonePilotMcp/types'; @@ -25,11 +25,13 @@ export function SuiteSelector({ })); }; + const suiteTypes = Object.keys(TEST_SUITE_INFO) as TestSuiteType[]; + return ( - + - 执行 suite + 执行 Suite setConfig(prev => ({ ...prev, testSuites: [] }))} /> - - {(Object.keys(TEST_SUITE_INFO) as TestSuiteType[]).map(suiteType => ( - toggleTestSuite(suiteType)} - /> - ))} - + + {suiteTypes.map(suiteType => { + const checked = config.testSuites.includes(suiteType); + const info = TEST_SUITE_INFO[suiteType]; + return ( + toggleTestSuite(suiteType)} + > + + + + + + + {info.label} + {info.description} + + + ); + })} + ); } diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/components/TabSelector.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/components/TabSelector.tsx new file mode 100644 index 000000000..a318712b4 --- /dev/null +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/TabSelector.tsx @@ -0,0 +1,43 @@ +import { Text, XStack } from 'tamagui'; + +interface TabItem { + id: string; + label: string; +} + +export function TabSelector({ + tabs, + activeTab, + onTabChange, +}: { + tabs: TabItem[]; + activeTab: string; + onTabChange: (id: string) => void; +}) { + return ( + + {tabs.map(tab => { + const isActive = tab.id === activeTab; + return ( + onTabChange(tab.id)} + > + + {tab.label} + + + ); + })} + + ); +} diff --git a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx index a68224fb9..ac87eb586 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/index.tsx @@ -1,5 +1,6 @@ +import { useCallback, useState } from 'react'; import { useAtom, useAtomValue } from 'jotai'; -import { Button, Separator, Stack, Text, XStack } from 'tamagui'; +import { Button, ScrollView, Separator, Stack, Text, XStack, YStack } from 'tamagui'; import PageView from '../../components/ui/Page'; import PanelView from '../../components/ui/Panel'; @@ -10,6 +11,7 @@ import { automationConfigAtom, automationProgressAtom, canStartAutomationAtom, + effectiveReportAtom, isAutomationRunningAtom, phonePilotConnectionStateAtom, progressPercentageAtom, @@ -21,9 +23,14 @@ import { ScenarioSelector } from './components/ScenarioSelector'; import { SuiteSelector } from './components/SuiteSelector'; import { PassphraseSelector } from './components/PassphraseSelector'; import { RunnerBehaviorConfig } from './components/RunnerBehaviorConfig'; -import { CurrentScenarioCard } from './components/CurrentScenarioCard'; import { ReportTree } from './components/ReportTree'; import { LogsSection } from './components/LogsSection'; +import { TabSelector } from './components/TabSelector'; + +const REPORT_TABS = [ + { id: 'report', label: '测试报告' }, + { id: 'logs', label: '运行日志' }, +]; function AutomationTestContent() { const automation = useAutomationTest(); @@ -33,10 +40,24 @@ function AutomationTestContent() { const canStart = useAtomValue(canStartAutomationAtom); const progress = useAtomValue(automationProgressAtom); const progressPercentage = useAtomValue(progressPercentageAtom); + const report = useAtomValue(effectiveReportAtom); + const [activeTab, setActiveTab] = useState('report'); + + const handleExportReport = useCallback(() => { + if (!report) return; + const json = JSON.stringify(report, null, 2); + const blob = new Blob([json], { type: 'application/json' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `automation-report-${new Date().toISOString().slice(0, 19).replace(/:/g, '-')}.json`; + a.click(); + URL.revokeObjectURL(url); + }, [report]); return ( - {/* Panel 1: PhonePilot Connection & Test Control */} + {/* Control Bar */} + )} + + + {activeTab === 'report' ? : } + + + + ); }