From 14d3e927e4cdea421303453cccd734b9536e765d Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 5 Feb 2026 16:09:44 +0800 Subject: [PATCH 01/28] 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 02/28] 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 03/28] 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 04/28] 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 05/28] 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 06/28] 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 07/28] 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' ? : } + + + + ); } From ec89c40dc0194f84102170db86fbdb59a7fe33bd Mon Sep 17 00:00:00 2001 From: wabicai Date: Mon, 16 Mar 2026 20:31:42 +0800 Subject: [PATCH 08/28] feat: replace skipResetWallet with DevicePreparationMode tri-state selector Add three device preparation modes (full/skipReset/sdkOnly) to give users finer control over which steps to run during automation testing. The sdkOnly mode skips PhonePilot entirely and runs SDK tests directly. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../expo-example/src/atoms/automationAtoms.ts | 7 +- .../src/services/phonePilotMcp/types.ts | 23 ++ .../automationTest/useAutomationTest.ts | 206 +++++++++++------- .../components/RunnerBehaviorConfig.tsx | 28 ++- .../components/ScenarioSelector.tsx | 12 +- 5 files changed, 190 insertions(+), 86 deletions(-) diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts index 5fc1ea6e2..7f847cb28 100644 --- a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -21,6 +21,7 @@ const defaultConfig: AutomationTestConfig = { stopOnFirstError: false, retryCount: 1, delayBetweenTests: 500, + devicePreparationMode: 'full', }; const defaultProgress: TestProgress = { @@ -137,7 +138,11 @@ export const canStartAutomationAtom = atom(get => { const isConnected = get(phonePilotConnectionStateAtom) === 'connected'; const isRunning = get(isAutomationRunningAtom); const config = get(automationConfigAtom); - return isConnected && !isRunning && config.scenarioIds.length > 0 && config.testSuites.length > 0; + const hasScenarios = config.scenarioIds.length > 0 && config.testSuites.length > 0; + if (config.devicePreparationMode === 'sdkOnly') { + return !isRunning && hasScenarios; + } + return isConnected && !isRunning && hasScenarios; }); export const progressPercentageAtom = atom(get => { 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 8f4619373..667c55ce7 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -93,6 +93,28 @@ export interface MnemonicStoreResult { flowType?: 'create' | 'import' | 'manual'; } +export type DevicePreparationMode = 'full' | 'skipReset' | 'sdkOnly'; + +export const DEVICE_PREPARATION_MODE_INFO: Record< + DevicePreparationMode, + { label: string; description: string } +> = { + full: { + label: '完整流程', + description: '重置钱包 → 创建/导入钱包 → SDK 测试', + }, + skipReset: { + label: '跳过重置', + description: '设备已恢复出厂,跳过重置,执行创建/导入 → SDK 测试', + }, + sdkOnly: { + label: '仅 SDK 测试', + description: '设备已有正确钱包,跳过所有 PhonePilot,直接 SDK 测试', + }, +}; + +export const ALL_DEVICE_PREPARATION_MODES: DevicePreparationMode[] = ['full', 'skipReset', 'sdkOnly']; + export type JiraIssueKey = 'OK-26053' | 'OK-26054' | 'OK-5504' | 'OK-40090'; export type PassphraseVariantId = 'normal' | 'passphrase_empty' | 'passphrase_1' | 'passphrase_2'; @@ -192,6 +214,7 @@ export interface AutomationTestConfig { stopOnFirstError: boolean; retryCount: number; delayBetweenTests: number; + devicePreparationMode: DevicePreparationMode; } export interface TestProgress { 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 ef377a7a3..02c34c775 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -647,9 +647,19 @@ export function useAutomationTest() { } addLog(`Sequence count: ${health.sequenceIds.length}`); - const success = await client.connect(); - addLog(success ? 'PhonePilot connected' : 'PhonePilot connection failed'); - return success; + const mcpConnected = await client.connect(); + if (!mcpConnected) { + addLog('PhonePilot MCP connection failed'); + return false; + } + + try { + await client.armConnect(); + addLog('PhonePilot connected (MCP + arm)'); + } catch (error) { + addLog(`Warning: arm-connect failed (${error}), sequences requiring arm may fail`); + } + return true; }, [ addLog, config.phonePilotUrl, @@ -713,10 +723,21 @@ export function useAutomationTest() { currentPassphraseRef.current || '(empty)' }"` ); - sdk.uiResponse({ - type: UI_RESPONSE.RECEIVE_PASSPHRASE, - payload: { value: currentPassphraseRef.current || '' }, - }); + setTimeout(async () => { + sdk.uiResponse({ + type: UI_RESPONSE.RECEIVE_PASSPHRASE, + payload: { value: currentPassphraseRef.current ?? '' }, + }); + // Pro device needs physical confirmation after passphrase entry + if (clientRef.current) { + try { + await clientRef.current.confirmAction(); + addLog('Passphrase confirmed via PhonePilot'); + } catch (error) { + addLog(`Passphrase confirm failed: ${error}`); + } + } + }, 200); break; default: break; @@ -919,7 +940,11 @@ export function useAutomationTest() { if (!featuresResult.success) { throw new Error('Failed to get device features'); } - return featuresResult.payload?.device_id ?? ''; + const features = featuresResult.payload; + if (features?.initialized === false) { + throw new Error('Device is not initialized (factory reset state). Please create or import a wallet first, or switch to "完整流程" / "跳过重置" mode.'); + } + return features?.device_id ?? ''; }, []); /** @@ -929,51 +954,48 @@ export function useAutomationTest() { * * Pattern from SLIP39AddressValidation.tsx lines 616-639. */ + /** + * Passphrase state management — follows the exact same pattern as SLIP39BatchAddressTest. + * + * @param features - device features obtained BEFORE the passphrase loop (not from a fresh getFeatures call) + */ const ensurePassphraseState = useCallback( async ( sdk: CoreApi, connectId: string, + features: Record | undefined, 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; + // Step 1: Toggle passphrase_protection — exact same logic as SLIP39BatchAddressTest + if (features?.passphrase_protection === true && passphrase == null) { + addLog(`[${label}] Disabling passphrase_protection for normal wallet`); + await sdk.deviceSettings(connectId, { usePassphrase: false }); } - - // Passphrase wallet: enable passphrase_protection if it's off - if (!features?.passphrase_protection) { + if (!features?.passphrase_protection && passphrase != null) { 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, { + // Step 2: Get passphraseState — only when passphrase != null + if (passphrase != null) { + addLog(`[${label}] Getting passphraseState for 「${passphrase}」`); + const passphraseStateRes = await sdk.getPassphraseState(connectId, { initSession: true, useEmptyPassphrase: false, - }) - )) as { success: boolean; payload?: string }; + }); - if (!psResult.success) { - throw new Error(`getPassphraseState failed for passphrase 「${passphrase}」`); + if (!passphraseStateRes.success) { + throw new Error(`getPassphraseState failed for passphrase 「${passphrase}」`); + } + + addLog(`[${label}] Got passphraseState: "${passphraseStateRes.payload}"`); + return passphraseStateRes.payload; } - const state = psResult.payload; - addLog(`[${label}] Got passphraseState: "${state}" (type=${typeof state})`); - return state; + return undefined; }, - [addLog, runWithRetry] + [addLog] ); const readMnemonicStoreContext = useCallback(async (): Promise => { @@ -995,6 +1017,7 @@ export function useAutomationTest() { sdk.evmGetAddress(connectId, deviceId, { path: EVM_ADDRESS_PATH, showOnOneKey: false, + useEmptyPassphrase: true, }) )) as { success: boolean; payload?: unknown }; @@ -1037,11 +1060,9 @@ export function useAutomationTest() { ...(methodData.params || {}), path: expectedPath, showOnOneKey: false, + passphraseState, + useEmptyPassphrase: !slip39Case.passphrase, }; - 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]; @@ -1126,9 +1147,13 @@ export function useAutomationTest() { ); } + // Get features ONCE before passphrase loop (same as SLIP39BatchAddressTest) + const featuresResult = await sdk.getFeatures(connectId); + const deviceFeatures = featuresResult.success ? featuresResult.payload : undefined; + const results: TestCaseResult[] = []; for (const slip39Case of slip39Cases) { - currentPassphraseRef.current = slip39Case.passphrase || ''; + currentPassphraseRef.current = slip39Case.passphrase ?? ''; const passphraseDisplay = formatPassphraseDisplay(slip39Case.passphrase); setProgress(prev => ({ ...prev, @@ -1138,7 +1163,7 @@ export function useAutomationTest() { // Ensure device passphrase_protection matches, then get passphraseState let passphraseState: string | undefined; try { - passphraseState = await ensurePassphraseState(sdk, connectId, slip39Case.passphrase, 'SLIP39'); + passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures, slip39Case.passphrase, 'SLIP39'); } catch (error) { addLog(`[ERROR] ensurePassphraseState failed: ${error}`); results.push({ @@ -1217,10 +1242,8 @@ export function useAutomationTest() { try { const params = buildSdkParamsForPath(methodCase, expectedPath); - if (passphraseState != null && passphraseState !== '') { - params.passphraseState = passphraseState; - params.useEmptyPassphrase = false; - } + params.passphraseState = passphraseState; + params.useEmptyPassphrase = !sdkCase.passphrase; const result = (await runWithRetry(`${methodCase.method}:${expectedPath}`, () => { const method = (sdk as Record)[methodCase.method]; if (typeof method !== 'function') { @@ -1304,9 +1327,12 @@ export function useAutomationTest() { ); } + const featuresResult2 = await sdk.getFeatures(connectId); + const deviceFeatures2 = featuresResult2.success ? featuresResult2.payload : undefined; + const results: TestCaseResult[] = []; for (const bip39Case of bip39Cases) { - currentPassphraseRef.current = bip39Case.passphrase || ''; + currentPassphraseRef.current = bip39Case.passphrase ?? ''; const passphraseDisplay = formatPassphraseDisplay(bip39Case.passphrase); setProgress(prev => ({ ...prev, @@ -1316,7 +1342,7 @@ export function useAutomationTest() { // Ensure device passphrase_protection matches, then get passphraseState let passphraseState: string | undefined; try { - passphraseState = await ensurePassphraseState(sdk, connectId, bip39Case.passphrase, 'BIP39_IMPORT'); + passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures2, bip39Case.passphrase, 'BIP39_IMPORT'); } catch (error) { addLog(`[ERROR] ensurePassphraseState failed: ${error}`); results.push({ @@ -1392,6 +1418,9 @@ export function useAutomationTest() { ? [{ method: 'evmGetAddress', caseName: 'evmGetAddress', path: EVM_ADDRESS_PATH }] : BIP39_CREATE_PUBKEY_PROBES; + const featuresResult3 = await sdk.getFeatures(connectId); + const deviceFeatures3 = featuresResult3.success ? featuresResult3.payload : undefined; + const results: TestCaseResult[] = []; for (const variantId of selectedPassphraseVariants) { if (!runningRef.current) { @@ -1400,7 +1429,7 @@ export function useAutomationTest() { const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); - currentPassphraseRef.current = passphraseLiteral || ''; + currentPassphraseRef.current = passphraseLiteral ?? ''; setProgress(prev => ({ ...prev, currentPassphrase: passphraseDisplay, @@ -1409,7 +1438,7 @@ export function useAutomationTest() { // Ensure device passphrase_protection matches, then get passphraseState let passphraseState: string | undefined; try { - passphraseState = await ensurePassphraseState(sdk, connectId, passphraseLiteral, 'BIP39_CREATE'); + passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures3, passphraseLiteral, 'BIP39_CREATE'); } catch (error) { addLog(`[ERROR] ensurePassphraseState failed: ${error}`); results.push({ @@ -1436,11 +1465,9 @@ export function useAutomationTest() { const sdkParams: Record = { path: probe.path, showOnOneKey: false, + passphraseState, + useEmptyPassphrase: !passphraseLiteral, }; - 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]; @@ -1566,6 +1593,9 @@ export function useAutomationTest() { ); } + const featuresResult4 = await sdk.getFeatures(connectId); + const deviceFeatures4 = featuresResult4.success ? featuresResult4.payload : undefined; + const results: TestCaseResult[] = []; for (const variantId of variantIds) { if (!runningRef.current) { @@ -1574,7 +1604,7 @@ export function useAutomationTest() { const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); - currentPassphraseRef.current = passphraseLiteral || ''; + currentPassphraseRef.current = passphraseLiteral ?? ''; setProgress(prev => ({ ...prev, currentPassphrase: passphraseDisplay, @@ -1583,7 +1613,7 @@ export function useAutomationTest() { // Ensure device passphrase_protection matches, then get passphraseState let passphraseState: string | undefined; try { - passphraseState = await ensurePassphraseState(sdk, connectId, passphraseLiteral, 'SLIP39_CREATE'); + passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures4, passphraseLiteral, 'SLIP39_CREATE'); } catch (error) { addLog(`[ERROR] ensurePassphraseState failed: ${error}`); results.push({ @@ -1649,11 +1679,9 @@ export function useAutomationTest() { ...(methodData.params || {}), path: expectedPath, showOnOneKey: false, + passphraseState, + useEmptyPassphrase: !passphraseLiteral, }; - if (passphraseState != null && passphraseState !== '') { - sdkMethodParams.passphraseState = passphraseState; - sdkMethodParams.useEmptyPassphrase = false; - } const sdkResult = (await runWithRetry(`${methodData.method}:${expectedPath}`, () => { const method = (sdk as Record)[methodData.method]; @@ -2331,7 +2359,9 @@ export function useAutomationTest() { return; } - if (connectionState !== 'connected') { + const needsPhonePilot = config.devicePreparationMode !== 'sdkOnly'; + + if (needsPhonePilot && connectionState !== 'connected') { addLog('PhonePilot not connected, connecting...'); const connected = await connectPhonePilot(); if (!connected) { @@ -2359,26 +2389,32 @@ export function useAutomationTest() { const scenarioResults: ScenarioReportResult[] = []; let fatalErrorMessage = ''; - const health = await refreshPhonePilotHealth(); - if (!health) { - runningRef.current = false; - setProgress(prev => ({ - ...prev, - status: 'error', - errorMessage: 'PhonePilot health check failed before automation start', - })); - addLog('PhonePilot health check failed before automation start'); - return; + let health: HealthCheckResponse | null = null; + if (needsPhonePilot) { + health = await refreshPhonePilotHealth(); + if (!health) { + runningRef.current = false; + setProgress(prev => ({ + ...prev, + status: 'error', + errorMessage: 'PhonePilot health check failed before automation start', + })); + addLog('PhonePilot health check failed before automation start'); + return; + } } 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}`); + addLog(`Device preparation mode: ${config.devicePreparationMode}`); + if (health) { + 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'); @@ -2518,7 +2554,9 @@ export function useAutomationTest() { 'failed' ); } else { - const resetPreparation = await executeResetPreparation(scenarioIndex, scenarioHealth); + const resetPreparation = config.devicePreparationMode === 'skipReset' + ? { success: true, suiteResult: createSkippedSuiteResult('deviceFlow', 'Device Reset', 'Skipped by user config (skipReset)') } + : await executeResetPreparation(scenarioIndex, scenarioHealth); if (!resetPreparation.success) { if (selectedSuites.includes('deviceFlow')) { suiteResults.push(resetPreparation.suiteResult); @@ -2543,10 +2581,12 @@ export function useAutomationTest() { 'failed' ); } else { - const preparation = await executeScenarioPreparation(scenario, { - health: scenarioHealth, - clearMnemonicStore: true, - }); + const preparation = config.devicePreparationMode === 'skipReset' + ? { success: true, suiteResult: createSkippedSuiteResult('deviceFlow', 'Device Preparation', 'Skipped by user config (skipReset)') } + : await executeScenarioPreparation(scenario, { + health: scenarioHealth, + clearMnemonicStore: true, + }); if (selectedSuites.includes('deviceFlow')) { suiteResults.push(preparation.suiteResult); @@ -2701,8 +2741,12 @@ export function useAutomationTest() { ); const startAutomation = useCallback(async (): Promise => { - await runAutomation('full'); - }, [runAutomation]); + if (config.devicePreparationMode === 'sdkOnly') { + await runAutomation('debug'); + } else { + await runAutomation('full'); + } + }, [config.devicePreparationMode, runAutomation]); const startDebugAutomation = useCallback(async (): Promise => { await runAutomation('debug'); 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 f36bb880d..e40f20263 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 @@ -2,7 +2,12 @@ import { Input, Label, Text, YStack } from 'tamagui'; import { SelectableRow } from './SelectableRow'; -import type { AutomationTestConfig } from '../../../services/phonePilotMcp/types'; +import { + ALL_DEVICE_PREPARATION_MODES, + DEVICE_PREPARATION_MODE_INFO, +} from '../../../services/phonePilotMcp/types'; + +import type { AutomationTestConfig, DevicePreparationMode } from '../../../services/phonePilotMcp/types'; export function RunnerBehaviorConfig({ config, @@ -20,6 +25,27 @@ export function RunnerBehaviorConfig({ Runner 行为 + + + {ALL_DEVICE_PREPARATION_MODES.map((mode: DevicePreparationMode) => { + const info = DEVICE_PREPARATION_MODE_INFO[mode]; + return ( + + setConfig(prev => ({ + ...prev, + devicePreparationMode: mode, + })) + } + /> + ); + })} + {isExpanded && ( - + {group.scenarios.map(scenario => { const checked = config.scenarioIds.includes(scenario.id); return ( @@ -166,7 +166,12 @@ export function ScenarioSelector({ key={scenario.id} alignItems="center" gap="$2" - paddingVertical="$1" + paddingVertical="$1.5" + paddingHorizontal="$2" + borderRadius="$3" + borderWidth={1} + borderColor={checked ? '$blue8' : '$gray5'} + backgroundColor={checked ? '$blue2' : 'transparent'} opacity={isRunning ? 0.5 : 1} cursor={isRunning ? 'not-allowed' : 'pointer'} onPress={isRunning ? undefined : () => toggleScenario(scenario.id)} @@ -176,12 +181,13 @@ export function ScenarioSelector({ checked={checked} disabled={isRunning} pointerEvents="none" + borderRadius="$1" > - {scenario.title} + {scenario.title} ); })} From 9253fdabf62fd94429e60ffb3df3b6c23e8e7000 Mon Sep 17 00:00:00 2001 From: wabicai Date: Mon, 16 Mar 2026 20:31:54 +0800 Subject: [PATCH 09/28] fix: skipReset mode should still run wallet preparation (create/import) skipReset only skips the factory-reset step. The wallet creation/import via executeScenarioPreparation must still run, otherwise the device stays uninitialized and SDK tests fail with Failure_NotInitialized. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/testTools/automationTest/useAutomationTest.ts | 4 +--- 1 file changed, 1 insertion(+), 3 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 02c34c775..6ed6ad6c6 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -2581,9 +2581,7 @@ export function useAutomationTest() { 'failed' ); } else { - const preparation = config.devicePreparationMode === 'skipReset' - ? { success: true, suiteResult: createSkippedSuiteResult('deviceFlow', 'Device Preparation', 'Skipped by user config (skipReset)') } - : await executeScenarioPreparation(scenario, { + const preparation = await executeScenarioPreparation(scenario, { health: scenarioHealth, clearMnemonicStore: true, }); From bd8816abb022b554467af66f1740623f30105c3c Mon Sep 17 00:00:00 2001 From: wabicai Date: Thu, 19 Mar 2026 10:53:07 +0800 Subject: [PATCH 10/28] feat: redesign automation test UI, add deviceFlowOnly mode, fix MCP double-buildSteps bug - Redesign AutomationTest UI: balanced panel heights, hover styles, progress layout - Add DevicePreparationMode 'deviceFlowOnly': runs reset+import/create only, skips all SDK suites - Fix executeSequence.ts double buildSteps() call causing SLIP39 random share inconsistency - Add DeviceCompatibility integration stub for Pro (dnxGetAddress) - Fix canStartAutomationAtom to allow start when deviceFlowOnly with no testSuites selected - Various UI component improvements: ReportTree filter, LogsSection, PassphraseSelector Co-Authored-By: Claude Sonnet 4.6 --- automation-report-2026-03-17T06-12-44.json | 15531 ++++++++++++++++ .../expo-example/src/atoms/automationAtoms.ts | 8 +- .../src/services/phonePilotMcp/types.ts | 11 +- .../automationTest/scenarioCatalog.ts | 4 +- .../automationTest/useAutomationTest.ts | 609 +- .../deviceCompatibility/plugins/pro.ts | 5 + .../components/ConnectionConfig.tsx | 65 +- .../AutomationTest/components/LogsSection.tsx | 41 +- .../components/PassphraseSelector.tsx | 16 +- .../components/ReportCaseRow.tsx | 6 +- .../components/ReportScenarioNode.tsx | 23 +- .../components/ReportSuiteNode.tsx | 25 +- .../AutomationTest/components/ReportTree.tsx | 7 +- .../components/RunnerBehaviorConfig.tsx | 170 +- .../components/ScenarioSelector.tsx | 8 +- .../components/SuiteSelector.tsx | 43 +- .../src/views/AutomationTest/index.tsx | 241 +- 17 files changed, 16396 insertions(+), 417 deletions(-) create mode 100644 automation-report-2026-03-17T06-12-44.json diff --git a/automation-report-2026-03-17T06-12-44.json b/automation-report-2026-03-17T06-12-44.json new file mode 100644 index 000000000..d373e6dfc --- /dev/null +++ b/automation-report-2026-03-17T06-12-44.json @@ -0,0 +1,15531 @@ +{ + "startTime": 1773719042425, + "endTime": 1773723663986, + "duration": 4621561, + "totalScenarios": 1, + "passedScenarios": 0, + "failedScenarios": 1, + "skippedScenarios": 0, + "scenarioResults": [ + { + "scenarioId": "ok26054_bip39_import_12", + "scenarioTitle": "BIP39 导入 / 12-word / one", + "jiraKey": "OK-26054", + "flowType": "import", + "walletType": "bip39", + "caseLabel": "12-word / one", + "status": "failed", + "duration": 4609689, + "suiteResults": [ + { + "suiteType": "deviceFlow", + "suiteName": "Device Flow", + "status": "skipped", + "totalTests": 1, + "passedTests": 0, + "failedTests": 0, + "skippedTests": 1, + "duration": 0, + "results": [ + { + "title": "Device Flow", + "passed": false, + "skipped": true, + "error": "debug mode skipped device flow", + "duration": 0 + } + ] + }, + { + "suiteType": "sdkAddressBatch", + "suiteName": "SDK Address Batch", + "status": "failed", + "totalTests": 920, + "passedTests": 900, + "failedTests": 20, + "skippedTests": 0, + "duration": 3774695, + "results": [ + { + "title": "one-normal-12 / cardanoGetAddress / m/1852'/1815'/0'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qyr8t5k9g7ggfsmfqwkf5gjcxtpag0xjkyctvnx0ljv8cxe0y0g30qkd85njeekrwsfxvt44z3r5drtgywdwnx0a8p5sak4p7t", + "actual": "addr1qyr8t5k9g7ggfsmfqwkf5gjcxtpag0xjkyctvnx0ljv8cxe0y0g30qkd85njeekrwsfxvt44z3r5drtgywdwnx0a8p5sak4p7t", + "passed": true, + "duration": 18105, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetAddress / m/1852'/1815'/1'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8e3g3vcs7qfrclr4wt5wwy4krx5cgldthgkkrhtj6876d3e7emjtf98f5nazt6e7prz7ptl2d4pzkfgfx87cp3tejcqv3hfh9", + "actual": "addr1q8e3g3vcs7qfrclr4wt5wwy4krx5cgldthgkkrhtj6876d3e7emjtf98f5nazt6e7prz7ptl2d4pzkfgfx87cp3tejcqv3hfh9", + "passed": true, + "duration": 6842, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetAddress / m/1852'/1815'/25'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8ehn4xcp5nz4j0qkr53t5j04gysld9zefm3duk5cax3wmr9vqjhgysxdyz3ehfcty0nvzp47a3k056dfx6qfw38mhsqp4hqcn", + "actual": "addr1q8ehn4xcp5nz4j0qkr53t5j04gysld9zefm3duk5cax3wmr9vqjhgysxdyz3ehfcty0nvzp47a3k056dfx6qfw38mhsqp4hqcn", + "passed": true, + "duration": 7371, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetAddress / m/1852'/1815'/2147483646'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q95cpkttns2v0jc6vpmeefjc3n36f89yfnsezezsktqrcd4t4r85luc0n3us789e9xt5tzr9t85ae60mmvj23ctz7n7q02yysf", + "actual": "addr1q95cpkttns2v0jc6vpmeefjc3n36f89yfnsezezsktqrcd4t4r85luc0n3us789e9xt5tzr9t85ae60mmvj23ctz7n7q02yysf", + "passed": true, + "duration": 6888, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetAddress / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qyj879xfe7ql8kk0tyryc9qg543ha5qf3nq296mmchsk2d0qud7ekc773zxwzjzyn3wj4eggpu25pmnxpl2eaaxeupvsfcwzs8", + "actual": "addr1qyj879xfe7ql8kk0tyryc9qg543ha5qf3nq296mmchsk2d0qud7ekc773zxwzjzyn3wj4eggpu25pmnxpl2eaaxeupvsfcwzs8", + "passed": true, + "duration": 7385, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / algoGetAddress / m/44'/283'/0'/0'/0'", + "method": "algoGetAddress", + "expected": "7ZVKIHADZGRZJ7A52B7DZTOP4JXAOPK2M2FQTXK3D3T3A2HFOPUOGKGAVM", + "actual": "7ZVKIHADZGRZJ7A52B7DZTOP4JXAOPK2M2FQTXK3D3T3A2HFOPUOGKGAVM", + "passed": true, + "duration": 2173, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / algoGetAddress / m/44'/283'/0'/0'/1'", + "method": "algoGetAddress", + "expected": "HRHFUECRQAFGZ357TQLLVY7KNR2WKR46JCTFMRW6YGXLAB4ISN65B2RNT4", + "actual": "HRHFUECRQAFGZ357TQLLVY7KNR2WKR46JCTFMRW6YGXLAB4ISN65B2RNT4", + "passed": true, + "duration": 2036, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / algoGetAddress / m/44'/283'/0'/0'/25'", + "method": "algoGetAddress", + "expected": "QD3MZ27TH7537AKKDLWJU7AICQQWCMIRT3TNUM7LVISUJQJ2QZECIMT66Y", + "actual": "QD3MZ27TH7537AKKDLWJU7AICQQWCMIRT3TNUM7LVISUJQJ2QZECIMT66Y", + "passed": true, + "duration": 2044, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / algoGetAddress / m/44'/283'/0'/0'/2147483646'", + "method": "algoGetAddress", + "expected": "EHCFACFJUL3INZ7WNZGRJWCWGEEZG76VAYSTVZH6KVTYBGL7D46GA3JV6M", + "actual": "EHCFACFJUL3INZ7WNZGRJWCWGEEZG76VAYSTVZH6KVTYBGL7D46GA3JV6M", + "passed": true, + "duration": 2045, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / algoGetAddress / m/44'/283'/0'/0'/2147483647'", + "method": "algoGetAddress", + "expected": "2VMU3IKPKELMEDUIALFRVYYDBZW3BFKSRTDVCQGPZTLFKQYLPZLU4M36VM", + "actual": "2VMU3IKPKELMEDUIALFRVYYDBZW3BFKSRTDVCQGPZTLFKQYLPZLU4M36VM", + "passed": true, + "duration": 2019, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetAddress / m/44'/637'/0'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x60e800a8839a86be1ca6c0b17ecb10f2a2af8b3b7c5f212bbeb64471c4f00bd8", + "actual": "0x60e800a8839a86be1ca6c0b17ecb10f2a2af8b3b7c5f212bbeb64471c4f00bd8", + "passed": true, + "duration": 1959, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetAddress / m/44'/637'/1'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x0e9a30c16904600284473a06b2fb3db8a4927d20f12a4d1c391798a091b1e221", + "actual": "0x0e9a30c16904600284473a06b2fb3db8a4927d20f12a4d1c391798a091b1e221", + "passed": true, + "duration": 1957, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetAddress / m/44'/637'/25'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xef40c4ccef00f15147c3403b6b8c2417dfeda0cec170edc1ca182b709a16eeed", + "actual": "0xef40c4ccef00f15147c3403b6b8c2417dfeda0cec170edc1ca182b709a16eeed", + "passed": true, + "duration": 1936, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetAddress / m/44'/637'/2147483646'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x3c3e505fcedb8bb82c432d1dc0f5d8d84388d16e7aded65817ce339b1568b4ff", + "actual": "0x3c3e505fcedb8bb82c432d1dc0f5d8d84388d16e7aded65817ce339b1568b4ff", + "passed": true, + "duration": 1919, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetAddress / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x3479d1223e9612d40ee2bc8d540aff11966af9b09fe97995bd2250480c6ef458", + "actual": "0x3479d1223e9612d40ee2bc8d540aff11966af9b09fe97995bd2250480c6ef458", + "passed": true, + "duration": 2607, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Legacy / m/44'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": true, + "duration": 2700, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Legacy / m/44'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "12jkNt56fEYrFoAuNwgEZdjFCuu6L1XiRp", + "actual": "12jkNt56fEYrFoAuNwgEZdjFCuu6L1XiRp", + "passed": true, + "duration": 2865, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Legacy / m/44'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "1J624maH4iktxKdEkeEdJ7JTFV9aUkSxzR", + "actual": "1J624maH4iktxKdEkeEdJ7JTFV9aUkSxzR", + "passed": true, + "duration": 2981, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Legacy / m/44'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "1F9nThLS7ZLG517vsXAjfx9otPPLMb741e", + "actual": "1F9nThLS7ZLG517vsXAjfx9otPPLMb741e", + "passed": true, + "duration": 2364, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Legacy / m/44'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "1PJN7cd66B4Y36thasJSfS3K5EZvAfYgMF", + "actual": "1PJN7cd66B4Y36thasJSfS3K5EZvAfYgMF", + "passed": true, + "duration": 2490, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Nested SegWit / m/49'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "38Xegnipu2RhZouctnGnwmDRk2bLXfDHf4", + "actual": "38Xegnipu2RhZouctnGnwmDRk2bLXfDHf4", + "passed": true, + "duration": 2765, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Nested SegWit / m/49'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "3Gc49NTGVxLodbpRDAHrTM2Uw9svy9aqBn", + "actual": "3Gc49NTGVxLodbpRDAHrTM2Uw9svy9aqBn", + "passed": true, + "duration": 3002, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Nested SegWit / m/49'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "3AfzaZqwQgoULAn9qieaV5SMh8Q9DYwqmi", + "actual": "3AfzaZqwQgoULAn9qieaV5SMh8Q9DYwqmi", + "passed": true, + "duration": 2513, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Nested SegWit / m/49'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "3PTfpApbCrLouC7osRAat3CmLDHxWkmU5J", + "actual": "3PTfpApbCrLouC7osRAat3CmLDHxWkmU5J", + "passed": true, + "duration": 2797, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Nested SegWit / m/49'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "3EVwYDUfFyJTRy27b4Vf4gFei8Q8kU97Co", + "actual": "3EVwYDUfFyJTRy27b4Vf4gFei8Q8kU97Co", + "passed": true, + "duration": 3051, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Native SegWit / m/84'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1qjclx3t2ykepvcqegx8tmn3nwd5ahsswenrvd90", + "actual": "bc1qjclx3t2ykepvcqegx8tmn3nwd5ahsswenrvd90", + "passed": true, + "duration": 2429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Native SegWit / m/84'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1qtv75pxvw62aad3prkk2sxcz4ynqft7dt0prgnw", + "actual": "bc1qtv75pxvw62aad3prkk2sxcz4ynqft7dt0prgnw", + "passed": true, + "duration": 2601, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Native SegWit / m/84'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1qp7rf5t8yp6439c265uvqlhtgmlgzv8kvgx8fvm", + "actual": "bc1qp7rf5t8yp6439c265uvqlhtgmlgzv8kvgx8fvm", + "passed": true, + "duration": 2804, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Native SegWit / m/84'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1qykjy6zld2tkez28rgl2c8c63fvnw6g95zjkj0c", + "actual": "bc1qykjy6zld2tkez28rgl2c8c63fvnw6g95zjkj0c", + "passed": true, + "duration": 2979, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Native SegWit / m/84'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1qe9f6haplqtl5khz36pjcrzjwl5ma2tjqup34f9", + "actual": "bc1qe9f6haplqtl5khz36pjcrzjwl5ma2tjqup34f9", + "passed": true, + "duration": 2443, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Taproot / m/86'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1ppskree0erhqyptsx8hufkt98wxvuv6gla8hpep8euq6cex2k4h9svg2en3", + "actual": "bc1ppskree0erhqyptsx8hufkt98wxvuv6gla8hpep8euq6cex2k4h9svg2en3", + "passed": true, + "duration": 2654, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Taproot / m/86'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1pvtwcttx7uhzksh5pe45fxtp9keps78rhu0qjw3e04xxxsmt0kd7sjqrtth", + "actual": "bc1pvtwcttx7uhzksh5pe45fxtp9keps78rhu0qjw3e04xxxsmt0kd7sjqrtth", + "passed": true, + "duration": 3145, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Taproot / m/86'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1pwgh3ah2c2evxur25uaxg5kzxyhcdf7f4vuwjf45ssxjeu07pdx5sz6w7q3", + "actual": "bc1pwgh3ah2c2evxur25uaxg5kzxyhcdf7f4vuwjf45ssxjeu07pdx5sz6w7q3", + "passed": true, + "duration": 3126, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Taproot / m/86'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1pgn8zd8gx7tawn9fyuzv2grem2j3hzmvewxxycja2hz6327jg569qfmx4ha", + "actual": "bc1pgn8zd8gx7tawn9fyuzv2grem2j3hzmvewxxycja2hz6327jg569qfmx4ha", + "passed": true, + "duration": 2486, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Taproot / m/86'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1psylrcjazd3twqy7tgz29k8md6caemv0lfqpj6x5cp0pjy9wnem0q2qtdzq", + "actual": "bc1psylrcjazd3twqy7tgz29k8md6caemv0lfqpj6x5cp0pjy9wnem0q2qtdzq", + "passed": true, + "duration": 2642, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Doge / m/44'/3'/0'/0/0", + "method": "btcGetAddress", + "expected": "D5UJ81u33vJBco3fMZxpaHrSrbwCyMejcY", + "actual": "D5UJ81u33vJBco3fMZxpaHrSrbwCyMejcY", + "passed": true, + "duration": 2333, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Doge / m/44'/3'/1'/0/0", + "method": "btcGetAddress", + "expected": "DNmuHigrHSAFC8e2rHqsGHSkwF7dL2aokd", + "actual": "DNmuHigrHSAFC8e2rHqsGHSkwF7dL2aokd", + "passed": true, + "duration": 2014, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Doge / m/44'/3'/25'/0/0", + "method": "btcGetAddress", + "expected": "DTYdbEErk8SPoXt9h3oR7f6vAtbnUeRp5Y", + "actual": "DTYdbEErk8SPoXt9h3oR7f6vAtbnUeRp5Y", + "passed": true, + "duration": 1942, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Doge / m/44'/3'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "DTdkJzUv2tRUAmZuk1qafwAJ734WKagzxT", + "actual": "DTdkJzUv2tRUAmZuk1qafwAJ734WKagzxT", + "passed": true, + "duration": 1957, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Doge / m/44'/3'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "DEfXtCPcbmKvnFgCTb3TnMwFAGmsageYLM", + "actual": "DEfXtCPcbmKvnFgCTb3TnMwFAGmsageYLM", + "passed": true, + "duration": 1926, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-BCH / m/44'/145'/0'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qz6kmmtek6vvly474p65cz9n77xfd9tykutafetr5k", + "actual": "bitcoincash:qz6kmmtek6vvly474p65cz9n77xfd9tykutafetr5k", + "passed": true, + "duration": 2247, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-BCH / m/44'/145'/1'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qr8xmz3ncg89mjxslzzu4xvh7fnhkeq9pyfu0rc47y", + "actual": "bitcoincash:qr8xmz3ncg89mjxslzzu4xvh7fnhkeq9pyfu0rc47y", + "passed": true, + "duration": 2252, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-BCH / m/44'/145'/25'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qzq5fdv75hh5qr92ws4ruj62w7qqatjhwstn4h4yfr", + "actual": "bitcoincash:qzq5fdv75hh5qr92ws4ruj62w7qqatjhwstn4h4yfr", + "passed": true, + "duration": 2259, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-BCH / m/44'/145'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qzehg9jyjslvp7pk36pue5c4pcg4g669kgkk9u4thq", + "actual": "bitcoincash:qzehg9jyjslvp7pk36pue5c4pcg4g669kgkk9u4thq", + "passed": true, + "duration": 2221, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-BCH / m/44'/145'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qrgxuqea6s503tfp7wmvznu88p5pylhv2v27h66z22", + "actual": "bitcoincash:qrgxuqea6s503tfp7wmvznu88p5pylhv2v27h66z22", + "passed": true, + "duration": 2278, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Legacy / m/44'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "LYVggHGrbF1NxbKySUzkbUHQ6EmgzSo2UL", + "actual": "LYVggHGrbF1NxbKySUzkbUHQ6EmgzSo2UL", + "passed": true, + "duration": 2092, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Legacy / m/44'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "LMyokkUSJypaHPC2jGNg4xQ8GSSbf11vJ2", + "actual": "LMyokkUSJypaHPC2jGNg4xQ8GSSbf11vJ2", + "passed": true, + "duration": 2052, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Legacy / m/44'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "LYTwJhFZ1S9PqAxiXz6zsEeVW9ULzzdUMx", + "actual": "LYTwJhFZ1S9PqAxiXz6zsEeVW9ULzzdUMx", + "passed": true, + "duration": 2068, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Legacy / m/44'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "LWE5C99Vmex2DczPhYAqqY6uzHRHJN8CFy", + "actual": "LWE5C99Vmex2DczPhYAqqY6uzHRHJN8CFy", + "passed": true, + "duration": 2084, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Legacy / m/44'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "Lf97n3TXB1ZKRT458D53TUkYyTCZatKDNJ", + "actual": "Lf97n3TXB1ZKRT458D53TUkYyTCZatKDNJ", + "passed": true, + "duration": 2084, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Nested SegWit / m/49'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "MRTehAWcZgZm6fnVj3kDzizaCtiybPHt3V", + "actual": "MRTehAWcZgZm6fnVj3kDzizaCtiybPHt3V", + "passed": true, + "duration": 2179, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Nested SegWit / m/49'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "MLhniPsKJ2A7xkwo7gApuJKE6RcKHgm57W", + "actual": "MLhniPsKJ2A7xkwo7gApuJKE6RcKHgm57W", + "passed": true, + "duration": 2280, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Nested SegWit / m/49'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "MWUewTyDE8PCEQ4fXVpkQoCnjKYHzB1375", + "actual": "MWUewTyDE8PCEQ4fXVpkQoCnjKYHzB1375", + "passed": true, + "duration": 2466, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "MSgxEUJymE8gHqMEaSvK4RZ5VmNgFV4fkE", + "actual": "MSgxEUJymE8gHqMEaSvK4RZ5VmNgFV4fkE", + "passed": true, + "duration": 2426, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "MJa7Yhin6LtD5bBqucK85LTzwLrvfw27bh", + "actual": "MJa7Yhin6LtD5bBqucK85LTzwLrvfw27bh", + "passed": true, + "duration": 2396, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Native SegWit / m/84'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "ltc1q5qzknn7arkxvwf53cy6dnjvx8w9ty5u4ujmprk", + "actual": "ltc1q5qzknn7arkxvwf53cy6dnjvx8w9ty5u4ujmprk", + "passed": true, + "duration": 2281, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Native SegWit / m/84'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "ltc1q3gru0p5tdmp0sldv2uk0c2jt6z40d0hl8fyjwn", + "actual": "ltc1q3gru0p5tdmp0sldv2uk0c2jt6z40d0hl8fyjwn", + "passed": true, + "duration": 2137, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Native SegWit / m/84'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qejpj2k7e2y0xj8l0cvvcy06auhm8cg32py4xjj", + "actual": "ltc1qejpj2k7e2y0xj8l0cvvcy06auhm8cg32py4xjj", + "passed": true, + "duration": 2133, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qvqzpu7lrzjrr4y9km2wx9tcc0ym6k6cd4qeksq", + "actual": "ltc1qvqzpu7lrzjrr4y9km2wx9tcc0ym6k6cd4qeksq", + "passed": true, + "duration": 2103, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qhzgskddf2edcy878dj92ucsrgu3xzl52vpj4xp", + "actual": "ltc1qhzgskddf2edcy878dj92ucsrgu3xzl52vpj4xp", + "passed": true, + "duration": 2111, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Neurai / m/44'/1900'/0'/0/0", + "method": "btcGetAddress", + "expected": "NQGSM97dYfWXZtHu6zfN7kQwZcMz8wdbwq", + "actual": "NQGSM97dYfWXZtHu6zfN7kQwZcMz8wdbwq", + "passed": true, + "duration": 1936, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Neurai / m/44'/1900'/1'/0/0", + "method": "btcGetAddress", + "expected": "NPgUBacxaL3mySvhCLJcpsGB6M5gK8jr1g", + "actual": "NPgUBacxaL3mySvhCLJcpsGB6M5gK8jr1g", + "passed": true, + "duration": 1940, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Neurai / m/44'/1900'/25'/0/0", + "method": "btcGetAddress", + "expected": "NYaSDK3cgYy1X2VMggqcpQ1PFe3VM9b4vo", + "actual": "NYaSDK3cgYy1X2VMggqcpQ1PFe3VM9b4vo", + "passed": true, + "duration": 1927, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Neurai / m/44'/1900'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "NT8hEvqtpp1TZqev6fcSccTT141g6xEhns", + "actual": "NT8hEvqtpp1TZqev6fcSccTT141g6xEhns", + "passed": true, + "duration": 2622, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetAddress-Neurai / m/44'/1900'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "NN9AjfR5JjGAhnaZFptstKSpSBGjaRDxum", + "actual": "NN9AjfR5JjGAhnaZFptstKSpSBGjaRDxum", + "passed": true, + "duration": 2307, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / confluxGetAddress / m/44'/503'/0'/0/0", + "method": "confluxGetAddress", + "expected": "cfx:aapggywhe9bbab6g7swd9m6r0491g6z3ejup0bkug7", + "actual": "cfx:aapggywhe9bbab6g7swd9m6r0491g6z3ejup0bkug7", + "passed": true, + "duration": 2118, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / confluxGetAddress / m/44'/503'/0'/0/1", + "method": "confluxGetAddress", + "expected": "cfx:aamtb3t7prg0ww7pje6xew1npjksvdr8x6k9hw2bbw", + "actual": "cfx:aamtb3t7prg0ww7pje6xew1npjksvdr8x6k9hw2bbw", + "passed": true, + "duration": 2106, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / confluxGetAddress / m/44'/503'/0'/0/25", + "method": "confluxGetAddress", + "expected": "cfx:aatfghxc9t48y98tdum823tf8sw6dwvuhurxmx1y8k", + "actual": "cfx:aatfghxc9t48y98tdum823tf8sw6dwvuhurxmx1y8k", + "passed": true, + "duration": 2088, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / confluxGetAddress / m/44'/503'/0'/0/2147483646", + "method": "confluxGetAddress", + "expected": "cfx:aamwjesnwuaj1ndbbschnhj6gxgk0bab0en8cxamrg", + "actual": "cfx:aamwjesnwuaj1ndbbschnhj6gxgk0bab0en8cxamrg", + "passed": true, + "duration": 2044, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / confluxGetAddress / m/44'/503'/0'/0/2147483647", + "method": "confluxGetAddress", + "expected": "cfx:aajpbcy2hk5jtpeag4990ugvrf09p2ry3ah7xe2z2a", + "actual": "cfx:aajpbcy2hk5jtpeag4990ugvrf09p2ry3ah7xe2z2a", + "passed": true, + "duration": 2056, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cosmos1l65dl2stwxk4w9gf0vt2mnxhst48ygys50evrj", + "actual": "cosmos1l65dl2stwxk4w9gf0vt2mnxhst48ygys50evrj", + "passed": true, + "duration": 1829, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cosmos1skd8n4ur086zaz3xqzmsxxh2dp77qtcdk8enyh", + "actual": "cosmos1skd8n4ur086zaz3xqzmsxxh2dp77qtcdk8enyh", + "passed": true, + "duration": 2425, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cosmos10dj5g7m7yknvh69wgyndh6hx2yj7jl4qekvngn", + "actual": "cosmos10dj5g7m7yknvh69wgyndh6hx2yj7jl4qekvngn", + "passed": true, + "duration": 1995, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cosmos1zqquvfpfe65srynwstsrmkd0x2r4wh5a7cza64", + "actual": "cosmos1zqquvfpfe65srynwstsrmkd0x2r4wh5a7cza64", + "passed": true, + "duration": 1813, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cosmos1kk249tgf0vre3uj3x9fk2l57xdq7nf9fhyyhmq", + "actual": "cosmos1kk249tgf0vre3uj3x9fk2l57xdq7nf9fhyyhmq", + "passed": true, + "duration": 2409, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-akash / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "akash1l65dl2stwxk4w9gf0vt2mnxhst48ygyse55t6g", + "actual": "akash1l65dl2stwxk4w9gf0vt2mnxhst48ygyse55t6g", + "passed": true, + "duration": 1985, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-akash / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "akash1skd8n4ur086zaz3xqzmsxxh2dp77qtcdmu55ad", + "actual": "akash1skd8n4ur086zaz3xqzmsxxh2dp77qtcdmu55ad", + "passed": true, + "duration": 1825, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-akash / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "akash10dj5g7m7yknvh69wgyndh6hx2yj7jl4q5dp53f", + "actual": "akash10dj5g7m7yknvh69wgyndh6hx2yj7jl4q5dp53f", + "passed": true, + "duration": 2382, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "akash1zqquvfpfe65srynwstsrmkd0x2r4wh5anr06r0", + "actual": "akash1zqquvfpfe65srynwstsrmkd0x2r4wh5anr06r0", + "passed": true, + "duration": 1958, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "akash1kk249tgf0vre3uj3x9fk2l57xdq7nf9f6lfsz6", + "actual": "akash1kk249tgf0vre3uj3x9fk2l57xdq7nf9f6lfsz6", + "passed": true, + "duration": 1920, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-crypto / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cro1l65dl2stwxk4w9gf0vt2mnxhst48ygysv534lr", + "actual": "cro1l65dl2stwxk4w9gf0vt2mnxhst48ygysv534lr", + "passed": true, + "duration": 2401, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-crypto / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cro1skd8n4ur086zaz3xqzmsxxh2dp77qtcdwu32cx", + "actual": "cro1skd8n4ur086zaz3xqzmsxxh2dp77qtcdwu32cx", + "passed": true, + "duration": 1975, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-crypto / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cro10dj5g7m7yknvh69wgyndh6hx2yj7jl4qpdy25z", + "actual": "cro10dj5g7m7yknvh69wgyndh6hx2yj7jl4qpdy25z", + "passed": true, + "duration": 1806, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cro1zqquvfpfe65srynwstsrmkd0x2r4wh5axr2yxy", + "actual": "cro1zqquvfpfe65srynwstsrmkd0x2r4wh5axr2yxy", + "passed": true, + "duration": 2366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cro1kk249tgf0vre3uj3x9fk2l57xdq7nf9f0lvw83", + "actual": "cro1kk249tgf0vre3uj3x9fk2l57xdq7nf9f0lvw83", + "passed": true, + "duration": 1995, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-fetch / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "fetch1l65dl2stwxk4w9gf0vt2mnxhst48ygys8jsgp9", + "actual": "fetch1l65dl2stwxk4w9gf0vt2mnxhst48ygys8jsgp9", + "passed": true, + "duration": 1838, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-fetch / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "fetch1skd8n4ur086zaz3xqzmsxxh2dp77qtcd96shxq", + "actual": "fetch1skd8n4ur086zaz3xqzmsxxh2dp77qtcd96shxq", + "passed": true, + "duration": 2439, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-fetch / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "fetch10dj5g7m7yknvh69wgyndh6hx2yj7jl4q2t9h2y", + "actual": "fetch10dj5g7m7yknvh69wgyndh6hx2yj7jl4q2t9h2y", + "passed": true, + "duration": 1970, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "fetch1zqquvfpfe65srynwstsrmkd0x2r4wh5ad9tecz", + "actual": "fetch1zqquvfpfe65srynwstsrmkd0x2r4wh5ad9tecz", + "passed": true, + "duration": 2476, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "fetch1kk249tgf0vre3uj3x9fk2l57xdq7nf9fyedneh", + "actual": "fetch1kk249tgf0vre3uj3x9fk2l57xdq7nf9fyedneh", + "passed": true, + "duration": 2144, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-osmo / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "osmo1l65dl2stwxk4w9gf0vt2mnxhst48ygysu52u4q", + "actual": "osmo1l65dl2stwxk4w9gf0vt2mnxhst48ygysu52u4q", + "passed": true, + "duration": 2471, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-osmo / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "osmo1skd8n4ur086zaz3xqzmsxxh2dp77qtcd7u2rj9", + "actual": "osmo1skd8n4ur086zaz3xqzmsxxh2dp77qtcd7u2rj9", + "passed": true, + "duration": 2416, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-osmo / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "osmo10dj5g7m7yknvh69wgyndh6hx2yj7jl4q3dlr7p", + "actual": "osmo10dj5g7m7yknvh69wgyndh6hx2yj7jl4q3dlr7p", + "passed": true, + "duration": 2468, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "osmo1zqquvfpfe65srynwstsrmkd0x2r4wh5akr3dv8", + "actual": "osmo1zqquvfpfe65srynwstsrmkd0x2r4wh5akr3dv8", + "passed": true, + "duration": 2510, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "osmo1kk249tgf0vre3uj3x9fk2l57xdq7nf9fllh8dj", + "actual": "osmo1kk249tgf0vre3uj3x9fk2l57xdq7nf9fllh8dj", + "passed": true, + "duration": 2488, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-juno / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "juno1l65dl2stwxk4w9gf0vt2mnxhst48ygysza6hyw", + "actual": "juno1l65dl2stwxk4w9gf0vt2mnxhst48ygysza6hyw", + "passed": true, + "duration": 2497, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-juno / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "juno1skd8n4ur086zaz3xqzmsxxh2dp77qtcdq46grt", + "actual": "juno1skd8n4ur086zaz3xqzmsxxh2dp77qtcdq46grt", + "passed": true, + "duration": 2489, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-juno / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "juno10dj5g7m7yknvh69wgyndh6hx2yj7jl4q0y0g00", + "actual": "juno10dj5g7m7yknvh69wgyndh6hx2yj7jl4q0y0g00", + "passed": true, + "duration": 2450, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "juno1zqquvfpfe65srynwstsrmkd0x2r4wh5ag2pxaf", + "actual": "juno1zqquvfpfe65srynwstsrmkd0x2r4wh5ag2pxaf", + "passed": true, + "duration": 2491, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "juno1kk249tgf0vre3uj3x9fk2l57xdq7nf9fpk8vuu", + "actual": "juno1kk249tgf0vre3uj3x9fk2l57xdq7nf9fpk8vuu", + "passed": true, + "duration": 2455, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-terra / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "terra1l65dl2stwxk4w9gf0vt2mnxhst48ygysjtrvpj", + "actual": "terra1l65dl2stwxk4w9gf0vt2mnxhst48ygysjtrvpj", + "passed": true, + "duration": 2486, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-terra / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "terra1skd8n4ur086zaz3xqzmsxxh2dp77qtcdsrrnxh", + "actual": "terra1skd8n4ur086zaz3xqzmsxxh2dp77qtcdsrrnxh", + "passed": true, + "duration": 3068, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-terra / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "terra10dj5g7m7yknvh69wgyndh6hx2yj7jl4qljkn2n", + "actual": "terra10dj5g7m7yknvh69wgyndh6hx2yj7jl4qljkn2n", + "passed": true, + "duration": 2414, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "terra1zqquvfpfe65srynwstsrmkd0x2r4wh5acucac4", + "actual": "terra1zqquvfpfe65srynwstsrmkd0x2r4wh5acucac4", + "passed": true, + "duration": 1831, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "terra1kk249tgf0vre3uj3x9fk2l57xdq7nf9f3q7heq", + "actual": "terra1kk249tgf0vre3uj3x9fk2l57xdq7nf9f3q7heq", + "passed": true, + "duration": 2404, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-secret / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "secret1l65dl2stwxk4w9gf0vt2mnxhst48ygysk2d97w", + "actual": "secret1l65dl2stwxk4w9gf0vt2mnxhst48ygysk2d97w", + "passed": true, + "duration": 1994, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-secret / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "secret1skd8n4ur086zaz3xqzmsxxh2dp77qtcd5zd6et", + "actual": "secret1skd8n4ur086zaz3xqzmsxxh2dp77qtcd5zd6et", + "passed": true, + "duration": 1819, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-secret / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "secret10dj5g7m7yknvh69wgyndh6hx2yj7jl4qmnc640", + "actual": "secret10dj5g7m7yknvh69wgyndh6hx2yj7jl4qmnc640", + "passed": true, + "duration": 2392, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "secret1zqquvfpfe65srynwstsrmkd0x2r4wh5auak58f", + "actual": "secret1zqquvfpfe65srynwstsrmkd0x2r4wh5auak58f", + "passed": true, + "duration": 1955, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "secret1kk249tgf0vre3uj3x9fk2l57xdq7nf9f4ps7xu", + "actual": "secret1kk249tgf0vre3uj3x9fk2l57xdq7nf9f4ps7xu", + "passed": true, + "duration": 1825, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-celestia / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "celestia1l65dl2stwxk4w9gf0vt2mnxhst48ygys99guel", + "actual": "celestia1l65dl2stwxk4w9gf0vt2mnxhst48ygys99guel", + "passed": true, + "duration": 2417, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-celestia / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "celestia1skd8n4ur086zaz3xqzmsxxh2dp77qtcd8dgr76", + "actual": "celestia1skd8n4ur086zaz3xqzmsxxh2dp77qtcd8dgr76", + "passed": true, + "duration": 1987, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-celestia / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "celestia10dj5g7m7yknvh69wgyndh6hx2yj7jl4qguarj7", + "actual": "celestia10dj5g7m7yknvh69wgyndh6hx2yj7jl4qguarj7", + "passed": true, + "duration": 1854, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "celestia1zqquvfpfe65srynwstsrmkd0x2r4wh5a0jndqc", + "actual": "celestia1zqquvfpfe65srynwstsrmkd0x2r4wh5a0jndqc", + "passed": true, + "duration": 2421, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "celestia1kk249tgf0vre3uj3x9fk2l57xdq7nf9fxw48pd", + "actual": "celestia1kk249tgf0vre3uj3x9fk2l57xdq7nf9fxw48pd", + "passed": true, + "duration": 2004, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / dnxGetAddress / m/44'/29538'/0'/0'/0'", + "method": "dnxGetAddress", + "expected": "Xwo6CFYgd4TQEMhvgh9jy2XWdXiEQhd6DEdMAGWRWUNLJJKr1or8xjjKswVhgeWDTfeJeEXe5udsJehqvxaHGQvn13tnb32BX", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 998 + }, + { + "title": "one-normal-12 / dnxGetAddress / m/44'/29538'/0'/0'/1'", + "method": "dnxGetAddress", + "expected": "Xwnozcq1cFd3MrS1nuR1JNUPHeBt2yjfa26WcJDpGMPNEGw2urxKkAReDjmL95nVWQdWF9uQBJtu1HJwQz5iQD4R2WQELRURT", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 992 + }, + { + "title": "one-normal-12 / dnxGetAddress / m/44'/29538'/0'/0'/25'", + "method": "dnxGetAddress", + "expected": "Xwmiz5Gr25Qf55u67yeVrnKhkByeNLCXJ9vGazWHSMcPT95xG6ESBS8W3yCCuXRsjaStrwQ4wv7gpHvJpjXei5Ce1daWF5QJL", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 1009 + }, + { + "title": "one-normal-12 / dnxGetAddress / m/44'/29538'/0'/0'/2147483646'", + "method": "dnxGetAddress", + "expected": "XwoG3VN798a9UPJG3jTTs8Ty1gaGaYRc8SrBf97DvLg36k2Tb3AugTZSbMYV4j3AKQMx2weNkdN2JTdCrLsdki4a1S2qHKmUs", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 990 + }, + { + "title": "one-normal-12 / dnxGetAddress / m/44'/29538'/0'/0'/2147483647'", + "method": "dnxGetAddress", + "expected": "XwmwmYjMbwpBXMh4vajbU2eWyjzz1LJryWQhyvwA8dUyDzTgkL5tUBa93Z18hAkpnTYneQx39VEDS3qycNNZHWPM1rFeQdCMh", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 985 + }, + { + "title": "one-normal-12 / evmGetAddress / m/44'/60'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": true, + "duration": 1847, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress / m/44'/60'/0'/0/1", + "method": "evmGetAddress", + "expected": "0x9132831eb29B77603bfF4E8B57cfB1f861f50e3E", + "actual": "0x9132831eb29B77603bfF4E8B57cfB1f861f50e3E", + "passed": true, + "duration": 2476, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress / m/44'/60'/0'/0/25", + "method": "evmGetAddress", + "expected": "0xd84ad17e72Ef5989Cc854c0a245a63A12044A2A2", + "actual": "0xd84ad17e72Ef5989Cc854c0a245a63A12044A2A2", + "passed": true, + "duration": 2065, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress / m/44'/60'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0x9B8C8C52B860E6199a0738648395973aFE1b6057", + "actual": "0x9B8C8C52B860E6199a0738648395973aFE1b6057", + "passed": true, + "duration": 1859, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress / m/44'/60'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0xFdFbC4041dDB39C3BbE3861A00a76Ec7F801514F", + "actual": "0xFdFbC4041dDB39C3BbE3861A00a76Ec7F801514F", + "passed": true, + "duration": 2490, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-Ledger Live / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "actual": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "passed": true, + "duration": 2104, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-Ledger Live / m/44'/61'/1'/0/0", + "method": "evmGetAddress", + "expected": "0xcd756f300DD51F74CAde31C431cc26243284F4f9", + "actual": "0xcd756f300DD51F74CAde31C431cc26243284F4f9", + "passed": true, + "duration": 2458, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-Ledger Live / m/44'/61'/25'/0/0", + "method": "evmGetAddress", + "expected": "0x6Fb068E1Dbe1244298af8305d389Ed86E3010965", + "actual": "0x6Fb068E1Dbe1244298af8305d389Ed86E3010965", + "passed": true, + "duration": 2236, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-Ledger Live / m/44'/61'/2147483646'/0/0", + "method": "evmGetAddress", + "expected": "0xdbd1Ad162BA1864E3ef3Af265a9dD0C155C0320F", + "actual": "0xdbd1Ad162BA1864E3ef3Af265a9dD0C155C0320F", + "passed": true, + "duration": 1842, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-Ledger Live / m/44'/61'/2147483647'/0/0", + "method": "evmGetAddress", + "expected": "0x495af699Bf9b9BDF985882bDb3aa98777DEe894E", + "actual": "0x495af699Bf9b9BDF985882bDb3aa98777DEe894E", + "passed": true, + "duration": 2449, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-ETC / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "actual": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "passed": true, + "duration": 2025, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-ETC / m/44'/61'/0'/0/1", + "method": "evmGetAddress", + "expected": "0xd8B6eb920F6D3e882Ffbc36563Eea5631E762b8c", + "actual": "0xd8B6eb920F6D3e882Ffbc36563Eea5631E762b8c", + "passed": true, + "duration": 1838, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-ETC / m/44'/61'/0'/0/25", + "method": "evmGetAddress", + "expected": "0x8ED6043Ef7FD06fb69c51038658E2eC0db5b616c", + "actual": "0x8ED6043Ef7FD06fb69c51038658E2eC0db5b616c", + "passed": true, + "duration": 2419, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0xDfd3F060942679cBA698b84C26E8a71073df3142", + "actual": "0xDfd3F060942679cBA698b84C26E8a71073df3142", + "passed": true, + "duration": 2003, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x783954f2B55562a29799f0ebfA0137F379ec4F9e", + "actual": "0x783954f2B55562a29799f0ebfA0137F379ec4F9e", + "passed": true, + "duration": 1870, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / filecoinGetAddress / m/44'/461'/0'/0/0", + "method": "filecoinGetAddress", + "expected": "f1qx24etmdkfpaqrxm5daj2cfe6ymu4eh5mbyamyy", + "actual": "f1qx24etmdkfpaqrxm5daj2cfe6ymu4eh5mbyamyy", + "passed": true, + "duration": 2439, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / filecoinGetAddress / m/44'/461'/0'/0/1", + "method": "filecoinGetAddress", + "expected": "f1vu2ottl2nby3z27mbev77xgy5dwsrtnxtcwvksi", + "actual": "f1vu2ottl2nby3z27mbev77xgy5dwsrtnxtcwvksi", + "passed": true, + "duration": 2005, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / filecoinGetAddress / m/44'/461'/0'/0/25", + "method": "filecoinGetAddress", + "expected": "f1oftf6qyi4yeadmauiukku6dsb4i6gmyhko6e4ki", + "actual": "f1oftf6qyi4yeadmauiukku6dsb4i6gmyhko6e4ki", + "passed": true, + "duration": 1815, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / filecoinGetAddress / m/44'/461'/0'/0/2147483646", + "method": "filecoinGetAddress", + "expected": "f1ys72erbjwe2kscrq5k3dmhpoixtlhmoi7vu6ssi", + "actual": "f1ys72erbjwe2kscrq5k3dmhpoixtlhmoi7vu6ssi", + "passed": true, + "duration": 2345, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / filecoinGetAddress / m/44'/461'/0'/0/2147483647", + "method": "filecoinGetAddress", + "expected": "f1ebycpqukvtqwo5ky2sfhkpwiamup7o3ignn62nq", + "actual": "f1ebycpqukvtqwo5ky2sfhkpwiamup7o3ignn62nq", + "passed": true, + "duration": 1875, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / kaspaGetAddress / m/44'/111111'/0'/0/0", + "method": "kaspaGetAddress", + "expected": "kaspa:qpyzj30sk5jvrh0n6zxwgy8w7h3dnxxgy5yc5jz3eusp7g55wxcx6kcp6hhc9", + "actual": "kaspa:qpyzj30sk5jvrh0n6zxwgy8w7h3dnxxgy5yc5jz3eusp7g55wxcx6kcp6hhc9", + "passed": true, + "duration": 2564, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / kaspaGetAddress / m/44'/111111'/0'/0/1", + "method": "kaspaGetAddress", + "expected": "kaspa:qrd7h6u4qv7z5rq5463z05f8hf9umv998flqtwl9ph6j9ehukycsv0p8h7kdn", + "actual": "kaspa:qrd7h6u4qv7z5rq5463z05f8hf9umv998flqtwl9ph6j9ehukycsv0p8h7kdn", + "passed": true, + "duration": 2290, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / kaspaGetAddress / m/44'/111111'/0'/0/25", + "method": "kaspaGetAddress", + "expected": "kaspa:qphaul76y4shjuhdpdyvs2gjx5jmcj7kghyxtm2czdt0w23wrwmvcff2qkm2f", + "actual": "kaspa:qphaul76y4shjuhdpdyvs2gjx5jmcj7kghyxtm2czdt0w23wrwmvcff2qkm2f", + "passed": true, + "duration": 2029, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / kaspaGetAddress / m/44'/111111'/0'/0/2147483646", + "method": "kaspaGetAddress", + "expected": "kaspa:qqcuskxn32fa0jdztv48wxxy8nz0wy9sp3uce5yes55lnah8vfj3x304aa00g", + "actual": "kaspa:qqcuskxn32fa0jdztv48wxxy8nz0wy9sp3uce5yes55lnah8vfj3x304aa00g", + "passed": true, + "duration": 1983, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / kaspaGetAddress / m/44'/111111'/0'/0/2147483647", + "method": "kaspaGetAddress", + "expected": "kaspa:qrz67k4vc5ml0nggphzv2g7l2zgy7vph8xqk7f7rnxkqz4dshzxrsk84hpmfa", + "actual": "kaspa:qrz67k4vc5ml0nggphzv2g7l2zgy7vph8xqk7f7rnxkqz4dshzxrsk84hpmfa", + "passed": true, + "duration": 1966, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nearGetAddress / m/44'/397'/0'", + "method": "nearGetAddress", + "expected": "d7be27229b157122eae4e1329fabe67272dcb4ba186378f5f788f245cc1c10d2", + "actual": "d7be27229b157122eae4e1329fabe67272dcb4ba186378f5f788f245cc1c10d2", + "passed": true, + "duration": 1966, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nearGetAddress / m/44'/397'/1'", + "method": "nearGetAddress", + "expected": "71191a5e9397b1b0cf844671960925031ef075ff9320f803bab350c4c86c2fba", + "actual": "71191a5e9397b1b0cf844671960925031ef075ff9320f803bab350c4c86c2fba", + "passed": true, + "duration": 1940, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nearGetAddress / m/44'/397'/25'", + "method": "nearGetAddress", + "expected": "a2b0514ad1b59478fab2a7dad53a190bca73f230dfb29fac412cfc95399398b6", + "actual": "a2b0514ad1b59478fab2a7dad53a190bca73f230dfb29fac412cfc95399398b6", + "passed": true, + "duration": 1953, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nearGetAddress / m/44'/397'/2147483646'", + "method": "nearGetAddress", + "expected": "d8316b58f749496aba735828c204bf4034518ebea70d7d92697c8ac1c9c4e989", + "actual": "d8316b58f749496aba735828c204bf4034518ebea70d7d92697c8ac1c9c4e989", + "passed": true, + "duration": 1950, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nearGetAddress / m/44'/397'/2147483647'", + "method": "nearGetAddress", + "expected": "6abdf8ce662df010165f57e3f4b8d73bd593b168ad15e074614b1c1949caf0cf", + "actual": "6abdf8ce662df010165f57e3f4b8d73bd593b168ad15e074614b1c1949caf0cf", + "passed": true, + "duration": 1945, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nervosGetAddress / m/44'/309'/0'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyq9qqyurg2k9w8dvn8d62lsf89ca69rqv5qnwd9dc", + "actual": "ckb1qyq9qqyurg2k9w8dvn8d62lsf89ca69rqv5qnwd9dc", + "passed": true, + "duration": 1884, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nervosGetAddress / m/44'/309'/1'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqqz5w33lm8w6gryxdvenhcc6ularpa4x9qwmqwmn", + "actual": "ckb1qyqqz5w33lm8w6gryxdvenhcc6ularpa4x9qwmqwmn", + "passed": true, + "duration": 2521, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nervosGetAddress / m/44'/309'/25'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqgfcf3c8quk69r6qyeyftznz70dsczjd0s487pfl", + "actual": "ckb1qyqgfcf3c8quk69r6qyeyftznz70dsczjd0s487pfl", + "passed": true, + "duration": 2123, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nervosGetAddress / m/44'/309'/2147483646'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyq2xt6t5ndhymjzwpp55pt5ckdvq3ev80vqjgv5xv", + "actual": "ckb1qyq2xt6t5ndhymjzwpp55pt5ckdvq3ev80vqjgv5xv", + "passed": true, + "duration": 1866, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nervosGetAddress / m/44'/309'/2147483647'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqf9s7ur894zn462wpdr0xhekjtpzm54l6slakmrt", + "actual": "ckb1qyqf9s7ur894zn462wpdr0xhekjtpzm54l6slakmrt", + "passed": true, + "duration": 2506, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nemGetAddress / m/44'/43'/0'", + "method": "nemGetAddress", + "expected": "NA43KIC4SBMGB2ZZ5AJ4VYXNECALFJQALRTP6HHU", + "actual": "NA43KIC4SBMGB2ZZ5AJ4VYXNECALFJQALRTP6HHU", + "passed": true, + "duration": 2657, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nemGetAddress / m/44'/43'/1'", + "method": "nemGetAddress", + "expected": "NCF2XIZSOWKWRLO5BVRFRPHGMIJDAWLILELN5INN", + "actual": "NCF2XIZSOWKWRLO5BVRFRPHGMIJDAWLILELN5INN", + "passed": true, + "duration": 2514, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nemGetAddress / m/44'/43'/25'", + "method": "nemGetAddress", + "expected": "NBH6CQ4VN6OK3VWNXQUNX2WGTDIUFGVV5DRZEJ5X", + "actual": "NBH6CQ4VN6OK3VWNXQUNX2WGTDIUFGVV5DRZEJ5X", + "passed": true, + "duration": 2477, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nemGetAddress / m/44'/43'/2147483646'", + "method": "nemGetAddress", + "expected": "NCTDE7GVEW2X7NF6BTAMBTA7PXOE2TOXD5CWUVJ7", + "actual": "NCTDE7GVEW2X7NF6BTAMBTA7PXOE2TOXD5CWUVJ7", + "passed": true, + "duration": 2658, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nemGetAddress / m/44'/43'/2147483647'", + "method": "nemGetAddress", + "expected": "NC2GMZ66IARS7ZVN6GV5C6VMIBMEALC2YXDSKXPW", + "actual": "NC2GMZ66IARS7ZVN6GV5C6VMIBMEALC2YXDSKXPW", + "passed": true, + "duration": 2650, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nexaGetAddress / m/44'/29223'/0'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5e47yv33ek75g5j234acq43u8damwre2mp3zc2trf", + "actual": "nexa:nqtsq5g5e47yv33ek75g5j234acq43u8damwre2mp3zc2trf", + "passed": true, + "duration": 2580, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nexaGetAddress / m/44'/29223'/1'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5rxt6t9mnpfx943l4aat07jntyhfrwfknp8zhcwsf", + "actual": "nexa:nqtsq5g5rxt6t9mnpfx943l4aat07jntyhfrwfknp8zhcwsf", + "passed": true, + "duration": 2565, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nexaGetAddress / m/44'/29223'/25'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5q4mm40kzd5pu4tg6s6xxrjv7m5689ykf3d5r6v4p", + "actual": "nexa:nqtsq5g5q4mm40kzd5pu4tg6s6xxrjv7m5689ykf3d5r6v4p", + "passed": true, + "duration": 2568, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nexaGetAddress / m/44'/29223'/2147483646'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g57ly0fqd6hrefz24zjqp4k5s6xvl57pkpp3udvkrp", + "actual": "nexa:nqtsq5g57ly0fqd6hrefz24zjqp4k5s6xvl57pkpp3udvkrp", + "passed": true, + "duration": 2581, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nexaGetAddress / m/44'/29223'/2147483647'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5emucd9q54z9jw50ekjc7adkl3jss8z2nvtpgvrr8", + "actual": "nexa:nqtsq5g5emucd9q54z9jw50ekjc7adkl3jss8z2nvtpgvrr8", + "passed": true, + "duration": 2563, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "15Zv9wuuj921BLAVX3iKxHN32gZS21hA4KsA3YsWkc79brEu", + "actual": "15Zv9wuuj921BLAVX3iKxHN32gZS21hA4KsA3YsWkc79brEu", + "passed": true, + "duration": 2944, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "1rSyKHrPa134sir7KfYXC9xMXV9fiacf4gmazHUJVSutajq", + "actual": "1rSyKHrPa134sir7KfYXC9xMXV9fiacf4gmazHUJVSutajq", + "passed": true, + "duration": 2935, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "14kk58Q5zaEJkeu5UJ1ADtemFrJ99BSgSsCbjKkgk1sMdoBt", + "actual": "14kk58Q5zaEJkeu5UJ1ADtemFrJ99BSgSsCbjKkgk1sMdoBt", + "passed": true, + "duration": 2901, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "14o8s7MB19cGAf4y5HXSXb7Hx9fe3NHuQQ8o8XYUBH6Fs23o", + "actual": "14o8s7MB19cGAf4y5HXSXb7Hx9fe3NHuQQ8o8XYUBH6Fs23o", + "passed": true, + "duration": 2977, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "13bh26UxZFDeMyESz6Kz6nzhzJjpgZogYkjnK13bWeXqxiGw", + "actual": "13bh26UxZFDeMyESz6Kz6nzhzJjpgZogYkjnK13bWeXqxiGw", + "passed": true, + "duration": 2900, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-astar / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "aWDSucvebPdxdBp3i7SqnhAG7GuHvqm12dp7y624t5b1Xex", + "actual": "aWDSucvebPdxdBp3i7SqnhAG7GuHvqm12dp7y624t5b1Xex", + "passed": true, + "duration": 2938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-astar / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "WnkGGzsK2NfrAkAdz4fQhV5axCcwdjDbmTRfQVycmRMJGP6", + "actual": "WnkGGzsK2NfrAkAdz4fQhV5axCcwdjDbmTRfQVycmRMJGP6", + "passed": true, + "duration": 2924, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-astar / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Zh3N676v2bwXwvPzxQH7PytVH1cR6bHPZyFojyC4Hqo3Wuf", + "actual": "Zh3N676v2bwXwvPzxQH7PytVH1cR6bHPZyFojyC4Hqo3Wuf", + "passed": true, + "duration": 2913, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-astar / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "ZjSA54Bvbytwx6HbwvZR6SRBaP7KHSWM6uTCwkyVZ4hGohY", + "actual": "ZjSA54Bvbytwx6HbwvZR6SRBaP7KHSWM6uTCwkyVZ4hGohY", + "passed": true, + "duration": 2938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-astar / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "YXzK4ByUhbH9GFmWkj6zJKqDjTHxUxHVTWSPRG6pvWHNDey", + "actual": "YXzK4ByUhbH9GFmWkj6zJKqDjTHxUxHVTWSPRG6pvWHNDey", + "passed": true, + "duration": 2875, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-kusama / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "H9EfvziVimTVSyRL7UNi5ttKer28NxCSCyRGvA7gKJ8APBy", + "actual": "H9EfvziVimTVSyRL7UNi5ttKer28NxCSCyRGvA7gKJ8APBy", + "passed": true, + "duration": 2955, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-kusama / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "DRmVJNfA9kVNzXmvPRbGzgoeVmjn5qf2wo2pMa5ECdtTCAJ", + "actual": "DRmVJNfA9kVNzXmvPRbGzgoeVmjn5qf2wo2pMa5ECdtTCAJ", + "passed": true, + "duration": 3076, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-kusama / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "GL4b7Utm9ym4mi1HMmCyhBcYpajFYhipkJrxh3Hfj4LCdmq", + "actual": "GL4b7Utm9ym4mi1HMmCyhBcYpajFYhipkJrxh3Hfj4LCdmq", + "passed": true, + "duration": 2637, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-kusama / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "GNTP6RymjMiUmsttMHVHPe9F7xE9jYwnHF4Mtq56zHERjc8", + "actual": "GNTP6RymjMiUmsttMHVHPe9F7xE9jYwnHF4Mtq56zHERjc8", + "passed": true, + "duration": 2800, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-kusama / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "FB1Y5ZmKpy6g63NoA62rbXZHH2Qnw4ivdr3YNLCSMipXD2E", + "actual": "FB1Y5ZmKpy6g63NoA62rbXZHH2Qnw4ivdr3YNLCSMipXD2E", + "passed": true, + "duration": 2889, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-joystream / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4VtXaetok5FZaQbiqP71fHEshSeMpbiBhmm7FovUdbEG512F", + "actual": "j4VtXaetok5FZaQbiqP71fHEshSeMpbiBhmm7FovUdbEG512F", + "passed": true, + "duration": 2935, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-joystream / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4SB4Q2GkQWEbTxA5Rf4EEC2o2Ha5UJbeJWaioFLSBUa2Mfkd", + "actual": "j4SB4Q2GkQWEbTxA5Rf4EEC2o2Ha5UJbeJWaioFLSBUa2Mfkd", + "passed": true, + "duration": 2923, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-joystream / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4V5MVqNz1WTs9jLJndPqvtXbvcP4wmTi6K6YwaoeczzU75M9", + "actual": "j4V5MVqNz1WTs9jLJndPqvtXbvcP4wmTi6K6YwaoeczzU75M9", + "passed": true, + "duration": 2928, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-joystream / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4V7kHpL525qpZjWCPcv8Eaz8cukZqxJw3r2kLnbS4GDNLDTH", + "actual": "j4V7kHpL525qpZjWCPcv8Eaz8cukZqxJw3r2kLnbS4GDNLDTH", + "passed": true, + "duration": 2921, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-joystream / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4TvJSoTraBTCm3fgJRifonsYf4pkV9piCCdjXG6ZPdexRkdg", + "actual": "j4TvJSoTraBTCm3fgJRifonsYf4pkV9piCCdjXG6ZPdexRkdg", + "passed": true, + "duration": 2938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-manta / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfb7vySxSVgWDnKvxTkJXVKEGunCDhs5vA6TMtM6Gc4X7Vtne", + "actual": "dfb7vySxSVgWDnKvxTkJXVKEGunCDhs5vA6TMtM6Gc4X7Vtne", + "passed": true, + "duration": 2935, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-manta / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfXQTnpLPA7VFfsVK42Fk4E2CEd7wMZyNkqGyRnWE9wrsnH1f", + "actual": "dfXQTnpLPA7VFfsVK42Fk4E2CEd7wMZyNkqGyRnWE9wrsnH1f", + "passed": true, + "duration": 2935, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-manta / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfaJktdScm7iXMefYQzbMkvX18wvvq2qSYdnoa7ySbUHKXYk7", + "actual": "dfaJktdScm7iXMefYQzbMkvX18wvvq2qSYdnoa7ySbUHKXYk7", + "passed": true, + "duration": 2950, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-manta / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfaM9gcPhmh6UmeqS1z7e4cyXqFJRjDgfWAizyKmE2jWDm5QP", + "actual": "dfaM9gcPhmh6UmeqS1z7e4cyXqFJRjDgfWAizyKmE2jWDm5QP", + "passed": true, + "duration": 2927, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress-manta / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfZ9hqbXVKnhrxxzuvnvBdprwsQNcNRCSeXKz9oGMN6worZTV", + "actual": "dfZ9hqbXVKnhrxxzuvnvBdprwsQNcNRCSeXKz9oGMN6worZTV", + "passed": true, + "duration": 2936, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "r9D1JTDPkWTZ9qfezpALSi2aiTytQ58Zy6", + "actual": "r9D1JTDPkWTZ9qfezpALSi2aiTytQ58Zy6", + "passed": true, + "duration": 3508, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/1'/0/0", + "method": "xrpGetAddress", + "expected": "rKidUHQbms3Tt81XxAXaqemFgAhsLsNKmb", + "actual": "rKidUHQbms3Tt81XxAXaqemFgAhsLsNKmb", + "passed": true, + "duration": 3497, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "rnvW6eEzP4dve7UqZ5yp7EpQDZGyGmsUbd", + "actual": "rnvW6eEzP4dve7UqZ5yp7EpQDZGyGmsUbd", + "passed": true, + "duration": 3481, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/2147483646'/0/0", + "method": "xrpGetAddress", + "expected": "rBeCiegeAZVwQJj5mXpVCUPp7r3md867Tf", + "actual": "rBeCiegeAZVwQJj5mXpVCUPp7r3md867Tf", + "passed": true, + "duration": 3500, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "rJbE86wJ6AsezwWvxfa5LVkwzxxsQgygig", + "actual": "rJbE86wJ6AsezwWvxfa5LVkwzxxsQgygig", + "passed": true, + "duration": 3522, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / solGetAddress / m/44'/501'/0'/0'", + "method": "solGetAddress", + "expected": "FdrzyiRBdL1sNzPYbDdwgMWRfmBn9pS33uvn2vr7NNzH", + "actual": "FdrzyiRBdL1sNzPYbDdwgMWRfmBn9pS33uvn2vr7NNzH", + "passed": true, + "duration": 2791, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / solGetAddress / m/44'/501'/1'/0'", + "method": "solGetAddress", + "expected": "Fs9D3kmTYHSGhPUxSSqR1y82PLZpCowCQBWHy8Nnmwq5", + "actual": "Fs9D3kmTYHSGhPUxSSqR1y82PLZpCowCQBWHy8Nnmwq5", + "passed": true, + "duration": 2814, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / solGetAddress / m/44'/501'/25'/0'", + "method": "solGetAddress", + "expected": "EadgeNarDdbQJ7Pn2XKY7aW5AT2B5qrw54p6oHrj7AdB", + "actual": "EadgeNarDdbQJ7Pn2XKY7aW5AT2B5qrw54p6oHrj7AdB", + "passed": true, + "duration": 2807, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / solGetAddress / m/44'/501'/2147483646'/0'", + "method": "solGetAddress", + "expected": "J2dXSUFoaGJTcNgpW1DAkTvsU48LRbTi6WsAp87JMHTM", + "actual": "J2dXSUFoaGJTcNgpW1DAkTvsU48LRbTi6WsAp87JMHTM", + "passed": true, + "duration": 2798, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / solGetAddress / m/44'/501'/2147483647'/0'", + "method": "solGetAddress", + "expected": "4PPywjfLFF7goH65Ro7Ad49wz11LZ7a8NtebDJs2wyHe", + "actual": "4PPywjfLFF7goH65Ro7Ad49wz11LZ7a8NtebDJs2wyHe", + "passed": true, + "duration": 2810, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / starcoinGetAddress / m/44'/101010'/0'/0'/0'", + "method": "starcoinGetAddress", + "expected": "0x47ae03920bc534f67df801b008be486d", + "actual": "0x47ae03920bc534f67df801b008be486d", + "passed": true, + "duration": 2632, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / starcoinGetAddress / m/44'/101010'/0'/0'/1'", + "method": "starcoinGetAddress", + "expected": "0x4858ff2f9f77d8ecb729e3228124319b", + "actual": "0x4858ff2f9f77d8ecb729e3228124319b", + "passed": true, + "duration": 2628, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / starcoinGetAddress / m/44'/101010'/0'/0'/25'", + "method": "starcoinGetAddress", + "expected": "0xd7ddeac86476a1ff08fa8bd23ef32a62", + "actual": "0xd7ddeac86476a1ff08fa8bd23ef32a62", + "passed": true, + "duration": 2659, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483646'", + "method": "starcoinGetAddress", + "expected": "0x147d21929ad4ef6d7c1b80ce8e373e54", + "actual": "0x147d21929ad4ef6d7c1b80ce8e373e54", + "passed": true, + "duration": 2675, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483647'", + "method": "starcoinGetAddress", + "expected": "0x4097ec8fea4b9b7daabf2d1fef1d4cd4", + "actual": "0x4097ec8fea4b9b7daabf2d1fef1d4cd4", + "passed": true, + "duration": 2558, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / stellarGetAddress / m/44'/148'/0'", + "method": "stellarGetAddress", + "expected": "GBMVJNK4T6S2PYIPC5XJCWR2TUVEVYNZ6G6KRRZ5N62K6YTN3OZB77BK", + "actual": "GBMVJNK4T6S2PYIPC5XJCWR2TUVEVYNZ6G6KRRZ5N62K6YTN3OZB77BK", + "passed": true, + "duration": 2658, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / stellarGetAddress / m/44'/148'/1'", + "method": "stellarGetAddress", + "expected": "GCW3XMHQYGEWIWT2LQXJSLVIDL6OVDBY5YYLLUKK3PRF6TQ4PX2QVHFD", + "actual": "GCW3XMHQYGEWIWT2LQXJSLVIDL6OVDBY5YYLLUKK3PRF6TQ4PX2QVHFD", + "passed": true, + "duration": 2644, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / stellarGetAddress / m/44'/148'/25'", + "method": "stellarGetAddress", + "expected": "GBF3LBUBQKPUOH33CIETS5RXYTIY7JRDSNEBKLV3IOA3THKVE4EG3CBT", + "actual": "GBF3LBUBQKPUOH33CIETS5RXYTIY7JRDSNEBKLV3IOA3THKVE4EG3CBT", + "passed": true, + "duration": 2649, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / stellarGetAddress / m/44'/148'/2147483646'", + "method": "stellarGetAddress", + "expected": "GB4UCHXB4UPEOTAILBRIM6BYI5ZHXXARC5PEASWISKU44ZEYKECFT4VA", + "actual": "GB4UCHXB4UPEOTAILBRIM6BYI5ZHXXARC5PEASWISKU44ZEYKECFT4VA", + "passed": true, + "duration": 2637, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / stellarGetAddress / m/44'/148'/2147483647'", + "method": "stellarGetAddress", + "expected": "GDLALZJOILBMK3ZLUMLLUKQM32XAQMCBN24YRX4PVZ7NRINZYFWHHEOX", + "actual": "GDLALZJOILBMK3ZLUMLLUKQM32XAQMCBN24YRX4PVZ7NRINZYFWHHEOX", + "passed": true, + "duration": 2676, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetAddress / m/44'/784'/0'/0'/0'", + "method": "suiGetAddress", + "expected": "0xbfd0a6d5c3dd77bb27e1320e7ccc39d33f53056592f7165031d2893c07812bfe", + "actual": "0xbfd0a6d5c3dd77bb27e1320e7ccc39d33f53056592f7165031d2893c07812bfe", + "passed": true, + "duration": 2586, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetAddress / m/44'/784'/1'/0'/0'", + "method": "suiGetAddress", + "expected": "0x4c124b471080a0d0d12984c15638a5859b66306b638a257d2f89b57a3923f72c", + "actual": "0x4c124b471080a0d0d12984c15638a5859b66306b638a257d2f89b57a3923f72c", + "passed": true, + "duration": 2580, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetAddress / m/44'/784'/25'/0'/0'", + "method": "suiGetAddress", + "expected": "0xc85905746254bafebc36f1684c4a220f34ea680501304929ebeddd79fbea98a4", + "actual": "0xc85905746254bafebc36f1684c4a220f34ea680501304929ebeddd79fbea98a4", + "passed": true, + "duration": 2561, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetAddress / m/44'/784'/2147483646'/0'/0'", + "method": "suiGetAddress", + "expected": "0x551b618c244d83a846c36f8ab76d49b163c5244202a02d396b888d3e9248bc30", + "actual": "0x551b618c244d83a846c36f8ab76d49b163c5244202a02d396b888d3e9248bc30", + "passed": true, + "duration": 2573, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetAddress / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetAddress", + "expected": "0x291c1eef951f188406365c0d8154da4cd0df0b465165ea4236d5e33ef61d3942", + "actual": "0x291c1eef951f188406365c0d8154da4cd0df0b465165ea4236d5e33ef61d3942", + "passed": true, + "duration": 2599, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / tronGetAddress / m/44'/195'/0'/0/0", + "method": "tronGetAddress", + "expected": "THXNjn3TN6n58cD1Ry6mmzPzbgQiZ92whR", + "actual": "THXNjn3TN6n58cD1Ry6mmzPzbgQiZ92whR", + "passed": true, + "duration": 2556, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / tronGetAddress / m/44'/195'/0'/0/1", + "method": "tronGetAddress", + "expected": "TPq9c75jnQJ2ZxiZaLyCJTZJ4navYKwGCn", + "actual": "TPq9c75jnQJ2ZxiZaLyCJTZJ4navYKwGCn", + "passed": true, + "duration": 2551, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / tronGetAddress / m/44'/195'/0'/0/25", + "method": "tronGetAddress", + "expected": "TJmH9sHce76JPnRGzncoHDDUSyLetYDECM", + "actual": "TJmH9sHce76JPnRGzncoHDDUSyLetYDECM", + "passed": true, + "duration": 2542, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / tronGetAddress / m/44'/195'/0'/0/2147483646", + "method": "tronGetAddress", + "expected": "TB78RJTnktDuwQrpNhjoav5sDKy7uw4L8B", + "actual": "TB78RJTnktDuwQrpNhjoav5sDKy7uw4L8B", + "passed": true, + "duration": 2582, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / tronGetAddress / m/44'/195'/0'/0/2147483647", + "method": "tronGetAddress", + "expected": "TUKjDFGmLHw6NLbYuy4bpt2d6MBpKYtiYR", + "actual": "TUKjDFGmLHw6NLbYuy4bpt2d6MBpKYtiYR", + "passed": true, + "duration": 2563, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / benfenGetAddress / m/44'/728'/0'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC1c5404fc4c215d1f9d0630c61691b588bbd88fd4a2bcdc2fd74689720bb6cfb84820", + "actual": "BFC1c5404fc4c215d1f9d0630c61691b588bbd88fd4a2bcdc2fd74689720bb6cfb84820", + "passed": true, + "duration": 2583, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / benfenGetAddress / m/44'/728'/1'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCff2d2498ce365a4ba6b5e90edf54bb174798540493c15af1910375d958f1ddf8f3f4", + "actual": "BFCff2d2498ce365a4ba6b5e90edf54bb174798540493c15af1910375d958f1ddf8f3f4", + "passed": true, + "duration": 2574, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / benfenGetAddress / m/44'/728'/25'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC7774cf91db3f17c19ccb8783654191c2519a7041057ca5c5aaa192c715a3018dbec3", + "actual": "BFC7774cf91db3f17c19ccb8783654191c2519a7041057ca5c5aaa192c715a3018dbec3", + "passed": true, + "duration": 2568, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / benfenGetAddress / m/44'/728'/2147483646'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCf0960edd2ef00bd36e6b4190d1cd8e98ad4a37a90fe1ec7ef8964b223cda3a6d50fd", + "actual": "BFCf0960edd2ef00bd36e6b4190d1cd8e98ad4a37a90fe1ec7ef8964b223cda3a6d50fd", + "passed": true, + "duration": 2578, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / benfenGetAddress / m/44'/728'/2147483647'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC28834bfc0be1b5eed1583b814fb4a698e56850ce3a603eafbd91c57542b6f17ec0f6", + "actual": "BFC28834bfc0be1b5eed1583b814fb4a698e56850ce3a603eafbd91c57542b6f17ec0f6", + "passed": true, + "duration": 2585, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / neoGetAddress / m/44'/888'/0'/0/0", + "method": "neoGetAddress", + "expected": "NaRAttMCnmEUBhHUQXtWnNgZyKaoifxx1q", + "actual": "NaRAttMCnmEUBhHUQXtWnNgZyKaoifxx1q", + "passed": true, + "duration": 2550, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / neoGetAddress / m/44'/888'/0'/0/1", + "method": "neoGetAddress", + "expected": "NcFmfyXgMt2UgYBF7Q1cXVsSnSVbRdTE6w", + "actual": "NcFmfyXgMt2UgYBF7Q1cXVsSnSVbRdTE6w", + "passed": true, + "duration": 2552, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / neoGetAddress / m/44'/888'/0'/0/30", + "method": "neoGetAddress", + "expected": "NabkPptMvXxqZRkrZwQmR8w5JZwmug4quW", + "actual": "NabkPptMvXxqZRkrZwQmR8w5JZwmug4quW", + "passed": true, + "duration": 2557, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / neoGetAddress / m/44'/888'/0'/0/2147483646", + "method": "neoGetAddress", + "expected": "NcAwNtngKbhVcAEWuTh7AXvewxK4RRRCa3", + "actual": "NcAwNtngKbhVcAEWuTh7AXvewxK4RRRCa3", + "passed": true, + "duration": 2569, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / neoGetAddress / m/44'/888'/0'/0/2147483647", + "method": "neoGetAddress", + "expected": "NaSr6dadXk3KYNvGdFrGEkLsM66BxAbe8P", + "actual": "NaSr6dadXk3KYNvGdFrGEkLsM66BxAbe8P", + "passed": true, + "duration": 1886, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetAddress / m/1852'/1815'/0'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qysxa3psfysjqn9thpdsh6mu3zl7accuts9pgk897f5dwh6exnsw477v78753974lm443any46tt9u2czax3mrxnavlspcff8h", + "actual": "addr1qysxa3psfysjqn9thpdsh6mu3zl7accuts9pgk897f5dwh6exnsw477v78753974lm443any46tt9u2czax3mrxnavlspcff8h", + "passed": true, + "duration": 22054, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetAddress / m/1852'/1815'/1'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qy23d0ewcdk27eh6x89wmtzzjnn6jujwwg3qljvtp6y0ugqf4jh3vxksvvyprypkz2hwtadh29kdakmp2f2m4l8fjfks8mql49", + "actual": "addr1qy23d0ewcdk27eh6x89wmtzzjnn6jujwwg3qljvtp6y0ugqf4jh3vxksvvyprypkz2hwtadh29kdakmp2f2m4l8fjfks8mql49", + "passed": true, + "duration": 8810, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetAddress / m/1852'/1815'/25'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qxsw978fugu6fupj4upn8dnvm5xuwf2rz9hc6llkukzud5wyww2ktd5nxxwcah8zq9vdau8rz9200sks9mdvq9yl0ltsvv4nk2", + "actual": "addr1qxsw978fugu6fupj4upn8dnvm5xuwf2rz9hc6llkukzud5wyww2ktd5nxxwcah8zq9vdau8rz9200sks9mdvq9yl0ltsvv4nk2", + "passed": true, + "duration": 8765, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetAddress / m/1852'/1815'/2147483646'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q99xgsukfegkyk69h64g9umkxjxq6840nnqvyhruycsrxqk4ju7zrausm0q3lgrfj5jg023akmpzqea9vqfzp50mnutsaj2vxz", + "actual": "addr1q99xgsukfegkyk69h64g9umkxjxq6840nnqvyhruycsrxqk4ju7zrausm0q3lgrfj5jg023akmpzqea9vqfzp50mnutsaj2vxz", + "passed": true, + "duration": 8757, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetAddress / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qyya8stt5xgkl08qnkx5shxwnwl0gsksr4gjnzkkhs9wjjakd8dsg2ddy6ts4qtnxu2ss5887qxyugccah097q9uclyqsjfc4x", + "actual": "addr1qyya8stt5xgkl08qnkx5shxwnwl0gsksr4gjnzkkhs9wjjakd8dsg2ddy6ts4qtnxu2ss5887qxyugccah097q9uclyqsjfc4x", + "passed": true, + "duration": 8739, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / algoGetAddress / m/44'/283'/0'/0'/0'", + "method": "algoGetAddress", + "expected": "EMLA73ODZWMPQ2MYUN2KUZ2CXQHWUJKHME2NG2NKP66UO64QWSJNDHKCEQ", + "actual": "EMLA73ODZWMPQ2MYUN2KUZ2CXQHWUJKHME2NG2NKP66UO64QWSJNDHKCEQ", + "passed": true, + "duration": 4011, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / algoGetAddress / m/44'/283'/0'/0'/1'", + "method": "algoGetAddress", + "expected": "5GF3BHVEPAXONS2LPYOFKPUA5NRG66QK2NCGVVG3QSCJ7DRKRWP3G4IHGY", + "actual": "5GF3BHVEPAXONS2LPYOFKPUA5NRG66QK2NCGVVG3QSCJ7DRKRWP3G4IHGY", + "passed": true, + "duration": 3486, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / algoGetAddress / m/44'/283'/0'/0'/25'", + "method": "algoGetAddress", + "expected": "TZ3YXXX6RSPU2T2RJBUGJCPQYMYWQKNEPUUDYSJHED5N2S3FAOQ4F6XOKQ", + "actual": "TZ3YXXX6RSPU2T2RJBUGJCPQYMYWQKNEPUUDYSJHED5N2S3FAOQ4F6XOKQ", + "passed": true, + "duration": 3748, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / algoGetAddress / m/44'/283'/0'/0'/2147483646'", + "method": "algoGetAddress", + "expected": "GZK3UKRRQD52MCUGQSF2FF5WAKMSCAZ3AYTJ6ZE5UI7P3Z6RVR4TG67ZUQ", + "actual": "GZK3UKRRQD52MCUGQSF2FF5WAKMSCAZ3AYTJ6ZE5UI7P3Z6RVR4TG67ZUQ", + "passed": true, + "duration": 4015, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / algoGetAddress / m/44'/283'/0'/0'/2147483647'", + "method": "algoGetAddress", + "expected": "C6OQJNLPWQ7GWSDMC4QBLDXPI7PWRLPRFRVAT5MQSYGW3VDCNJLSUYJMFQ", + "actual": "C6OQJNLPWQ7GWSDMC4QBLDXPI7PWRLPRFRVAT5MQSYGW3VDCNJLSUYJMFQ", + "passed": true, + "duration": 4153, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetAddress / m/44'/637'/0'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x9c1f0b456b8931b25540f0f2f014628b80bed6aa2722ad91638379237f64d9c5", + "actual": "0x9c1f0b456b8931b25540f0f2f014628b80bed6aa2722ad91638379237f64d9c5", + "passed": true, + "duration": 3387, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetAddress / m/44'/637'/1'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xa0920aa64f3b760d17fc2cad4a8d5412ba9496dd2fd1663a70a83de27ea077a9", + "actual": "0xa0920aa64f3b760d17fc2cad4a8d5412ba9496dd2fd1663a70a83de27ea077a9", + "passed": true, + "duration": 3534, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetAddress / m/44'/637'/25'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xcee46db243bc76f2fc8e3934b9dcca4ed588db00b769b4d5e272c2f91348e8f7", + "actual": "0xcee46db243bc76f2fc8e3934b9dcca4ed588db00b769b4d5e272c2f91348e8f7", + "passed": true, + "duration": 3666, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetAddress / m/44'/637'/2147483646'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xd22bba822589776b85b04bce55655b794b3932b66b668dd25363c36128050ebb", + "actual": "0xd22bba822589776b85b04bce55655b794b3932b66b668dd25363c36128050ebb", + "passed": true, + "duration": 3776, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetAddress / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x5f5e6ef62625559bb331b9d5c105b11451d2c8df9f1ae154ffa12d798de9c2fd", + "actual": "0x5f5e6ef62625559bb331b9d5c105b11451d2c8df9f1ae154ffa12d798de9c2fd", + "passed": true, + "duration": 3931, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Legacy / m/44'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "14ue1MTCznXrJV6rF42KzYRxhd9XLFUdBE", + "actual": "14ue1MTCznXrJV6rF42KzYRxhd9XLFUdBE", + "passed": true, + "duration": 4154, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Legacy / m/44'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "1MG2N3oRwdHnWVQyJKNGLFHirYAsprSWwS", + "actual": "1MG2N3oRwdHnWVQyJKNGLFHirYAsprSWwS", + "passed": true, + "duration": 4499, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Legacy / m/44'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "1NDBfmJBTupXhf5enxJ1sYtVXqb1YWc3P6", + "actual": "1NDBfmJBTupXhf5enxJ1sYtVXqb1YWc3P6", + "passed": true, + "duration": 4502, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Legacy / m/44'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "1DyB4vefVWNuMM7hecnMEZjefNh6etttc1", + "actual": "1DyB4vefVWNuMM7hecnMEZjefNh6etttc1", + "passed": true, + "duration": 4544, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Legacy / m/44'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "1MwQLS8wkLzdHXu2FLnEc295T934vzoRe4", + "actual": "1MwQLS8wkLzdHXu2FLnEc295T934vzoRe4", + "passed": true, + "duration": 4510, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Nested SegWit / m/49'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "3B7b4H98rmC2GnGgEfabZK8cBxE3EMRjQP", + "actual": "3B7b4H98rmC2GnGgEfabZK8cBxE3EMRjQP", + "passed": true, + "duration": 4654, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Nested SegWit / m/49'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "3GMvPtK7BuoUSiayY7pB37L1tYNu9Hy7Ta", + "actual": "3GMvPtK7BuoUSiayY7pB37L1tYNu9Hy7Ta", + "passed": true, + "duration": 4652, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Nested SegWit / m/49'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "3HjfJxjABJGXJyPk6of6fPmbhugVsbXvgf", + "actual": "3HjfJxjABJGXJyPk6of6fPmbhugVsbXvgf", + "passed": true, + "duration": 4651, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Nested SegWit / m/49'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "343vwGqrGRxTtX1Zd8Lz8NjQdQhNj7oY1w", + "actual": "343vwGqrGRxTtX1Zd8Lz8NjQdQhNj7oY1w", + "passed": true, + "duration": 4670, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Nested SegWit / m/49'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "3GE6bv6Mkqk2SayGA84u6TRUNsXopEp4yh", + "actual": "3GE6bv6Mkqk2SayGA84u6TRUNsXopEp4yh", + "passed": true, + "duration": 4692, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Native SegWit / m/84'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1qr05zgfhuwy00r2ftyf6mv29avrw4nz5spgfeq8", + "actual": "bc1qr05zgfhuwy00r2ftyf6mv29avrw4nz5spgfeq8", + "passed": true, + "duration": 4224, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Native SegWit / m/84'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1q6mh4ndhhamulcpglv6xme3vw9fcq3762rtf8sw", + "actual": "bc1q6mh4ndhhamulcpglv6xme3vw9fcq3762rtf8sw", + "passed": true, + "duration": 3871, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Native SegWit / m/84'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1q3xllj3mlm7c7ank56ndq55zld463zrqz3f8drs", + "actual": "bc1q3xllj3mlm7c7ank56ndq55zld463zrqz3f8drs", + "passed": true, + "duration": 4535, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Native SegWit / m/84'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1q3n6jj29tlh46af5mrwqdlrw03t60s9kcmhafmd", + "actual": "bc1q3n6jj29tlh46af5mrwqdlrw03t60s9kcmhafmd", + "passed": true, + "duration": 4197, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Native SegWit / m/84'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1q5a2dqeuqvc5ugvdke5gd9aacyfull6d5zldjyk", + "actual": "bc1q5a2dqeuqvc5ugvdke5gd9aacyfull6d5zldjyk", + "passed": true, + "duration": 3857, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Taproot / m/86'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1p0v2wthygpk8md3gnkwe8emyjrlqy0zz6fsck5h3yc6j4tjng4cnqfnnnnt", + "actual": "bc1p0v2wthygpk8md3gnkwe8emyjrlqy0zz6fsck5h3yc6j4tjng4cnqfnnnnt", + "passed": true, + "duration": 4527, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Taproot / m/86'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1pv5dquwpzz664aj40qesr8834ruadln7lqze4qundjp042lae77gsvf0jrs", + "actual": "bc1pv5dquwpzz664aj40qesr8834ruadln7lqze4qundjp042lae77gsvf0jrs", + "passed": true, + "duration": 4206, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Taproot / m/86'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1pd4f5t97s7w2n982ktyvnfqgleq5h08qza4x7l2ans93unwzczalsl6wz0y", + "actual": "bc1pd4f5t97s7w2n982ktyvnfqgleq5h08qza4x7l2ans93unwzczalsl6wz0y", + "passed": true, + "duration": 3886, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Taproot / m/86'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1pg4cct0stsn53c449le0xgy04yhj7x0tj8qz3hlzs3q5a54rpkhlqv0a8fe", + "actual": "bc1pg4cct0stsn53c449le0xgy04yhj7x0tj8qz3hlzs3q5a54rpkhlqv0a8fe", + "passed": true, + "duration": 4549, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Taproot / m/86'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1p7sjseyha6z2gug6ss3d6efa8ntzglywgdtjkw92908zhr2znvyssxf82w4", + "actual": "bc1p7sjseyha6z2gug6ss3d6efa8ntzglywgdtjkw92908zhr2znvyssxf82w4", + "passed": true, + "duration": 4223, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Doge / m/44'/3'/0'/0/0", + "method": "btcGetAddress", + "expected": "DKhTKEeVzq248vbe9wtXeqZVBxXcMQZtD8", + "actual": "DKhTKEeVzq248vbe9wtXeqZVBxXcMQZtD8", + "passed": true, + "duration": 3385, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Doge / m/44'/3'/1'/0/0", + "method": "btcGetAddress", + "expected": "DE6FnjbricjjLkYki7HuCKEyGoi7La2i1J", + "actual": "DE6FnjbricjjLkYki7HuCKEyGoi7La2i1J", + "passed": true, + "duration": 3536, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Doge / m/44'/3'/25'/0/0", + "method": "btcGetAddress", + "expected": "DTMrThou4QhQiMepvTihtTxqiXiePPfxEr", + "actual": "DTMrThou4QhQiMepvTihtTxqiXiePPfxEr", + "passed": true, + "duration": 3704, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Doge / m/44'/3'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "DD8PacCsho2EmmMoojA8Q5h5SYfVETkw6m", + "actual": "DD8PacCsho2EmmMoojA8Q5h5SYfVETkw6m", + "passed": true, + "duration": 3868, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Doge / m/44'/3'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "DC97YUhFRjH9YNmdseeP36BVwLL1xKL4vT", + "actual": "DC97YUhFRjH9YNmdseeP36BVwLL1xKL4vT", + "passed": true, + "duration": 4020, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-BCH / m/44'/145'/0'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qqeu0xp00cxhel4akml3wv908lgm2ms75c9w0hyzwg", + "actual": "bitcoincash:qqeu0xp00cxhel4akml3wv908lgm2ms75c9w0hyzwg", + "passed": true, + "duration": 3697, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-BCH / m/44'/145'/1'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qr7f93p3qzf7rtm9mzz6asagwytm0tt5wu4u8jn2kx", + "actual": "bitcoincash:qr7f93p3qzf7rtm9mzz6asagwytm0tt5wu4u8jn2kx", + "passed": true, + "duration": 4136, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-BCH / m/44'/145'/25'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qp8325hsqewj92w8spscwd27lgu8krve5cl08v2qh3", + "actual": "bitcoincash:qp8325hsqewj92w8spscwd27lgu8krve5cl08v2qh3", + "passed": true, + "duration": 3716, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-BCH / m/44'/145'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qr6sj4hclv6xzpnetsm46klmu8jvhtmn4czw975f0f", + "actual": "bitcoincash:qr6sj4hclv6xzpnetsm46klmu8jvhtmn4czw975f0f", + "passed": true, + "duration": 4159, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-BCH / m/44'/145'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qq57w8u72e6ftnh3v0nql2p0th8ufc5whcxfngm5vd", + "actual": "bitcoincash:qq57w8u72e6ftnh3v0nql2p0th8ufc5whcxfngm5vd", + "passed": true, + "duration": 3681, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Legacy / m/44'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "LPVpr4zPUNcvQZUMLay9iHPyePTUJXg1Ew", + "actual": "LPVpr4zPUNcvQZUMLay9iHPyePTUJXg1Ew", + "passed": true, + "duration": 3973, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Legacy / m/44'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "Ld5xkDz3XvtWUNVS4jk6Rzkfypu7kc951b", + "actual": "Ld5xkDz3XvtWUNVS4jk6Rzkfypu7kc951b", + "passed": true, + "duration": 3528, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Legacy / m/44'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "LeHyNfjFogR2vxqwRyZhbdNM74VU6FsSZ3", + "actual": "LeHyNfjFogR2vxqwRyZhbdNM74VU6FsSZ3", + "passed": true, + "duration": 3819, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Legacy / m/44'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "LUtPfvzfpS5EkRfvdzQ4hMqVop6bgiTWi7", + "actual": "LUtPfvzfpS5EkRfvdzQ4hMqVop6bgiTWi7", + "passed": true, + "duration": 4117, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Legacy / m/44'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "LR5P15oQ9ztoUpKLVuVLZisFTLLiUUt4Rg", + "actual": "LR5P15oQ9ztoUpKLVuVLZisFTLLiUUt4Rg", + "passed": true, + "duration": 3529, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Nested SegWit / m/49'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "MWEWNUEDwjyXUgNEn3sCD6za7FpEUCne3i", + "actual": "MWEWNUEDwjyXUgNEn3sCD6za7FpEUCne3i", + "passed": true, + "duration": 3955, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Nested SegWit / m/49'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "MM4om2XHE5CYpYMohbN632Go6hx2F6XK5P", + "actual": "MM4om2XHE5CYpYMohbN632Go6hx2F6XK5P", + "passed": true, + "duration": 3658, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Nested SegWit / m/49'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "MM5U85RT8LdoamZrFEPMZAwNdxtVGx2oQy", + "actual": "MM5U85RT8LdoamZrFEPMZAwNdxtVGx2oQy", + "passed": true, + "duration": 4092, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "MHaMxPPpBZy9ps5qxNVr2tUzxmCbNQmNsf", + "actual": "MHaMxPPpBZy9ps5qxNVr2tUzxmCbNQmNsf", + "passed": true, + "duration": 3640, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "MFiLav1UDqnFS7fNEEuRR3ThxwzUMqjva2", + "actual": "MFiLav1UDqnFS7fNEEuRR3ThxwzUMqjva2", + "passed": true, + "duration": 4094, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Native SegWit / m/84'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "ltc1q64gfnhnurp9rldcfhd7lw8sxsur2hxjt409leg", + "actual": "ltc1q64gfnhnurp9rldcfhd7lw8sxsur2hxjt409leg", + "passed": true, + "duration": 3584, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Native SegWit / m/84'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "ltc1ql70fyqr9uhq8lcannv4dq7nj3dg9k4qv48ae2r", + "actual": "ltc1ql70fyqr9uhq8lcannv4dq7nj3dg9k4qv48ae2r", + "passed": true, + "duration": 3906, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Native SegWit / m/84'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qesxuhgewwgzuv0e9wu4887apma00gyrmlxj2hl", + "actual": "ltc1qesxuhgewwgzuv0e9wu4887apma00gyrmlxj2hl", + "passed": true, + "duration": 4251, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qnu2udhn3lyrdn4wfsu73szy968rlfq2jk6ck8y", + "actual": "ltc1qnu2udhn3lyrdn4wfsu73szy968rlfq2jk6ck8y", + "passed": true, + "duration": 3683, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qmyu3j8dt8pefg98vk3kvr09097gq0t6qa3jd5g", + "actual": "ltc1qmyu3j8dt8pefg98vk3kvr09097gq0t6qa3jd5g", + "passed": true, + "duration": 4127, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Neurai / m/44'/1900'/0'/0/0", + "method": "btcGetAddress", + "expected": "Nb4i5Fdv1sW57LuW3PzUTTJ5onToU2ooMb", + "actual": "Nb4i5Fdv1sW57LuW3PzUTTJ5onToU2ooMb", + "passed": true, + "duration": 4061, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Neurai / m/44'/1900'/1'/0/0", + "method": "btcGetAddress", + "expected": "NZGG8P4Rp8gTeGwHYHW6CmZFbBFXHyzniG", + "actual": "NZGG8P4Rp8gTeGwHYHW6CmZFbBFXHyzniG", + "passed": true, + "duration": 4095, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Neurai / m/44'/1900'/25'/0/0", + "method": "btcGetAddress", + "expected": "NUDq511D6egFquJN1hToVVwRXL7QxYUEmw", + "actual": "NUDq511D6egFquJN1hToVVwRXL7QxYUEmw", + "passed": true, + "duration": 4064, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Neurai / m/44'/1900'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "Na5bGdqbCJb5uH5CW1QHV6MANxjoTF57xB", + "actual": "Na5bGdqbCJb5uH5CW1QHV6MANxjoTF57xB", + "passed": true, + "duration": 4047, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetAddress-Neurai / m/44'/1900'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "Nfgxk8pwL9dEEPXTWqjSKkDBsyoPSR9DGo", + "actual": "Nfgxk8pwL9dEEPXTWqjSKkDBsyoPSR9DGo", + "passed": true, + "duration": 3733, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / confluxGetAddress / m/44'/503'/0'/0/0", + "method": "confluxGetAddress", + "expected": "cfx:aan8t4v8a49aftxp803ryb9bb6wwf3ae2ycah22e4d", + "actual": "cfx:aan8t4v8a49aftxp803ryb9bb6wwf3ae2ycah22e4d", + "passed": true, + "duration": 4071, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / confluxGetAddress / m/44'/503'/0'/0/1", + "method": "confluxGetAddress", + "expected": "cfx:aarmem0m1xrtc4n3x0wuc100n2e5uv2rgpjgr2z4j5", + "actual": "cfx:aarmem0m1xrtc4n3x0wuc100n2e5uv2rgpjgr2z4j5", + "passed": true, + "duration": 3527, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / confluxGetAddress / m/44'/503'/0'/0/25", + "method": "confluxGetAddress", + "expected": "cfx:aaprdg45ngen6p6ftvrp26dy3k9zukwpya9s42astd", + "actual": "cfx:aaprdg45ngen6p6ftvrp26dy3k9zukwpya9s42astd", + "passed": true, + "duration": 3780, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / confluxGetAddress / m/44'/503'/0'/0/2147483646", + "method": "confluxGetAddress", + "expected": "cfx:aart8tzp3cwkpdcbdj8n4h9n9f3cdxwe36f16rus2n", + "actual": "cfx:aart8tzp3cwkpdcbdj8n4h9n9f3cdxwe36f16rus2n", + "passed": true, + "duration": 4064, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / confluxGetAddress / m/44'/503'/0'/0/2147483647", + "method": "confluxGetAddress", + "expected": "cfx:aarv0a62x3e8wbcpmv7na83wvtt5n6c9cuf7rrjkj0", + "actual": "cfx:aarv0a62x3e8wbcpmv7na83wvtt5n6c9cuf7rrjkj0", + "passed": true, + "duration": 3572, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cosmos14920vuzm4acamhsha9x56cxplzx4tnjphp42ps", + "actual": "cosmos14920vuzm4acamhsha9x56cxplzx4tnjphp42ps", + "passed": true, + "duration": 3596, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cosmos1aag9erlfks65dt3uypr8vz3cmrplxczu7ytt9j", + "actual": "cosmos1aag9erlfks65dt3uypr8vz3cmrplxczu7ytt9j", + "passed": true, + "duration": 3640, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cosmos1ctfppeshf2mzvt046gar9lvvwamkqed23jp38t", + "actual": "cosmos1ctfppeshf2mzvt046gar9lvvwamkqed23jp38t", + "passed": true, + "duration": 3651, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cosmos1kwnkqwtzyhge6v0zdfkygplr09xjz6c6ruvc68", + "actual": "cosmos1kwnkqwtzyhge6v0zdfkygplr09xjz6c6ruvc68", + "passed": true, + "duration": 3700, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cosmos1csntkkfled9mt96cpe89zdlh80cts84nrspatu", + "actual": "cosmos1csntkkfled9mt96cpe89zdlh80cts84nrspatu", + "passed": true, + "duration": 3718, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-akash / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "akash14920vuzm4acamhsha9x56cxplzx4tnjp66cdc2", + "actual": "akash14920vuzm4acamhsha9x56cxplzx4tnjp66cdc2", + "passed": true, + "duration": 3785, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-akash / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "akash1aag9erlfks65dt3uypr8vz3cmrplxczunlxvug", + "actual": "akash1aag9erlfks65dt3uypr8vz3cmrplxczunlxvug", + "passed": true, + "duration": 3794, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-akash / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "akash1ctfppeshf2mzvt046gar9lvvwamkqed2ufvk73", + "actual": "akash1ctfppeshf2mzvt046gar9lvvwamkqed2ufvk73", + "passed": true, + "duration": 3833, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "akash1kwnkqwtzyhge6v0zdfkygplr09xjz6c6w8plra", + "actual": "akash1kwnkqwtzyhge6v0zdfkygplr09xjz6c6w8plra", + "passed": true, + "duration": 3878, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "akash1csntkkfled9mt96cpe89zdlh80cts84nwtv6jx", + "actual": "akash1csntkkfled9mt96cpe89zdlh80cts84nwtv6jx", + "passed": true, + "duration": 3903, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-crypto / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cro14920vuzm4acamhsha9x56cxplzx4tnjp06anap", + "actual": "cro14920vuzm4acamhsha9x56cxplzx4tnjp06anap", + "passed": true, + "duration": 3938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-crypto / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cro1aag9erlfks65dt3uypr8vz3cmrplxczuxlrjer", + "actual": "cro1aag9erlfks65dt3uypr8vz3cmrplxczuxlrjer", + "passed": true, + "duration": 3277, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-crypto / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cro1ctfppeshf2mzvt046gar9lvvwamkqed2fffgm6", + "actual": "cro1ctfppeshf2mzvt046gar9lvvwamkqed2fffgm6", + "passed": true, + "duration": 3329, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cro1kwnkqwtzyhge6v0zdfkygplr09xjz6c6m8ypxk", + "actual": "cro1kwnkqwtzyhge6v0zdfkygplr09xjz6c6m8ypxk", + "passed": true, + "duration": 3354, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cro1csntkkfled9mt96cpe89zdlh80cts84nmtfyhd", + "actual": "cro1csntkkfled9mt96cpe89zdlh80cts84nmtfyhd", + "passed": true, + "duration": 3365, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-fetch / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "fetch14920vuzm4acamhsha9x56cxplzx4tnjpyuuwr8", + "actual": "fetch14920vuzm4acamhsha9x56cxplzx4tnjpyuuwr8", + "passed": true, + "duration": 3407, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-fetch / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "fetch1aag9erlfks65dt3uypr8vz3cmrplxczudez089", + "actual": "fetch1aag9erlfks65dt3uypr8vz3cmrplxczudez089", + "passed": true, + "duration": 3434, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-fetch / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "fetch1ctfppeshf2mzvt046gar9lvvwamkqed2z0g49u", + "actual": "fetch1ctfppeshf2mzvt046gar9lvvwamkqed2z0g49u", + "passed": true, + "duration": 3467, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "fetch1kwnkqwtzyhge6v0zdfkygplr09xjz6c6sp9ucs", + "actual": "fetch1kwnkqwtzyhge6v0zdfkygplr09xjz6c6sp9ucs", + "passed": true, + "duration": 3492, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "fetch1csntkkfled9mt96cpe89zdlh80cts84nsdgeft", + "actual": "fetch1csntkkfled9mt96cpe89zdlh80cts84nsdgeft", + "passed": true, + "duration": 3551, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-osmo / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "osmo14920vuzm4acamhsha9x56cxplzx4tnjpl6x6hz", + "actual": "osmo14920vuzm4acamhsha9x56cxplzx4tnjpl6x6hz", + "passed": true, + "duration": 3623, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-osmo / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "osmo1aag9erlfks65dt3uypr8vz3cmrplxczuklcmnq", + "actual": "osmo1aag9erlfks65dt3uypr8vz3cmrplxczuklcmnq", + "passed": true, + "duration": 3676, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-osmo / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "osmo1ctfppeshf2mzvt046gar9lvvwamkqed2efjp3e", + "actual": "osmo1ctfppeshf2mzvt046gar9lvvwamkqed2efjp3e", + "passed": true, + "duration": 3743, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "osmo1kwnkqwtzyhge6v0zdfkygplr09xjz6c6t8lgv4", + "actual": "osmo1kwnkqwtzyhge6v0zdfkygplr09xjz6c6t8lgv4", + "passed": true, + "duration": 3818, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "osmo1csntkkfled9mt96cpe89zdlh80cts84nttjdaw", + "actual": "osmo1csntkkfled9mt96cpe89zdlh80cts84nttjdaw", + "passed": true, + "duration": 3855, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-juno / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "juno14920vuzm4acamhsha9x56cxplzx4tnjppnk3xv", + "actual": "juno14920vuzm4acamhsha9x56cxplzx4tnjppnk3xv", + "passed": true, + "duration": 3902, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-juno / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "juno1aag9erlfks65dt3uypr8vz3cmrplxczugkgszw", + "actual": "juno1aag9erlfks65dt3uypr8vz3cmrplxczugkgszw", + "passed": true, + "duration": 3913, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-juno / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "juno1ctfppeshf2mzvt046gar9lvvwamkqed28qz2qh", + "actual": "juno1ctfppeshf2mzvt046gar9lvvwamkqed28qz2qh", + "passed": true, + "duration": 3968, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "juno1kwnkqwtzyhge6v0zdfkygplr09xjz6c64w0ram", + "actual": "juno1kwnkqwtzyhge6v0zdfkygplr09xjz6c64w0ram", + "passed": true, + "duration": 3249, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "juno1csntkkfled9mt96cpe89zdlh80cts84n4zzxvq", + "actual": "juno1csntkkfled9mt96cpe89zdlh80cts84n4zzxvq", + "passed": true, + "duration": 3269, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-terra / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "terra14920vuzm4acamhsha9x56cxplzx4tnjp3902rs", + "actual": "terra14920vuzm4acamhsha9x56cxplzx4tnjp3902rs", + "passed": true, + "duration": 3297, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-terra / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "terra1aag9erlfks65dt3uypr8vz3cmrplxczucq3t8j", + "actual": "terra1aag9erlfks65dt3uypr8vz3cmrplxczucq3t8j", + "passed": true, + "duration": 3339, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-terra / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "terra1ctfppeshf2mzvt046gar9lvvwamkqed2hkm39t", + "actual": "terra1ctfppeshf2mzvt046gar9lvvwamkqed2hkm39t", + "passed": true, + "duration": 3365, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "terra1kwnkqwtzyhge6v0zdfkygplr09xjz6c69ckcc8", + "actual": "terra1kwnkqwtzyhge6v0zdfkygplr09xjz6c69ckcc8", + "passed": true, + "duration": 3383, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "terra1csntkkfled9mt96cpe89zdlh80cts84n95mafu", + "actual": "terra1csntkkfled9mt96cpe89zdlh80cts84n95mafu", + "passed": true, + "duration": 3412, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-secret / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "secret14920vuzm4acamhsha9x56cxplzx4tnjp4ypruv", + "actual": "secret14920vuzm4acamhsha9x56cxplzx4tnjp4ypruv", + "passed": true, + "duration": 3428, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-secret / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "secret1aag9erlfks65dt3uypr8vz3cmrplxczuuplzcw", + "actual": "secret1aag9erlfks65dt3uypr8vz3cmrplxczuuplzcw", + "passed": true, + "duration": 3917, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-secret / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "secret1ctfppeshf2mzvt046gar9lvvwamkqed2nh4c6h", + "actual": "secret1ctfppeshf2mzvt046gar9lvvwamkqed2nh4c6h", + "passed": true, + "duration": 3930, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "secret1kwnkqwtzyhge6v0zdfkygplr09xjz6c6pec38m", + "actual": "secret1kwnkqwtzyhge6v0zdfkygplr09xjz6c6pec38m", + "passed": true, + "duration": 3724, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "secret1csntkkfled9mt96cpe89zdlh80cts84np445kq", + "actual": "secret1csntkkfled9mt96cpe89zdlh80cts84np445kq", + "passed": true, + "duration": 3698, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-celestia / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "celestia14920vuzm4acamhsha9x56cxplzx4tnjpxty6ma", + "actual": "celestia14920vuzm4acamhsha9x56cxplzx4tnjpxty6ma", + "passed": true, + "duration": 3758, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-celestia / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "celestia1aag9erlfks65dt3uypr8vz3cmrplxczu0w6mll", + "actual": "celestia1aag9erlfks65dt3uypr8vz3cmrplxczu0w6mll", + "passed": true, + "duration": 3817, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-celestia / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "celestia1ctfppeshf2mzvt046gar9lvvwamkqed2qcspax", + "actual": "celestia1ctfppeshf2mzvt046gar9lvvwamkqed2qcspax", + "passed": true, + "duration": 3879, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "celestia1kwnkqwtzyhge6v0zdfkygplr09xjz6c6jkagq2", + "actual": "celestia1kwnkqwtzyhge6v0zdfkygplr09xjz6c6jkagq2", + "passed": true, + "duration": 3950, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "celestia1csntkkfled9mt96cpe89zdlh80cts84nj6sd33", + "actual": "celestia1csntkkfled9mt96cpe89zdlh80cts84nj6sd33", + "passed": true, + "duration": 3296, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / dnxGetAddress / m/44'/29538'/0'/0'/0'", + "method": "dnxGetAddress", + "expected": "XwmtocxRLhJeqXPJadCcKuMHJ1RVVGYXmfidSqNNex2mWffV2Skw2Cx8Ey4DmY4tQYYXMknxmWPgCAmKA6iyPg7N1qZtpqByB", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3077 + }, + { + "title": "one-passphrase12-密语2 / dnxGetAddress / m/44'/29538'/0'/0'/1'", + "method": "dnxGetAddress", + "expected": "XwmjDVgJDxu4pDdU8EbRTb9dvLiv2RRizN9v7ptf3SnK26835FQ4xbC6m3d1x8gLxGTxzLVEHyJ435B6wdAAHoYQ2RTibDk92", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3025 + }, + { + "title": "one-passphrase12-密语2 / dnxGetAddress / m/44'/29538'/0'/0'/25'", + "method": "dnxGetAddress", + "expected": "XwnT4xkt4ni4CjSVtGRnBZGrfKCz5SAqkDmdjHCP4bUjPW6K5Yz7CFcSJ7bUxDLkshigEdqrm9yF69nUAzXanwf12AfntFo9A", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3012 + }, + { + "title": "one-passphrase12-密语2 / dnxGetAddress / m/44'/29538'/0'/0'/2147483646'", + "method": "dnxGetAddress", + "expected": "Xwo7WaZZV4YaRGGwTTwWFh8JHeHELo4qz7hnkAj3zHcEbt9UiSDtGtYBypokn9pfvuMqPuKmoK5KF7A5ftist9B71V3EgZTjN", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3014 + }, + { + "title": "one-passphrase12-密语2 / dnxGetAddress / m/44'/29538'/0'/0'/2147483647'", + "method": "dnxGetAddress", + "expected": "XwofuJYrbFE8ZEeBiE1y9gbipWPV2PjMe5tiMkDUZL8w3JuuHNea824fjZKvsAa8JUX8D7EnUzWRuE7tBYhhcFrg3BM2WoVSp", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3024 + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress / m/44'/60'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x81f2A434b6E87008c2ABc1241E3519256fB18B3c", + "actual": "0x81f2A434b6E87008c2ABc1241E3519256fB18B3c", + "passed": true, + "duration": 3294, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress / m/44'/60'/0'/0/1", + "method": "evmGetAddress", + "expected": "0xB09C6C950eB93fc1700aC63dCe2E691367Bfbde3", + "actual": "0xB09C6C950eB93fc1700aC63dCe2E691367Bfbde3", + "passed": true, + "duration": 3380, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress / m/44'/60'/0'/0/25", + "method": "evmGetAddress", + "expected": "0x52A213aDDBbF2AD3d34067eAaF7906466eB75769", + "actual": "0x52A213aDDBbF2AD3d34067eAaF7906466eB75769", + "passed": true, + "duration": 3464, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress / m/44'/60'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0xC0B20c141C731BE64797912C56f121951e3d3E18", + "actual": "0xC0B20c141C731BE64797912C56f121951e3d3E18", + "passed": true, + "duration": 3551, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress / m/44'/60'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x94A616569CDBFae9bAB7256f2C7A827B815800aa", + "actual": "0x94A616569CDBFae9bAB7256f2C7A827B815800aa", + "passed": true, + "duration": 3621, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-Ledger Live / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x5e89cBbed9E2E90fa483B030BC6140f6989a58c7", + "actual": "0x5e89cBbed9E2E90fa483B030BC6140f6989a58c7", + "passed": true, + "duration": 3684, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-Ledger Live / m/44'/61'/1'/0/0", + "method": "evmGetAddress", + "expected": "0xC237972c6BF82681671CBe95Ca75A7D0fF908680", + "actual": "0xC237972c6BF82681671CBe95Ca75A7D0fF908680", + "passed": true, + "duration": 3752, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-Ledger Live / m/44'/61'/25'/0/0", + "method": "evmGetAddress", + "expected": "0xc0adDdB10A0F8e3A5778583a6bf007aC2aa2d26D", + "actual": "0xc0adDdB10A0F8e3A5778583a6bf007aC2aa2d26D", + "passed": true, + "duration": 3802, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-Ledger Live / m/44'/61'/2147483646'/0/0", + "method": "evmGetAddress", + "expected": "0xCdF1ea9894861c650Db6082793fc2288606ED660", + "actual": "0xCdF1ea9894861c650Db6082793fc2288606ED660", + "passed": true, + "duration": 3897, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-Ledger Live / m/44'/61'/2147483647'/0/0", + "method": "evmGetAddress", + "expected": "0x338832e6d13a58062D37e763616c5b8d868d9A90", + "actual": "0x338832e6d13a58062D37e763616c5b8d868d9A90", + "passed": true, + "duration": 3980, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-ETC / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x5e89cBbed9E2E90fa483B030BC6140f6989a58c7", + "actual": "0x5e89cBbed9E2E90fa483B030BC6140f6989a58c7", + "passed": true, + "duration": 3340, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-ETC / m/44'/61'/0'/0/1", + "method": "evmGetAddress", + "expected": "0x80eD6DE71a70a336273692036180f5Cc78148cB4", + "actual": "0x80eD6DE71a70a336273692036180f5Cc78148cB4", + "passed": true, + "duration": 3602, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-ETC / m/44'/61'/0'/0/25", + "method": "evmGetAddress", + "expected": "0x0F434f74975D5c1588F13AefAbD55318e97Af08B", + "actual": "0x0F434f74975D5c1588F13AefAbD55318e97Af08B", + "passed": true, + "duration": 3646, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0x2b0E908edd71bE1e2815b719B0Dd2FA199077fAA", + "actual": "0x2b0E908edd71bE1e2815b719B0Dd2FA199077fAA", + "passed": true, + "duration": 3783, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x55C4D3Ddb71A4e9b76B7c134C7B6f4A09ac4C24F", + "actual": "0x55C4D3Ddb71A4e9b76B7c134C7B6f4A09ac4C24F", + "passed": true, + "duration": 3831, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / filecoinGetAddress / m/44'/461'/0'/0/0", + "method": "filecoinGetAddress", + "expected": "f1s7vmpthr3thmulladbgl2jfmxhzrrv5lwm4onia", + "actual": "f1s7vmpthr3thmulladbgl2jfmxhzrrv5lwm4onia", + "passed": true, + "duration": 3843, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / filecoinGetAddress / m/44'/461'/0'/0/1", + "method": "filecoinGetAddress", + "expected": "f1mmo5tywcn7j2qnya4d4sh7cg3veq5k4w2lze2pq", + "actual": "f1mmo5tywcn7j2qnya4d4sh7cg3veq5k4w2lze2pq", + "passed": true, + "duration": 3893, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / filecoinGetAddress / m/44'/461'/0'/0/25", + "method": "filecoinGetAddress", + "expected": "f1xkhj3ludpnynmaifz6uqasqwqn4sf7frdbistpy", + "actual": "f1xkhj3ludpnynmaifz6uqasqwqn4sf7frdbistpy", + "passed": true, + "duration": 3301, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / filecoinGetAddress / m/44'/461'/0'/0/2147483646", + "method": "filecoinGetAddress", + "expected": "f1ycafhwlm3uhaai2x5ajiq7fhxvghwd45abq3bny", + "actual": "f1ycafhwlm3uhaai2x5ajiq7fhxvghwd45abq3bny", + "passed": true, + "duration": 3368, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / filecoinGetAddress / m/44'/461'/0'/0/2147483647", + "method": "filecoinGetAddress", + "expected": "f1xbtwslm64jrwyhprec7ezvqez4mqnkwdkt3ceqy", + "actual": "f1xbtwslm64jrwyhprec7ezvqez4mqnkwdkt3ceqy", + "passed": true, + "duration": 3426, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / kaspaGetAddress / m/44'/111111'/0'/0/0", + "method": "kaspaGetAddress", + "expected": "kaspa:qz0u4qxc299kydjr5wugrvlhelx6wrh63umhkk3306memymqyfj0cq2uxx8f2", + "actual": "kaspa:qz0u4qxc299kydjr5wugrvlhelx6wrh63umhkk3306memymqyfj0cq2uxx8f2", + "passed": true, + "duration": 3613, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / kaspaGetAddress / m/44'/111111'/0'/0/1", + "method": "kaspaGetAddress", + "expected": "kaspa:qr993n6pdqtckpw0sjdsphafnm037wruhrp4djc7efwgc6ksr2aaww4dle0zc", + "actual": "kaspa:qr993n6pdqtckpw0sjdsphafnm037wruhrp4djc7efwgc6ksr2aaww4dle0zc", + "passed": true, + "duration": 3793, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / kaspaGetAddress / m/44'/111111'/0'/0/25", + "method": "kaspaGetAddress", + "expected": "kaspa:qz484szcs7v69hqf4drtdvs7ty260y4h2gq7zq9k6w092q0lkek3724p3z8vw", + "actual": "kaspa:qz484szcs7v69hqf4drtdvs7ty260y4h2gq7zq9k6w092q0lkek3724p3z8vw", + "passed": true, + "duration": 3998, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / kaspaGetAddress / m/44'/111111'/0'/0/2147483646", + "method": "kaspaGetAddress", + "expected": "kaspa:qqr8gqkv3gwtvxjp6kmd3qzjd7jpuzr8xvzlvm5h7s52re9lujzzcynymrhjx", + "actual": "kaspa:qqr8gqkv3gwtvxjp6kmd3qzjd7jpuzr8xvzlvm5h7s52re9lujzzcynymrhjx", + "passed": true, + "duration": 3410, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / kaspaGetAddress / m/44'/111111'/0'/0/2147483647", + "method": "kaspaGetAddress", + "expected": "kaspa:qpzdghtp32x5lqhhg9zr8ra436x6zjv9x4z8u8r3tvael3vmhsslknhrrzd59", + "actual": "kaspa:qpzdghtp32x5lqhhg9zr8ra436x6zjv9x4z8u8r3tvael3vmhsslknhrrzd59", + "passed": true, + "duration": 3578, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nearGetAddress / m/44'/397'/0'", + "method": "nearGetAddress", + "expected": "238dd99983b04389bdbfb433477f0e8f799f9e391e7c160f7e8b1918d5f4bf69", + "actual": "238dd99983b04389bdbfb433477f0e8f799f9e391e7c160f7e8b1918d5f4bf69", + "passed": true, + "duration": 3738, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nearGetAddress / m/44'/397'/1'", + "method": "nearGetAddress", + "expected": "9c743767d4be492fc1e24546275c910425d47f2ba9b92d6440631a57c1c0382d", + "actual": "9c743767d4be492fc1e24546275c910425d47f2ba9b92d6440631a57c1c0382d", + "passed": true, + "duration": 3916, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nearGetAddress / m/44'/397'/25'", + "method": "nearGetAddress", + "expected": "79510bccca6671f0813b523bc9ffb5665d3bba9836dff896294c2693a6177b87", + "actual": "79510bccca6671f0813b523bc9ffb5665d3bba9836dff896294c2693a6177b87", + "passed": true, + "duration": 4065, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nearGetAddress / m/44'/397'/2147483646'", + "method": "nearGetAddress", + "expected": "f39e078731d835b49394591049970a5624697a4383b084a72f21e41c46dfbe29", + "actual": "f39e078731d835b49394591049970a5624697a4383b084a72f21e41c46dfbe29", + "passed": true, + "duration": 3443, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nearGetAddress / m/44'/397'/2147483647'", + "method": "nearGetAddress", + "expected": "f28a180b87b86f623a6b7614a6b605ba8776328d1ffab8e1fe119cca260395fc", + "actual": "f28a180b87b86f623a6b7614a6b605ba8776328d1ffab8e1fe119cca260395fc", + "passed": true, + "duration": 3586, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nervosGetAddress / m/44'/309'/0'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqrsjw9r086zk04h2ysvudhsyvhmudhw8jq2dusxz", + "actual": "ckb1qyqrsjw9r086zk04h2ysvudhsyvhmudhw8jq2dusxz", + "passed": true, + "duration": 3676, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nervosGetAddress / m/44'/309'/1'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqfhpm4jq28tzsmljwzuwq67gvctnv95wmqwd484d", + "actual": "ckb1qyqfhpm4jq28tzsmljwzuwq67gvctnv95wmqwd484d", + "passed": true, + "duration": 3805, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nervosGetAddress / m/44'/309'/25'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqw9c8fsahhmsw09nrkznp9xx74wxnqc3zsjhu00u", + "actual": "ckb1qyqw9c8fsahhmsw09nrkznp9xx74wxnqc3zsjhu00u", + "passed": true, + "duration": 3896, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nervosGetAddress / m/44'/309'/2147483646'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqt00cjrgt8uu25mnfrrutasx7yhxvq039qa2nn9u", + "actual": "ckb1qyqt00cjrgt8uu25mnfrrutasx7yhxvq039qa2nn9u", + "passed": true, + "duration": 4004, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nervosGetAddress / m/44'/309'/2147483647'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqghw0kc3vymnc6ytam68gfrv4zz9kkmchsm6r7my", + "actual": "ckb1qyqghw0kc3vymnc6ytam68gfrv4zz9kkmchsm6r7my", + "passed": true, + "duration": 3345, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nemGetAddress / m/44'/43'/0'", + "method": "nemGetAddress", + "expected": "NBJ75AS35ZRDRITF3TRB6EEMVRFB76FOWB7AQISB", + "actual": "NBJ75AS35ZRDRITF3TRB6EEMVRFB76FOWB7AQISB", + "passed": true, + "duration": 3566, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nemGetAddress / m/44'/43'/1'", + "method": "nemGetAddress", + "expected": "NCHBEI3REQEUAQWNDUCULOTVX26BG5PF4QUQMB2J", + "actual": "NCHBEI3REQEUAQWNDUCULOTVX26BG5PF4QUQMB2J", + "passed": true, + "duration": 3777, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nemGetAddress / m/44'/43'/25'", + "method": "nemGetAddress", + "expected": "NABW5UO3GLPMCRUJDYVMMZQAY43Q6S3DGJI52QI2", + "actual": "NABW5UO3GLPMCRUJDYVMMZQAY43Q6S3DGJI52QI2", + "passed": true, + "duration": 3990, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nemGetAddress / m/44'/43'/2147483646'", + "method": "nemGetAddress", + "expected": "NB3JCZRQ53LIXWNZZRAVFWZF7UDVJR3QKNG3FMYA", + "actual": "NB3JCZRQ53LIXWNZZRAVFWZF7UDVJR3QKNG3FMYA", + "passed": true, + "duration": 3430, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nemGetAddress / m/44'/43'/2147483647'", + "method": "nemGetAddress", + "expected": "NAWRBVXTDLC5JJT6MFJWYKSXRH7UCOLORZBVZRZS", + "actual": "NAWRBVXTDLC5JJT6MFJWYKSXRH7UCOLORZBVZRZS", + "passed": true, + "duration": 3654, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nexaGetAddress / m/44'/29223'/0'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5ytv3fr73ddgvf659f7efqw8w4g3h6hwrujqns39n", + "actual": "nexa:nqtsq5g5ytv3fr73ddgvf659f7efqw8w4g3h6hwrujqns39n", + "passed": true, + "duration": 3789, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nexaGetAddress / m/44'/29223'/1'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g54u48j04tlqq77y5xr0fs0wvs7g6r5equ9uqldw8r", + "actual": "nexa:nqtsq5g54u48j04tlqq77y5xr0fs0wvs7g6r5equ9uqldw8r", + "passed": true, + "duration": 3938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nexaGetAddress / m/44'/29223'/25'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5pymquhwasjuw3fg44r9agfvfk8jh9qff3l64jrje", + "actual": "nexa:nqtsq5g5pymquhwasjuw3fg44r9agfvfk8jh9qff3l64jrje", + "passed": true, + "duration": 3380, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nexaGetAddress / m/44'/29223'/2147483646'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5tmj3lnppcvmaajdaq0gmn07fesyrjtp0wu93vtjy", + "actual": "nexa:nqtsq5g5tmj3lnppcvmaajdaq0gmn07fesyrjtp0wu93vtjy", + "passed": true, + "duration": 3490, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nexaGetAddress / m/44'/29223'/2147483647'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5jtk3p6raufwlqkl7qs5vt97v8l8jcn0we2vs2nqm", + "actual": "nexa:nqtsq5g5jtk3p6raufwlqkl7qs5vt97v8l8jcn0we2vs2nqm", + "passed": true, + "duration": 3632, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "13jpQwS9UBPQVkdamA546kkzuoL6aV6wts8N7uY699UQirn5", + "actual": "13jpQwS9UBPQVkdamA546kkzuoL6aV6wts8N7uY699UQirn5", + "passed": true, + "duration": 4109, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "1nTKAwZ9Y7asJ8D5BaMRLmFtP3Wi4qypFxiXFRvcr1CNMX2", + "actual": "1nTKAwZ9Y7asJ8D5BaMRLmFtP3Wi4qypFxiXFRvcr1CNMX2", + "passed": true, + "duration": 3742, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "16izVdp1TQiDwBSzhLdu4jXLG7oJEHnEsYi9aNASCFMZLGpR", + "actual": "16izVdp1TQiDwBSzhLdu4jXLG7oJEHnEsYi9aNASCFMZLGpR", + "passed": true, + "duration": 4257, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "15YEhDVBBNuocU719ZwVvqomzHgAAX9Ykut8c2cMQhDxeTC2", + "actual": "15YEhDVBBNuocU719ZwVvqomzHgAAX9Ykut8c2cMQhDxeTC2", + "passed": true, + "duration": 3701, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "1WyWrb4aq2XMYJS5YTFuGABUfidxP713NYV4PjPVixLaf2A", + "actual": "1WyWrb4aq2XMYJS5YTFuGABUfidxP713NYV4PjPVixLaf2A", + "passed": true, + "duration": 4236, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-astar / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Yg7hu9APdm3H3euHpUAzG689E3ZrQFYqZu2CKkbTRSr8ZdK", + "actual": "Yg7hu9APdm3H3euHpUAzG689E3ZrQFYqZu2CKkbTRSr8ZdK", + "passed": true, + "duration": 3720, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-astar / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Wikc8ea4zVDeb9XbqyUJr6P7okyyyzakxjNbfeRw7ydnJTC", + "actual": "Wikc8ea4zVDeb9XbqyUJr6P7okyyyzakxjNbfeRw7ydnJTC", + "passed": true, + "duration": 4209, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-astar / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "bfHnbX2Ns5riUUKE131xErTVYWmWCvqpFUoenNwWXKzk9k3", + "actual": "bfHnbX2Ns5riUUKE131xErTVYWmWCvqpFUoenNwWXKzk9k3", + "passed": true, + "duration": 3817, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-astar / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "aUXzBCC6qHSPm8KgELcpM8uDiPdSSJ9hcengSpriyCQ4BE4", + "actual": "aUXzBCC6qHSPm8KgELcpM8uDiPdSSJ9hcengSpriyCQ4BE4", + "passed": true, + "duration": 3890, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-astar / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "WTGopJ5WHQA8qKkcCrNnmVJi6S7EJFbz5K98owtozvmzSQa", + "actual": "WTGopJ5WHQA8qKkcCrNnmVJi6S7EJFbz5K98owtozvmzSQa", + "passed": true, + "duration": 3711, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-kusama / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "FK8vvWxEm8rosSWaDq6rZHrCmcggrMzGkEdMGph4rfPHfjr", + "actual": "FK8vvWxEm8rosSWaDq6rZHrCmcggrMzGkEdMGph4rfPHfjr", + "passed": true, + "duration": 4225, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-kusama / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "DMmqA2Mv7s3BQw8tFLQB9J7BML6pS72C94ykciXYZCAwJrv", + "actual": "DMmqA2Mv7s3BQw8tFLQB9J7BML6pS72C94ykciXYZCAwJrv", + "passed": true, + "duration": 3720, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-kusama / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "JJK1ctpDzTgFJFvWQPwpY4BZ65tLf3HFRpQojT37xYXu4RU", + "actual": "JJK1ctpDzTgFJFvWQPwpY4BZ65tLf3HFRpQojT37xYXu4RU", + "passed": true, + "duration": 4213, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-kusama / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "H7ZDCZywxfFvauvxdhYgeLdHFxkGtQb8nzPqPtxLQQwDCxn", + "actual": "H7ZDCZywxfFvauvxdhYgeLdHFxkGtQb8nzPqPtxLQQwDCxn", + "passed": true, + "duration": 3724, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-kusama / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "D6J2qfsMQmyff7MtcDJf4h2me1E4kN3RFekHm1zRS9K9PWF", + "actual": "D6J2qfsMQmyff7MtcDJf4h2me1E4kN3RFekHm1zRS9K9PWF", + "passed": true, + "duration": 4236, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-joystream / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4U4RqeR3V7cxtq4p5VTjokdqaZR2P57yYK2KLAb428bXBvqx", + "actual": "j4U4RqeR3V7cxtq4p5VTjokdqaZR2P57yYK2KLAb428bXBvqx", + "passed": true, + "duration": 3716, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-joystream / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4S74jsvTAUM9GNZSPWy38Le6Z98SWes1ThrfjWUtVq8Jqhvi", + "actual": "j4S74jsvTAUM9GNZSPWy38Le6Z98SWes1ThrfjWUtVq8Jqhvi", + "passed": true, + "duration": 4219, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-joystream / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4X3bvLnuULwnLFtE1g2amjQAvstE2soGWzc6ndDQ5EUfoVgf", + "actual": "j4X3bvLnuULwnLFtE1g2amjQAvstE2soGWzc6ndDQ5EUfoVgf", + "passed": true, + "duration": 3713, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-joystream / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4Vrr7vU5CK9N1YYETuLBdqgcf3m5y7AaQMn5pHfKHgM57Zrj", + "actual": "j4Vrr7vU5CK9N1YYETuLBdqgcf3m5y7AaQMn5pHfKHgM57Zrj", + "passed": true, + "duration": 4189, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-joystream / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4RqawZZxbmG5kcjfPsqwcG329RoZky82gpSSGenMNi5T3gLA", + "actual": "j4RqawZZxbmG5kcjfPsqwcG329RoZky82gpSSGenMNi5T3gLA", + "passed": true, + "duration": 3727, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-manta / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfZHqESUgEisd6kQ3hrfFdndEntxtGLVhzdiZxhkqzbtNctqT", + "actual": "dfZHqESUgEisd6kQ3hrfFdndEntxtGLVhzdiZxhkqzbtNctqT", + "passed": true, + "duration": 4205, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-manta / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfXLU8fz5v5boUHtg1tAYxNdVmUgJPvEjv2YvN3egUJRAGWNP", + "actual": "dfXLU8fz5v5boUHtg1tAYxNdVmUgJPvEjv2YvN3egUJRAGWNP", + "passed": true, + "duration": 3716, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-manta / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfcH1K8rYDxCSYBDTe3E6bmPa9DS5v9AzyKJMRAPC3hmXEA2J", + "actual": "dfcH1K8rYDxCSYBDTe3E6bmPa9DS5v9AzyKJMRAPC3hmXEA2J", + "passed": true, + "duration": 4208, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-manta / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfb6FWiXhwvQ2DTsU6GXhTsg1sPJwrNYJrgULSpq7G9dvYBqd", + "actual": "dfb6FWiXhwvQ2DTsU6GXhTsg1sPJwrNYJrgULSpq7G9dvYBqd", + "passed": true, + "duration": 3761, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress-manta / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfX4zLMdbMNWjxY4u2F3TSJ2RMmMReEVm998guBx9MBNJUiaM", + "actual": "dfX4zLMdbMNWjxY4u2F3TSJ2RMmMReEVm998guBx9MBNJUiaM", + "passed": true, + "duration": 4256, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "rfmLFYsBJ6nUKQRYFZgTrDj6N5ntyRRLBy", + "actual": "rfmLFYsBJ6nUKQRYFZgTrDj6N5ntyRRLBy", + "passed": true, + "duration": 4313, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/1'/0/0", + "method": "xrpGetAddress", + "expected": "rnByLxLzkV2MN2s4p41t2vA4LsjQcxLGkk", + "actual": "rnByLxLzkV2MN2s4p41t2vA4LsjQcxLGkk", + "passed": true, + "duration": 4397, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "raxZK4PjdYJEENYWhZrRsLzVt3MwXU9Y58", + "actual": "raxZK4PjdYJEENYWhZrRsLzVt3MwXU9Y58", + "passed": true, + "duration": 4436, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/2147483646'/0/0", + "method": "xrpGetAddress", + "expected": "rKrhz8ENg781hy6n1MnpaD8JM52Px6LSq2", + "actual": "rKrhz8ENg781hy6n1MnpaD8JM52Px6LSq2", + "passed": true, + "duration": 4515, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "rHkPg9WRTRwyzoGyiKHAfdC3cCf6HmUrf6", + "actual": "rHkPg9WRTRwyzoGyiKHAfdC3cCf6HmUrf6", + "passed": true, + "duration": 4573, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / solGetAddress / m/44'/501'/0'/0'", + "method": "solGetAddress", + "expected": "6MBCyLJkWz1PSiSqK4n1tf2bSzTXjPXxiSPCNickQqa", + "actual": "6MBCyLJkWz1PSiSqK4n1tf2bSzTXjPXxiSPCNickQqa", + "passed": true, + "duration": 3934, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / solGetAddress / m/44'/501'/1'/0'", + "method": "solGetAddress", + "expected": "BpnFnNBBNUxUjnxoNZBmHnnqaZNzV2Ukg3a4c8HwVfi6", + "actual": "BpnFnNBBNUxUjnxoNZBmHnnqaZNzV2Ukg3a4c8HwVfi6", + "passed": true, + "duration": 3605, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / solGetAddress / m/44'/501'/25'/0'", + "method": "solGetAddress", + "expected": "Aju8pYu3ZCyRcZXidxFNqMCQNsz8epEgKkcGtXj4ac88", + "actual": "Aju8pYu3ZCyRcZXidxFNqMCQNsz8epEgKkcGtXj4ac88", + "passed": true, + "duration": 3973, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / solGetAddress / m/44'/501'/2147483646'/0'", + "method": "solGetAddress", + "expected": "CjvHPTzxaS7rchHVk7ipBaU71xTHNex4uWteNjN5yEiy", + "actual": "CjvHPTzxaS7rchHVk7ipBaU71xTHNex4uWteNjN5yEiy", + "passed": true, + "duration": 3615, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / solGetAddress / m/44'/501'/2147483647'/0'", + "method": "solGetAddress", + "expected": "2yfyG9QGDgR86U9PSouvaaozXgbqeqJ6WaJZkiUWTtBU", + "actual": "2yfyG9QGDgR86U9PSouvaaozXgbqeqJ6WaJZkiUWTtBU", + "passed": true, + "duration": 3978, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / starcoinGetAddress / m/44'/101010'/0'/0'/0'", + "method": "starcoinGetAddress", + "expected": "0x4a8965b3eaeccad3bd0a1e53e22274a6", + "actual": "0x4a8965b3eaeccad3bd0a1e53e22274a6", + "passed": true, + "duration": 3419, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / starcoinGetAddress / m/44'/101010'/0'/0'/1'", + "method": "starcoinGetAddress", + "expected": "0x98a55f91068196e4cb55de0290de4450", + "actual": "0x98a55f91068196e4cb55de0290de4450", + "passed": true, + "duration": 3575, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / starcoinGetAddress / m/44'/101010'/0'/0'/25'", + "method": "starcoinGetAddress", + "expected": "0x9f53837476a5fae78d8475d8bc2e5ae9", + "actual": "0x9f53837476a5fae78d8475d8bc2e5ae9", + "passed": true, + "duration": 3758, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483646'", + "method": "starcoinGetAddress", + "expected": "0x86c7f0e44ae385a7ff6c330752cb9dde", + "actual": "0x86c7f0e44ae385a7ff6c330752cb9dde", + "passed": true, + "duration": 3937, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483647'", + "method": "starcoinGetAddress", + "expected": "0xc7d58b33b8065fa31be1e4bae23db921", + "actual": "0xc7d58b33b8065fa31be1e4bae23db921", + "passed": true, + "duration": 3416, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / stellarGetAddress / m/44'/148'/0'", + "method": "stellarGetAddress", + "expected": "GBKYRUDNEHBBSN5BFSVWW6E2U2XK6CKOFCYHG5KVMBSK5BMKHCWUYI23", + "actual": "GBKYRUDNEHBBSN5BFSVWW6E2U2XK6CKOFCYHG5KVMBSK5BMKHCWUYI23", + "passed": true, + "duration": 3628, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / stellarGetAddress / m/44'/148'/1'", + "method": "stellarGetAddress", + "expected": "GDHN6FWA6DAU6VIZ4BQBZRBCD2IETE3DDUH5QOETJF5SZCKESUBAVT3C", + "actual": "GDHN6FWA6DAU6VIZ4BQBZRBCD2IETE3DDUH5QOETJF5SZCKESUBAVT3C", + "passed": true, + "duration": 3873, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / stellarGetAddress / m/44'/148'/25'", + "method": "stellarGetAddress", + "expected": "GAZSFIA5J5EKJUXJP764PR57UUVY6LLWMKBKZ77T5WGKXAZ6AC4O5NUL", + "actual": "GAZSFIA5J5EKJUXJP764PR57UUVY6LLWMKBKZ77T5WGKXAZ6AC4O5NUL", + "passed": true, + "duration": 4087, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / stellarGetAddress / m/44'/148'/2147483646'", + "method": "stellarGetAddress", + "expected": "GC56C4MTO7MM5XKXLIEOZGH2JTWSJOY6JTVETDVDVFADCM4OTJX4YHLB", + "actual": "GC56C4MTO7MM5XKXLIEOZGH2JTWSJOY6JTVETDVDVFADCM4OTJX4YHLB", + "passed": true, + "duration": 3438, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / stellarGetAddress / m/44'/148'/2147483647'", + "method": "stellarGetAddress", + "expected": "GDHSK7BJQDO2VIW5HOBZVQHDE5N56GQMZ3ZUZF5IYCTVNKYEYUUIWOFB", + "actual": "GDHSK7BJQDO2VIW5HOBZVQHDE5N56GQMZ3ZUZF5IYCTVNKYEYUUIWOFB", + "passed": true, + "duration": 3634, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetAddress / m/44'/784'/0'/0'/0'", + "method": "suiGetAddress", + "expected": "0xf26dd435784744d4666558447c5102ec56e6f4b7069e503f12ab849d89a758a8", + "actual": "0xf26dd435784744d4666558447c5102ec56e6f4b7069e503f12ab849d89a758a8", + "passed": true, + "duration": 3774, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetAddress / m/44'/784'/1'/0'/0'", + "method": "suiGetAddress", + "expected": "0x5f66d6ff8dbebad706292518d3cf51936f813ae60538dcb100798b86d1499ddf", + "actual": "0x5f66d6ff8dbebad706292518d3cf51936f813ae60538dcb100798b86d1499ddf", + "passed": true, + "duration": 3912, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetAddress / m/44'/784'/25'/0'/0'", + "method": "suiGetAddress", + "expected": "0xd8f50a4cdabc2e43487ed3622db96b391ba40b0ff2693944c6cdf92eaba3080c", + "actual": "0xd8f50a4cdabc2e43487ed3622db96b391ba40b0ff2693944c6cdf92eaba3080c", + "passed": true, + "duration": 4045, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetAddress / m/44'/784'/2147483646'/0'/0'", + "method": "suiGetAddress", + "expected": "0x949afb0f11c002b6af764dc22a3ac77708b99dd9ffc8cc0d4e701fb201b56d38", + "actual": "0x949afb0f11c002b6af764dc22a3ac77708b99dd9ffc8cc0d4e701fb201b56d38", + "passed": true, + "duration": 3393, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetAddress / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetAddress", + "expected": "0xb7ca2399a2e1cce17ff7b9b6a3edcc01156117dc1118ed63fae3a654ac499a0a", + "actual": "0xb7ca2399a2e1cce17ff7b9b6a3edcc01156117dc1118ed63fae3a654ac499a0a", + "passed": true, + "duration": 3500, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / tronGetAddress / m/44'/195'/0'/0/0", + "method": "tronGetAddress", + "expected": "TBUfdsgaHtm59vNML8rgEahqjP844CAFXL", + "actual": "TBUfdsgaHtm59vNML8rgEahqjP844CAFXL", + "passed": true, + "duration": 3618, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / tronGetAddress / m/44'/195'/0'/0/1", + "method": "tronGetAddress", + "expected": "TNqGXXfEGdSfMDycKmEn2roJ5xKMrkjSD1", + "actual": "TNqGXXfEGdSfMDycKmEn2roJ5xKMrkjSD1", + "passed": true, + "duration": 3736, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / tronGetAddress / m/44'/195'/0'/0/25", + "method": "tronGetAddress", + "expected": "TVYVTytB2H9Ay8Q933AKoZoF4YpzAxV6B3", + "actual": "TVYVTytB2H9Ay8Q933AKoZoF4YpzAxV6B3", + "passed": true, + "duration": 3825, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / tronGetAddress / m/44'/195'/0'/0/2147483646", + "method": "tronGetAddress", + "expected": "TTb4nasY7da1EdGxzXYFpYPqySDjhFRSqN", + "actual": "TTb4nasY7da1EdGxzXYFpYPqySDjhFRSqN", + "passed": true, + "duration": 3957, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / tronGetAddress / m/44'/195'/0'/0/2147483647", + "method": "tronGetAddress", + "expected": "TTpd2BUBaCuMqHtBhTCJe9dgXVnHBtbqXf", + "actual": "TTpd2BUBaCuMqHtBhTCJe9dgXVnHBtbqXf", + "passed": true, + "duration": 3345, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / benfenGetAddress / m/44'/728'/0'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCf0544bfaea4439a347834b19f513ba833083715d1904e4ddd37f7af8b1736cd50a0a", + "actual": "BFCf0544bfaea4439a347834b19f513ba833083715d1904e4ddd37f7af8b1736cd50a0a", + "passed": true, + "duration": 3499, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / benfenGetAddress / m/44'/728'/1'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCe6d2d32fc97c3bede6215d069e6fd33fe11c1dbc7894727eff9a18516480dfbddcf2", + "actual": "BFCe6d2d32fc97c3bede6215d069e6fd33fe11c1dbc7894727eff9a18516480dfbddcf2", + "passed": true, + "duration": 3647, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / benfenGetAddress / m/44'/728'/25'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCa9e0144e421bea592796f99e34e3edb555bdc5f3848870cc4f05cc0fca8768b1f1ac", + "actual": "BFCa9e0144e421bea592796f99e34e3edb555bdc5f3848870cc4f05cc0fca8768b1f1ac", + "passed": true, + "duration": 3793, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / benfenGetAddress / m/44'/728'/2147483646'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC87c31999cb11b361372198e60e5d39509767d48c79db65efacb805b83822848cf21d", + "actual": "BFC87c31999cb11b361372198e60e5d39509767d48c79db65efacb805b83822848cf21d", + "passed": true, + "duration": 3919, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / benfenGetAddress / m/44'/728'/2147483647'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCbfccaaa7c3e488af03164d2d7d1a20cc2ee7a008505d36bd60b74ad70c4588569018", + "actual": "BFCbfccaaa7c3e488af03164d2d7d1a20cc2ee7a008505d36bd60b74ad70c4588569018", + "passed": true, + "duration": 3401, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / neoGetAddress / m/44'/888'/0'/0/0", + "method": "neoGetAddress", + "expected": "NbkuYGVqDRh4ZitQhHbLie3a38T7b8RqA7", + "actual": "NbkuYGVqDRh4ZitQhHbLie3a38T7b8RqA7", + "passed": true, + "duration": 3520, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / neoGetAddress / m/44'/888'/0'/0/1", + "method": "neoGetAddress", + "expected": "NiN8bBBCwsDqh86UssPZ817Dzu6H7jUELU", + "actual": "NiN8bBBCwsDqh86UssPZ817Dzu6H7jUELU", + "passed": true, + "duration": 3637, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / neoGetAddress / m/44'/888'/0'/0/30", + "method": "neoGetAddress", + "expected": "Nj8H2vzxyxshVwfgAvf6p4VQxFQm77tTPW", + "actual": "Nj8H2vzxyxshVwfgAvf6p4VQxFQm77tTPW", + "passed": true, + "duration": 3753, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / neoGetAddress / m/44'/888'/0'/0/2147483646", + "method": "neoGetAddress", + "expected": "NTZ4u2g9MRdaSHxKf8iUxtaEL5TEF1R35k", + "actual": "NTZ4u2g9MRdaSHxKf8iUxtaEL5TEF1R35k", + "passed": true, + "duration": 3839, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / neoGetAddress / m/44'/888'/0'/0/2147483647", + "method": "neoGetAddress", + "expected": "NYc4EU8xJHS3CoFasbBSvyMnNQVQv4aGXb", + "actual": "NYc4EU8xJHS3CoFasbBSvyMnNQVQv4aGXb", + "passed": true, + "duration": 3947, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetAddress / m/1852'/1815'/0'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qyr8t5k9g7ggfsmfqwkf5gjcxtpag0xjkyctvnx0ljv8cxe0y0g30qkd85njeekrwsfxvt44z3r5drtgywdwnx0a8p5sak4p7t", + "actual": "addr1qyr8t5k9g7ggfsmfqwkf5gjcxtpag0xjkyctvnx0ljv8cxe0y0g30qkd85njeekrwsfxvt44z3r5drtgywdwnx0a8p5sak4p7t", + "passed": true, + "duration": 10819, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetAddress / m/1852'/1815'/1'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8e3g3vcs7qfrclr4wt5wwy4krx5cgldthgkkrhtj6876d3e7emjtf98f5nazt6e7prz7ptl2d4pzkfgfx87cp3tejcqv3hfh9", + "actual": "addr1q8e3g3vcs7qfrclr4wt5wwy4krx5cgldthgkkrhtj6876d3e7emjtf98f5nazt6e7prz7ptl2d4pzkfgfx87cp3tejcqv3hfh9", + "passed": true, + "duration": 8466, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetAddress / m/1852'/1815'/25'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8ehn4xcp5nz4j0qkr53t5j04gysld9zefm3duk5cax3wmr9vqjhgysxdyz3ehfcty0nvzp47a3k056dfx6qfw38mhsqp4hqcn", + "actual": "addr1q8ehn4xcp5nz4j0qkr53t5j04gysld9zefm3duk5cax3wmr9vqjhgysxdyz3ehfcty0nvzp47a3k056dfx6qfw38mhsqp4hqcn", + "passed": true, + "duration": 8429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetAddress / m/1852'/1815'/2147483646'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q95cpkttns2v0jc6vpmeefjc3n36f89yfnsezezsktqrcd4t4r85luc0n3us789e9xt5tzr9t85ae60mmvj23ctz7n7q02yysf", + "actual": "addr1q95cpkttns2v0jc6vpmeefjc3n36f89yfnsezezsktqrcd4t4r85luc0n3us789e9xt5tzr9t85ae60mmvj23ctz7n7q02yysf", + "passed": true, + "duration": 8375, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetAddress / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qyj879xfe7ql8kk0tyryc9qg543ha5qf3nq296mmchsk2d0qud7ekc773zxwzjzyn3wj4eggpu25pmnxpl2eaaxeupvsfcwzs8", + "actual": "addr1qyj879xfe7ql8kk0tyryc9qg543ha5qf3nq296mmchsk2d0qud7ekc773zxwzjzyn3wj4eggpu25pmnxpl2eaaxeupvsfcwzs8", + "passed": true, + "duration": 8303, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / algoGetAddress / m/44'/283'/0'/0'/0'", + "method": "algoGetAddress", + "expected": "7ZVKIHADZGRZJ7A52B7DZTOP4JXAOPK2M2FQTXK3D3T3A2HFOPUOGKGAVM", + "actual": "7ZVKIHADZGRZJ7A52B7DZTOP4JXAOPK2M2FQTXK3D3T3A2HFOPUOGKGAVM", + "passed": true, + "duration": 3555, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / algoGetAddress / m/44'/283'/0'/0'/1'", + "method": "algoGetAddress", + "expected": "HRHFUECRQAFGZ357TQLLVY7KNR2WKR46JCTFMRW6YGXLAB4ISN65B2RNT4", + "actual": "HRHFUECRQAFGZ357TQLLVY7KNR2WKR46JCTFMRW6YGXLAB4ISN65B2RNT4", + "passed": true, + "duration": 3791, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / algoGetAddress / m/44'/283'/0'/0'/25'", + "method": "algoGetAddress", + "expected": "QD3MZ27TH7537AKKDLWJU7AICQQWCMIRT3TNUM7LVISUJQJ2QZECIMT66Y", + "actual": "QD3MZ27TH7537AKKDLWJU7AICQQWCMIRT3TNUM7LVISUJQJ2QZECIMT66Y", + "passed": true, + "duration": 4044, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / algoGetAddress / m/44'/283'/0'/0'/2147483646'", + "method": "algoGetAddress", + "expected": "EHCFACFJUL3INZ7WNZGRJWCWGEEZG76VAYSTVZH6KVTYBGL7D46GA3JV6M", + "actual": "EHCFACFJUL3INZ7WNZGRJWCWGEEZG76VAYSTVZH6KVTYBGL7D46GA3JV6M", + "passed": true, + "duration": 3464, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / algoGetAddress / m/44'/283'/0'/0'/2147483647'", + "method": "algoGetAddress", + "expected": "2VMU3IKPKELMEDUIALFRVYYDBZW3BFKSRTDVCQGPZTLFKQYLPZLU4M36VM", + "actual": "2VMU3IKPKELMEDUIALFRVYYDBZW3BFKSRTDVCQGPZTLFKQYLPZLU4M36VM", + "passed": true, + "duration": 3713, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetAddress / m/44'/637'/0'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x60e800a8839a86be1ca6c0b17ecb10f2a2af8b3b7c5f212bbeb64471c4f00bd8", + "actual": "0x60e800a8839a86be1ca6c0b17ecb10f2a2af8b3b7c5f212bbeb64471c4f00bd8", + "passed": true, + "duration": 3840, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetAddress / m/44'/637'/1'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x0e9a30c16904600284473a06b2fb3db8a4927d20f12a4d1c391798a091b1e221", + "actual": "0x0e9a30c16904600284473a06b2fb3db8a4927d20f12a4d1c391798a091b1e221", + "passed": true, + "duration": 3948, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetAddress / m/44'/637'/25'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xef40c4ccef00f15147c3403b6b8c2417dfeda0cec170edc1ca182b709a16eeed", + "actual": "0xef40c4ccef00f15147c3403b6b8c2417dfeda0cec170edc1ca182b709a16eeed", + "passed": true, + "duration": 3368, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetAddress / m/44'/637'/2147483646'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x3c3e505fcedb8bb82c432d1dc0f5d8d84388d16e7aded65817ce339b1568b4ff", + "actual": "0x3c3e505fcedb8bb82c432d1dc0f5d8d84388d16e7aded65817ce339b1568b4ff", + "passed": true, + "duration": 3479, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetAddress / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x3479d1223e9612d40ee2bc8d540aff11966af9b09fe97995bd2250480c6ef458", + "actual": "0x3479d1223e9612d40ee2bc8d540aff11966af9b09fe97995bd2250480c6ef458", + "passed": true, + "duration": 3572, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Legacy / m/44'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": true, + "duration": 4130, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Legacy / m/44'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "12jkNt56fEYrFoAuNwgEZdjFCuu6L1XiRp", + "actual": "12jkNt56fEYrFoAuNwgEZdjFCuu6L1XiRp", + "passed": true, + "duration": 3803, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Legacy / m/44'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "1J624maH4iktxKdEkeEdJ7JTFV9aUkSxzR", + "actual": "1J624maH4iktxKdEkeEdJ7JTFV9aUkSxzR", + "passed": true, + "duration": 4398, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Legacy / m/44'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "1F9nThLS7ZLG517vsXAjfx9otPPLMb741e", + "actual": "1F9nThLS7ZLG517vsXAjfx9otPPLMb741e", + "passed": true, + "duration": 3983, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Legacy / m/44'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "1PJN7cd66B4Y36thasJSfS3K5EZvAfYgMF", + "actual": "1PJN7cd66B4Y36thasJSfS3K5EZvAfYgMF", + "passed": true, + "duration": 3801, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Nested SegWit / m/49'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "38Xegnipu2RhZouctnGnwmDRk2bLXfDHf4", + "actual": "38Xegnipu2RhZouctnGnwmDRk2bLXfDHf4", + "passed": true, + "duration": 4496, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Nested SegWit / m/49'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "3Gc49NTGVxLodbpRDAHrTM2Uw9svy9aqBn", + "actual": "3Gc49NTGVxLodbpRDAHrTM2Uw9svy9aqBn", + "passed": true, + "duration": 4234, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Nested SegWit / m/49'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "3AfzaZqwQgoULAn9qieaV5SMh8Q9DYwqmi", + "actual": "3AfzaZqwQgoULAn9qieaV5SMh8Q9DYwqmi", + "passed": true, + "duration": 3985, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Nested SegWit / m/49'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "3PTfpApbCrLouC7osRAat3CmLDHxWkmU5J", + "actual": "3PTfpApbCrLouC7osRAat3CmLDHxWkmU5J", + "passed": true, + "duration": 3929, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Nested SegWit / m/49'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "3EVwYDUfFyJTRy27b4Vf4gFei8Q8kU97Co", + "actual": "3EVwYDUfFyJTRy27b4Vf4gFei8Q8kU97Co", + "passed": true, + "duration": 3947, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Native SegWit / m/84'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1qjclx3t2ykepvcqegx8tmn3nwd5ahsswenrvd90", + "actual": "bc1qjclx3t2ykepvcqegx8tmn3nwd5ahsswenrvd90", + "passed": true, + "duration": 3864, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Native SegWit / m/84'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1qtv75pxvw62aad3prkk2sxcz4ynqft7dt0prgnw", + "actual": "bc1qtv75pxvw62aad3prkk2sxcz4ynqft7dt0prgnw", + "passed": true, + "duration": 4561, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Native SegWit / m/84'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1qp7rf5t8yp6439c265uvqlhtgmlgzv8kvgx8fvm", + "actual": "bc1qp7rf5t8yp6439c265uvqlhtgmlgzv8kvgx8fvm", + "passed": true, + "duration": 4187, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Native SegWit / m/84'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1qykjy6zld2tkez28rgl2c8c63fvnw6g95zjkj0c", + "actual": "bc1qykjy6zld2tkez28rgl2c8c63fvnw6g95zjkj0c", + "passed": true, + "duration": 3824, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Native SegWit / m/84'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1qe9f6haplqtl5khz36pjcrzjwl5ma2tjqup34f9", + "actual": "bc1qe9f6haplqtl5khz36pjcrzjwl5ma2tjqup34f9", + "passed": true, + "duration": 4481, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Taproot / m/86'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1ppskree0erhqyptsx8hufkt98wxvuv6gla8hpep8euq6cex2k4h9svg2en3", + "actual": "bc1ppskree0erhqyptsx8hufkt98wxvuv6gla8hpep8euq6cex2k4h9svg2en3", + "passed": true, + "duration": 4149, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Taproot / m/86'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1pvtwcttx7uhzksh5pe45fxtp9keps78rhu0qjw3e04xxxsmt0kd7sjqrtth", + "actual": "bc1pvtwcttx7uhzksh5pe45fxtp9keps78rhu0qjw3e04xxxsmt0kd7sjqrtth", + "passed": true, + "duration": 3904, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Taproot / m/86'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1pwgh3ah2c2evxur25uaxg5kzxyhcdf7f4vuwjf45ssxjeu07pdx5sz6w7q3", + "actual": "bc1pwgh3ah2c2evxur25uaxg5kzxyhcdf7f4vuwjf45ssxjeu07pdx5sz6w7q3", + "passed": true, + "duration": 4557, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Taproot / m/86'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1pgn8zd8gx7tawn9fyuzv2grem2j3hzmvewxxycja2hz6327jg569qfmx4ha", + "actual": "bc1pgn8zd8gx7tawn9fyuzv2grem2j3hzmvewxxycja2hz6327jg569qfmx4ha", + "passed": true, + "duration": 4197, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Taproot / m/86'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1psylrcjazd3twqy7tgz29k8md6caemv0lfqpj6x5cp0pjy9wnem0q2qtdzq", + "actual": "bc1psylrcjazd3twqy7tgz29k8md6caemv0lfqpj6x5cp0pjy9wnem0q2qtdzq", + "passed": true, + "duration": 3857, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Doge / m/44'/3'/0'/0/0", + "method": "btcGetAddress", + "expected": "D5UJ81u33vJBco3fMZxpaHrSrbwCyMejcY", + "actual": "D5UJ81u33vJBco3fMZxpaHrSrbwCyMejcY", + "passed": true, + "duration": 4029, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Doge / m/44'/3'/1'/0/0", + "method": "btcGetAddress", + "expected": "DNmuHigrHSAFC8e2rHqsGHSkwF7dL2aokd", + "actual": "DNmuHigrHSAFC8e2rHqsGHSkwF7dL2aokd", + "passed": true, + "duration": 3407, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Doge / m/44'/3'/25'/0/0", + "method": "btcGetAddress", + "expected": "DTYdbEErk8SPoXt9h3oR7f6vAtbnUeRp5Y", + "actual": "DTYdbEErk8SPoXt9h3oR7f6vAtbnUeRp5Y", + "passed": true, + "duration": 3539, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Doge / m/44'/3'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "DTdkJzUv2tRUAmZuk1qafwAJ734WKagzxT", + "actual": "DTdkJzUv2tRUAmZuk1qafwAJ734WKagzxT", + "passed": true, + "duration": 3706, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Doge / m/44'/3'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "DEfXtCPcbmKvnFgCTb3TnMwFAGmsageYLM", + "actual": "DEfXtCPcbmKvnFgCTb3TnMwFAGmsageYLM", + "passed": true, + "duration": 3849, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-BCH / m/44'/145'/0'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qz6kmmtek6vvly474p65cz9n77xfd9tykutafetr5k", + "actual": "bitcoincash:qz6kmmtek6vvly474p65cz9n77xfd9tykutafetr5k", + "passed": true, + "duration": 4389, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-BCH / m/44'/145'/1'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qr8xmz3ncg89mjxslzzu4xvh7fnhkeq9pyfu0rc47y", + "actual": "bitcoincash:qr8xmz3ncg89mjxslzzu4xvh7fnhkeq9pyfu0rc47y", + "passed": true, + "duration": 3812, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-BCH / m/44'/145'/25'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qzq5fdv75hh5qr92ws4ruj62w7qqatjhwstn4h4yfr", + "actual": "bitcoincash:qzq5fdv75hh5qr92ws4ruj62w7qqatjhwstn4h4yfr", + "passed": true, + "duration": 4279, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-BCH / m/44'/145'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qzehg9jyjslvp7pk36pue5c4pcg4g669kgkk9u4thq", + "actual": "bitcoincash:qzehg9jyjslvp7pk36pue5c4pcg4g669kgkk9u4thq", + "passed": true, + "duration": 3713, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-BCH / m/44'/145'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qrgxuqea6s503tfp7wmvznu88p5pylhv2v27h66z22", + "actual": "bitcoincash:qrgxuqea6s503tfp7wmvznu88p5pylhv2v27h66z22", + "passed": true, + "duration": 4162, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Legacy / m/44'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "LYVggHGrbF1NxbKySUzkbUHQ6EmgzSo2UL", + "actual": "LYVggHGrbF1NxbKySUzkbUHQ6EmgzSo2UL", + "passed": true, + "duration": 3525, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Legacy / m/44'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "LMyokkUSJypaHPC2jGNg4xQ8GSSbf11vJ2", + "actual": "LMyokkUSJypaHPC2jGNg4xQ8GSSbf11vJ2", + "passed": true, + "duration": 3834, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Legacy / m/44'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "LYTwJhFZ1S9PqAxiXz6zsEeVW9ULzzdUMx", + "actual": "LYTwJhFZ1S9PqAxiXz6zsEeVW9ULzzdUMx", + "passed": true, + "duration": 4152, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Legacy / m/44'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "LWE5C99Vmex2DczPhYAqqY6uzHRHJN8CFy", + "actual": "LWE5C99Vmex2DczPhYAqqY6uzHRHJN8CFy", + "passed": true, + "duration": 3483, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Legacy / m/44'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "Lf97n3TXB1ZKRT458D53TUkYyTCZatKDNJ", + "actual": "Lf97n3TXB1ZKRT458D53TUkYyTCZatKDNJ", + "passed": true, + "duration": 3742, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Nested SegWit / m/49'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "MRTehAWcZgZm6fnVj3kDzizaCtiybPHt3V", + "actual": "MRTehAWcZgZm6fnVj3kDzizaCtiybPHt3V", + "passed": true, + "duration": 4144, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Nested SegWit / m/49'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "MLhniPsKJ2A7xkwo7gApuJKE6RcKHgm57W", + "actual": "MLhniPsKJ2A7xkwo7gApuJKE6RcKHgm57W", + "passed": true, + "duration": 3686, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Nested SegWit / m/49'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "MWUewTyDE8PCEQ4fXVpkQoCnjKYHzB1375", + "actual": "MWUewTyDE8PCEQ4fXVpkQoCnjKYHzB1375", + "passed": true, + "duration": 4126, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "MSgxEUJymE8gHqMEaSvK4RZ5VmNgFV4fkE", + "actual": "MSgxEUJymE8gHqMEaSvK4RZ5VmNgFV4fkE", + "passed": true, + "duration": 3668, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "MJa7Yhin6LtD5bBqucK85LTzwLrvfw27bh", + "actual": "MJa7Yhin6LtD5bBqucK85LTzwLrvfw27bh", + "passed": true, + "duration": 4125, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Native SegWit / m/84'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "ltc1q5qzknn7arkxvwf53cy6dnjvx8w9ty5u4ujmprk", + "actual": "ltc1q5qzknn7arkxvwf53cy6dnjvx8w9ty5u4ujmprk", + "passed": true, + "duration": 3564, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Native SegWit / m/84'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "ltc1q3gru0p5tdmp0sldv2uk0c2jt6z40d0hl8fyjwn", + "actual": "ltc1q3gru0p5tdmp0sldv2uk0c2jt6z40d0hl8fyjwn", + "passed": true, + "duration": 3897, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Native SegWit / m/84'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qejpj2k7e2y0xj8l0cvvcy06auhm8cg32py4xjj", + "actual": "ltc1qejpj2k7e2y0xj8l0cvvcy06auhm8cg32py4xjj", + "passed": true, + "duration": 4256, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qvqzpu7lrzjrr4y9km2wx9tcc0ym6k6cd4qeksq", + "actual": "ltc1qvqzpu7lrzjrr4y9km2wx9tcc0ym6k6cd4qeksq", + "passed": true, + "duration": 3567, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qhzgskddf2edcy878dj92ucsrgu3xzl52vpj4xp", + "actual": "ltc1qhzgskddf2edcy878dj92ucsrgu3xzl52vpj4xp", + "passed": true, + "duration": 3902, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Neurai / m/44'/1900'/0'/0/0", + "method": "btcGetAddress", + "expected": "NQGSM97dYfWXZtHu6zfN7kQwZcMz8wdbwq", + "actual": "NQGSM97dYfWXZtHu6zfN7kQwZcMz8wdbwq", + "passed": true, + "duration": 4074, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Neurai / m/44'/1900'/1'/0/0", + "method": "btcGetAddress", + "expected": "NPgUBacxaL3mySvhCLJcpsGB6M5gK8jr1g", + "actual": "NPgUBacxaL3mySvhCLJcpsGB6M5gK8jr1g", + "passed": true, + "duration": 3378, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Neurai / m/44'/1900'/25'/0/0", + "method": "btcGetAddress", + "expected": "NYaSDK3cgYy1X2VMggqcpQ1PFe3VM9b4vo", + "actual": "NYaSDK3cgYy1X2VMggqcpQ1PFe3VM9b4vo", + "passed": true, + "duration": 3487, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Neurai / m/44'/1900'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "NT8hEvqtpp1TZqev6fcSccTT141g6xEhns", + "actual": "NT8hEvqtpp1TZqev6fcSccTT141g6xEhns", + "passed": true, + "duration": 3637, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetAddress-Neurai / m/44'/1900'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "NN9AjfR5JjGAhnaZFptstKSpSBGjaRDxum", + "actual": "NN9AjfR5JjGAhnaZFptstKSpSBGjaRDxum", + "passed": true, + "duration": 3779, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / confluxGetAddress / m/44'/503'/0'/0/0", + "method": "confluxGetAddress", + "expected": "cfx:aapggywhe9bbab6g7swd9m6r0491g6z3ejup0bkug7", + "actual": "cfx:aapggywhe9bbab6g7swd9m6r0491g6z3ejup0bkug7", + "passed": true, + "duration": 4079, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / confluxGetAddress / m/44'/503'/0'/0/1", + "method": "confluxGetAddress", + "expected": "cfx:aamtb3t7prg0ww7pje6xew1npjksvdr8x6k9hw2bbw", + "actual": "cfx:aamtb3t7prg0ww7pje6xew1npjksvdr8x6k9hw2bbw", + "passed": true, + "duration": 3519, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / confluxGetAddress / m/44'/503'/0'/0/25", + "method": "confluxGetAddress", + "expected": "cfx:aatfghxc9t48y98tdum823tf8sw6dwvuhurxmx1y8k", + "actual": "cfx:aatfghxc9t48y98tdum823tf8sw6dwvuhurxmx1y8k", + "passed": true, + "duration": 3817, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / confluxGetAddress / m/44'/503'/0'/0/2147483646", + "method": "confluxGetAddress", + "expected": "cfx:aamwjesnwuaj1ndbbschnhj6gxgk0bab0en8cxamrg", + "actual": "cfx:aamwjesnwuaj1ndbbschnhj6gxgk0bab0en8cxamrg", + "passed": true, + "duration": 4099, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / confluxGetAddress / m/44'/503'/0'/0/2147483647", + "method": "confluxGetAddress", + "expected": "cfx:aajpbcy2hk5jtpeag4990ugvrf09p2ry3ah7xe2z2a", + "actual": "cfx:aajpbcy2hk5jtpeag4990ugvrf09p2ry3ah7xe2z2a", + "passed": true, + "duration": 3494, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cosmos1l65dl2stwxk4w9gf0vt2mnxhst48ygys50evrj", + "actual": "cosmos1l65dl2stwxk4w9gf0vt2mnxhst48ygys50evrj", + "passed": true, + "duration": 3495, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cosmos1skd8n4ur086zaz3xqzmsxxh2dp77qtcdk8enyh", + "actual": "cosmos1skd8n4ur086zaz3xqzmsxxh2dp77qtcdk8enyh", + "passed": true, + "duration": 3512, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cosmos10dj5g7m7yknvh69wgyndh6hx2yj7jl4qekvngn", + "actual": "cosmos10dj5g7m7yknvh69wgyndh6hx2yj7jl4qekvngn", + "passed": true, + "duration": 3566, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cosmos1zqquvfpfe65srynwstsrmkd0x2r4wh5a7cza64", + "actual": "cosmos1zqquvfpfe65srynwstsrmkd0x2r4wh5a7cza64", + "passed": true, + "duration": 3630, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cosmos1kk249tgf0vre3uj3x9fk2l57xdq7nf9fhyyhmq", + "actual": "cosmos1kk249tgf0vre3uj3x9fk2l57xdq7nf9fhyyhmq", + "passed": true, + "duration": 3680, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-akash / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "akash1l65dl2stwxk4w9gf0vt2mnxhst48ygyse55t6g", + "actual": "akash1l65dl2stwxk4w9gf0vt2mnxhst48ygyse55t6g", + "passed": true, + "duration": 3745, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-akash / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "akash1skd8n4ur086zaz3xqzmsxxh2dp77qtcdmu55ad", + "actual": "akash1skd8n4ur086zaz3xqzmsxxh2dp77qtcdmu55ad", + "passed": true, + "duration": 3782, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-akash / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "akash10dj5g7m7yknvh69wgyndh6hx2yj7jl4q5dp53f", + "actual": "akash10dj5g7m7yknvh69wgyndh6hx2yj7jl4q5dp53f", + "passed": true, + "duration": 3796, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "akash1zqquvfpfe65srynwstsrmkd0x2r4wh5anr06r0", + "actual": "akash1zqquvfpfe65srynwstsrmkd0x2r4wh5anr06r0", + "passed": true, + "duration": 3893, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "akash1kk249tgf0vre3uj3x9fk2l57xdq7nf9f6lfsz6", + "actual": "akash1kk249tgf0vre3uj3x9fk2l57xdq7nf9f6lfsz6", + "passed": true, + "duration": 3929, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-crypto / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cro1l65dl2stwxk4w9gf0vt2mnxhst48ygysv534lr", + "actual": "cro1l65dl2stwxk4w9gf0vt2mnxhst48ygysv534lr", + "passed": true, + "duration": 3301, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-crypto / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cro1skd8n4ur086zaz3xqzmsxxh2dp77qtcdwu32cx", + "actual": "cro1skd8n4ur086zaz3xqzmsxxh2dp77qtcdwu32cx", + "passed": true, + "duration": 3297, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-crypto / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cro10dj5g7m7yknvh69wgyndh6hx2yj7jl4qpdy25z", + "actual": "cro10dj5g7m7yknvh69wgyndh6hx2yj7jl4qpdy25z", + "passed": true, + "duration": 3326, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cro1zqquvfpfe65srynwstsrmkd0x2r4wh5axr2yxy", + "actual": "cro1zqquvfpfe65srynwstsrmkd0x2r4wh5axr2yxy", + "passed": true, + "duration": 3310, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cro1kk249tgf0vre3uj3x9fk2l57xdq7nf9f0lvw83", + "actual": "cro1kk249tgf0vre3uj3x9fk2l57xdq7nf9f0lvw83", + "passed": true, + "duration": 3397, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-fetch / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "fetch1l65dl2stwxk4w9gf0vt2mnxhst48ygys8jsgp9", + "actual": "fetch1l65dl2stwxk4w9gf0vt2mnxhst48ygys8jsgp9", + "passed": true, + "duration": 3402, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-fetch / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "fetch1skd8n4ur086zaz3xqzmsxxh2dp77qtcd96shxq", + "actual": "fetch1skd8n4ur086zaz3xqzmsxxh2dp77qtcd96shxq", + "passed": true, + "duration": 3432, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-fetch / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "fetch10dj5g7m7yknvh69wgyndh6hx2yj7jl4q2t9h2y", + "actual": "fetch10dj5g7m7yknvh69wgyndh6hx2yj7jl4q2t9h2y", + "passed": true, + "duration": 3495, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "fetch1zqquvfpfe65srynwstsrmkd0x2r4wh5ad9tecz", + "actual": "fetch1zqquvfpfe65srynwstsrmkd0x2r4wh5ad9tecz", + "passed": true, + "duration": 3542, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "fetch1kk249tgf0vre3uj3x9fk2l57xdq7nf9fyedneh", + "actual": "fetch1kk249tgf0vre3uj3x9fk2l57xdq7nf9fyedneh", + "passed": true, + "duration": 3553, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-osmo / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "osmo1l65dl2stwxk4w9gf0vt2mnxhst48ygysu52u4q", + "actual": "osmo1l65dl2stwxk4w9gf0vt2mnxhst48ygysu52u4q", + "passed": true, + "duration": 3616, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-osmo / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "osmo1skd8n4ur086zaz3xqzmsxxh2dp77qtcd7u2rj9", + "actual": "osmo1skd8n4ur086zaz3xqzmsxxh2dp77qtcd7u2rj9", + "passed": true, + "duration": 3635, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-osmo / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "osmo10dj5g7m7yknvh69wgyndh6hx2yj7jl4q3dlr7p", + "actual": "osmo10dj5g7m7yknvh69wgyndh6hx2yj7jl4q3dlr7p", + "passed": true, + "duration": 3669, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "osmo1zqquvfpfe65srynwstsrmkd0x2r4wh5akr3dv8", + "actual": "osmo1zqquvfpfe65srynwstsrmkd0x2r4wh5akr3dv8", + "passed": true, + "duration": 3728, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "osmo1kk249tgf0vre3uj3x9fk2l57xdq7nf9fllh8dj", + "actual": "osmo1kk249tgf0vre3uj3x9fk2l57xdq7nf9fllh8dj", + "passed": true, + "duration": 3780, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-juno / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "juno1l65dl2stwxk4w9gf0vt2mnxhst48ygysza6hyw", + "actual": "juno1l65dl2stwxk4w9gf0vt2mnxhst48ygysza6hyw", + "passed": true, + "duration": 3789, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-juno / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "juno1skd8n4ur086zaz3xqzmsxxh2dp77qtcdq46grt", + "actual": "juno1skd8n4ur086zaz3xqzmsxxh2dp77qtcdq46grt", + "passed": true, + "duration": 3832, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-juno / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "juno10dj5g7m7yknvh69wgyndh6hx2yj7jl4q0y0g00", + "actual": "juno10dj5g7m7yknvh69wgyndh6hx2yj7jl4q0y0g00", + "passed": true, + "duration": 3868, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "juno1zqquvfpfe65srynwstsrmkd0x2r4wh5ag2pxaf", + "actual": "juno1zqquvfpfe65srynwstsrmkd0x2r4wh5ag2pxaf", + "passed": true, + "duration": 3889, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "juno1kk249tgf0vre3uj3x9fk2l57xdq7nf9fpk8vuu", + "actual": "juno1kk249tgf0vre3uj3x9fk2l57xdq7nf9fpk8vuu", + "passed": true, + "duration": 3938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-terra / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "terra1l65dl2stwxk4w9gf0vt2mnxhst48ygysjtrvpj", + "actual": "terra1l65dl2stwxk4w9gf0vt2mnxhst48ygysjtrvpj", + "passed": true, + "duration": 3283, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-terra / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "terra1skd8n4ur086zaz3xqzmsxxh2dp77qtcdsrrnxh", + "actual": "terra1skd8n4ur086zaz3xqzmsxxh2dp77qtcdsrrnxh", + "passed": true, + "duration": 3326, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-terra / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "terra10dj5g7m7yknvh69wgyndh6hx2yj7jl4qljkn2n", + "actual": "terra10dj5g7m7yknvh69wgyndh6hx2yj7jl4qljkn2n", + "passed": true, + "duration": 3340, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "terra1zqquvfpfe65srynwstsrmkd0x2r4wh5acucac4", + "actual": "terra1zqquvfpfe65srynwstsrmkd0x2r4wh5acucac4", + "passed": true, + "duration": 3393, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "terra1kk249tgf0vre3uj3x9fk2l57xdq7nf9f3q7heq", + "actual": "terra1kk249tgf0vre3uj3x9fk2l57xdq7nf9f3q7heq", + "passed": true, + "duration": 3454, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-secret / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "secret1l65dl2stwxk4w9gf0vt2mnxhst48ygysk2d97w", + "actual": "secret1l65dl2stwxk4w9gf0vt2mnxhst48ygysk2d97w", + "passed": true, + "duration": 3509, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-secret / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "secret1skd8n4ur086zaz3xqzmsxxh2dp77qtcd5zd6et", + "actual": "secret1skd8n4ur086zaz3xqzmsxxh2dp77qtcd5zd6et", + "passed": true, + "duration": 3553, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-secret / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "secret10dj5g7m7yknvh69wgyndh6hx2yj7jl4qmnc640", + "actual": "secret10dj5g7m7yknvh69wgyndh6hx2yj7jl4qmnc640", + "passed": true, + "duration": 3605, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "secret1zqquvfpfe65srynwstsrmkd0x2r4wh5auak58f", + "actual": "secret1zqquvfpfe65srynwstsrmkd0x2r4wh5auak58f", + "passed": true, + "duration": 3697, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "secret1kk249tgf0vre3uj3x9fk2l57xdq7nf9f4ps7xu", + "actual": "secret1kk249tgf0vre3uj3x9fk2l57xdq7nf9f4ps7xu", + "passed": true, + "duration": 3749, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-celestia / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "celestia1l65dl2stwxk4w9gf0vt2mnxhst48ygys99guel", + "actual": "celestia1l65dl2stwxk4w9gf0vt2mnxhst48ygys99guel", + "passed": true, + "duration": 3798, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-celestia / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "celestia1skd8n4ur086zaz3xqzmsxxh2dp77qtcd8dgr76", + "actual": "celestia1skd8n4ur086zaz3xqzmsxxh2dp77qtcd8dgr76", + "passed": true, + "duration": 3857, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-celestia / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "celestia10dj5g7m7yknvh69wgyndh6hx2yj7jl4qguarj7", + "actual": "celestia10dj5g7m7yknvh69wgyndh6hx2yj7jl4qguarj7", + "passed": true, + "duration": 3942, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "celestia1zqquvfpfe65srynwstsrmkd0x2r4wh5a0jndqc", + "actual": "celestia1zqquvfpfe65srynwstsrmkd0x2r4wh5a0jndqc", + "passed": true, + "duration": 3252, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "celestia1kk249tgf0vre3uj3x9fk2l57xdq7nf9fxw48pd", + "actual": "celestia1kk249tgf0vre3uj3x9fk2l57xdq7nf9fxw48pd", + "passed": true, + "duration": 3265, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / dnxGetAddress / m/44'/29538'/0'/0'/0'", + "method": "dnxGetAddress", + "expected": "Xwo6CFYgd4TQEMhvgh9jy2XWdXiEQhd6DEdMAGWRWUNLJJKr1or8xjjKswVhgeWDTfeJeEXe5udsJehqvxaHGQvn13tnb32BX", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3039 + }, + { + "title": "one-passphrase12-empty / dnxGetAddress / m/44'/29538'/0'/0'/1'", + "method": "dnxGetAddress", + "expected": "Xwnozcq1cFd3MrS1nuR1JNUPHeBt2yjfa26WcJDpGMPNEGw2urxKkAReDjmL95nVWQdWF9uQBJtu1HJwQz5iQD4R2WQELRURT", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3005 + }, + { + "title": "one-passphrase12-empty / dnxGetAddress / m/44'/29538'/0'/0'/25'", + "method": "dnxGetAddress", + "expected": "Xwmiz5Gr25Qf55u67yeVrnKhkByeNLCXJ9vGazWHSMcPT95xG6ESBS8W3yCCuXRsjaStrwQ4wv7gpHvJpjXei5Ce1daWF5QJL", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3011 + }, + { + "title": "one-passphrase12-empty / dnxGetAddress / m/44'/29538'/0'/0'/2147483646'", + "method": "dnxGetAddress", + "expected": "XwoG3VN798a9UPJG3jTTs8Ty1gaGaYRc8SrBf97DvLg36k2Tb3AugTZSbMYV4j3AKQMx2weNkdN2JTdCrLsdki4a1S2qHKmUs", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3047 + }, + { + "title": "one-passphrase12-empty / dnxGetAddress / m/44'/29538'/0'/0'/2147483647'", + "method": "dnxGetAddress", + "expected": "XwmwmYjMbwpBXMh4vajbU2eWyjzz1LJryWQhyvwA8dUyDzTgkL5tUBa93Z18hAkpnTYneQx39VEDS3qycNNZHWPM1rFeQdCMh", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3054 + }, + { + "title": "one-passphrase12-empty / evmGetAddress / m/44'/60'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": true, + "duration": 3312, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress / m/44'/60'/0'/0/1", + "method": "evmGetAddress", + "expected": "0x9132831eb29B77603bfF4E8B57cfB1f861f50e3E", + "actual": "0x9132831eb29B77603bfF4E8B57cfB1f861f50e3E", + "passed": true, + "duration": 3366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress / m/44'/60'/0'/0/25", + "method": "evmGetAddress", + "expected": "0xd84ad17e72Ef5989Cc854c0a245a63A12044A2A2", + "actual": "0xd84ad17e72Ef5989Cc854c0a245a63A12044A2A2", + "passed": true, + "duration": 3426, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress / m/44'/60'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0x9B8C8C52B860E6199a0738648395973aFE1b6057", + "actual": "0x9B8C8C52B860E6199a0738648395973aFE1b6057", + "passed": true, + "duration": 3478, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress / m/44'/60'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0xFdFbC4041dDB39C3BbE3861A00a76Ec7F801514F", + "actual": "0xFdFbC4041dDB39C3BbE3861A00a76Ec7F801514F", + "passed": true, + "duration": 3540, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-Ledger Live / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "actual": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "passed": true, + "duration": 3615, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-Ledger Live / m/44'/61'/1'/0/0", + "method": "evmGetAddress", + "expected": "0xcd756f300DD51F74CAde31C431cc26243284F4f9", + "actual": "0xcd756f300DD51F74CAde31C431cc26243284F4f9", + "passed": true, + "duration": 3660, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-Ledger Live / m/44'/61'/25'/0/0", + "method": "evmGetAddress", + "expected": "0x6Fb068E1Dbe1244298af8305d389Ed86E3010965", + "actual": "0x6Fb068E1Dbe1244298af8305d389Ed86E3010965", + "passed": true, + "duration": 3695, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-Ledger Live / m/44'/61'/2147483646'/0/0", + "method": "evmGetAddress", + "expected": "0xdbd1Ad162BA1864E3ef3Af265a9dD0C155C0320F", + "actual": "0xdbd1Ad162BA1864E3ef3Af265a9dD0C155C0320F", + "passed": true, + "duration": 3791, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-Ledger Live / m/44'/61'/2147483647'/0/0", + "method": "evmGetAddress", + "expected": "0x495af699Bf9b9BDF985882bDb3aa98777DEe894E", + "actual": "0x495af699Bf9b9BDF985882bDb3aa98777DEe894E", + "passed": true, + "duration": 3826, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-ETC / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "actual": "0x9E29B715Fdf15e9aD7CE4c183ae82bd08aaC4f1e", + "passed": true, + "duration": 3886, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-ETC / m/44'/61'/0'/0/1", + "method": "evmGetAddress", + "expected": "0xd8B6eb920F6D3e882Ffbc36563Eea5631E762b8c", + "actual": "0xd8B6eb920F6D3e882Ffbc36563Eea5631E762b8c", + "passed": true, + "duration": 3951, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-ETC / m/44'/61'/0'/0/25", + "method": "evmGetAddress", + "expected": "0x8ED6043Ef7FD06fb69c51038658E2eC0db5b616c", + "actual": "0x8ED6043Ef7FD06fb69c51038658E2eC0db5b616c", + "passed": true, + "duration": 3311, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-ETC / m/44'/61'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0xDfd3F060942679cBA698b84C26E8a71073df3142", + "actual": "0xDfd3F060942679cBA698b84C26E8a71073df3142", + "passed": true, + "duration": 3382, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetAddress-ETC / m/44'/61'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x783954f2B55562a29799f0ebfA0137F379ec4F9e", + "actual": "0x783954f2B55562a29799f0ebfA0137F379ec4F9e", + "passed": true, + "duration": 3464, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / filecoinGetAddress / m/44'/461'/0'/0/0", + "method": "filecoinGetAddress", + "expected": "f1qx24etmdkfpaqrxm5daj2cfe6ymu4eh5mbyamyy", + "actual": "f1qx24etmdkfpaqrxm5daj2cfe6ymu4eh5mbyamyy", + "passed": true, + "duration": 3465, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / filecoinGetAddress / m/44'/461'/0'/0/1", + "method": "filecoinGetAddress", + "expected": "f1vu2ottl2nby3z27mbev77xgy5dwsrtnxtcwvksi", + "actual": "f1vu2ottl2nby3z27mbev77xgy5dwsrtnxtcwvksi", + "passed": true, + "duration": 3471, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / filecoinGetAddress / m/44'/461'/0'/0/25", + "method": "filecoinGetAddress", + "expected": "f1oftf6qyi4yeadmauiukku6dsb4i6gmyhko6e4ki", + "actual": "f1oftf6qyi4yeadmauiukku6dsb4i6gmyhko6e4ki", + "passed": true, + "duration": 3535, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / filecoinGetAddress / m/44'/461'/0'/0/2147483646", + "method": "filecoinGetAddress", + "expected": "f1ys72erbjwe2kscrq5k3dmhpoixtlhmoi7vu6ssi", + "actual": "f1ys72erbjwe2kscrq5k3dmhpoixtlhmoi7vu6ssi", + "passed": true, + "duration": 3545, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / filecoinGetAddress / m/44'/461'/0'/0/2147483647", + "method": "filecoinGetAddress", + "expected": "f1ebycpqukvtqwo5ky2sfhkpwiamup7o3ignn62nq", + "actual": "f1ebycpqukvtqwo5ky2sfhkpwiamup7o3ignn62nq", + "passed": true, + "duration": 3586, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / kaspaGetAddress / m/44'/111111'/0'/0/0", + "method": "kaspaGetAddress", + "expected": "kaspa:qpyzj30sk5jvrh0n6zxwgy8w7h3dnxxgy5yc5jz3eusp7g55wxcx6kcp6hhc9", + "actual": "kaspa:qpyzj30sk5jvrh0n6zxwgy8w7h3dnxxgy5yc5jz3eusp7g55wxcx6kcp6hhc9", + "passed": true, + "duration": 3737, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / kaspaGetAddress / m/44'/111111'/0'/0/1", + "method": "kaspaGetAddress", + "expected": "kaspa:qrd7h6u4qv7z5rq5463z05f8hf9umv998flqtwl9ph6j9ehukycsv0p8h7kdn", + "actual": "kaspa:qrd7h6u4qv7z5rq5463z05f8hf9umv998flqtwl9ph6j9ehukycsv0p8h7kdn", + "passed": true, + "duration": 3920, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / kaspaGetAddress / m/44'/111111'/0'/0/25", + "method": "kaspaGetAddress", + "expected": "kaspa:qphaul76y4shjuhdpdyvs2gjx5jmcj7kghyxtm2czdt0w23wrwmvcff2qkm2f", + "actual": "kaspa:qphaul76y4shjuhdpdyvs2gjx5jmcj7kghyxtm2czdt0w23wrwmvcff2qkm2f", + "passed": true, + "duration": 3386, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / kaspaGetAddress / m/44'/111111'/0'/0/2147483646", + "method": "kaspaGetAddress", + "expected": "kaspa:qqcuskxn32fa0jdztv48wxxy8nz0wy9sp3uce5yes55lnah8vfj3x304aa00g", + "actual": "kaspa:qqcuskxn32fa0jdztv48wxxy8nz0wy9sp3uce5yes55lnah8vfj3x304aa00g", + "passed": true, + "duration": 3524, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / kaspaGetAddress / m/44'/111111'/0'/0/2147483647", + "method": "kaspaGetAddress", + "expected": "kaspa:qrz67k4vc5ml0nggphzv2g7l2zgy7vph8xqk7f7rnxkqz4dshzxrsk84hpmfa", + "actual": "kaspa:qrz67k4vc5ml0nggphzv2g7l2zgy7vph8xqk7f7rnxkqz4dshzxrsk84hpmfa", + "passed": true, + "duration": 3694, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nearGetAddress / m/44'/397'/0'", + "method": "nearGetAddress", + "expected": "d7be27229b157122eae4e1329fabe67272dcb4ba186378f5f788f245cc1c10d2", + "actual": "d7be27229b157122eae4e1329fabe67272dcb4ba186378f5f788f245cc1c10d2", + "passed": true, + "duration": 3879, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nearGetAddress / m/44'/397'/1'", + "method": "nearGetAddress", + "expected": "71191a5e9397b1b0cf844671960925031ef075ff9320f803bab350c4c86c2fba", + "actual": "71191a5e9397b1b0cf844671960925031ef075ff9320f803bab350c4c86c2fba", + "passed": true, + "duration": 3980, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nearGetAddress / m/44'/397'/25'", + "method": "nearGetAddress", + "expected": "a2b0514ad1b59478fab2a7dad53a190bca73f230dfb29fac412cfc95399398b6", + "actual": "a2b0514ad1b59478fab2a7dad53a190bca73f230dfb29fac412cfc95399398b6", + "passed": true, + "duration": 3375, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nearGetAddress / m/44'/397'/2147483646'", + "method": "nearGetAddress", + "expected": "d8316b58f749496aba735828c204bf4034518ebea70d7d92697c8ac1c9c4e989", + "actual": "d8316b58f749496aba735828c204bf4034518ebea70d7d92697c8ac1c9c4e989", + "passed": true, + "duration": 3506, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nearGetAddress / m/44'/397'/2147483647'", + "method": "nearGetAddress", + "expected": "6abdf8ce662df010165f57e3f4b8d73bd593b168ad15e074614b1c1949caf0cf", + "actual": "6abdf8ce662df010165f57e3f4b8d73bd593b168ad15e074614b1c1949caf0cf", + "passed": true, + "duration": 3636, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nervosGetAddress / m/44'/309'/0'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyq9qqyurg2k9w8dvn8d62lsf89ca69rqv5qnwd9dc", + "actual": "ckb1qyq9qqyurg2k9w8dvn8d62lsf89ca69rqv5qnwd9dc", + "passed": true, + "duration": 3734, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nervosGetAddress / m/44'/309'/1'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqqz5w33lm8w6gryxdvenhcc6ularpa4x9qwmqwmn", + "actual": "ckb1qyqqz5w33lm8w6gryxdvenhcc6ularpa4x9qwmqwmn", + "passed": true, + "duration": 3821, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nervosGetAddress / m/44'/309'/25'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqgfcf3c8quk69r6qyeyftznz70dsczjd0s487pfl", + "actual": "ckb1qyqgfcf3c8quk69r6qyeyftznz70dsczjd0s487pfl", + "passed": true, + "duration": 3918, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nervosGetAddress / m/44'/309'/2147483646'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyq2xt6t5ndhymjzwpp55pt5ckdvq3ev80vqjgv5xv", + "actual": "ckb1qyq2xt6t5ndhymjzwpp55pt5ckdvq3ev80vqjgv5xv", + "passed": true, + "duration": 3342, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nervosGetAddress / m/44'/309'/2147483647'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqf9s7ur894zn462wpdr0xhekjtpzm54l6slakmrt", + "actual": "ckb1qyqf9s7ur894zn462wpdr0xhekjtpzm54l6slakmrt", + "passed": true, + "duration": 3440, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nemGetAddress / m/44'/43'/0'", + "method": "nemGetAddress", + "expected": "NA43KIC4SBMGB2ZZ5AJ4VYXNECALFJQALRTP6HHU", + "actual": "NA43KIC4SBMGB2ZZ5AJ4VYXNECALFJQALRTP6HHU", + "passed": true, + "duration": 3638, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nemGetAddress / m/44'/43'/1'", + "method": "nemGetAddress", + "expected": "NCF2XIZSOWKWRLO5BVRFRPHGMIJDAWLILELN5INN", + "actual": "NCF2XIZSOWKWRLO5BVRFRPHGMIJDAWLILELN5INN", + "passed": true, + "duration": 3839, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nemGetAddress / m/44'/43'/25'", + "method": "nemGetAddress", + "expected": "NBH6CQ4VN6OK3VWNXQUNX2WGTDIUFGVV5DRZEJ5X", + "actual": "NBH6CQ4VN6OK3VWNXQUNX2WGTDIUFGVV5DRZEJ5X", + "passed": true, + "duration": 4034, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nemGetAddress / m/44'/43'/2147483646'", + "method": "nemGetAddress", + "expected": "NCTDE7GVEW2X7NF6BTAMBTA7PXOE2TOXD5CWUVJ7", + "actual": "NCTDE7GVEW2X7NF6BTAMBTA7PXOE2TOXD5CWUVJ7", + "passed": true, + "duration": 3428, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nemGetAddress / m/44'/43'/2147483647'", + "method": "nemGetAddress", + "expected": "NC2GMZ66IARS7ZVN6GV5C6VMIBMEALC2YXDSKXPW", + "actual": "NC2GMZ66IARS7ZVN6GV5C6VMIBMEALC2YXDSKXPW", + "passed": true, + "duration": 3624, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nexaGetAddress / m/44'/29223'/0'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5e47yv33ek75g5j234acq43u8damwre2mp3zc2trf", + "actual": "nexa:nqtsq5g5e47yv33ek75g5j234acq43u8damwre2mp3zc2trf", + "passed": true, + "duration": 3781, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nexaGetAddress / m/44'/29223'/1'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5rxt6t9mnpfx943l4aat07jntyhfrwfknp8zhcwsf", + "actual": "nexa:nqtsq5g5rxt6t9mnpfx943l4aat07jntyhfrwfknp8zhcwsf", + "passed": true, + "duration": 3914, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nexaGetAddress / m/44'/29223'/25'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5q4mm40kzd5pu4tg6s6xxrjv7m5689ykf3d5r6v4p", + "actual": "nexa:nqtsq5g5q4mm40kzd5pu4tg6s6xxrjv7m5689ykf3d5r6v4p", + "passed": true, + "duration": 3365, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nexaGetAddress / m/44'/29223'/2147483646'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g57ly0fqd6hrefz24zjqp4k5s6xvl57pkpp3udvkrp", + "actual": "nexa:nqtsq5g57ly0fqd6hrefz24zjqp4k5s6xvl57pkpp3udvkrp", + "passed": true, + "duration": 3494, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nexaGetAddress / m/44'/29223'/2147483647'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5emucd9q54z9jw50ekjc7adkl3jss8z2nvtpgvrr8", + "actual": "nexa:nqtsq5g5emucd9q54z9jw50ekjc7adkl3jss8z2nvtpgvrr8", + "passed": true, + "duration": 3615, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "15Zv9wuuj921BLAVX3iKxHN32gZS21hA4KsA3YsWkc79brEu", + "actual": "15Zv9wuuj921BLAVX3iKxHN32gZS21hA4KsA3YsWkc79brEu", + "passed": true, + "duration": 4106, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "1rSyKHrPa134sir7KfYXC9xMXV9fiacf4gmazHUJVSutajq", + "actual": "1rSyKHrPa134sir7KfYXC9xMXV9fiacf4gmazHUJVSutajq", + "passed": true, + "duration": 3720, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "14kk58Q5zaEJkeu5UJ1ADtemFrJ99BSgSsCbjKkgk1sMdoBt", + "actual": "14kk58Q5zaEJkeu5UJ1ADtemFrJ99BSgSsCbjKkgk1sMdoBt", + "passed": true, + "duration": 4177, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "14o8s7MB19cGAf4y5HXSXb7Hx9fe3NHuQQ8o8XYUBH6Fs23o", + "actual": "14o8s7MB19cGAf4y5HXSXb7Hx9fe3NHuQQ8o8XYUBH6Fs23o", + "passed": true, + "duration": 3726, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "13bh26UxZFDeMyESz6Kz6nzhzJjpgZogYkjnK13bWeXqxiGw", + "actual": "13bh26UxZFDeMyESz6Kz6nzhzJjpgZogYkjnK13bWeXqxiGw", + "passed": true, + "duration": 4207, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-astar / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "aWDSucvebPdxdBp3i7SqnhAG7GuHvqm12dp7y624t5b1Xex", + "actual": "aWDSucvebPdxdBp3i7SqnhAG7GuHvqm12dp7y624t5b1Xex", + "passed": true, + "duration": 3721, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-astar / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "WnkGGzsK2NfrAkAdz4fQhV5axCcwdjDbmTRfQVycmRMJGP6", + "actual": "WnkGGzsK2NfrAkAdz4fQhV5axCcwdjDbmTRfQVycmRMJGP6", + "passed": true, + "duration": 4197, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-astar / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Zh3N676v2bwXwvPzxQH7PytVH1cR6bHPZyFojyC4Hqo3Wuf", + "actual": "Zh3N676v2bwXwvPzxQH7PytVH1cR6bHPZyFojyC4Hqo3Wuf", + "passed": true, + "duration": 3735, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-astar / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "ZjSA54Bvbytwx6HbwvZR6SRBaP7KHSWM6uTCwkyVZ4hGohY", + "actual": "ZjSA54Bvbytwx6HbwvZR6SRBaP7KHSWM6uTCwkyVZ4hGohY", + "passed": true, + "duration": 4196, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-astar / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "YXzK4ByUhbH9GFmWkj6zJKqDjTHxUxHVTWSPRG6pvWHNDey", + "actual": "YXzK4ByUhbH9GFmWkj6zJKqDjTHxUxHVTWSPRG6pvWHNDey", + "passed": true, + "duration": 3699, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-kusama / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "H9EfvziVimTVSyRL7UNi5ttKer28NxCSCyRGvA7gKJ8APBy", + "actual": "H9EfvziVimTVSyRL7UNi5ttKer28NxCSCyRGvA7gKJ8APBy", + "passed": true, + "duration": 4201, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-kusama / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "DRmVJNfA9kVNzXmvPRbGzgoeVmjn5qf2wo2pMa5ECdtTCAJ", + "actual": "DRmVJNfA9kVNzXmvPRbGzgoeVmjn5qf2wo2pMa5ECdtTCAJ", + "passed": true, + "duration": 3717, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-kusama / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "GL4b7Utm9ym4mi1HMmCyhBcYpajFYhipkJrxh3Hfj4LCdmq", + "actual": "GL4b7Utm9ym4mi1HMmCyhBcYpajFYhipkJrxh3Hfj4LCdmq", + "passed": true, + "duration": 4210, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-kusama / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "GNTP6RymjMiUmsttMHVHPe9F7xE9jYwnHF4Mtq56zHERjc8", + "actual": "GNTP6RymjMiUmsttMHVHPe9F7xE9jYwnHF4Mtq56zHERjc8", + "passed": true, + "duration": 3707, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-kusama / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "FB1Y5ZmKpy6g63NoA62rbXZHH2Qnw4ivdr3YNLCSMipXD2E", + "actual": "FB1Y5ZmKpy6g63NoA62rbXZHH2Qnw4ivdr3YNLCSMipXD2E", + "passed": true, + "duration": 4171, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-joystream / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4VtXaetok5FZaQbiqP71fHEshSeMpbiBhmm7FovUdbEG512F", + "actual": "j4VtXaetok5FZaQbiqP71fHEshSeMpbiBhmm7FovUdbEG512F", + "passed": true, + "duration": 3731, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-joystream / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4SB4Q2GkQWEbTxA5Rf4EEC2o2Ha5UJbeJWaioFLSBUa2Mfkd", + "actual": "j4SB4Q2GkQWEbTxA5Rf4EEC2o2Ha5UJbeJWaioFLSBUa2Mfkd", + "passed": true, + "duration": 4201, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-joystream / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4V5MVqNz1WTs9jLJndPqvtXbvcP4wmTi6K6YwaoeczzU75M9", + "actual": "j4V5MVqNz1WTs9jLJndPqvtXbvcP4wmTi6K6YwaoeczzU75M9", + "passed": true, + "duration": 3717, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-joystream / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4V7kHpL525qpZjWCPcv8Eaz8cukZqxJw3r2kLnbS4GDNLDTH", + "actual": "j4V7kHpL525qpZjWCPcv8Eaz8cukZqxJw3r2kLnbS4GDNLDTH", + "passed": true, + "duration": 4189, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-joystream / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4TvJSoTraBTCm3fgJRifonsYf4pkV9piCCdjXG6ZPdexRkdg", + "actual": "j4TvJSoTraBTCm3fgJRifonsYf4pkV9piCCdjXG6ZPdexRkdg", + "passed": true, + "duration": 3706, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-manta / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfb7vySxSVgWDnKvxTkJXVKEGunCDhs5vA6TMtM6Gc4X7Vtne", + "actual": "dfb7vySxSVgWDnKvxTkJXVKEGunCDhs5vA6TMtM6Gc4X7Vtne", + "passed": true, + "duration": 4188, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-manta / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfXQTnpLPA7VFfsVK42Fk4E2CEd7wMZyNkqGyRnWE9wrsnH1f", + "actual": "dfXQTnpLPA7VFfsVK42Fk4E2CEd7wMZyNkqGyRnWE9wrsnH1f", + "passed": true, + "duration": 3731, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-manta / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfaJktdScm7iXMefYQzbMkvX18wvvq2qSYdnoa7ySbUHKXYk7", + "actual": "dfaJktdScm7iXMefYQzbMkvX18wvvq2qSYdnoa7ySbUHKXYk7", + "passed": true, + "duration": 4231, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-manta / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfaM9gcPhmh6UmeqS1z7e4cyXqFJRjDgfWAizyKmE2jWDm5QP", + "actual": "dfaM9gcPhmh6UmeqS1z7e4cyXqFJRjDgfWAizyKmE2jWDm5QP", + "passed": true, + "duration": 3732, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress-manta / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfZ9hqbXVKnhrxxzuvnvBdprwsQNcNRCSeXKz9oGMN6worZTV", + "actual": "dfZ9hqbXVKnhrxxzuvnvBdprwsQNcNRCSeXKz9oGMN6worZTV", + "passed": true, + "duration": 4227, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "r9D1JTDPkWTZ9qfezpALSi2aiTytQ58Zy6", + "actual": "r9D1JTDPkWTZ9qfezpALSi2aiTytQ58Zy6", + "passed": true, + "duration": 4296, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/1'/0/0", + "method": "xrpGetAddress", + "expected": "rKidUHQbms3Tt81XxAXaqemFgAhsLsNKmb", + "actual": "rKidUHQbms3Tt81XxAXaqemFgAhsLsNKmb", + "passed": true, + "duration": 4328, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "rnvW6eEzP4dve7UqZ5yp7EpQDZGyGmsUbd", + "actual": "rnvW6eEzP4dve7UqZ5yp7EpQDZGyGmsUbd", + "passed": true, + "duration": 4330, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/2147483646'/0/0", + "method": "xrpGetAddress", + "expected": "rBeCiegeAZVwQJj5mXpVCUPp7r3md867Tf", + "actual": "rBeCiegeAZVwQJj5mXpVCUPp7r3md867Tf", + "passed": true, + "duration": 4382, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "rJbE86wJ6AsezwWvxfa5LVkwzxxsQgygig", + "actual": "rJbE86wJ6AsezwWvxfa5LVkwzxxsQgygig", + "passed": true, + "duration": 4442, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / solGetAddress / m/44'/501'/0'/0'", + "method": "solGetAddress", + "expected": "FdrzyiRBdL1sNzPYbDdwgMWRfmBn9pS33uvn2vr7NNzH", + "actual": "FdrzyiRBdL1sNzPYbDdwgMWRfmBn9pS33uvn2vr7NNzH", + "passed": true, + "duration": 3790, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / solGetAddress / m/44'/501'/1'/0'", + "method": "solGetAddress", + "expected": "Fs9D3kmTYHSGhPUxSSqR1y82PLZpCowCQBWHy8Nnmwq5", + "actual": "Fs9D3kmTYHSGhPUxSSqR1y82PLZpCowCQBWHy8Nnmwq5", + "passed": true, + "duration": 4153, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / solGetAddress / m/44'/501'/25'/0'", + "method": "solGetAddress", + "expected": "EadgeNarDdbQJ7Pn2XKY7aW5AT2B5qrw54p6oHrj7AdB", + "actual": "EadgeNarDdbQJ7Pn2XKY7aW5AT2B5qrw54p6oHrj7AdB", + "passed": true, + "duration": 3601, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / solGetAddress / m/44'/501'/2147483646'/0'", + "method": "solGetAddress", + "expected": "J2dXSUFoaGJTcNgpW1DAkTvsU48LRbTi6WsAp87JMHTM", + "actual": "J2dXSUFoaGJTcNgpW1DAkTvsU48LRbTi6WsAp87JMHTM", + "passed": true, + "duration": 3959, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / solGetAddress / m/44'/501'/2147483647'/0'", + "method": "solGetAddress", + "expected": "4PPywjfLFF7goH65Ro7Ad49wz11LZ7a8NtebDJs2wyHe", + "actual": "4PPywjfLFF7goH65Ro7Ad49wz11LZ7a8NtebDJs2wyHe", + "passed": true, + "duration": 3605, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / starcoinGetAddress / m/44'/101010'/0'/0'/0'", + "method": "starcoinGetAddress", + "expected": "0x47ae03920bc534f67df801b008be486d", + "actual": "0x47ae03920bc534f67df801b008be486d", + "passed": true, + "duration": 3745, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / starcoinGetAddress / m/44'/101010'/0'/0'/1'", + "method": "starcoinGetAddress", + "expected": "0x4858ff2f9f77d8ecb729e3228124319b", + "actual": "0x4858ff2f9f77d8ecb729e3228124319b", + "passed": true, + "duration": 3924, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / starcoinGetAddress / m/44'/101010'/0'/0'/25'", + "method": "starcoinGetAddress", + "expected": "0xd7ddeac86476a1ff08fa8bd23ef32a62", + "actual": "0xd7ddeac86476a1ff08fa8bd23ef32a62", + "passed": true, + "duration": 3424, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / starcoinGetAddress / m/44'/101010'/0'/0'/2147483646'", + "method": "starcoinGetAddress", + "expected": "0x147d21929ad4ef6d7c1b80ce8e373e54", + "actual": "0x147d21929ad4ef6d7c1b80ce8e373e54", + "passed": true, + "duration": 3574, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / starcoinGetAddress / m/44'/101010'/0'/0'/2147483647'", + "method": "starcoinGetAddress", + "expected": "0x4097ec8fea4b9b7daabf2d1fef1d4cd4", + "actual": "0x4097ec8fea4b9b7daabf2d1fef1d4cd4", + "passed": true, + "duration": 3783, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / stellarGetAddress / m/44'/148'/0'", + "method": "stellarGetAddress", + "expected": "GBMVJNK4T6S2PYIPC5XJCWR2TUVEVYNZ6G6KRRZ5N62K6YTN3OZB77BK", + "actual": "GBMVJNK4T6S2PYIPC5XJCWR2TUVEVYNZ6G6KRRZ5N62K6YTN3OZB77BK", + "passed": true, + "duration": 4004, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / stellarGetAddress / m/44'/148'/1'", + "method": "stellarGetAddress", + "expected": "GCW3XMHQYGEWIWT2LQXJSLVIDL6OVDBY5YYLLUKK3PRF6TQ4PX2QVHFD", + "actual": "GCW3XMHQYGEWIWT2LQXJSLVIDL6OVDBY5YYLLUKK3PRF6TQ4PX2QVHFD", + "passed": true, + "duration": 3455, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / stellarGetAddress / m/44'/148'/25'", + "method": "stellarGetAddress", + "expected": "GBF3LBUBQKPUOH33CIETS5RXYTIY7JRDSNEBKLV3IOA3THKVE4EG3CBT", + "actual": "GBF3LBUBQKPUOH33CIETS5RXYTIY7JRDSNEBKLV3IOA3THKVE4EG3CBT", + "passed": true, + "duration": 3634, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / stellarGetAddress / m/44'/148'/2147483646'", + "method": "stellarGetAddress", + "expected": "GB4UCHXB4UPEOTAILBRIM6BYI5ZHXXARC5PEASWISKU44ZEYKECFT4VA", + "actual": "GB4UCHXB4UPEOTAILBRIM6BYI5ZHXXARC5PEASWISKU44ZEYKECFT4VA", + "passed": true, + "duration": 3836, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / stellarGetAddress / m/44'/148'/2147483647'", + "method": "stellarGetAddress", + "expected": "GDLALZJOILBMK3ZLUMLLUKQM32XAQMCBN24YRX4PVZ7NRINZYFWHHEOX", + "actual": "GDLALZJOILBMK3ZLUMLLUKQM32XAQMCBN24YRX4PVZ7NRINZYFWHHEOX", + "passed": true, + "duration": 4055, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetAddress / m/44'/784'/0'/0'/0'", + "method": "suiGetAddress", + "expected": "0xbfd0a6d5c3dd77bb27e1320e7ccc39d33f53056592f7165031d2893c07812bfe", + "actual": "0xbfd0a6d5c3dd77bb27e1320e7ccc39d33f53056592f7165031d2893c07812bfe", + "passed": true, + "duration": 3366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetAddress / m/44'/784'/1'/0'/0'", + "method": "suiGetAddress", + "expected": "0x4c124b471080a0d0d12984c15638a5859b66306b638a257d2f89b57a3923f72c", + "actual": "0x4c124b471080a0d0d12984c15638a5859b66306b638a257d2f89b57a3923f72c", + "passed": true, + "duration": 3476, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetAddress / m/44'/784'/25'/0'/0'", + "method": "suiGetAddress", + "expected": "0xc85905746254bafebc36f1684c4a220f34ea680501304929ebeddd79fbea98a4", + "actual": "0xc85905746254bafebc36f1684c4a220f34ea680501304929ebeddd79fbea98a4", + "passed": true, + "duration": 3577, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetAddress / m/44'/784'/2147483646'/0'/0'", + "method": "suiGetAddress", + "expected": "0x551b618c244d83a846c36f8ab76d49b163c5244202a02d396b888d3e9248bc30", + "actual": "0x551b618c244d83a846c36f8ab76d49b163c5244202a02d396b888d3e9248bc30", + "passed": true, + "duration": 3739, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetAddress / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetAddress", + "expected": "0x291c1eef951f188406365c0d8154da4cd0df0b465165ea4236d5e33ef61d3942", + "actual": "0x291c1eef951f188406365c0d8154da4cd0df0b465165ea4236d5e33ef61d3942", + "passed": true, + "duration": 3850, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / tronGetAddress / m/44'/195'/0'/0/0", + "method": "tronGetAddress", + "expected": "THXNjn3TN6n58cD1Ry6mmzPzbgQiZ92whR", + "actual": "THXNjn3TN6n58cD1Ry6mmzPzbgQiZ92whR", + "passed": true, + "duration": 3943, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / tronGetAddress / m/44'/195'/0'/0/1", + "method": "tronGetAddress", + "expected": "TPq9c75jnQJ2ZxiZaLyCJTZJ4navYKwGCn", + "actual": "TPq9c75jnQJ2ZxiZaLyCJTZJ4navYKwGCn", + "passed": true, + "duration": 3330, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / tronGetAddress / m/44'/195'/0'/0/25", + "method": "tronGetAddress", + "expected": "TJmH9sHce76JPnRGzncoHDDUSyLetYDECM", + "actual": "TJmH9sHce76JPnRGzncoHDDUSyLetYDECM", + "passed": true, + "duration": 3408, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / tronGetAddress / m/44'/195'/0'/0/2147483646", + "method": "tronGetAddress", + "expected": "TB78RJTnktDuwQrpNhjoav5sDKy7uw4L8B", + "actual": "TB78RJTnktDuwQrpNhjoav5sDKy7uw4L8B", + "passed": true, + "duration": 3512, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / tronGetAddress / m/44'/195'/0'/0/2147483647", + "method": "tronGetAddress", + "expected": "TUKjDFGmLHw6NLbYuy4bpt2d6MBpKYtiYR", + "actual": "TUKjDFGmLHw6NLbYuy4bpt2d6MBpKYtiYR", + "passed": true, + "duration": 3656, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / benfenGetAddress / m/44'/728'/0'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC1c5404fc4c215d1f9d0630c61691b588bbd88fd4a2bcdc2fd74689720bb6cfb84820", + "actual": "BFC1c5404fc4c215d1f9d0630c61691b588bbd88fd4a2bcdc2fd74689720bb6cfb84820", + "passed": true, + "duration": 3764, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / benfenGetAddress / m/44'/728'/1'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCff2d2498ce365a4ba6b5e90edf54bb174798540493c15af1910375d958f1ddf8f3f4", + "actual": "BFCff2d2498ce365a4ba6b5e90edf54bb174798540493c15af1910375d958f1ddf8f3f4", + "passed": true, + "duration": 3924, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / benfenGetAddress / m/44'/728'/25'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC7774cf91db3f17c19ccb8783654191c2519a7041057ca5c5aaa192c715a3018dbec3", + "actual": "BFC7774cf91db3f17c19ccb8783654191c2519a7041057ca5c5aaa192c715a3018dbec3", + "passed": true, + "duration": 3414, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / benfenGetAddress / m/44'/728'/2147483646'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCf0960edd2ef00bd36e6b4190d1cd8e98ad4a37a90fe1ec7ef8964b223cda3a6d50fd", + "actual": "BFCf0960edd2ef00bd36e6b4190d1cd8e98ad4a37a90fe1ec7ef8964b223cda3a6d50fd", + "passed": true, + "duration": 3518, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / benfenGetAddress / m/44'/728'/2147483647'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC28834bfc0be1b5eed1583b814fb4a698e56850ce3a603eafbd91c57542b6f17ec0f6", + "actual": "BFC28834bfc0be1b5eed1583b814fb4a698e56850ce3a603eafbd91c57542b6f17ec0f6", + "passed": true, + "duration": 3633, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / neoGetAddress / m/44'/888'/0'/0/0", + "method": "neoGetAddress", + "expected": "NaRAttMCnmEUBhHUQXtWnNgZyKaoifxx1q", + "actual": "NaRAttMCnmEUBhHUQXtWnNgZyKaoifxx1q", + "passed": true, + "duration": 3758, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / neoGetAddress / m/44'/888'/0'/0/1", + "method": "neoGetAddress", + "expected": "NcFmfyXgMt2UgYBF7Q1cXVsSnSVbRdTE6w", + "actual": "NcFmfyXgMt2UgYBF7Q1cXVsSnSVbRdTE6w", + "passed": true, + "duration": 3862, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / neoGetAddress / m/44'/888'/0'/0/30", + "method": "neoGetAddress", + "expected": "NabkPptMvXxqZRkrZwQmR8w5JZwmug4quW", + "actual": "NabkPptMvXxqZRkrZwQmR8w5JZwmug4quW", + "passed": true, + "duration": 3974, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / neoGetAddress / m/44'/888'/0'/0/2147483646", + "method": "neoGetAddress", + "expected": "NcAwNtngKbhVcAEWuTh7AXvewxK4RRRCa3", + "actual": "NcAwNtngKbhVcAEWuTh7AXvewxK4RRRCa3", + "passed": true, + "duration": 3365, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / neoGetAddress / m/44'/888'/0'/0/2147483647", + "method": "neoGetAddress", + "expected": "NaSr6dadXk3KYNvGdFrGEkLsM66BxAbe8P", + "actual": "NaSr6dadXk3KYNvGdFrGEkLsM66BxAbe8P", + "passed": true, + "duration": 3428, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetAddress / m/1852'/1815'/0'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8md26srhz4kjqlep8kwwnvf4gccjvje74t0s4t7zqjq6q7sa390h3p20hvn9c2jjms0qswze8nq0x83752rpj98099sd30sqn", + "actual": "addr1q8md26srhz4kjqlep8kwwnvf4gccjvje74t0s4t7zqjq6q7sa390h3p20hvn9c2jjms0qswze8nq0x83752rpj98099sd30sqn", + "passed": true, + "duration": 22013, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetAddress / m/1852'/1815'/1'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1qxvxehva5mdta4gej9nkdk9psajzzy5jslkfnus3mpmhwr2verg0m3nhy8ymfcqvurx7ztv7kr83qrqq262khg70qxgsf4zftc", + "actual": "addr1qxvxehva5mdta4gej9nkdk9psajzzy5jslkfnus3mpmhwr2verg0m3nhy8ymfcqvurx7ztv7kr83qrqq262khg70qxgsf4zftc", + "passed": true, + "duration": 8715, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetAddress / m/1852'/1815'/25'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q82d2yvzjljpvsx07m6056yfhlld638m9yzgwe5rj2fwl0a9r7gznx4j2tr7nav2x7ms6fhf74t6h37eula4klju0z7sfshjt6", + "actual": "addr1q82d2yvzjljpvsx07m6056yfhlld638m9yzgwe5rj2fwl0a9r7gznx4j2tr7nav2x7ms6fhf74t6h37eula4klju0z7sfshjt6", + "passed": true, + "duration": 8706, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetAddress / m/1852'/1815'/2147483646'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8m8ycnjcqn5ds5gaehlxsxny4jvelsxcv4nrjj92z02jkasmdq5kj8u0g33qwh5cjutymu3kp49tqnpur7v4dqdfkds5sg9vp", + "actual": "addr1q8m8ycnjcqn5ds5gaehlxsxny4jvelsxcv4nrjj92z02jkasmdq5kj8u0g33qwh5cjutymu3kp49tqnpur7v4dqdfkds5sg9vp", + "passed": true, + "duration": 8673, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetAddress / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetAddress", + "expected": "addr1q8shc25qzjc9rmaftrvssgpwerv9yz6p6fmqf8g0dpmpgjclcqg0hagpqexw647t5yxy2levvtmppdrt0rx322htwdxseazz8w", + "actual": "addr1q8shc25qzjc9rmaftrvssgpwerv9yz6p6fmqf8g0dpmpgjclcqg0hagpqexw647t5yxy2levvtmppdrt0rx322htwdxseazz8w", + "passed": true, + "duration": 8643, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / algoGetAddress / m/44'/283'/0'/0'/0'", + "method": "algoGetAddress", + "expected": "6T7X4L2JCJQAKROMAOUODI6MH6QAAMPX6ETOL3N5MROCV27N4PUCAGBSLQ", + "actual": "6T7X4L2JCJQAKROMAOUODI6MH6QAAMPX6ETOL3N5MROCV27N4PUCAGBSLQ", + "passed": true, + "duration": 3920, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / algoGetAddress / m/44'/283'/0'/0'/1'", + "method": "algoGetAddress", + "expected": "BJHWEUVESBPPVRNZNV74OJ452QRPFSBHLF6EFJHNOL2PVBJHZMOAEC3YG4", + "actual": "BJHWEUVESBPPVRNZNV74OJ452QRPFSBHLF6EFJHNOL2PVBJHZMOAEC3YG4", + "passed": true, + "duration": 3524, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / algoGetAddress / m/44'/283'/0'/0'/25'", + "method": "algoGetAddress", + "expected": "ZFFZ3TVNTWIEJWF4MHO234VLZMWISPKMSOEESVC5LPED5T7XVENXSE5EOY", + "actual": "ZFFZ3TVNTWIEJWF4MHO234VLZMWISPKMSOEESVC5LPED5T7XVENXSE5EOY", + "passed": true, + "duration": 3801, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / algoGetAddress / m/44'/283'/0'/0'/2147483646'", + "method": "algoGetAddress", + "expected": "5OYAEUS5RXSIEUXJMSA4AFJQBNXSJ5J2QRNHRBRHS3X62443NZSP7ERN3Y", + "actual": "5OYAEUS5RXSIEUXJMSA4AFJQBNXSJ5J2QRNHRBRHS3X62443NZSP7ERN3Y", + "passed": true, + "duration": 4066, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / algoGetAddress / m/44'/283'/0'/0'/2147483647'", + "method": "algoGetAddress", + "expected": "45D64GZXCP4N6L222ZEJXNKMFOOZ3MQGDU3WJ5R6DYIK6DMFRR4U7B7CQQ", + "actual": "45D64GZXCP4N6L222ZEJXNKMFOOZ3MQGDU3WJ5R6DYIK6DMFRR4U7B7CQQ", + "passed": true, + "duration": 3491, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetAddress / m/44'/637'/0'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x819a77ce04dbb1924fea37294214391a9d9f7759e35d3a034ac365e7be645e1c", + "actual": "0x819a77ce04dbb1924fea37294214391a9d9f7759e35d3a034ac365e7be645e1c", + "passed": true, + "duration": 3621, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetAddress / m/44'/637'/1'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xd0f037592346c3ceca474edaab6a6b09b3e13dce5fc105d6dd2afdedecbc1eee", + "actual": "0xd0f037592346c3ceca474edaab6a6b09b3e13dce5fc105d6dd2afdedecbc1eee", + "passed": true, + "duration": 3741, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetAddress / m/44'/637'/25'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x93f4a274c69821461ca88f22b6c527304c1857398ff7868e4b3af3f9541678bf", + "actual": "0x93f4a274c69821461ca88f22b6c527304c1857398ff7868e4b3af3f9541678bf", + "passed": true, + "duration": 3913, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetAddress / m/44'/637'/2147483646'/0'/0'", + "method": "aptosGetAddress", + "expected": "0xfc21a6b1d570a4faae71f4106323206daaa9b82c75ad780e64d28160b98f766b", + "actual": "0xfc21a6b1d570a4faae71f4106323206daaa9b82c75ad780e64d28160b98f766b", + "passed": true, + "duration": 3369, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetAddress / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetAddress", + "expected": "0x571c69e8293ef20efe701bc7b99ac127e6d581dbd17620f8acdebf779f2798d1", + "actual": "0x571c69e8293ef20efe701bc7b99ac127e6d581dbd17620f8acdebf779f2798d1", + "passed": true, + "duration": 3499, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Legacy / m/44'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "1KvdWRia4GCG6mxBrUrg79Q7zdTBKH8o67", + "actual": "1KvdWRia4GCG6mxBrUrg79Q7zdTBKH8o67", + "passed": true, + "duration": 4083, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Legacy / m/44'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "18m9Ke1Xb9fEyKwJJD4c4oLzfdznkbHcCN", + "actual": "18m9Ke1Xb9fEyKwJJD4c4oLzfdznkbHcCN", + "passed": true, + "duration": 3797, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Legacy / m/44'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "1JJXccjfoAasbqSKTjK3abW488eiY7yvxZ", + "actual": "1JJXccjfoAasbqSKTjK3abW488eiY7yvxZ", + "passed": true, + "duration": 4387, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Legacy / m/44'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "1NAEjXTZyk5u7wh6MRQPtshhdvzYuXwFRo", + "actual": "1NAEjXTZyk5u7wh6MRQPtshhdvzYuXwFRo", + "passed": true, + "duration": 3966, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Legacy / m/44'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "157rUMRu5LJ2Pox8mFt2uMr8r4JNAZHriL", + "actual": "157rUMRu5LJ2Pox8mFt2uMr8r4JNAZHriL", + "passed": true, + "duration": 3820, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Nested SegWit / m/49'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "37RpdnzsZY7GEqYoGNTkNSKYJ8eu2oLo8p", + "actual": "37RpdnzsZY7GEqYoGNTkNSKYJ8eu2oLo8p", + "passed": true, + "duration": 4547, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Nested SegWit / m/49'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "3ExvGMkKD6jWu8xw2Cwt9af4DoUW9fDkA5", + "actual": "3ExvGMkKD6jWu8xw2Cwt9af4DoUW9fDkA5", + "passed": true, + "duration": 4267, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Nested SegWit / m/49'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "3Cx2XVQ9MW64xjXNxdTKPSa8Dm5nZMbyyT", + "actual": "3Cx2XVQ9MW64xjXNxdTKPSa8Dm5nZMbyyT", + "passed": true, + "duration": 4016, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Nested SegWit / m/49'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "391hwUHishADhKso6KrhcbHnxo79Ty8j3S", + "actual": "391hwUHishADhKso6KrhcbHnxo79Ty8j3S", + "passed": true, + "duration": 3986, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Nested SegWit / m/49'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "32eLtwAYPqYNNgnZWuYw8wJP4qgRxFXV4K", + "actual": "32eLtwAYPqYNNgnZWuYw8wJP4qgRxFXV4K", + "passed": true, + "duration": 3951, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Native SegWit / m/84'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1q3gw5x8vh3y7e4zx7kd38kug5te5slw9ssjhkwj", + "actual": "bc1q3gw5x8vh3y7e4zx7kd38kug5te5slw9ssjhkwj", + "passed": true, + "duration": 3864, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Native SegWit / m/84'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1qvf0jfsz8v96rl5zyqmaqjj3f0pfuf6taywgnjw", + "actual": "bc1qvf0jfsz8v96rl5zyqmaqjj3f0pfuf6taywgnjw", + "passed": true, + "duration": 4551, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Native SegWit / m/84'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1qwqxpwwyf63kuq6zvfpt9vmw92sl3hl4eaf778g", + "actual": "bc1qwqxpwwyf63kuq6zvfpt9vmw92sl3hl4eaf778g", + "passed": true, + "duration": 4206, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Native SegWit / m/84'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1qml7lfj7m9s2dhz787at6m7pd887rrt79mmm6xq", + "actual": "bc1qml7lfj7m9s2dhz787at6m7pd887rrt79mmm6xq", + "passed": true, + "duration": 3867, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Native SegWit / m/84'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1qxjjayvegznd5v9dunlnlxqjrhtc62jzpvrdxn7", + "actual": "bc1qxjjayvegznd5v9dunlnlxqjrhtc62jzpvrdxn7", + "passed": true, + "duration": 4522, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Taproot / m/86'/0'/0'/0/0", + "method": "btcGetAddress", + "expected": "bc1psyekgpzq6v9082vv0hznnjlejt2vq0aqkk0c7cdfmsmu5x66wxvsdsxlq9", + "actual": "bc1psyekgpzq6v9082vv0hznnjlejt2vq0aqkk0c7cdfmsmu5x66wxvsdsxlq9", + "passed": true, + "duration": 4169, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Taproot / m/86'/0'/1'/0/0", + "method": "btcGetAddress", + "expected": "bc1p7c5wsxnzh3000egpxac2q85plk5d2jhdquymhx30fts9sfrjknrq8dj955", + "actual": "bc1p7c5wsxnzh3000egpxac2q85plk5d2jhdquymhx30fts9sfrjknrq8dj955", + "passed": true, + "duration": 3898, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Taproot / m/86'/0'/25'/0/0", + "method": "btcGetAddress", + "expected": "bc1pxr4csmgvgvvceueju6h2uuuwph63s3zl4f4jzp0dsns0j7r2gxasv2rx6z", + "actual": "bc1pxr4csmgvgvvceueju6h2uuuwph63s3zl4f4jzp0dsns0j7r2gxasv2rx6z", + "passed": true, + "duration": 4565, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Taproot / m/86'/0'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bc1pjsg4xtn5dn60va6x5k8fwjcyjcr8czfqvsknlv6dal4rqskvthps7yw8kl", + "actual": "bc1pjsg4xtn5dn60va6x5k8fwjcyjcr8czfqvsknlv6dal4rqskvthps7yw8kl", + "passed": true, + "duration": 4224, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Taproot / m/86'/0'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bc1pmwdg8xh9s8acdqgqxa8mz2jv32kr2qhmjf6r5gvw3ag7r004897q5pu643", + "actual": "bc1pmwdg8xh9s8acdqgqxa8mz2jv32kr2qhmjf6r5gvw3ag7r004897q5pu643", + "passed": true, + "duration": 3899, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Doge / m/44'/3'/0'/0/0", + "method": "btcGetAddress", + "expected": "D9L8CRsxt6tZfNw82zF2Gm2ecnrH5btSrj", + "actual": "D9L8CRsxt6tZfNw82zF2Gm2ecnrH5btSrj", + "passed": true, + "duration": 4071, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Doge / m/44'/3'/1'/0/0", + "method": "btcGetAddress", + "expected": "DTgX4AuXMhsbNL41ekjRrbfhkwfwxVZkr8", + "actual": "DTgX4AuXMhsbNL41ekjRrbfhkwfwxVZkr8", + "passed": true, + "duration": 3404, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Doge / m/44'/3'/25'/0/0", + "method": "btcGetAddress", + "expected": "DLwcjVxHr3ZnEL2J49pq2YR57YJy5q3Yxp", + "actual": "DLwcjVxHr3ZnEL2J49pq2YR57YJy5q3Yxp", + "passed": true, + "duration": 3533, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Doge / m/44'/3'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "DAWuBL5D2junkq15hzdnPV3SwMmDsxEJCD", + "actual": "DAWuBL5D2junkq15hzdnPV3SwMmDsxEJCD", + "passed": true, + "duration": 3672, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Doge / m/44'/3'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "DK5UJFsvhM8UCsuownwKugin2zTZUqVsJM", + "actual": "DK5UJFsvhM8UCsuownwKugin2zTZUqVsJM", + "passed": true, + "duration": 3805, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-BCH / m/44'/145'/0'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qrqa8344fgnkx3h4z0pxm69fy3y72d4acgukq2sd0q", + "actual": "bitcoincash:qrqa8344fgnkx3h4z0pxm69fy3y72d4acgukq2sd0q", + "passed": true, + "duration": 4267, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-BCH / m/44'/145'/1'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qp0kvh0rd3f8sean5psnmf7j8j6qah4v5vh7e4fpdh", + "actual": "bitcoincash:qp0kvh0rd3f8sean5psnmf7j8j6qah4v5vh7e4fpdh", + "passed": true, + "duration": 3696, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-BCH / m/44'/145'/25'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qp98cql6rplh23jpc9rt8pycllq626ky9vk9ug3x87", + "actual": "bitcoincash:qp98cql6rplh23jpc9rt8pycllq626ky9vk9ug3x87", + "passed": true, + "duration": 4156, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-BCH / m/44'/145'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qq4j0fnwfp0y9epalwl4vgl9q63lpm0hd52cyy23xj", + "actual": "bitcoincash:qq4j0fnwfp0y9epalwl4vgl9q63lpm0hd52cyy23xj", + "passed": true, + "duration": 3683, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-BCH / m/44'/145'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "bitcoincash:qqnhpt5v378z5nqcgs0x9f0z9yja3qvpmvsr3ac4j0", + "actual": "bitcoincash:qqnhpt5v378z5nqcgs0x9f0z9yja3qvpmvsr3ac4j0", + "passed": true, + "duration": 4140, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Legacy / m/44'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "LhqX1J8pv2NA9Tn9Ft7okNhCEen1DFfQve", + "actual": "LhqX1J8pv2NA9Tn9Ft7okNhCEen1DFfQve", + "passed": true, + "duration": 3512, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Legacy / m/44'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "LSTKLw5PRRL7jSGHxdpXihhGWy5iQs8BHx", + "actual": "LSTKLw5PRRL7jSGHxdpXihhGWy5iQs8BHx", + "passed": true, + "duration": 3814, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Legacy / m/44'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "Ld6daWUZwSfybKp3vEriW8GwyeJ6ovQHXV", + "actual": "Ld6daWUZwSfybKp3vEriW8GwyeJ6ovQHXV", + "passed": true, + "duration": 4110, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Legacy / m/44'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "LbhkU3eHE3LfpeBRYEbaRHxnUi9WYm1kij", + "actual": "LbhkU3eHE3LfpeBRYEbaRHxnUi9WYm1kij", + "passed": true, + "duration": 3533, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Legacy / m/44'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "Lfx1gUNfrdUYQjRazx2k7tLz5rd1vafxMN", + "actual": "Lfx1gUNfrdUYQjRazx2k7tLz5rd1vafxMN", + "passed": true, + "duration": 3828, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Nested SegWit / m/49'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "MSQ6Ygp2g8woutJz2imEYoCu8BGAReeqzS", + "actual": "MSQ6Ygp2g8woutJz2imEYoCu8BGAReeqzS", + "passed": true, + "duration": 4288, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Nested SegWit / m/49'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "MCn4ouNgmf3npJ84fGxr3fRXedojRFBPJN", + "actual": "MCn4ouNgmf3npJ84fGxr3fRXedojRFBPJN", + "passed": true, + "duration": 3728, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Nested SegWit / m/49'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "M9g2ZXU9mbvFAKmYgVkWZHZk5VVpCtrP2u", + "actual": "M9g2ZXU9mbvFAKmYgVkWZHZk5VVpCtrP2u", + "passed": true, + "duration": 4153, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "MDvnjAttZuPJGrDjfaAbvMZCG3xSqzUk6D", + "actual": "MDvnjAttZuPJGrDjfaAbvMZCG3xSqzUk6D", + "passed": true, + "duration": 3642, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Nested SegWit / m/49'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "MMouGec1QHU2ebnMB6Rdh29jExTRyh2sg4", + "actual": "MMouGec1QHU2ebnMB6Rdh29jExTRyh2sg4", + "passed": true, + "duration": 4061, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Native SegWit / m/84'/2'/0'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qzqgl4kj7pen8azn4q9a3rlxr55ahuhkr2g5tc9", + "actual": "ltc1qzqgl4kj7pen8azn4q9a3rlxr55ahuhkr2g5tc9", + "passed": true, + "duration": 3560, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Native SegWit / m/84'/2'/1'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qx003vk3qmuucaheu2xv5s0ev4qlknflu3mxfvz", + "actual": "ltc1qx003vk3qmuucaheu2xv5s0ev4qlknflu3mxfvz", + "passed": true, + "duration": 3932, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Native SegWit / m/84'/2'/25'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qqp2m40jkwmwsg6d3wd8atrnxu2ph5any6y8jpu", + "actual": "ltc1qqp2m40jkwmwsg6d3wd8atrnxu2ph5any6y8jpu", + "passed": true, + "duration": 3596, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qj6naeufy0kmel86jrh4vsvmff4neqm5vf7yzw0", + "actual": "ltc1qj6naeufy0kmel86jrh4vsvmff4neqm5vf7yzw0", + "passed": true, + "duration": 3940, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-LTC Native SegWit / m/84'/2'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "ltc1qly7nc5sr5k30hz2xjdct6fm574s5t6eggs8c22", + "actual": "ltc1qly7nc5sr5k30hz2xjdct6fm574s5t6eggs8c22", + "passed": true, + "duration": 3620, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Neurai / m/44'/1900'/0'/0/0", + "method": "btcGetAddress", + "expected": "NaBPMp4KwqgcowsqRfu3KHWQYPxYZict6b", + "actual": "NaBPMp4KwqgcowsqRfu3KHWQYPxYZict6b", + "passed": true, + "duration": 3770, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Neurai / m/44'/1900'/1'/0/0", + "method": "btcGetAddress", + "expected": "NfkKzCMAhjJURakhrfMQQFsbcg6hEc4Hc7", + "actual": "NfkKzCMAhjJURakhrfMQQFsbcg6hEc4Hc7", + "passed": true, + "duration": 3932, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Neurai / m/44'/1900'/25'/0/0", + "method": "btcGetAddress", + "expected": "NYuBZPH9mrbz77M2ckiVG3vx2XGTCDBfHo", + "actual": "NYuBZPH9mrbz77M2ckiVG3vx2XGTCDBfHo", + "passed": true, + "duration": 3381, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Neurai / m/44'/1900'/2147483646'/0/0", + "method": "btcGetAddress", + "expected": "NWr8QRJBGWRDK5QLj5iyKW3PvBcnjoY4Cf", + "actual": "NWr8QRJBGWRDK5QLj5iyKW3PvBcnjoY4Cf", + "passed": true, + "duration": 3517, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetAddress-Neurai / m/44'/1900'/2147483647'/0/0", + "method": "btcGetAddress", + "expected": "NW39jdHTRbSv5ZnGqshv4GwRcuTLoo9Ntj", + "actual": "NW39jdHTRbSv5ZnGqshv4GwRcuTLoo9Ntj", + "passed": true, + "duration": 3666, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / confluxGetAddress / m/44'/503'/0'/0/0", + "method": "confluxGetAddress", + "expected": "cfx:aajdw67ej3ng7202wpgenbn7m5tkegw8juakz5c5y9", + "actual": "cfx:aajdw67ej3ng7202wpgenbn7m5tkegw8juakz5c5y9", + "passed": true, + "duration": 3935, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / confluxGetAddress / m/44'/503'/0'/0/1", + "method": "confluxGetAddress", + "expected": "cfx:aar79yz1ez9s5m63vjf3ns7hxnyafnk78jw7f54ppk", + "actual": "cfx:aar79yz1ez9s5m63vjf3ns7hxnyafnk78jw7f54ppk", + "passed": true, + "duration": 3544, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / confluxGetAddress / m/44'/503'/0'/0/25", + "method": "confluxGetAddress", + "expected": "cfx:aakumm7ydbph0yd2d4e95km9hy73357jgeu2t4ah2v", + "actual": "cfx:aakumm7ydbph0yd2d4e95km9hy73357jgeu2t4ah2v", + "passed": true, + "duration": 3825, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / confluxGetAddress / m/44'/503'/0'/0/2147483646", + "method": "confluxGetAddress", + "expected": "cfx:aasv7128a3ux0zye8hjadfe3hsz5x45caj6gc70xew", + "actual": "cfx:aasv7128a3ux0zye8hjadfe3hsz5x45caj6gc70xew", + "passed": true, + "duration": 4111, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / confluxGetAddress / m/44'/503'/0'/0/2147483647", + "method": "confluxGetAddress", + "expected": "cfx:aam1ak63g794fpurf0k968w5eknevthy0jwksht54v", + "actual": "cfx:aam1ak63g794fpurf0k968w5eknevthy0jwksht54v", + "passed": true, + "duration": 3509, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cosmos1jj2mkftu80lrg5ehgnr4qlghptg66c52nsq3a7", + "actual": "cosmos1jj2mkftu80lrg5ehgnr4qlghptg66c52nsq3a7", + "passed": true, + "duration": 3575, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cosmos1ecfr23afz9p2wu34tnnh45ev2y854q6tjzsjmd", + "actual": "cosmos1ecfr23afz9p2wu34tnnh45ev2y854q6tjzsjmd", + "passed": true, + "duration": 3639, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cosmos1dnamp9p8ufqwtfl36dapxt2zl3sr38g95j54jz", + "actual": "cosmos1dnamp9p8ufqwtfl36dapxt2zl3sr38g95j54jz", + "passed": true, + "duration": 3675, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cosmos1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj52zgn2", + "actual": "cosmos1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj52zgn2", + "passed": true, + "duration": 3718, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cosmos1x95uy3pqe5pljmcva53r5gfmheadsuyady2ulm", + "actual": "cosmos1x95uy3pqe5pljmcva53r5gfmheadsuyady2ulm", + "passed": true, + "duration": 3746, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-akash / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "akash1jj2mkftu80lrg5ehgnr4qlghptg66c527tdkyy", + "actual": "akash1jj2mkftu80lrg5ehgnr4qlghptg66c527tdkyy", + "passed": true, + "duration": 3767, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-akash / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "akash1ecfr23afz9p2wu34tnnh45ev2y854q6tlea4zh", + "actual": "akash1ecfr23afz9p2wu34tnnh45ev2y854q6tlea4zh", + "passed": true, + "duration": 3802, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-akash / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "akash1dnamp9p8ufqwtfl36dapxt2zl3sr38g9efejtc", + "actual": "akash1dnamp9p8ufqwtfl36dapxt2zl3sr38g9efejtc", + "passed": true, + "duration": 3847, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "akash1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpje3002s", + "actual": "akash1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpje3002s", + "passed": true, + "duration": 3873, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-akash / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "akash1x95uy3pqe5pljmcva53r5gfmheadsuyaql8mxp", + "actual": "akash1x95uy3pqe5pljmcva53r5gfmheadsuyaql8mxp", + "passed": true, + "duration": 3925, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-crypto / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "cro1jj2mkftu80lrg5ehgnr4qlghptg66c52ttggp0", + "actual": "cro1jj2mkftu80lrg5ehgnr4qlghptg66c52ttggp0", + "passed": true, + "duration": 3254, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-crypto / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "cro1ecfr23afz9p2wu34tnnh45ev2y854q6t2ect8u", + "actual": "cro1ecfr23afz9p2wu34tnnh45ev2y854q6t2ect8u", + "passed": true, + "duration": 3284, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-crypto / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "cro1dnamp9p8ufqwtfl36dapxt2zl3sr38g9vfuvwn", + "actual": "cro1dnamp9p8ufqwtfl36dapxt2zl3sr38g9vfuvwn", + "passed": true, + "duration": 3304, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "cro1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjv3230m", + "actual": "cro1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjv3230m", + "passed": true, + "duration": 3320, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-crypto / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "cro1x95uy3pqe5pljmcva53r5gfmheadsuya4lz9r2", + "actual": "cro1x95uy3pqe5pljmcva53r5gfmheadsuya4lz9r2", + "passed": true, + "duration": 3318, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-fetch / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "fetch1jj2mkftu80lrg5ehgnr4qlghptg66c52qdf4lf", + "actual": "fetch1jj2mkftu80lrg5ehgnr4qlghptg66c52qdf4lf", + "passed": true, + "duration": 3328, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-fetch / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "fetch1ecfr23afz9p2wu34tnnh45ev2y854q6tpleke6", + "actual": "fetch1ecfr23afz9p2wu34tnnh45ev2y854q6tpleke6", + "passed": true, + "duration": 3372, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-fetch / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "fetch1dnamp9p8ufqwtfl36dapxt2zl3sr38g980a3s4", + "actual": "fetch1dnamp9p8ufqwtfl36dapxt2zl3sr38g980a3s4", + "passed": true, + "duration": 3425, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "fetch1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj8htv3a", + "actual": "fetch1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj8htv3a", + "passed": true, + "duration": 3440, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-fetch / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "fetch1x95uy3pqe5pljmcva53r5gfmheadsuya7ercav", + "actual": "fetch1x95uy3pqe5pljmcva53r5gfmheadsuya7ercav", + "passed": true, + "duration": 3481, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-osmo / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "osmo1jj2mkftu80lrg5ehgnr4qlghptg66c52mtnptv", + "actual": "osmo1jj2mkftu80lrg5ehgnr4qlghptg66c52mtnptv", + "passed": true, + "duration": 3530, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-osmo / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "osmo1ecfr23afz9p2wu34tnnh45ev2y854q6t6erzdl", + "actual": "osmo1ecfr23afz9p2wu34tnnh45ev2y854q6t6erzdl", + "passed": true, + "duration": 3550, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-osmo / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "osmo1dnamp9p8ufqwtfl36dapxt2zl3sr38g9uf89ys", + "actual": "osmo1dnamp9p8ufqwtfl36dapxt2zl3sr38g9uf89ys", + "passed": true, + "duration": 3583, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "osmo1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpju33c9c", + "actual": "osmo1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpju33c9c", + "passed": true, + "duration": 3589, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-osmo / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "osmo1x95uy3pqe5pljmcva53r5gfmheadsuya9levff", + "actual": "osmo1x95uy3pqe5pljmcva53r5gfmheadsuya9levff", + "passed": true, + "duration": 3628, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-juno / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "juno1jj2mkftu80lrg5ehgnr4qlghptg66c529zr26z", + "actual": "juno1jj2mkftu80lrg5ehgnr4qlghptg66c529zr26z", + "passed": true, + "duration": 3658, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-juno / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "juno1ecfr23afz9p2wu34tnnh45ev2y854q6tysnfu3", + "actual": "juno1ecfr23afz9p2wu34tnnh45ev2y854q6tysnfu3", + "passed": true, + "duration": 3697, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-juno / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "juno1dnamp9p8ufqwtfl36dapxt2zl3sr38g9zqhw47", + "actual": "juno1dnamp9p8ufqwtfl36dapxt2zl3sr38g9zqhw47", + "passed": true, + "duration": 3737, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "juno1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjzcpn5k", + "actual": "juno1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjzcpn5k", + "passed": true, + "duration": 3773, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-juno / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "juno1x95uy3pqe5pljmcva53r5gfmheadsuyamkf8c8", + "actual": "juno1x95uy3pqe5pljmcva53r5gfmheadsuyamkf8c8", + "passed": true, + "duration": 3817, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-terra / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "terra1jj2mkftu80lrg5ehgnr4qlghptg66c524563l7", + "actual": "terra1jj2mkftu80lrg5ehgnr4qlghptg66c524563l7", + "passed": true, + "duration": 3867, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-terra / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "terra1ecfr23afz9p2wu34tnnh45ev2y854q6t5x2jed", + "actual": "terra1ecfr23afz9p2wu34tnnh45ev2y854q6t5x2jed", + "passed": true, + "duration": 3942, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-terra / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "terra1dnamp9p8ufqwtfl36dapxt2zl3sr38g9jkw4sz", + "actual": "terra1dnamp9p8ufqwtfl36dapxt2zl3sr38g9jkw4sz", + "passed": true, + "duration": 3270, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "terra1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjjwcg32", + "actual": "terra1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjjwcg32", + "passed": true, + "duration": 3287, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-terra / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "terra1x95uy3pqe5pljmcva53r5gfmheadsuyatqsuam", + "actual": "terra1x95uy3pqe5pljmcva53r5gfmheadsuyatqsuam", + "passed": true, + "duration": 3351, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-secret / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "secret1jj2mkftu80lrg5ehgnr4qlghptg66c52345cqz", + "actual": "secret1jj2mkftu80lrg5ehgnr4qlghptg66c52345cqz", + "passed": true, + "duration": 3400, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-secret / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "secret1ecfr23afz9p2wu34tnnh45ev2y854q6ts8ymx3", + "actual": "secret1ecfr23afz9p2wu34tnnh45ev2y854q6ts8ymx3", + "passed": true, + "duration": 3419, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-secret / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "secret1dnamp9p8ufqwtfl36dapxt2zl3sr38g9khqu07", + "actual": "secret1dnamp9p8ufqwtfl36dapxt2zl3sr38g9khqu07", + "passed": true, + "duration": 3442, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "secret1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjk0kpwk", + "actual": "secret1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpjk0kpwk", + "passed": true, + "duration": 3454, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-secret / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "secret1x95uy3pqe5pljmcva53r5gfmheadsuya0p74z8", + "actual": "secret1x95uy3pqe5pljmcva53r5gfmheadsuya0p74z8", + "passed": true, + "duration": 3490, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-celestia / m/44'/118'/0'/0/0", + "method": "cosmosGetAddress", + "expected": "celestia1jj2mkftu80lrg5ehgnr4qlghptg66c52z63p8n", + "actual": "celestia1jj2mkftu80lrg5ehgnr4qlghptg66c52z63p8n", + "passed": true, + "duration": 3512, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-celestia / m/44'/118'/0'/0/1", + "method": "cosmosGetAddress", + "expected": "celestia1ecfr23afz9p2wu34tnnh45ev2y854q6trgpzpq", + "actual": "celestia1ecfr23afz9p2wu34tnnh45ev2y854q6trgpzpq", + "passed": true, + "duration": 3580, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-celestia / m/44'/118'/0'/0/25", + "method": "cosmosGetAddress", + "expected": "celestia1dnamp9p8ufqwtfl36dapxt2zl3sr38g99c99g0", + "actual": "celestia1dnamp9p8ufqwtfl36dapxt2zl3sr38g99c99g0", + "passed": true, + "duration": 3635, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483646", + "method": "cosmosGetAddress", + "expected": "celestia1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj9qncf8", + "actual": "celestia1j2aatdujs6yqkw8cv2xsd6x6c0xl0vpj9qncf8", + "passed": true, + "duration": 3721, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetAddress-celestia / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetAddress", + "expected": "celestia1x95uy3pqe5pljmcva53r5gfmheadsuyauwmv9k", + "actual": "celestia1x95uy3pqe5pljmcva53r5gfmheadsuyauwmv9k", + "passed": true, + "duration": 3778, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / dnxGetAddress / m/44'/29538'/0'/0'/0'", + "method": "dnxGetAddress", + "expected": "XwnqvKixdgW9q93ACb6cu8fCuQWYXtQ7NFkjujZof2yt3nGsScX6eeA9QSAynhshnNgdmsCW2NgwSWMNj2TEjteH2muFi7SeB", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3569 + }, + { + "title": "one-passphrase12-密语1 / dnxGetAddress / m/44'/29538'/0'/0'/1'", + "method": "dnxGetAddress", + "expected": "Xwo4cvCfGyWKQ4wdXL9hcd8daCx82SexEh86Z8EsncmhiXwEamyqFd6J8Vh2jAWdDw5v7R51AaoWsbYc9ho9uWAs2YyH2L5Wc", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3333 + }, + { + "title": "one-passphrase12-密语1 / dnxGetAddress / m/44'/29538'/0'/0'/25'", + "method": "dnxGetAddress", + "expected": "XwnR5yebkTrjC1WKuk69VchB2CiNVYDmjR2EbHgMN9EtMYNmQT83MekPNtg1vBsksfXwFxMgwAVgCPX7XTayMxxT192CzaQvV", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3115 + }, + { + "title": "one-passphrase12-密语1 / dnxGetAddress / m/44'/29538'/0'/0'/2147483646'", + "method": "dnxGetAddress", + "expected": "Xwmn82KfF8VAk3ENnxnvcs4Y8p2D4sPXbNpE1aawQyMtJPKFd8PZD9hiHRDantLtZsjaw9oUDXkF3BVKJSz3ao9A2sjsWpwo6", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3028 + }, + { + "title": "one-passphrase12-密语1 / dnxGetAddress / m/44'/29538'/0'/0'/2147483647'", + "method": "dnxGetAddress", + "expected": "Xwn594BhJRe1BCZ9MvSjjGVatyFpjD3myaHc6DHMJo6FZmBsPsRRAA2axqjHqEmFDZHmcRScch4PvEiv29JhyPLQ264w3BQ5Q", + "actual": "", + "passed": false, + "error": "Failure_UnexpectedMessage,Unexpected message", + "duration": 3001 + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress / m/44'/60'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x52Bb574655391398b1CA8753514559Ce52b54728", + "actual": "0x52Bb574655391398b1CA8753514559Ce52b54728", + "passed": true, + "duration": 3316, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress / m/44'/60'/0'/0/1", + "method": "evmGetAddress", + "expected": "0xD63F9b9AF6f260Ee2Eb18bdd8Cc03839d0E588C2", + "actual": "0xD63F9b9AF6f260Ee2Eb18bdd8Cc03839d0E588C2", + "passed": true, + "duration": 3366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress / m/44'/60'/0'/0/25", + "method": "evmGetAddress", + "expected": "0x03eF7b6aE9216cB3824f871De81F95B9D918eFE9", + "actual": "0x03eF7b6aE9216cB3824f871De81F95B9D918eFE9", + "passed": true, + "duration": 3429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress / m/44'/60'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0x2131987322E4fbb7B65467B3E99B3e04f8cCD01a", + "actual": "0x2131987322E4fbb7B65467B3E99B3e04f8cCD01a", + "passed": true, + "duration": 3499, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress / m/44'/60'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x6f6daEedf6F02FeFaf465a0b643941e263Db770D", + "actual": "0x6f6daEedf6F02FeFaf465a0b643941e263Db770D", + "passed": true, + "duration": 3554, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-Ledger Live / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x1A0d128e259335726bBA36999b9262B6e73AA76d", + "actual": "0x1A0d128e259335726bBA36999b9262B6e73AA76d", + "passed": true, + "duration": 3614, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-Ledger Live / m/44'/61'/1'/0/0", + "method": "evmGetAddress", + "expected": "0xa533197bca753F874aECa898aF687899c2D3A287", + "actual": "0xa533197bca753F874aECa898aF687899c2D3A287", + "passed": true, + "duration": 3667, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-Ledger Live / m/44'/61'/25'/0/0", + "method": "evmGetAddress", + "expected": "0x45495517061eA1DaD8DF4295bbb31F48327dEF97", + "actual": "0x45495517061eA1DaD8DF4295bbb31F48327dEF97", + "passed": true, + "duration": 3745, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-Ledger Live / m/44'/61'/2147483646'/0/0", + "method": "evmGetAddress", + "expected": "0x002c9A9eE5c1eb4A8843B922aD025E9c287450Dd", + "actual": "0x002c9A9eE5c1eb4A8843B922aD025E9c287450Dd", + "passed": true, + "duration": 3834, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-Ledger Live / m/44'/61'/2147483647'/0/0", + "method": "evmGetAddress", + "expected": "0xd738B85d1a5769A90B98c5c1dB0092164B271E70", + "actual": "0xd738B85d1a5769A90B98c5c1dB0092164B271E70", + "passed": true, + "duration": 3912, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-ETC / m/44'/61'/0'/0/0", + "method": "evmGetAddress", + "expected": "0x1A0d128e259335726bBA36999b9262B6e73AA76d", + "actual": "0x1A0d128e259335726bBA36999b9262B6e73AA76d", + "passed": true, + "duration": 3969, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-ETC / m/44'/61'/0'/0/1", + "method": "evmGetAddress", + "expected": "0x16cd94d0EB9fC21e53BbfD3a5965A8FC20DBAa2F", + "actual": "0x16cd94d0EB9fC21e53BbfD3a5965A8FC20DBAa2F", + "passed": true, + "duration": 3322, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-ETC / m/44'/61'/0'/0/25", + "method": "evmGetAddress", + "expected": "0xd4235Ce2Ae4dC7151AcC9C1259fB0cf94dF48103", + "actual": "0xd4235Ce2Ae4dC7151AcC9C1259fB0cf94dF48103", + "passed": true, + "duration": 3384, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483646", + "method": "evmGetAddress", + "expected": "0x5Bf091E554aD9889F12415c92d414bf5110cF9D4", + "actual": "0x5Bf091E554aD9889F12415c92d414bf5110cF9D4", + "passed": true, + "duration": 3449, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetAddress-ETC / m/44'/61'/0'/0/2147483647", + "method": "evmGetAddress", + "expected": "0x16F2ec7B238b798c78eF64C876a4d7A02da83c7b", + "actual": "0x16F2ec7B238b798c78eF64C876a4d7A02da83c7b", + "passed": true, + "duration": 3509, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / filecoinGetAddress / m/44'/461'/0'/0/0", + "method": "filecoinGetAddress", + "expected": "f1gn5qm5rumeom6bcotlvdncandvvpwb4x753wweq", + "actual": "f1gn5qm5rumeom6bcotlvdncandvvpwb4x753wweq", + "passed": true, + "duration": 3531, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / filecoinGetAddress / m/44'/461'/0'/0/1", + "method": "filecoinGetAddress", + "expected": "f1bkyankwglw7cjpq63mpt6h7inge3dkshq5bmfla", + "actual": "f1bkyankwglw7cjpq63mpt6h7inge3dkshq5bmfla", + "passed": true, + "duration": 3595, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / filecoinGetAddress / m/44'/461'/0'/0/25", + "method": "filecoinGetAddress", + "expected": "f1se6ex6izxfrtxyesdwnppfvz5l2m7cbvf5qvpjq", + "actual": "f1se6ex6izxfrtxyesdwnppfvz5l2m7cbvf5qvpjq", + "passed": true, + "duration": 3621, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / filecoinGetAddress / m/44'/461'/0'/0/2147483646", + "method": "filecoinGetAddress", + "expected": "f17aaavvjx5fcboleu4r77b2foozkhde47tbl4ofq", + "actual": "f17aaavvjx5fcboleu4r77b2foozkhde47tbl4ofq", + "passed": true, + "duration": 3640, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / filecoinGetAddress / m/44'/461'/0'/0/2147483647", + "method": "filecoinGetAddress", + "expected": "f1twf3fjruem4jvwrxawmn66cw5npjkuxgekchn6q", + "actual": "f1twf3fjruem4jvwrxawmn66cw5npjkuxgekchn6q", + "passed": true, + "duration": 3665, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / kaspaGetAddress / m/44'/111111'/0'/0/0", + "method": "kaspaGetAddress", + "expected": "kaspa:qr9c034atcxe44d8uaahr0vpn4uq7evkdklkw2u7ndvp5wl56y08ufhr7fdyq", + "actual": "kaspa:qr9c034atcxe44d8uaahr0vpn4uq7evkdklkw2u7ndvp5wl56y08ufhr7fdyq", + "passed": true, + "duration": 3821, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / kaspaGetAddress / m/44'/111111'/0'/0/1", + "method": "kaspaGetAddress", + "expected": "kaspa:qzmssess9em97k0reu89rxqsj03wqwcd5gzkzdhw4c5ul7dgw9u9759xxqyvp", + "actual": "kaspa:qzmssess9em97k0reu89rxqsj03wqwcd5gzkzdhw4c5ul7dgw9u9759xxqyvp", + "passed": true, + "duration": 3995, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / kaspaGetAddress / m/44'/111111'/0'/0/25", + "method": "kaspaGetAddress", + "expected": "kaspa:qzvtmgyxazan9ukxcpa0ytypylq4qcc2uz6cw6jv94elp0ffuenak0mgtsyy4", + "actual": "kaspa:qzvtmgyxazan9ukxcpa0ytypylq4qcc2uz6cw6jv94elp0ffuenak0mgtsyy4", + "passed": true, + "duration": 3433, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / kaspaGetAddress / m/44'/111111'/0'/0/2147483646", + "method": "kaspaGetAddress", + "expected": "kaspa:qpvh9nsa0354tk96hpt4k5vzqrtne4tshtrrzm3nrg6g6jlp42y0kzh78vju5", + "actual": "kaspa:qpvh9nsa0354tk96hpt4k5vzqrtne4tshtrrzm3nrg6g6jlp42y0kzh78vju5", + "passed": true, + "duration": 3598, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / kaspaGetAddress / m/44'/111111'/0'/0/2147483647", + "method": "kaspaGetAddress", + "expected": "kaspa:qzcf40cnsjl7gjuqppf5sg3x7ndg4nus7p2ctutdgy8z2qntnramjn2hegtqu", + "actual": "kaspa:qzcf40cnsjl7gjuqppf5sg3x7ndg4nus7p2ctutdgy8z2qntnramjn2hegtqu", + "passed": true, + "duration": 3777, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nearGetAddress / m/44'/397'/0'", + "method": "nearGetAddress", + "expected": "0510cd6a25885d3b92ca68c3c65ba0867e26ddf645edb135af4f216135ecc394", + "actual": "0510cd6a25885d3b92ca68c3c65ba0867e26ddf645edb135af4f216135ecc394", + "passed": true, + "duration": 3978, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nearGetAddress / m/44'/397'/1'", + "method": "nearGetAddress", + "expected": "8eec8fba2194b611e90d40eb7a88378c453042b42c9494cb621c84a66670b03d", + "actual": "8eec8fba2194b611e90d40eb7a88378c453042b42c9494cb621c84a66670b03d", + "passed": true, + "duration": 3425, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nearGetAddress / m/44'/397'/25'", + "method": "nearGetAddress", + "expected": "6329ebaf44a443db7b86b7aa91d7ed034f09e1a1c8faa8d1745fde97a739170f", + "actual": "6329ebaf44a443db7b86b7aa91d7ed034f09e1a1c8faa8d1745fde97a739170f", + "passed": true, + "duration": 3595, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nearGetAddress / m/44'/397'/2147483646'", + "method": "nearGetAddress", + "expected": "2974397d62ab951610b57aa9ce63771677acd05606c67ec2708f44e2669dd872", + "actual": "2974397d62ab951610b57aa9ce63771677acd05606c67ec2708f44e2669dd872", + "passed": true, + "duration": 3765, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nearGetAddress / m/44'/397'/2147483647'", + "method": "nearGetAddress", + "expected": "969c4dfe5c5337c25639e3fe2fd33171a9f250621a01833537863e24c8c58bc5", + "actual": "969c4dfe5c5337c25639e3fe2fd33171a9f250621a01833537863e24c8c58bc5", + "passed": true, + "duration": 3923, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nervosGetAddress / m/44'/309'/0'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyq0hqs9sn7tpazq8c6rtty0us945f7vfazstjnfcq", + "actual": "ckb1qyq0hqs9sn7tpazq8c6rtty0us945f7vfazstjnfcq", + "passed": true, + "duration": 3318, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nervosGetAddress / m/44'/309'/1'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqt7wvzcn220f5k8qzv3snm24tmrxhes52qwts6km", + "actual": "ckb1qyqt7wvzcn220f5k8qzv3snm24tmrxhes52qwts6km", + "passed": true, + "duration": 3437, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nervosGetAddress / m/44'/309'/25'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqtcexuc27dy8rhuyky9fe5gr97yxw0e6yqdmemgc", + "actual": "ckb1qyqtcexuc27dy8rhuyky9fe5gr97yxw0e6yqdmemgc", + "passed": true, + "duration": 3527, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nervosGetAddress / m/44'/309'/2147483646'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqqmyz45mr9nvhwqce5nvrc9w4ljekaay8sxvekmv", + "actual": "ckb1qyqqmyz45mr9nvhwqce5nvrc9w4ljekaay8sxvekmv", + "passed": true, + "duration": 3641, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nervosGetAddress / m/44'/309'/2147483647'/0/0", + "method": "nervosGetAddress", + "expected": "ckb1qyqdrfwly4vn3jqfly2xzp42etrh89tx0tfq5cqsax", + "actual": "ckb1qyqdrfwly4vn3jqfly2xzp42etrh89tx0tfq5cqsax", + "passed": true, + "duration": 3765, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nemGetAddress / m/44'/43'/0'", + "method": "nemGetAddress", + "expected": "NDX6EZNIQ36RYPTT3NYPTA7FICZTVUSSGRAW23ME", + "actual": "NDX6EZNIQ36RYPTT3NYPTA7FICZTVUSSGRAW23ME", + "passed": true, + "duration": 3999, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nemGetAddress / m/44'/43'/1'", + "method": "nemGetAddress", + "expected": "NBAP5SJPRC6IAMGZJWT2Y6YR7ETURTR3UT4IY45X", + "actual": "NBAP5SJPRC6IAMGZJWT2Y6YR7ETURTR3UT4IY45X", + "passed": true, + "duration": 3437, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nemGetAddress / m/44'/43'/25'", + "method": "nemGetAddress", + "expected": "NBOJ624HSGHJAEIGTNKNQ5FXHFXCI63YYZ7QQ2YJ", + "actual": "NBOJ624HSGHJAEIGTNKNQ5FXHFXCI63YYZ7QQ2YJ", + "passed": true, + "duration": 3674, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nemGetAddress / m/44'/43'/2147483646'", + "method": "nemGetAddress", + "expected": "NAAIZN4LII4I6ZS3V7W3QLQBD7BMAIO2G3ATKT5M", + "actual": "NAAIZN4LII4I6ZS3V7W3QLQBD7BMAIO2G3ATKT5M", + "passed": true, + "duration": 3910, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nemGetAddress / m/44'/43'/2147483647'", + "method": "nemGetAddress", + "expected": "NDO3SCFNC64I27AZCMKGUIYB4U24V4SQZM26MLMW", + "actual": "NDO3SCFNC64I27AZCMKGUIYB4U24V4SQZM26MLMW", + "passed": true, + "duration": 4107, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nexaGetAddress / m/44'/29223'/0'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5pmldr4u66xyvzt76q5jmlja63eup35dhn5yq234m", + "actual": "nexa:nqtsq5g5pmldr4u66xyvzt76q5jmlja63eup35dhn5yq234m", + "passed": true, + "duration": 3366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nexaGetAddress / m/44'/29223'/1'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g55daex66ygzj3t6h7xl9uqvnnmxzuhzvfsrph2jxs", + "actual": "nexa:nqtsq5g55daex66ygzj3t6h7xl9uqvnnmxzuhzvfsrph2jxs", + "passed": true, + "duration": 3486, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nexaGetAddress / m/44'/29223'/25'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5e0scfvz4uqthmh8u95rsc579d4chklm2cvc75wat", + "actual": "nexa:nqtsq5g5e0scfvz4uqthmh8u95rsc579d4chklm2cvc75wat", + "passed": true, + "duration": 3597, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nexaGetAddress / m/44'/29223'/2147483646'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5f0v4a3nzrya7u32k8pztkgmpv67k8fsyqlky37nq", + "actual": "nexa:nqtsq5g5f0v4a3nzrya7u32k8pztkgmpv67k8fsyqlky37nq", + "passed": true, + "duration": 3712, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nexaGetAddress / m/44'/29223'/2147483647'/0/0", + "method": "nexaGetAddress", + "expected": "nexa:nqtsq5g5yjlugdev0wzm2wqggxnz029hv62hz4xdwg6k3fet", + "actual": "nexa:nqtsq5g5yjlugdev0wzm2wqggxnz029hv62hz4xdwg6k3fet", + "passed": true, + "duration": 3829, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "12UX1Vqh88tNkko8PAkLJuoxNmL5Lvs7WeCbecKS7YNR3Lwh", + "actual": "12UX1Vqh88tNkko8PAkLJuoxNmL5Lvs7WeCbecKS7YNR3Lwh", + "passed": true, + "duration": 4333, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "12Uv8sjjFVJznNaGtbboYYiSPtMg2BgMpVRQ1p5a6UatmUVn", + "actual": "12Uv8sjjFVJznNaGtbboYYiSPtMg2BgMpVRQ1p5a6UatmUVn", + "passed": true, + "duration": 3792, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "14jHPtNBSAS99iPfm2QDkmVjVexvWw5eMGYXH3kgiUyEEdd3", + "actual": "14jHPtNBSAS99iPfm2QDkmVjVexvWw5eMGYXH3kgiUyEEdd3", + "passed": true, + "duration": 4262, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "1kont9SdsTwv4s557G2UigxJoVfiqHxS9GsGu3nnkPs6tBY", + "actual": "1kont9SdsTwv4s557G2UigxJoVfiqHxS9GsGu3nnkPs6tBY", + "passed": true, + "duration": 3702, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "12BbN16Ko16wimKQbrf5W1XdkKEEmX9mj5FiiihxyUCfg8dP", + "actual": "12BbN16Ko16wimKQbrf5W1XdkKEEmX9mj5FiiihxyUCfg8dP", + "passed": true, + "duration": 4210, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-astar / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "XQpJTYi3bG1Y3pSuq9TCR95cC3Ycr1iTLyFj2XwRpLrSzj4", + "actual": "XQpJTYi3bG1Y3pSuq9TCR95cC3Ycr1iTLyFj2XwRpLrSzj4", + "passed": true, + "duration": 3746, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-astar / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "XRDRqSkAwgdZfbbRFzvS43ZdK59J6pxmCC46EJ5QkZLB6iT", + "actual": "XRDRqSkAwgdZfbbRFzvS43ZdK59J6pxmCC46EJ5QkZLB6iT", + "passed": true, + "duration": 4225, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-astar / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Zfagr5CMcomw1QzHgoLeGprj5gPnrEFHyKBMTyC2kwfeNgS", + "actual": "Zfagr5CMcomw1QzHgoLeGprj5gPnrEFHyKBMTyC2kwfeNgS", + "passed": true, + "duration": 3733, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-astar / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "Wh75qrTZKqahMtPbmf9NE25YED8zkSZNr3XMKGJ72NJWT2X", + "actual": "Wh75qrTZKqahMtPbmf9NE25YED8zkSZNr3XMKGJ72NJWT2X", + "passed": true, + "duration": 4218, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-astar / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "X7texoLiTUaW4Lj8X4CPWrkyjwi3SJNfn2No8vUHkB75ncz", + "actual": "X7texoLiTUaW4Lj8X4CPWrkyjwi3SJNfn2No8vUHkB75ncz", + "passed": true, + "duration": 3712, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-kusama / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "E3qXUvVtidq4sc4CEWP4iLofjcfTJ89tXJrsyc33FZPc3dE", + "actual": "E3qXUvVtidq4sc4CEWP4iLofjcfTJ89tXJrsyc33FZPc3dE", + "passed": true, + "duration": 4209, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-kusama / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "E4EerpY254T6VPChfMrJMFHgreG8YwQCNXfFBNB2BmsKrxB", + "actual": "E4EerpY254T6VPChfMrJMFHgreG8YwQCNXfFBNB2BmsKrxB", + "passed": true, + "duration": 3736, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-kusama / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "GJbusSzCkBbTqCba6AGWa2andFWdJLgj9enWR3HeCACoQ6h", + "actual": "GJbusSzCkBbTqCba6AGWa2andFWdJLgj9enWR3HeCACoQ6h", + "passed": true, + "duration": 4159, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-kusama / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "DL8JsEFQTDQEBfztB25EXDobmnFqCYzp2P8WGLPiTaqfj62", + "actual": "DL8JsEFQTDQEBfztB25EXDobmnFqCYzp2P8WGLPiTaqfj62", + "passed": true, + "duration": 3699, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-kusama / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "DkuszB8ZarQ2t8LQvR8Fp4V3HWpstQp6xMyx5zZuBPeEp6g", + "actual": "DkuszB8ZarQ2t8LQvR8Fp4V3HWpstQp6xMyx5zZuBPeEp6g", + "passed": true, + "duration": 4190, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-joystream / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4So8SCpb957w9qEMhW921ugo3XR19Wt9A66YrsNPzXVXWR71", + "actual": "j4So8SCpb957w9qEMhW921ugo3XR19Wt9A66YrsNPzXVXWR71", + "passed": true, + "duration": 3742, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-joystream / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4SoXZaidGRYZBT1WCvzVFYbH4eSbpmhPTwKME58XyTi1EGkJ", + "actual": "j4SoXZaidGRYZBT1WCvzVFYbH4eSbpmhPTwKME58XyTi1EGkJ", + "passed": true, + "duration": 4221, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-joystream / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4V3tpbM5T6fhYnpu5MnuTmNaAR3rKX6fziSUVJoebU6Lhq1n", + "actual": "j4V3tpbM5T6fhYnpu5MnuTmNaAR3rKX6fziSUVJoebU6Lhq1n", + "passed": true, + "duration": 3733, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-joystream / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4S5RDb8LeohWK9JJPSeiBiZnyZabXRJz5bApVA6kfjWyaBFG", + "actual": "j4S5RDb8LeohWK9JJPSeiBiZnyZabXRJz5bApVA6kfjWyaBFG", + "passed": true, + "duration": 4243, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-joystream / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "j4SWCni5DowLW7qkdvC3mD1QUR5KAa7AoNX9fvykvrTKn9FoN", + "actual": "j4SWCni5DowLW7qkdvC3mD1QUR5KAa7AoNX9fvykvrTKn9FoN", + "passed": true, + "duration": 3750, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-manta / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfY2XpztDtgNbMkZbKsLXqwgCFrxs2nFscQnoVQYBxznNwEkd", + "actual": "dfY2XpztDtgNbMkZbKsLXqwgCFrxs2nFscQnoVQYBxznNwEkd", + "passed": true, + "duration": 4267, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-manta / m/44'/354'/1'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfY2vxNnG22oDPNLjqJC15aagGyzTi357vG1brcJKwvzrfEK7", + "actual": "dfY2vxNnG22oDPNLjqJC15aagGyzTi357vG1brcJKwvzrfEK7", + "passed": true, + "duration": 3735, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-manta / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfaHJDPQiChvMkiA8hizRHoMyNkbiCnUQT38j7qySZwPC8aTv", + "actual": "dfaHJDPQiChvMkiA8hizRHoMyNkbiCnUQT38j7qySZwPC8aTv", + "passed": true, + "duration": 4209, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-manta / m/44'/354'/2147483646'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfXJpcPByQQxAX4dY1orE1kZCBu8TQggiXus57hGYeCopzfHk", + "actual": "dfXJpcPByQQxAX4dY1orE1kZCBu8TQggiXus57hGYeCopzfHk", + "passed": true, + "duration": 3729, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress-manta / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "dfXjcBW8rZYbAKm5sYZFH33PsdQs2TNYXpqqvZWvipvcda7gK", + "actual": "dfXjcBW8rZYbAKm5sYZFH33PsdQs2TNYXpqqvZWvipvcda7gK", + "passed": true, + "duration": 4232, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "rhVoS2BhBpaFpMdZz79hEAgfEr82Cux2t8", + "actual": "rhVoS2BhBpaFpMdZz79hEAgfEr82Cux2t8", + "passed": true, + "duration": 4302, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/1'/0/0", + "method": "xrpGetAddress", + "expected": "rBRPEaSXfRt19pEhtHTqHJQLwdQSsrVKzt", + "actual": "rBRPEaSXfRt19pEhtHTqHJQLwdQSsrVKzt", + "passed": true, + "duration": 4365, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "rDp5FLML1yaDq1i7eDmckQvx8oxuzX94Ed", + "actual": "rDp5FLML1yaDq1i7eDmckQvx8oxuzX94Ed", + "passed": true, + "duration": 4391, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/2147483646'/0/0", + "method": "xrpGetAddress", + "expected": "rMH2i3e2fThdTVvEfBxztAfsestuP4ak2", + "actual": "rMH2i3e2fThdTVvEfBxztAfsestuP4ak2", + "passed": true, + "duration": 4437, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "r9HrzgZbaiSeVHvNfLmww8yYgXzYtv4MLB", + "actual": "r9HrzgZbaiSeVHvNfLmww8yYgXzYtv4MLB", + "passed": true, + "duration": 4512, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / solGetAddress / m/44'/501'/0'/0'", + "method": "solGetAddress", + "expected": "ESffVecegLvTv5jjSaR1tcNAfFNe25Cu8rCq84tddd6n", + "actual": "ESffVecegLvTv5jjSaR1tcNAfFNe25Cu8rCq84tddd6n", + "passed": true, + "duration": 3869, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / solGetAddress / m/44'/501'/1'/0'", + "method": "solGetAddress", + "expected": "DAZ2mnCgecuDcmm8vJkvJXfeKzq7e2fvSs9ttcWfbvvy", + "actual": "DAZ2mnCgecuDcmm8vJkvJXfeKzq7e2fvSs9ttcWfbvvy", + "passed": true, + "duration": 4277, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / solGetAddress / m/44'/501'/25'/0'", + "method": "solGetAddress", + "expected": "7eB55bzYzGo5hCVqtLsXcj84i92rWFjGkvN4FNHVymt3", + "actual": "7eB55bzYzGo5hCVqtLsXcj84i92rWFjGkvN4FNHVymt3", + "passed": true, + "duration": 3649, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / solGetAddress / m/44'/501'/2147483646'/0'", + "method": "solGetAddress", + "expected": "2v5Megciim4z1HGMTzMMNsNjoHpfM7XFamaf4u7221JM", + "actual": "2v5Megciim4z1HGMTzMMNsNjoHpfM7XFamaf4u7221JM", + "passed": true, + "duration": 4000, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / solGetAddress / m/44'/501'/2147483647'/0'", + "method": "solGetAddress", + "expected": "BumPh5i3qM8BZ5mxzajWFrRfy7XHUihsLNchMgmbEKya", + "actual": "BumPh5i3qM8BZ5mxzajWFrRfy7XHUihsLNchMgmbEKya", + "passed": true, + "duration": 3625, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / starcoinGetAddress / m/44'/101010'/0'/0'/0'", + "method": "starcoinGetAddress", + "expected": "0xb711bc37a10a54b9c0de2ff919131515", + "actual": "0xb711bc37a10a54b9c0de2ff919131515", + "passed": true, + "duration": 3802, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / starcoinGetAddress / m/44'/101010'/0'/0'/1'", + "method": "starcoinGetAddress", + "expected": "0x82df51430571ea9aacdd7cc916e2075e", + "actual": "0x82df51430571ea9aacdd7cc916e2075e", + "passed": true, + "duration": 3965, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / starcoinGetAddress / m/44'/101010'/0'/0'/25'", + "method": "starcoinGetAddress", + "expected": "0x66bd6d917a214bd4465d8adcd970b6a0", + "actual": "0x66bd6d917a214bd4465d8adcd970b6a0", + "passed": true, + "duration": 3429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483646'", + "method": "starcoinGetAddress", + "expected": "0xfc03bed4b0ef02f687c616163c0b7eab", + "actual": "0xfc03bed4b0ef02f687c616163c0b7eab", + "passed": true, + "duration": 3623, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / starcoinGetAddress / m/44'/101010'/0'/0'/2147483647'", + "method": "starcoinGetAddress", + "expected": "0xbe6c43f08a89a831685e108215ba0d1c", + "actual": "0xbe6c43f08a89a831685e108215ba0d1c", + "passed": true, + "duration": 3787, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / stellarGetAddress / m/44'/148'/0'", + "method": "stellarGetAddress", + "expected": "GBWLIFWMUQKSRU3TSOEN5IRAZ5X7YZQWVS43FSELW7IPOXNE3HNHOJ5S", + "actual": "GBWLIFWMUQKSRU3TSOEN5IRAZ5X7YZQWVS43FSELW7IPOXNE3HNHOJ5S", + "passed": true, + "duration": 4025, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / stellarGetAddress / m/44'/148'/1'", + "method": "stellarGetAddress", + "expected": "GDDFXAWVFA26774P63AJ7JAYVVFNDUI4JMZZTQCRNKMJPAHELPHZ2QZD", + "actual": "GDDFXAWVFA26774P63AJ7JAYVVFNDUI4JMZZTQCRNKMJPAHELPHZ2QZD", + "passed": true, + "duration": 3486, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / stellarGetAddress / m/44'/148'/25'", + "method": "stellarGetAddress", + "expected": "GBXOSIWEZPBW2TPNKM7R6OC2I2B5B3W3EHRQDR65A46NUBOM36W4DDAE", + "actual": "GBXOSIWEZPBW2TPNKM7R6OC2I2B5B3W3EHRQDR65A46NUBOM36W4DDAE", + "passed": true, + "duration": 3699, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / stellarGetAddress / m/44'/148'/2147483646'", + "method": "stellarGetAddress", + "expected": "GAZYQSRGBARFUDE2TBDH5PKVFOJ5M3V4UMZP4JHVQ6LSWR5KDN2XPE6M", + "actual": "GAZYQSRGBARFUDE2TBDH5PKVFOJ5M3V4UMZP4JHVQ6LSWR5KDN2XPE6M", + "passed": true, + "duration": 3918, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / stellarGetAddress / m/44'/148'/2147483647'", + "method": "stellarGetAddress", + "expected": "GAD5CFWDHBZKEBC3F2KGOVC64UQIGQIGV3XIMQPRAK7MJTFWBBYKOKCI", + "actual": "GAD5CFWDHBZKEBC3F2KGOVC64UQIGQIGV3XIMQPRAK7MJTFWBBYKOKCI", + "passed": true, + "duration": 3464, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetAddress / m/44'/784'/0'/0'/0'", + "method": "suiGetAddress", + "expected": "0xb67347342e588aada1208c24910f56af4dc0f7dc24e1233df0f56e89a9bd3ce5", + "actual": "0xb67347342e588aada1208c24910f56af4dc0f7dc24e1233df0f56e89a9bd3ce5", + "passed": true, + "duration": 3588, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetAddress / m/44'/784'/1'/0'/0'", + "method": "suiGetAddress", + "expected": "0xda2e05368ca6cae78973349174f1889918fb52bee2f32b95b36ef4b7839cb33d", + "actual": "0xda2e05368ca6cae78973349174f1889918fb52bee2f32b95b36ef4b7839cb33d", + "passed": true, + "duration": 3702, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetAddress / m/44'/784'/25'/0'/0'", + "method": "suiGetAddress", + "expected": "0xa4ff93cd58b534778554b904bc1260e25fe08cf3e39fd4f1d467512513c45cae", + "actual": "0xa4ff93cd58b534778554b904bc1260e25fe08cf3e39fd4f1d467512513c45cae", + "passed": true, + "duration": 3834, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetAddress / m/44'/784'/2147483646'/0'/0'", + "method": "suiGetAddress", + "expected": "0x9ff953238dd7a1e1ef914ae341c84d8976556ceaa4d95c7369f258535e01d1bf", + "actual": "0x9ff953238dd7a1e1ef914ae341c84d8976556ceaa4d95c7369f258535e01d1bf", + "passed": true, + "duration": 3968, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetAddress / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetAddress", + "expected": "0x6ef3acc7363a8da2fa0a0dfc635fb3dc784ce14565c94d3354ea234e2fb5c321", + "actual": "0x6ef3acc7363a8da2fa0a0dfc635fb3dc784ce14565c94d3354ea234e2fb5c321", + "passed": true, + "duration": 3382, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / tronGetAddress / m/44'/195'/0'/0/0", + "method": "tronGetAddress", + "expected": "TVv1B9fRd4uo9SMQWpLgxBfYgGchXL9vZb", + "actual": "TVv1B9fRd4uo9SMQWpLgxBfYgGchXL9vZb", + "passed": true, + "duration": 3473, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / tronGetAddress / m/44'/195'/0'/0/1", + "method": "tronGetAddress", + "expected": "TNXk3HhrJpeFvGxYmXQ1r8dbkHVg65eeuS", + "actual": "TNXk3HhrJpeFvGxYmXQ1r8dbkHVg65eeuS", + "passed": true, + "duration": 3567, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / tronGetAddress / m/44'/195'/0'/0/25", + "method": "tronGetAddress", + "expected": "TQY2nLxN81qyzrcsDFjFUW2K8HE9rxeJXZ", + "actual": "TQY2nLxN81qyzrcsDFjFUW2K8HE9rxeJXZ", + "passed": true, + "duration": 3663, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / tronGetAddress / m/44'/195'/0'/0/2147483646", + "method": "tronGetAddress", + "expected": "TVyd3j76zMKUmyrNT3Ss3vJbPAT2zssnJP", + "actual": "TVyd3j76zMKUmyrNT3Ss3vJbPAT2zssnJP", + "passed": true, + "duration": 3786, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / tronGetAddress / m/44'/195'/0'/0/2147483647", + "method": "tronGetAddress", + "expected": "TBnXbdxn35DuECbDdr2uppdTYDHJLSGA3h", + "actual": "TBnXbdxn35DuECbDdr2uppdTYDHJLSGA3h", + "passed": true, + "duration": 3884, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / benfenGetAddress / m/44'/728'/0'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCdd98e1e3b1d9e019c82374bc82bc6b5d653d0bcbb1eb1bfccd8d25ddd6f83a5db214", + "actual": "BFCdd98e1e3b1d9e019c82374bc82bc6b5d653d0bcbb1eb1bfccd8d25ddd6f83a5db214", + "passed": true, + "duration": 4005, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / benfenGetAddress / m/44'/728'/1'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC92f4902024981228033ed15b26cdc6930fcf319c14ad0e95edd25bfde0d172d70569", + "actual": "BFC92f4902024981228033ed15b26cdc6930fcf319c14ad0e95edd25bfde0d172d70569", + "passed": true, + "duration": 3389, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / benfenGetAddress / m/44'/728'/25'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC40c1e4c622c3356845bb9f2eee09aefb5261ebfc1e16fa7590cb1c1057b6582bcb41", + "actual": "BFC40c1e4c622c3356845bb9f2eee09aefb5261ebfc1e16fa7590cb1c1057b6582bcb41", + "passed": true, + "duration": 3515, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / benfenGetAddress / m/44'/728'/2147483646'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFCab460b81e58239d806fb671bc7700e7142b61c6500fccae190e8dc8174587dac197f", + "actual": "BFCab460b81e58239d806fb671bc7700e7142b61c6500fccae190e8dc8174587dac197f", + "passed": true, + "duration": 3627, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / benfenGetAddress / m/44'/728'/2147483647'/0'/0'", + "method": "benfenGetAddress", + "expected": "BFC5ff2b3a34047f48caad8962a5a1baf237953db19e4b6c6867fe6994c078d8443e735", + "actual": "BFC5ff2b3a34047f48caad8962a5a1baf237953db19e4b6c6867fe6994c078d8443e735", + "passed": true, + "duration": 3742, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / neoGetAddress / m/44'/888'/0'/0/0", + "method": "neoGetAddress", + "expected": "NTZSQ18GhKda559YxWmtBKxGicuP4YdX3w", + "actual": "NTZSQ18GhKda559YxWmtBKxGicuP4YdX3w", + "passed": true, + "duration": 3844, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / neoGetAddress / m/44'/888'/0'/0/1", + "method": "neoGetAddress", + "expected": "NajBZuGWYawdqeEQT5aLmrFnjPXsgpXYVX", + "actual": "NajBZuGWYawdqeEQT5aLmrFnjPXsgpXYVX", + "passed": true, + "duration": 3996, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / neoGetAddress / m/44'/888'/0'/0/30", + "method": "neoGetAddress", + "expected": "NXSgze4MYTn1bSAMw3AWstMFJipRj7qopB", + "actual": "NXSgze4MYTn1bSAMw3AWstMFJipRj7qopB", + "passed": true, + "duration": 3320, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / neoGetAddress / m/44'/888'/0'/0/2147483646", + "method": "neoGetAddress", + "expected": "NRjvPyPVLqCjF4UW9vSiWuVnxXP5n95vs8", + "actual": "NRjvPyPVLqCjF4UW9vSiWuVnxXP5n95vs8", + "passed": true, + "duration": 3411, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / neoGetAddress / m/44'/888'/0'/0/2147483647", + "method": "neoGetAddress", + "expected": "NhDrEuRxsph7FzejcmtjexGZ6PFbU6GYdc", + "actual": "NhDrEuRxsph7FzejcmtjexGZ6PFbU6GYdc", + "passed": true, + "duration": 3510, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + } + ] + }, + { + "suiteType": "sdkPubkeyBatch", + "suiteName": "SDK Pubkey Batch", + "status": "failed", + "totalTests": 252, + "passedTests": 126, + "failedTests": 126, + "skippedTests": 0, + "duration": 708992, + "results": [ + { + "title": "one-normal-12 / cardanoGetPublicKey / m/1852'/1815'/0'/0/0", + "method": "cardanoGetPublicKey", + "expected": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "actual": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "passed": true, + "duration": 3724, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetPublicKey / m/1852'/1815'/25'/0/0", + "method": "cardanoGetPublicKey", + "expected": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "actual": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "passed": true, + "duration": 3378, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cardanoGetPublicKey / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetPublicKey", + "expected": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "actual": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "passed": true, + "duration": 3045, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetPublicKey / m/44'/637'/0'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "actual": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "passed": true, + "duration": 1929, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetPublicKey / m/44'/637'/25'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "actual": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "passed": true, + "duration": 1920, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / aptosGetPublicKey / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "actual": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "passed": true, + "duration": 2573, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/0", + "method": "btcGetPublicKey", + "expected": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "actual": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "passed": true, + "duration": 2095, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/25", + "method": "btcGetPublicKey", + "expected": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "actual": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "passed": true, + "duration": 1798, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/2147483647", + "method": "btcGetPublicKey", + "expected": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "actual": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "passed": true, + "duration": 2304, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub / m/44'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "actual": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "passed": true, + "duration": 1820, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub / m/44'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "actual": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "passed": true, + "duration": 2349, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub / m/44'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "actual": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "passed": true, + "duration": 1885, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-test-xpub / m/44'/1'/0'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "actual": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "passed": true, + "duration": 2418, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-test-xpub / m/44'/1'/25'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "actual": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "passed": true, + "duration": 1941, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-test-xpub / m/44'/1'/2147483647'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "actual": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "passed": true, + "duration": 1791, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48 / m/48'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "actual": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "passed": true, + "duration": 2308, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48 / m/48'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "actual": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "passed": true, + "duration": 1845, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48 / m/48'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "actual": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "passed": true, + "duration": 2366, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49 / m/49'/0'/0'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "actual": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "passed": true, + "duration": 1910, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49 / m/49'/0'/25'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "actual": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "passed": true, + "duration": 2429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49 / m/49'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "actual": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "passed": true, + "duration": 1938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84 / m/84'/0'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "actual": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "passed": true, + "duration": 1795, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84 / m/84'/0'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "actual": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "passed": true, + "duration": 2319, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84 / m/84'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "actual": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "passed": true, + "duration": 1838, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-86 / m/86'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "actual": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "passed": true, + "duration": 2374, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-86 / m/86'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "actual": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "passed": true, + "duration": 1890, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-86 / m/86'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "actual": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "passed": true, + "duration": 2395, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "actual": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "passed": true, + "duration": 1903, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "actual": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "passed": true, + "duration": 2427, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "actual": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "passed": true, + "duration": 1955, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "actual": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "passed": true, + "duration": 1789, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "actual": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "passed": true, + "duration": 2319, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "actual": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "passed": true, + "duration": 1827, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "actual": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "passed": true, + "duration": 2337, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "actual": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "passed": true, + "duration": 1866, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "actual": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "passed": true, + "duration": 2391, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-doge / m/44'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "actual": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "passed": true, + "duration": 1943, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-doge / m/44'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "actual": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "passed": true, + "duration": 1785, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-44-doge / m/44'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "actual": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "passed": true, + "duration": 2333, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48-doge / m/48'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "actual": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "passed": true, + "duration": 1864, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48-doge / m/48'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "actual": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "passed": true, + "duration": 2406, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / btcGetPublicKey-xpub-48-doge / m/48'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "actual": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "passed": true, + "duration": 1925, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetPublicKey / m/44'/118'/0'/0/0", + "method": "cosmosGetPublicKey", + "expected": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "actual": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "passed": true, + "duration": 1746, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetPublicKey / m/44'/118'/0'/0/25", + "method": "cosmosGetPublicKey", + "expected": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "actual": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "passed": true, + "duration": 2221, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / cosmosGetPublicKey / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetPublicKey", + "expected": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "actual": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "passed": true, + "duration": 1711, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-xpub / m/44'/60'/0'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "actual": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "passed": true, + "duration": 2210, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-xpub / m/44'/60'/25'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "actual": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "passed": true, + "duration": 1748, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-xpub / m/44'/60'/2147483647'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "actual": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "passed": true, + "duration": 2257, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/0", + "method": "evmGetPublicKey", + "expected": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "actual": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "passed": true, + "duration": 1762, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/25", + "method": "evmGetPublicKey", + "expected": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "actual": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "passed": true, + "duration": 2295, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/2147483647", + "method": "evmGetPublicKey", + "expected": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "actual": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "passed": true, + "duration": 2310, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nostrGetPublicKey / m/44'/1237'/0'/0/0", + "method": "nostrGetPublicKey", + "expected": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "actual": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "passed": true, + "duration": 1841, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nostrGetPublicKey / m/44'/1237'/25'/0/0", + "method": "nostrGetPublicKey", + "expected": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "actual": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "passed": true, + "duration": 2361, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / nostrGetPublicKey / m/44'/1237'/2147483647'/0/0", + "method": "nostrGetPublicKey", + "expected": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "actual": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "passed": true, + "duration": 1925, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "actual": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "passed": true, + "duration": 2280, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "actual": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "passed": true, + "duration": 2268, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "actual": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "passed": true, + "duration": 2282, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "actual": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "passed": true, + "duration": 2875, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "actual": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "passed": true, + "duration": 3421, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "actual": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "passed": true, + "duration": 2992, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetPublicKey / m/44'/784'/0'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "actual": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "passed": true, + "duration": 1910, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetPublicKey / m/44'/784'/25'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "actual": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "passed": true, + "duration": 2581, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-normal-12 / suiGetPublicKey / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetPublicKey", + "expected": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "actual": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "passed": true, + "duration": 2242, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(none)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetPublicKey / m/1852'/1815'/0'/0/0", + "method": "cardanoGetPublicKey", + "expected": "5ff338e2534ae6c7de2526a630344e0d1942597ef534fd75a7cb4e9732ade435e31fa85d96d8d60a5aa47bc5e73f5d117dc0d9510e4b547246b10d2b9d552a49", + "actual": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "passed": false, + "duration": 3659, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetPublicKey / m/1852'/1815'/25'/0/0", + "method": "cardanoGetPublicKey", + "expected": "f048d1e64aeab76fa52cf415a77e0c1ba423cdca78e27c367b016902d6937e63a5a6a7f8d195d55cde40d7fdf960fbf7aae72855e931592cd872854e54fb2904", + "actual": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "passed": false, + "duration": 3004, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cardanoGetPublicKey / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetPublicKey", + "expected": "d2ed83d0d315aa99dd40afe882ed024822127a881c1e6afd51f2db5734234f81acef1b94dab054c032e7e519ff10e8e7850d2036430ca17b4d8bbd8f7b8f0ec9", + "actual": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "passed": false, + "duration": 2968, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetPublicKey / m/44'/637'/0'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "5218f9681bccf03cef71ce03e518459b63cd18c8bc6891388e9ff59ee6bf9066", + "actual": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "passed": false, + "duration": 1903, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetPublicKey / m/44'/637'/25'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "3f5c9f18da6a9d8eb737115835b63319a6b90dbfa1632eca836bb7430e6dee9e", + "actual": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "passed": false, + "duration": 2575, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / aptosGetPublicKey / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "3eb0bdb23afb5f81121d3448dc0862432c91b46c5dead432fafabe0b1d09f4e3", + "actual": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "passed": false, + "duration": 2212, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/0", + "method": "btcGetPublicKey", + "expected": "03e97b8fd72f61619ae8427cf11466944ffd47eed4f96ea00ecc4c56a7128e8f83", + "actual": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "passed": false, + "duration": 1800, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/25", + "method": "btcGetPublicKey", + "expected": "03e5130c29d04c9952f6d0353bb8f3880247d10e1e90aa92efc776ddb87e28d6d4", + "actual": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "passed": false, + "duration": 2330, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/2147483647", + "method": "btcGetPublicKey", + "expected": "03c5dc6ba83221fa346e44ef3247b3d1657a04d22ccfd769f2034a71fe852f2a03", + "actual": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "passed": false, + "duration": 1861, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub / m/44'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6Ce5mYTjQvDwMKXcZq5wyo7Ld6usYb7Z7pQyZZiFoYavGr6ymjxqxELtti32MMfcemEg4gCErN4qjVNoFtmAviMZbrKnNjXm7SFgomdN7SA", + "actual": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "passed": false, + "duration": 2389, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub / m/44'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6Ce5mYTjQvDxV5fveCu2ruQ9sdPC3rZPaUM53rzGQkaCVspXhYsWkiF6LhfFpms6ovS2szApUHRRGiEtGyAN5sxpdHSW3asL4PRZoqAce9E", + "actual": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "passed": false, + "duration": 1936, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub / m/44'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6Ce5mYTskakuVV4poMuLQSBDUqSE9kR2Wk4xLwYXEdVzovNx2DRbEbvmCxsboj52dSxDuf1iXumWWqVHrLKqnpXurwEi6KyD6adLG3Thi3P", + "actual": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "passed": false, + "duration": 1810, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-test-xpub / m/44'/1'/0'", + "method": "btcGetPublicKey", + "expected": "tpubDDACYSr4BXZnd5L5kPiex2NYbf8teirtpFmn9kjJky1ew1qo5H3n1MptNeTJrPZ34taYtetdKYRrdQPiUBqdPcnZ12nszT3hWeSsYtwZgVJ", + "actual": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "passed": false, + "duration": 2313, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-test-xpub / m/44'/1'/25'", + "method": "btcGetPublicKey", + "expected": "tpubDDACYSr4BXZohYUUpr9MCnt4qwHxHMpzUvNDK4YtiYj3nsZ9J4Nm2V1k8FfpeXqaJ6ikAERAqtgjXBtbTU2CuTfJkU1QfE2DT23Z9edVfZx", + "actual": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "passed": false, + "duration": 1835, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-test-xpub / m/44'/1'/2147483647'", + "method": "btcGetPublicKey", + "expected": "tpubDDACYSrCXC6kks2pwXjZ2T97k12BNPYCD1xbLyN5hdU4EP2tbbXoF9RqyenN3d9BwDDRW6aKQ5ELua9reFgJCQSMszGyduZVdJhmvrPT79a", + "actual": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "passed": false, + "duration": 2361, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48 / m/48'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6BwNWt3E8shZ9Pw2qyjtgdyW7j7Y8gm9foDvKmnSar7inDXWPoZmJr9pUFTKxiwrpmexKXM2DEYaKo9HRLwkjciNdnvBtwcRCJK7FSoN2TD", + "actual": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "passed": false, + "duration": 1882, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48 / m/48'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6BwNWt3E8shaCt1XDpPNZxTSW6FWFWzaTpvQSCceDcoxCDLApPP9NrqqyERMRRfVuL7UtYmTW6nSL5vW5AdjTt8H9pVTDQjas9NJcVpWkXz", + "actual": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "passed": false, + "duration": 2404, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48 / m/48'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6BwNWt3NUYEXGW4yRfxrFzCj8PGdFbX4QNETens2AFVsGqA6iQhm5Ja8xCibzWKNnvJMGXm6dW3CSSr3wX9GjQAaXaLpjvyMudFtajTk8MY", + "actual": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "passed": false, + "duration": 1950, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49 / m/49'/0'/0'", + "method": "btcGetPublicKey", + "expected": "ypub6X4Wf7iV8kN77sXzkyqAXwqa9t56cwDqtLfWKpqsP34a9H4TU29sxAJRHs8HC2S19RnFraE1jbEwhRWeGQE3SveTVtYiEK9MV5V9Ld7Qyo4", + "actual": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "passed": false, + "duration": 1791, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49 / m/49'/0'/25'", + "method": "btcGetPublicKey", + "expected": "ypub6X4Wf7iV8kN8DNQ7XU4wETfFwqkMiDjfgFWZZL87FmBcAHyBEtJoTbNV4ocKyFcbD1h6xFP3yHV8uKkoN5YXpmrHbSvpbe6PntPi4Pt1YN7", + "actual": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "passed": false, + "duration": 2320, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49 / m/49'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "ypub6X4Wf7idUQu5FhMuGjrRyzpir91Fh6meH63NHTLeBCAsi1u2PsWax9qdaCytEg5Ru2Lu9WG7uxgU4Z8sxXwYMND3bi8uUqBagFY686TDmAj", + "actual": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "passed": false, + "duration": 1854, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84 / m/84'/0'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6qN3qrBhsar6ncQcHN2B7sCsCmKHkGWxBWr5gwXJXhM8ahmusQCKauVNH6eUZyTtBncqkU9dVhQSqNLfqtrcnZEdWqwoDPQ1PQuvJ5YXwGR", + "actual": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "passed": false, + "duration": 2373, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84 / m/84'/0'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6qN3qrBhsar7t9o9tfqDGKG8LF5Tu232ReUDHXmqaF2VAwhDXt5rVqPEaYRbLsow6qGa3U8Kddn6hYkcX8U6gqY2hhJ9ZP4Wf3mbdTcN6yV", + "actual": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "passed": false, + "duration": 1893, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84 / m/84'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6qN3qrBrDFP4vr87WvemvpodtbLGHQdTK6QNrtc7xDMs5cNri2pz2ukUYQZGTmFwpJJmHiTqoHawoYKgSLf3QSbTFZyDXvg3q2jCbPDdjef", + "actual": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "passed": false, + "duration": 2427, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-86 / m/86'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6DTGiJ9WVLrB35GggG7sth2mQ1HSj8VS3LLM92TkeJMFs14exCG9EhsAGG5fspgxHau19Cmxrq4TLo7enSkZWxDtheLp53HMSAbaBCpFXVP", + "actual": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "passed": false, + "duration": 1958, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-86 / m/86'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6DTGiJ9WVLrC9RLdJdko5CAste4CiJCgXuoaTdPLPz4j6gr5mhKDsMUpWE35DeiZTnCxAzBLB6dsb4QcazvwaKNtmFqgL5hyfWRpo5Sj6te", + "actual": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "passed": false, + "duration": 1800, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-86 / m/86'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6DTGiJ9eq1P9AM9fojMcAXXsRtg9eHVynyaKiLs9Jg6Kwe36YYtJoiq6zWnw5DtzEpNQUSfNY82MWwfiitwJhxvnqKM5qP63HqUgAwpKCGj", + "actual": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "passed": false, + "duration": 2336, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZcPBo7H3CnadKxutoeGZjBCFDiq4fFvmxpRDKnm95TuKo546WVaZMkCPJiVoNtwZh1es1jtXeKKxXW8MsezGFq8ioYghBpwRZvyne4QDs3", + "actual": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "passed": false, + "duration": 1859, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZcPBo7H3CnbjQ89ciFXTf3ZtE3VSFkNWAZ3Dy67cs6vdkGrbzg2NNRHCTMPpjNYGzFcVQjCTgVofsxDT9Cm5mnvwp2CCLQYhjGGdJkdNNK", + "actual": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "passed": false, + "duration": 2387, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZcPBo7RNsKYmvb7AenYzCrR1pCgCfru1RSreo1ow4Xbnyiad4EmL5i6jiWEgXDSEWjvi9UncqurGw9Eb47rce7Xfjmit8kWYpUbdouj3CH", + "actual": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "passed": false, + "duration": 1915, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Mtub2scSqzEohvqLidZw9CPbkuVjU2KsMssB4Ukfhmb1rV2etpMoZpvf3FhtpZJzZgakYY7TQt5syCxjr7NixAFwuHVDYFmRRdYoJaVN3moByZ9", + "actual": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "passed": false, + "duration": 1771, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Mtub2scSqzEohvqMpKf6JPAfp3bxS1oCMi2qETutX8BYbFMKTws49C3unVgiBrT5oQiGz4srP8ruPnY7WK6SmPhg1BnQCJUCjCR6cEYLb9qejPa", + "actual": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "passed": false, + "duration": 2311, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Mtub2scSqzEx3bNJr5vA6DBTWNmkN4uM6gkpe8T1SoZhsdQLhYk4aTYSaY1eMeZVvt83URH5ADGaXvbvqCKjYQV72CPhVwx6So3nLZM3U2MPJK9", + "actual": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "passed": false, + "duration": 1799, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6qqtTmiTP8qqWnLPREtjZTPLzJPmDF17crqREJycuooth6B3r9qG6FVWgnHUwDeWxAPYcA98NGbPXmk2dYZwjFSTfu5WvY2t2mKKFhB6Eaj", + "actual": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "passed": false, + "duration": 2315, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6qqtTmiTP8qrdBBfYuNmNedoMhrJtExKjtAYpb3VfTErak77krQaGrQ75TLLFxRECUyNF4Q53yymkpCLkss7AmVqHJFtL2EJpopntX6SJQw", + "actual": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "passed": false, + "duration": 1809, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6qqtTmibioNoebRu9hNXcM2wM9U3MCsTecgRwX6Ysm23UV2xXabtv6gLrC1xkw5fLvT4WEEff1o4vTSpZpRE27mY5rn2Em6Gh6J65MTTrJF", + "actual": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "passed": false, + "duration": 2335, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-doge / m/44'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8rXPBg8AxcrqUSzu8CD1MrUNWz5rMyzpAZyfnymi7LMpcEAHaf2eiFsx6zGJmnNoRDH26BAvagRRv3N2iFGY5M6k4eCoDfjQ92DvSU21w13", + "actual": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "passed": false, + "duration": 1843, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-doge / m/44'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8rXPBg8AxcrrZdLyWCmBMStkj2khL8j4FM21EbFQLmM3YVrJUgV9yYQC1TBWkuzDLyC3N1vPnMms9wm8ukL1NjRxVxaUrUdQzpTYj3G9q6k", + "actual": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "passed": false, + "duration": 2381, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-44-doge / m/44'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8rXPBg8KJHPobbJERLLAZWR73Y94WL16szNeW2wbMrunwuRHZuDNRefTdZ4tXEwqJaPhedPTfRq1djsMv96obcc8wijUthZcYC6DcBYZTkw", + "actual": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "passed": false, + "duration": 1891, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48-doge / m/48'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8svhM8fYm5X3zkqqiX1aeZvd2AMpGGYYijK9DBAGJKY485qXZDsW75rxJG88TUGdgmbFDK9TtMvMnzfuGgZsEPeiCx7Z6PHnK8P3EA1i6dH", + "actual": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "passed": false, + "duration": 2453, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48-doge / m/48'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8svhM8fYm5X54uEWs6r5Kfy7f1eTifUcG38E4XiSavzm9RHkeGyi1VsiC3TdaMsezFF3JGtbGjDnTJ2zXv3Bu9zRgHeNzdMLDoNLLE4g8h5", + "actual": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "passed": false, + "duration": 1967, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / btcGetPublicKey-xpub-48-doge / m/48'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8svhM8fh6k426xmXFcC9e7X76v24wYUcxVh9KY1KZTNJm9uqafjje9Cwyox8bACiaPxkU6ii7RPwB9TkM4o8cWybmjvyU2hAa13x2E9yzFk", + "actual": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "passed": false, + "duration": 1782, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetPublicKey / m/44'/118'/0'/0/0", + "method": "cosmosGetPublicKey", + "expected": "029be31c06f3bc39da2f3356c79cfb2686dc421f1ffe101b2746d1cfbd07f43b35", + "actual": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "passed": false, + "duration": 2274, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetPublicKey / m/44'/118'/0'/0/25", + "method": "cosmosGetPublicKey", + "expected": "03b9198db1a2145120fc4a2d045afaff3366252bc314231d2c923e532cc662b5b9", + "actual": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "passed": false, + "duration": 1744, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / cosmosGetPublicKey / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetPublicKey", + "expected": "029c7c8b4071d882d8bcfd4f0777d3935365b202c281bb4615cd0a35789e29984c", + "actual": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "passed": false, + "duration": 2190, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-xpub / m/44'/60'/0'", + "method": "evmGetPublicKey", + "expected": "xpub6Cv6kXi5dMv7swDr36Ssbgnb6UUMxkFwRNiFN1hUajejEqZMs5gPjDUvpkQXoY8q2mvsuXVnZxLBW8sHNvL5QftxSW6bMNrYD8fPVHf9NcH", + "actual": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "passed": false, + "duration": 1810, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-xpub / m/44'/60'/25'", + "method": "evmGetPublicKey", + "expected": "xpub6Cv6kXi5dMv8xmjuf7ztXcgucXw2a98YAW7FYR12asZqGbEV1hLWujux2zqHxs8z3b94Ypm3EobRyqZW679k9ru8Pyq5o2eHv3qbHsMBqFD", + "actual": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "passed": false, + "duration": 2318, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-xpub / m/44'/60'/2147483647'", + "method": "evmGetPublicKey", + "expected": "xpub6Cv6kXiDy2T5zL2TT6Uaruro8VatvuWf3hmitnfvKmwMd6ZcQV1eKZu9BdpJ7YqsWMjqWgPeVeyFRupMEBMZ5hu8Dme4NgC7WjiQAEFmGEp", + "actual": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "passed": false, + "duration": 1822, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/0", + "method": "evmGetPublicKey", + "expected": "0x03093365e43204429926a4fa78055b9893c84fcf7bb8dd15e6d5bb07c22140197c", + "actual": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "passed": false, + "duration": 2344, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/25", + "method": "evmGetPublicKey", + "expected": "0x0258a54a295473dc32e24a6e9c0f7fc77306792336156eb5463ccd55a132f7de9f", + "actual": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "passed": false, + "duration": 1868, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/2147483647", + "method": "evmGetPublicKey", + "expected": "0x025f73d694b780db3d64540fff52793e0213e34b3515e9c47ef45bb99f130c5881", + "actual": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "passed": false, + "duration": 2405, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nostrGetPublicKey / m/44'/1237'/0'/0/0", + "method": "nostrGetPublicKey", + "expected": "54e35361ca22c6597f2fbe42046ffe9c9d3defef1838a01dee632a81073fae83", + "actual": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "passed": false, + "duration": 1984, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nostrGetPublicKey / m/44'/1237'/25'/0/0", + "method": "nostrGetPublicKey", + "expected": "297741c80b33ae8b1d0252dc7fff804ae1ef5ec1dffd53a645d3f027d1441697", + "actual": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "passed": false, + "duration": 1801, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / nostrGetPublicKey / m/44'/1237'/2147483647'/0/0", + "method": "nostrGetPublicKey", + "expected": "a1940f4493fd327017347fbdcd7a551444500d66daac11f657c073f64437781a", + "actual": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "passed": false, + "duration": 2378, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x7920611ec19e4798f3f1c3cda5214bfc50191f09ecf1d2ce9befae0d744080b1", + "actual": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "passed": false, + "duration": 2410, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xfd33c517c6ad34a6289ae80dccfded6316f62f5e6e7897baa74e6f890143b408", + "actual": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "passed": false, + "duration": 2405, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x16dc5cbfd17cd8ed79c25085299218cf5d431389dd1b8ece9f2ba3cc86b23d40", + "actual": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "passed": false, + "duration": 2425, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "02137f387c4f0318dc2f91b9841b38109c76ce4cc65fe47a842dc4871e382023b8", + "actual": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "passed": false, + "duration": 3050, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "02817ce95ef0ed317baa52136aa60e3e9f32ae11e017e03383285f494fe39960c3", + "actual": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "passed": false, + "duration": 2793, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "03037c832c907e1942ba03d26489dc26b2e3bc84adcddf5b3696b442b0a3a15f54", + "actual": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "passed": false, + "duration": 3374, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetPublicKey / m/44'/784'/0'/0'/0'", + "method": "suiGetPublicKey", + "expected": "008a2fc010b6ff4ab4b5d3c8e2a0af6ad0ea1049f8de8028b3b4b9d27afacedec5", + "actual": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "passed": false, + "duration": 2015, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetPublicKey / m/44'/784'/25'/0'/0'", + "method": "suiGetPublicKey", + "expected": "0061ab84e79d7198c9b7f7e30e4903bf28fd46b9ba0e6af55ff6d4e643755f98ee", + "actual": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "passed": false, + "duration": 1932, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语2 / suiGetPublicKey / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetPublicKey", + "expected": "001ea1536815ba2f3112bed1689e1203b8c912ead83efdf27465db54b1dc29d227", + "actual": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "passed": false, + "duration": 1926, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "jFhC5z@Dk%ya2edpvkECr~qr", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetPublicKey / m/1852'/1815'/0'/0/0", + "method": "cardanoGetPublicKey", + "expected": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "actual": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "passed": true, + "duration": 3686, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetPublicKey / m/1852'/1815'/25'/0/0", + "method": "cardanoGetPublicKey", + "expected": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "actual": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "passed": true, + "duration": 3075, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cardanoGetPublicKey / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetPublicKey", + "expected": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "actual": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "passed": true, + "duration": 2943, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetPublicKey / m/44'/637'/0'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "actual": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "passed": true, + "duration": 1914, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetPublicKey / m/44'/637'/25'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "actual": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "passed": true, + "duration": 2575, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / aptosGetPublicKey / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "actual": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "passed": true, + "duration": 2238, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-pubkey / m/44'/0'/0'/0/0", + "method": "btcGetPublicKey", + "expected": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "actual": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "passed": true, + "duration": 1797, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-pubkey / m/44'/0'/0'/0/25", + "method": "btcGetPublicKey", + "expected": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "actual": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "passed": true, + "duration": 2335, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-pubkey / m/44'/0'/0'/0/2147483647", + "method": "btcGetPublicKey", + "expected": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "actual": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "passed": true, + "duration": 1865, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub / m/44'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "actual": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "passed": true, + "duration": 2390, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub / m/44'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "actual": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "passed": true, + "duration": 1910, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub / m/44'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "actual": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "passed": true, + "duration": 1782, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-test-xpub / m/44'/1'/0'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "actual": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "passed": true, + "duration": 2310, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-test-xpub / m/44'/1'/25'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "actual": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "passed": true, + "duration": 1814, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-test-xpub / m/44'/1'/2147483647'", + "method": "btcGetPublicKey", + "expected": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "actual": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "passed": true, + "duration": 2344, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48 / m/48'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "actual": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "passed": true, + "duration": 1868, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48 / m/48'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "actual": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "passed": true, + "duration": 2420, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48 / m/48'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "actual": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "passed": true, + "duration": 1946, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49 / m/49'/0'/0'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "actual": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "passed": true, + "duration": 1762, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49 / m/49'/0'/25'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "actual": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "passed": true, + "duration": 2279, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49 / m/49'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "actual": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "passed": true, + "duration": 1817, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84 / m/84'/0'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "actual": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "passed": true, + "duration": 2328, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84 / m/84'/0'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "actual": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "passed": true, + "duration": 1849, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84 / m/84'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "actual": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "passed": true, + "duration": 2388, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-86 / m/86'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "actual": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "passed": true, + "duration": 1912, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-86 / m/86'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "actual": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "passed": true, + "duration": 1780, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-86 / m/86'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "actual": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "passed": true, + "duration": 2308, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-ltc / m/44'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "actual": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "passed": true, + "duration": 1835, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-ltc / m/44'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "actual": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "passed": true, + "duration": 2336, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-ltc / m/44'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "actual": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "passed": true, + "duration": 1865, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49-ltc / m/49'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "actual": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "passed": true, + "duration": 2454, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49-ltc / m/49'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "actual": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "passed": true, + "duration": 1979, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-49-ltc / m/49'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "actual": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "passed": true, + "duration": 1763, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84-ltc / m/84'/2'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "actual": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "passed": true, + "duration": 2273, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84-ltc / m/84'/2'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "actual": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "passed": true, + "duration": 1821, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-84-ltc / m/84'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "actual": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "passed": true, + "duration": 2354, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-doge / m/44'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "actual": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "passed": true, + "duration": 1870, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-doge / m/44'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "actual": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "passed": true, + "duration": 2393, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-44-doge / m/44'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "actual": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "passed": true, + "duration": 1914, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48-doge / m/48'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "actual": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "passed": true, + "duration": 2447, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48-doge / m/48'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "actual": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "passed": true, + "duration": 1959, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / btcGetPublicKey-xpub-48-doge / m/48'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "actual": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "passed": true, + "duration": 1783, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetPublicKey / m/44'/118'/0'/0/0", + "method": "cosmosGetPublicKey", + "expected": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "actual": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "passed": true, + "duration": 2244, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetPublicKey / m/44'/118'/0'/0/25", + "method": "cosmosGetPublicKey", + "expected": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "actual": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "passed": true, + "duration": 1708, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / cosmosGetPublicKey / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetPublicKey", + "expected": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "actual": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "passed": true, + "duration": 2192, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-xpub / m/44'/60'/0'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "actual": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "passed": true, + "duration": 1765, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-xpub / m/44'/60'/25'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "actual": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "passed": true, + "duration": 2287, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-xpub / m/44'/60'/2147483647'", + "method": "evmGetPublicKey", + "expected": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "actual": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "passed": true, + "duration": 1807, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-pubkey / m/44'/60'/0'/0/0", + "method": "evmGetPublicKey", + "expected": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "actual": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "passed": true, + "duration": 2357, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-pubkey / m/44'/60'/0'/0/25", + "method": "evmGetPublicKey", + "expected": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "actual": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "passed": true, + "duration": 1876, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / evmGetPublicKey-pubkey / m/44'/60'/0'/0/2147483647", + "method": "evmGetPublicKey", + "expected": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "actual": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "passed": true, + "duration": 2405, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nostrGetPublicKey / m/44'/1237'/0'/0/0", + "method": "nostrGetPublicKey", + "expected": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "actual": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "passed": true, + "duration": 1977, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nostrGetPublicKey / m/44'/1237'/25'/0/0", + "method": "nostrGetPublicKey", + "expected": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "actual": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "passed": true, + "duration": 1838, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / nostrGetPublicKey / m/44'/1237'/2147483647'/0/0", + "method": "nostrGetPublicKey", + "expected": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "actual": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "passed": true, + "duration": 2411, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "actual": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "passed": true, + "duration": 2415, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "actual": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "passed": true, + "duration": 2395, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "actual": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "passed": true, + "duration": 2415, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "actual": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "passed": true, + "duration": 3021, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "actual": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "passed": true, + "duration": 2829, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "actual": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "passed": true, + "duration": 3429, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetPublicKey / m/44'/784'/0'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "actual": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "passed": true, + "duration": 2107, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetPublicKey / m/44'/784'/25'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "actual": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "passed": true, + "duration": 1924, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-empty / suiGetPublicKey / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetPublicKey", + "expected": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "actual": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "passed": true, + "duration": 1918, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "(empty)", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetPublicKey / m/1852'/1815'/0'/0/0", + "method": "cardanoGetPublicKey", + "expected": "67aae4955cb121a20e394c0a076ad31d64439cc6ce1e6ca2e3c7bfdc799d0a72db5299eb4a059798835bd161077c0c8130b0b89bd2e7be719fb9f7de47f1ff82", + "actual": "148435e290f5231554e4a54b1877727a487e632d62690cacfe6880048f8c0b2e07c055fcd23caa784839c8e65775873c4ccdafb7a3b898e066edfaa4ca69ca34", + "passed": false, + "duration": 3684, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetPublicKey / m/1852'/1815'/25'/0/0", + "method": "cardanoGetPublicKey", + "expected": "d8e4f4a526b460fb26b04ee11dcdec74d97b33d9875934bd1a21a48cc83242ac26d1fe2ac9debcb11fce1e6ee72d56e4558e209f6b0dfafaeeb2dcc094c96824", + "actual": "c21938fb2831cb70d228eabf79f8ee75cfcf982ed541dde1f12f0cc4ccbd604ddfa66a5682517539c4ff0294b64de6ea1d58d73adc7b64043e31ba63e5a3516b", + "passed": false, + "duration": 3047, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cardanoGetPublicKey / m/1852'/1815'/2147483647'/0/0", + "method": "cardanoGetPublicKey", + "expected": "4559c69f632048589d76f1185a8c7d759fe1a16d6cc0dcfc9e440a324d809cfe049d5d4a9eabdd9c3f42d22c944433b35289d05cf3d8d114c0dea9eddff99de4", + "actual": "14cb1f850e424c00adc8b7d856af0e46528860328d5eea4eb7b5b6a81073a4456910cd7debffc07680502d1794c9227f3e1dae40d19e084e003af0efb19c1d89", + "passed": false, + "duration": 2954, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetPublicKey / m/44'/637'/0'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "4ccc65572193f4aeebdd45c5134c90d1f029eb7b9b6f35d9aaa8417e45a6a3ef", + "actual": "33f78095c397cd6792c1e173aa1c503a59dc0a29ad8fea85467449a2383b2ab3", + "passed": false, + "duration": 1938, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetPublicKey / m/44'/637'/25'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "3bea2e0818d6a8471c486323027a1da8551e834ffbe9a4cc6e979d52b3fc0033", + "actual": "bb8d18d0e2e3a816c245d0b65e01bec51163cb7f3fe88fe3563607239f0f0216", + "passed": false, + "duration": 1913, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / aptosGetPublicKey / m/44'/637'/2147483647'/0'/0'", + "method": "aptosGetPublicKey", + "expected": "7ff147aed7366eb369055a65742f769ba310bd3ddbb979c0f8ace587c5e3efc3", + "actual": "17a87ac6f3d6f935708602c378379ddef167fabf61e031e65e610c09d5678196", + "passed": false, + "duration": 1927, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/0", + "method": "btcGetPublicKey", + "expected": "03197d4a2e03520c037ef9cd8ec07202332875e462949aa583c8abd872609dc008", + "actual": "02b57978004310fc69d2e7b730c24cd79a0732849b3055287576b80c99f5e6c2b0", + "passed": false, + "duration": 1808, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/25", + "method": "btcGetPublicKey", + "expected": "02f09b034940d5d149994ed76c383e668552547dd21fd32649e92821e5a38e2bb1", + "actual": "02338852225dac377d322f062e163859a41869cab1d56202350f67878301953ee3", + "passed": false, + "duration": 2335, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-pubkey / m/44'/0'/0'/0/2147483647", + "method": "btcGetPublicKey", + "expected": "02707382a9381cb7982167e29a99cb5ee08f8d50bda6c9365026e2b771ce52f4bd", + "actual": "03c89907c03eabe081cda74c1e763c54c7cc10b484cd39fb2616c3807b066506a7", + "passed": false, + "duration": 1878, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub / m/44'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6C7LxiUzsgBctmrobMi6g6MsUpurnYdvUf7eydWRWtstW4QhAfwykhSbSQpowecy1A7j4Qutgb8rapviQW8hSQNVZWjxmJ1v2uRzpFd6vAs", + "actual": "xpub6CgU4MYip9obRSrH3odLWT6h7CFzGyz6VXnosEsxYgx7RWzZ8aKVhrEAD2pQPqcsFDbBDkogETWd8RVeybGkKs7gakb8KyQdsUBqXhpiqRj", + "passed": false, + "duration": 2391, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub / m/44'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6C7LxiUzsgBe1ZMjGynuvQKviMVDr2cSc6CnufZ8JBbefTf1K4LhHT2Gp3djp76Vmr1vDzkxXmjsrEusdVKzS9DtatJF3jm2n87LcUnjDtt", + "actual": "xpub6CgU4MYip9ocXJBYFko91qMLoBNTMorqqD3TGyu5Tinr9ovhvf1pqSUm41kx9kz2tJEXJwaUAmNrGNsCczx5joZUgJSmX9DZCcvJimMgxNs", + "passed": false, + "duration": 1942, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub / m/44'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6C7LxiV9DLib3JecMwNx5TDm7YmoNRrpRvT4M9xfwhho6XeWHgGmMSqLH5XnvSzt6tCAd2wfJRNps17ynKnPXu3qYiFAc1gqMrBKYo7mhn6", + "actual": "xpub6CgU4MYs9pLZYjdgbJ3N6CstLsTSbPgBZ76Qr9c2nHgnAjiysbz3bw4GqXQzT53CjK3G995f6x1EuKPrLCAfMvAFqKjCCqAGgDsCHtee4iL", + "passed": false, + "duration": 1806, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-test-xpub / m/44'/1'/0'", + "method": "btcGetPublicKey", + "expected": "tpubDCXPwfABcJjjU8ZZBRMVAUi7eLVRsnddTPmYYcVwMQZFpNJ9A61LavEd6DfJutLcYhis623r1SRkXEk25ia5Qaocbfs4PstgAunX2J86M2m", + "actual": "tpubDC7v6135myNA9y5MNonb8DHnXPqz7Z1cAvMC9hcombPx3KzyWwXRV4uToUSTboto3JBpUfc6m4G7Pnj9MzGCGR3v6zCnJgpZzcgybw3WFGx", + "passed": false, + "duration": 2309, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-test-xpub / m/44'/1'/25'", + "method": "btcGetPublicKey", + "expected": "tpubDCXPwfABcJjkZTsgqL4DEZy3SivcfD4veYoqaf9RcBnVGjTBG5RZ1SRbdhpikM8KLRHk2WCQVR2AKyYw3j3v3tukLttk6HptwTLFyNANk2q", + "actual": "tpubDC7v6135myNBFVciKrkBTmUivfhyiqX71uXtDnoq4kzit6MmjpWXtXPUEGzKCr2oCm1M4q7P5MmCLPZKRykry3LiyNaECe1qVAWpuhDPFnx", + "passed": false, + "duration": 1866, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-test-xpub / m/44'/1'/2147483647'", + "method": "btcGetPublicKey", + "expected": "tpubDCXPwfAKwyGhaRrJgnkF9i3wRBFz67Rsw1qKvD7HiQqyFQsn2NAtUbwnkqCG6J6hVMQyiZgY3sfjczRy1H3JxcByHxneXFRtRnbAd9u98K8", + "actual": "tpubDC7v613E7du8HDtjXoZCiVFKmWJsw4UxGrGpXhwJjoP7vjxv8yg1tfga9T4tb8RmP8GXQtZgYfgwmEBKAkW6z27UpZTMMGv3f4HDVmdncab", + "passed": false, + "duration": 2387, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48 / m/48'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6CM2Krrf1Ww4263Gqcd6eSsceicyMQuLsZCKbvyjSEwJxkEjpRyh4ZWZqZyKi6M2kL7aTheu1CsUAk8UpoiByA7ZDh78nDf155eviqSDFXL", + "actual": "xpub6C9bggW22J5UkHmTeZr7PJMYma2WhmihhcATopUZh3x5pWXJJVupgyEAUJLZUEyRBftq522H8QiUHQKfVN1J1mfXFrmE4LsaELwxpyWTC2L", + "passed": false, + "duration": 1927, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48 / m/48'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6CM2Krrf1Ww56jLZqcmeUrMfXBqeA7ZkYcK4x1sFayTotojAZDM68jePNq67BQCtBE2syvjCN2ihiBoHBDdQuqaB7F4Gbr2GoHHhCTPpccb", + "actual": "xpub6C9bggW22J5VqeZ4CvNoFL6EgP32AcN3ewHqR1AAZJqUqELeCoMojPm9d19QEyXABj25GBFxkNrkxQC1AkfvQqajAzeArE9GBYwxwhMNNeh", + "passed": false, + "duration": 1763, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48 / m/48'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6CM2KrroMBU29SrYh1nX6zWJZkVVnUGtxuE3XyT7V31dw8v3sz96fSWpLtnvfmF4aifTti1z4f5qLyqQruSUVpZJWSQZR7tqoVf6cWSPmt2", + "actual": "xpub6C9bggWAMxcSuGDQ7W7HhRe6WQRo7i6faTNdbUV9apFUmUchwRAzp7rRMgTjE9KFBRD6CXbCoCtPxCPsC7TZAR9zFiymMUtGLynrDyVNGTL", + "passed": false, + "duration": 2282, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49 / m/49'/0'/0'", + "method": "btcGetPublicKey", + "expected": "ypub6X6TbS5cGeuLu73YLAaDZFKuqSgsBqdTDm2qEJ8oBkM1imyK9JVjkbu2HGZoxsoGDFFUS8jDN7FmgRV6qAEWXTKDj53htouaHQxanS68Yt6", + "actual": "ypub6Y1AvPkbhWKxiJtEQcdf1Kf3XuM6ZTJCtcbzEXDYMFeCdbMGjpC4ByJjSvWzUC14vULqHj4JM9j1Y3CNMe4g6eaBVR98t5UHZ8yyRvhVb3D", + "passed": false, + "duration": 1805, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49 / m/49'/0'/25'", + "method": "btcGetPublicKey", + "expected": "ypub6X6TbS5cGeuMzErw8hQKnwampuJV9YiMDnjG7QPZ6edWaEE9fw7uQABrBEAbiBeTKz6fjbierXQGnsNBKvscDpYggggBurpbAicw7Ub84Gw", + "actual": "ypub6Y1AvPkbhWKyoYbCM3dwQx7JQSRx8tseevVakKsuVJq5YK2w6yjQ6NjYt2dyKZS8iT3fcxJvGw8fCcY4cfuviFX731e8VweoWZ3FVBzPNAv", + "passed": false, + "duration": 2309, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49 / m/49'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "ypub6X6TbS5kcKSK1oFnM5RVMD3vpa9DpA2Y7GjJRmXEitHu3tG67sUXC5wwUaUGgEMJith3mWB9xCsBpNTgHEyPdbL1Mq7WwVPyS23Gcv3wHPN", + "actual": "ypub6Y1AvPkk3ArvqBiQUhCrLo64dEvjShc9PfsAJGD5sqmSYH7nBBMCXumNpFdtKv7MEYh3LgCi1fXtW2JdEbVBfQkpY4mLG5xuYi1TYG87kNS", + "passed": false, + "duration": 1816, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84 / m/84'/0'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6rxeT8DQBfzjXdk1fMUARxVHLTnHj5oL9QaNaeYGJxjYWgySbeCDdbmCHbx4EcNpSuKYvbw1zDPBmmLU9TWZYvAUgXuFkY9yp7ncujRhwtD", + "actual": "zpub6rL9BJR5EdhGQUCH6BivHDKLQJptCv55KuUsmd2tejjqtxxHj4vLQZKZmWj9NssjhELuU8s27d571yC6ndUmdYRnLWnbjXniFDdLVQbDyYo", + "passed": false, + "duration": 2325, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84 / m/84'/0'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6rxeT8DQBfzkeWZbDu1fAoxVUVk5aG5Bg6cFFNzxzCq8iYgUYwSBNQoMSBwVZu8Df1m8bsFveBHyrayWgSqAPT5NxDriQfSP2iaY6Xv2vg2", + "actual": "zpub6rL9BJR5EdhHVdaViTweUQ4FUZsWuF2fH5ynDdjHiU2YGG9Vg49nFLscnEhLPbCzN9fR3cQqrdkrfFwD7SBv9Y4GG1A3nKFA8DkeGGWRWoS", + "passed": false, + "duration": 1860, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84 / m/84'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6rxeT8DYXLXhesSMjCtgkN6rgRWc45yGNKzdAZcmmDkoyuJBJ6jvtyxHBVSEpUCWJq5PHLH7JUvkFLcwRHdm1nBZaDmzwHLiLadfGGzoMjX", + "actual": "zpub6rL9BJRDaJEEXnEs5b1CYLS4X1CsmGq7cXgrE2NpMcr25vYVZYEJg5h22ijTEMJyDfsVhYKYxr2HHRRy7oPbkuJxST1vLDq7Uwqxwf3sz49", + "passed": false, + "duration": 2390, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-86 / m/86'/0'/0'", + "method": "btcGetPublicKey", + "expected": "xpub6CPCi9ux3poZWUQRHodQUwB1rqPDYmsNnV8byv5F93pQ7pQfvedx4JtHUpBfRUPiBv6NCQzPNSiZtnzpACkmpiHEpE6ceLcu7Qt2MKRT3Cj", + "actual": "xpub6D31TWDuLSvotnAY498vMWykkj1BrUtoYSXGrbu2J3WHdvHE2co1kueMPfdv4fngEMLp6rEiun2LFNBKoC5fGyahYG3R7wjoZQ8ezP5WTXa", + "passed": false, + "duration": 1924, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-86 / m/86'/0'/25'", + "method": "btcGetPublicKey", + "expected": "xpub6CPCi9ux3poacX7w8hgXoGjEq9MpZZSrYitmpKTVWLxWPuMA4ANY2PQCqkX5BsTDWGKB5SCXBaPpdZ32xrszADj3fhNa9PK9edeS4CoGkhz", + "actual": "xpub6D31TWDuLSvpzmNE4pHK8tK65Vm4Huk7axfQjwUR7UPYnXgWi3VxXgUXMkb6pRe5SEH4Mw54VgvM6bCGU26aMWLYVBw4yNWukR14nCcVYbx", + "passed": false, + "duration": 1775, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-86 / m/86'/0'/2147483647'", + "method": "btcGetPublicKey", + "expected": "xpub6CPCi9v6PVLXdJPPXjkmyAjYyn4tkg9P8FLtNiRnMUZDhTs42WKTvsoDxDPzH62iXPvpzfFL6fcDh4fChWAZjtH1gppc6gHhepjRpBFxfEq", + "actual": "xpub6D31TWE3g7Tn2MmYK5BJ9GJsy6BGaGH3vGLWxG9seyoaoQfdVkdYAFZ7U7QFARQmZcgg3F4N7RDAfKdFVYnZs2AqANQVeTBPKfp7U8HiJ91", + "passed": false, + "duration": 2275, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Ltub2Ztm75Ue1nTUnhrjwuqWGscXrCfvkALGm1upcvtW5Br5Ek5BWxK3DkzHRrdbi2kbyNP9z3fUTSZ5hGJzgMCsjGbFuJzanraRuGw4fmTRtep", + "actual": "Ltub2ZWDULvcFmcJrXZ918sUPFCUhksnfx7HUjAxmJLbZUHi7F3LTBvGJeJsrTw1kRfZPnYUEYTKPm35jfYGJAhA7Z1QtkR6BoiK1XeFrHjNr68", + "passed": false, + "duration": 1805, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Ltub2Ztm75Ue1nTVucf3uiPsxonBhGEnRwYH5yvnwRJZXgWjX1cotY2uWMXkJZVC9mSt5aqJwKtwxKtCSKgCoE2xCfPb5p8csVfUAR5cUx3e3jL", + "actual": "Ltub2ZWDULvcFmcKxLTM9zhz96vogfiqsB45DRU8CXU2A8sZz7n4S3XhSLiHthun7Z88nmJRxBz1fTBR7k9gtr6jLN9ff4U3EMUaYqnWCUjPFj1", + "passed": false, + "duration": 2325, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-ltc / m/44'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Ltub2Ztm75UnMSzSwWVB6JkgTECbzzRiuXCdWSe9d4ADwrFYNHe58UWjtfUJjfFULfp1vsknq7PiUZ4X9DanaXeA39893bQmf9UFoyoyQgs5tdw", + "actual": "Ltub2ZWDULvkbS9GxtfkaWigMjPe5rabWSSQH4uzVdfBxUohPtUyZLtPEDjHEG7DNzGskgMjDSS9UFiFWwREK5wXT4B6ng221kPzUsxJCfAvuBS", + "passed": false, + "duration": 1855, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/0'", + "method": "btcGetPublicKey", + "expected": "Mtub2sMrNtecnPTm9igE3e54HfRZ3QaWVv1TqWb86ycJRrUPNCifVqDsgZfjsXsGuDzpsPffsg2pvmoHJ7iiqhvxFnW6vwQh4HHYEUuWTomauGc", + "actual": "Mtub2tbf2e9b9BirJVM7eFew25typjH7Wy918LApSMj6gQWXwhg5hEDj6GbDkW7NT6AwTYvDo72FrmTsBZU8kF8vMquwqhPBxXFgDFVtJHypLBL", + "passed": false, + "duration": 2353, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/25'", + "method": "btcGetPublicKey", + "expected": "Mtub2sMrNtecnPTnGAW6zDkjcHRrGoioMwXaaVwRLhQLS95Jv7MUpcN82drJRBghpBEFPXfi9gCdnurKmG8xxnypcYh74a58gAjWmL229PqM9fG", + "actual": "Mtub2tbf2e9b9BisNp2Ctf1QoDBokJuCHmv92Wi5aC57gEZjWhzDyd2kJLFp18bQqJsKxZqKV3RYehH1GDYh22DBiZVgfgVVCRhjGVa6viXo1qa", + "passed": false, + "duration": 1877, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-49-ltc / m/49'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "Mtub2sMrNtem83zjH9Wb14wVmXbh8fjWnwLbHkPz7WsT8uyBY7FD4jbEqFScoVF9viBzcYaUSPqXVc2fLuK5p8DHJvq3YwaY6MTHuhZFe2RUehG", + "actual": "Mtub2tbf2e9jUrFpRH8sH8ZV1nqUxMrsFwV7nRgiSW39UHfY33vUxhCjyabLGv2wLry5ySicomF3BvNFkJmtY5ouCULzQK5ZGdjTnEoviMbGTeW", + "passed": false, + "duration": 2384, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/0'", + "method": "btcGetPublicKey", + "expected": "zpub6s3WiYtzyCg9n2ceKsgHbD5atQrGZ7khUFxS7r8WtFA3XdFKS3yGNe8TAEgbVomqq9eAHpeBZkEgYaLHnAeCNkHCphAht8EjXPAZdycCsW9", + "actual": "zpub6qqVZue4BfyzrVXpdGawY1yBXEVkggvoWeqCthwHbAcvcmarpR1e1bPWq3BZvd79kYUZ8NY91GoHegwob3VD2Uaww82S6jiCpb2oTUQNRfM", + "passed": false, + "duration": 1913, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/25'", + "method": "btcGetPublicKey", + "expected": "zpub6s3WiYtzyCgAsdy11vREwSjStdxm4Q2MkxBkx9osRR7pRe5o7CMAPrYQya6sFpocmHAWefQ659vMcwCP7Se31XV6jMiJ3kdLPQXydBTP3L2", + "actual": "zpub6qqVZue4Bfz1vbWxWiFYAJn5cTRtg9AfLMwBzcoWXbgFViLe5YuxnE33jnkv48WxVyhhmvDRXVQSwpsA4xKAfy2qA9ACWgj43jtBy8Uw72i", + "passed": false, + "duration": 1774, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-84-ltc / m/84'/2'/2147483647'", + "method": "btcGetPublicKey", + "expected": "zpub6s3WiYu9JsD7u7a8fPuPhpQA71E51hRrYYjpTxcdZ67yHgYxNVJmd78UrDoJWaqWUBUMJAX4sjneQmWNzUuCEFqe3jXjveD47iEnRsGxvVh", + "actual": "zpub6qqVZueCXLWxydLMQoBrcfGtGGJ1uLVe1Mek8gLkfK73xnwB7B1pTrQqS1bn7FYw8PkVGNJFCJYxPv3CzePEcVzYZGbHXgVbLTfS3sRLJ3r", + "passed": false, + "duration": 2303, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-doge / m/44'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8sP3iV2zu9VsHAXX6wchiKKHMKAC5pPj8ZDcXLVSJWGB1jQfaWrGnRYzdXfHMFzDJhk2zMjjrWrXXFjJREYUFTpwvvhuSx1LbRWY5AxKSbg", + "actual": "dgub8smnANp2Tn1x8dy1F7ZPfEQu6hFAwcbU9Ym2Qwc6BSWwv7ZLPqA75mkGVVDb6tGqHQS8NBMzQ3TGGvZrv7EjRqTeHidQHBwXioiTcWpvJ4g", + "passed": false, + "duration": 1822, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-doge / m/44'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8sP3iV2zu9VtLqJF4nrmUztcQUFCQRBUDV5iZxEs6te3JgysVHcDmv5RrsoyTgQ8auoj8RQ8WXjDmXNesfMa3bdmxQdRULwLXgaRC6rjCup", + "actual": "dgub8smnANp2Tn1yG2JssPKxXFhjffkv32nvmNa6WCL1UV7JQfjdHN5Nb9PWc7aAmsDnpjP1DspNRXSFZfUACDHYEwgnyeqXFjuPCNY1ysAFw2t", + "passed": false, + "duration": 2334, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-44-doge / m/44'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8sP3iV39Ep2qQ7HtHome9rhU1HSvFARRhdCczyxb9ZQV5vqQpt7nW4hx1AU4fNJqAeGPHRE8uL3bPd1dWeWKSctVvGg9zESCX6kPxjgRgMo", + "actual": "dgub8smnANpAoSYvFgJ7EoX3JcnFFJQkpjLpqiDHo3cy7pxz2etLP8L23tux14jSTukgsm57a3v4FtNXJf5DVXG9Hbe5xts8rNgwZJRhfut3NX6", + "passed": false, + "duration": 1885, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48-doge / m/48'/3'/0'", + "method": "btcGetPublicKey", + "expected": "dgub8sAd8WneWwDhupZAkAmcZP2LyBbDpKd5k1Cox6mM2wEmykD6k1eKArGArHPPaa66UB8sy71ufkHATWHEZmWc1bdgyCzF1UfMSjhK58u7V1p", + "actual": "dgub8srhHnWa5ZmmBvQ1N5FGfddfRN2yaFker6PvkuGc6mm4sXdMxRNkGKBv8YRMKmQ5MzvJNxrFBJCYGzUnVVr8gDoWrPJvXLVcuBgPFPHqVhd", + "passed": false, + "duration": 2395, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48-doge / m/48'/3'/25'", + "method": "btcGetPublicKey", + "expected": "dgub8sAd8WneWwDj21fqF2vdUbDRXVR85o3ms1sT4p4XDbtrH773xcSQCqYnWfcH8ggaBpaHbKBZ2LoSKdEf3PLgNPjtZKEDBdLE8Fz77wPPDT5", + "actual": "dgub8srhHnWa5ZmnJFMwA8sjf1DNLcT5RpkhyrE7syKhDZww8YQ3FgMX9mQkMYSHAQXc1Wq1AT5ELkCUwrJHSqVYZtFnhLwnNJUcSZuKnbWqrCn", + "passed": false, + "duration": 1915, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / btcGetPublicKey-xpub-48-doge / m/48'/3'/2147483647'", + "method": "btcGetPublicKey", + "expected": "dgub8sAd8Wnnrbkg3sDLvj3rDa8qvNTiSdXJUZQy5j4yF6haHDbvyrEZmNPeqgXJDZT2JwcrvMDZazt3qMLKjF9RsD5gKwuucrYp2EgHprfsbWi", + "actual": "dgub8srhHnWiREJjKVhSxhR3Z6ybbsuJsxZKRMwP2kWd4BVpX42sUtn1MSnVxFhDLvipYpq4XWZQ2LhoZCS3pYjba86o74i9cbwYKbtodjB56Sm", + "passed": false, + "duration": 1779, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetPublicKey / m/44'/118'/0'/0/0", + "method": "cosmosGetPublicKey", + "expected": "027b192fd512029a943c65944da9fea7d326f66a02915d4d5b160abafe73f1e0b7", + "actual": "02fce1615d3ba37bdf49929710b047a68a9d26cd8068a6035c5d40968463000868", + "passed": false, + "duration": 2253, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetPublicKey / m/44'/118'/0'/0/25", + "method": "cosmosGetPublicKey", + "expected": "037a6e3abc2710d465974bc2ee8fba8892c9b5da11dfdd66f21dc3eb7676719e93", + "actual": "02efc4ca68d4fc27dd178e08b2cf3fd83258b8e6f0fce1d4b4962929efb147b22c", + "passed": false, + "duration": 1712, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / cosmosGetPublicKey / m/44'/118'/0'/0/2147483647", + "method": "cosmosGetPublicKey", + "expected": "0311769b3a4a3f48cf26c4eb9b0b328bf7c574007ce8c5ca8de324ad6e7cc7ccb5", + "actual": "02997fb0740919fcf2593a3f6e7665ba8cf6c1a93e57ecdb1b5332516006c3ffe4", + "passed": false, + "duration": 2197, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-xpub / m/44'/60'/0'", + "method": "evmGetPublicKey", + "expected": "xpub6CgfPJsEtANP65H5EePueeTrggA2GxDTmApAan9q4w1jFQ7QEg6dfawLrubdz5ttqHNW3srh2L3QyznoTQ9epGPsDhXSNpFucXXk38TrZmr", + "actual": "xpub6BzVvH9KmZXkXLa1guj8XTwb6H1ecUEAVxQL9zt52Be37WPWPPiCfayFWJFZw3Q5egMpk1m4ATyVtkDbwikmTggpPdWQwQVs9i4wXU4Gico", + "passed": false, + "duration": 1760, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-xpub / m/44'/60'/25'", + "method": "evmGetPublicKey", + "expected": "xpub6CgfPJsEtANQBxDxELrkgWJWjUQhEJ6iqYpaMusqXtVVGoeBxbuGwGy4GPQ7hGohWobbzSDFpwYmHNvjbV7Cd8qVpUG39fznaUf9po8rpCM", + "actual": "xpub6BzVvH9KmZXmcRgmxmjNy1vWDtiqCurZ38ygwtDDNUchVDBLmGLVvhsv19s3crkUoWTBcRNz2YiSkgmyiPpXCWKoVyBvKFSwKGRqkfknuhK", + "passed": false, + "duration": 2261, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-xpub / m/44'/60'/2147483647'", + "method": "evmGetPublicKey", + "expected": "xpub6CgfPJsPDpuMDFh9EVrQ6HWH73oRcUen7tfuvqFarrzdBzKyHLzovdNDXMcgpoiX3K7cWacr7eDBKXuzapn7WzYMDaLMcyAp2kJkzKSEpPm", + "actual": "xpub6BzVvH9U7E4iebVuafxSp1VcjGTNQPL6iFPLMGSP1G7yaa2tm3ZrNkcnvBs7EFAQbhFWMYcwcAwFkTPAPys6nNqetVWxyfmM3M31vot33JE", + "passed": false, + "duration": 1766, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/0", + "method": "evmGetPublicKey", + "expected": "0x03eb6660f1ebdcde474bf6669344742ed85185fe51bf80a0d474de50809e065ba0", + "actual": "0x024106cbf35664c10708e652abe149b1973425173d530a0840b7363e81a3892f48", + "passed": false, + "duration": 2300, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/25", + "method": "evmGetPublicKey", + "expected": "0x03b0081d57e03a1e2925b22aa8883a0def90db279a9ee4503b5d2c3b410fc2eeac", + "actual": "0x034ee531788b22ed39b37728b4cb863d9f4e0f6c0dc6689cc572c1e6c9c041fcff", + "passed": false, + "duration": 1823, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / evmGetPublicKey-pubkey / m/44'/60'/0'/0/2147483647", + "method": "evmGetPublicKey", + "expected": "0x02625cd90c90cb1a1504b5c51e462e66cb9121edf19643aeb809e048379b94c0c8", + "actual": "0x02ce264af71f7bb4d6a2c90f45530d5fc31d14d73712c1709c12cb43870cbd898e", + "passed": false, + "duration": 2375, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nostrGetPublicKey / m/44'/1237'/0'/0/0", + "method": "nostrGetPublicKey", + "expected": "c4ac598e5c953684b7e7adcd73dd8b2292ee17effde9d70d75a69d2a067649f1", + "actual": "393c91ce5c76e05df6efffd2551fe19a41df1741ffeb065dea4e016e266f564f", + "passed": false, + "duration": 1930, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nostrGetPublicKey / m/44'/1237'/25'/0/0", + "method": "nostrGetPublicKey", + "expected": "c56a30e0fe541cd6dec55b19c8858602cb5e2b24cc1d9eb62189d4b2315140e9", + "actual": "da7ef796a37f1950a891ee5a3ab05852b2c21e37722d1f748b39f981345498e4", + "passed": false, + "duration": 1814, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / nostrGetPublicKey / m/44'/1237'/2147483647'/0/0", + "method": "nostrGetPublicKey", + "expected": "819d22d7ce7b5e202f456425b65ed7e288fa41eefde3846f6ac02d67c7146661", + "actual": "48510a8a7403331cc338a00dc7e924c9abacd8cdd61ca07f0cb6f3b4ece68f7b", + "passed": false, + "duration": 2405, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/0'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x4138e0924aab10de727eac4243baa05a55be4abd4666034ced56effe4c03d1e7", + "actual": "0xca0bb84cd74dee971df380620d6a08d2d9ab8b8b754a768df52e790bc22c8755", + "passed": false, + "duration": 2408, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/25'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0xa4f4324852c6f9d5bf485d3ce7bd68f60909b1bd29656d318085012ded58cfce", + "actual": "0xa6113e431af67fb41ac4d26b3af48cd6a5e25d7a606210575b657f30208fbd1b", + "passed": false, + "duration": 2414, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / polkadotGetAddress / m/44'/354'/2147483647'/0'/0'", + "method": "polkadotGetAddress", + "expected": "0x34505c51d7502c1d2c946383114ba5b1521d2fd2a656ff0f968342391cc75601", + "actual": "0x72ed86b3e8d9bfef98cb7f6f75ea6aa32c44b97608bc4c1f605afe33bf396def", + "passed": false, + "duration": 2423, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/0'/0/0", + "method": "xrpGetAddress", + "expected": "0242a557cf4d7986967144d514ed894ef38cd20145afd075fb1061962b7ac89899", + "actual": "02da5fc68d90ae9d4de8bb57fce8cd25f2bea3a076d8c483fec3c31e05ee4f0708", + "passed": false, + "duration": 3031, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/25'/0/0", + "method": "xrpGetAddress", + "expected": "026ae0302d1f71bb970d398a49d43773fc5894ea9928360b0e7e0506881169f2e2", + "actual": "02f34e3ef4f75ac664168c61217a0a823d57491f7edba15e422f81bce8f2369bcc", + "passed": false, + "duration": 2809, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / xrpGetAddress / m/44'/144'/2147483647'/0/0", + "method": "xrpGetAddress", + "expected": "03f8050028aaac41f316c022f0d1857dafc1cd667f4660a7dcd21478c01d58e55e", + "actual": "02fa6d6d768d8cd9d7d9d570757b8e7193e25d956ef1d6ed0d01d152633996e7f7", + "passed": false, + "duration": 3381, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetPublicKey / m/44'/784'/0'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00ea767b8dba2dfc0f7d912af04f348da28c332f0d33b704e19cab8c8ab8775573", + "actual": "00b71a97eef1e1cc42268257bc1eca84bd9908eb787d60d74f2ef730a7cf037b07", + "passed": false, + "duration": 2024, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetPublicKey / m/44'/784'/25'/0'/0'", + "method": "suiGetPublicKey", + "expected": "00bb5c524bd813e01f657c49c99ac96d003be84b36be42c26e6a9209fe341be8ee", + "actual": "00434107a74dc710125dfcf6b9c84e446eb7822f60483ec9fb4edb1d585a1d5d38", + "passed": false, + "duration": 1925, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + }, + { + "title": "one-passphrase12-密语1 / suiGetPublicKey / m/44'/784'/2147483647'/0'/0'", + "method": "suiGetPublicKey", + "expected": "007930898b4aeb3e4c7f05f72d95e436eafe3af7e2ed0ab9b08cb969a6ce5627b5", + "actual": "001d25792f180cd0c794ec31670d6202f9d43f71ab63b745f9c38bfd1e242574bf", + "passed": false, + "duration": 1916, + "metadata": { + "scenario": "BIP39 导入 / 12-word / one", + "passphrase": "12345", + "source": "one-normal-12" + } + } + ] + }, + { + "suiteType": "specialPassphrase", + "suiteName": "Special Passphrase", + "status": "failed", + "totalTests": 27, + "passedTests": 9, + "failedTests": 18, + "skippedTests": 0, + "duration": 125998, + "results": [ + { + "title": "btcGetAddress / 「Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵」", + "method": "btcGetAddress", + "expected": "115BQ6JUt46pVCABiRGQQ2JG85rsLxpw1M", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4075, + "metadata": { + "passphrase": "Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵" + } + }, + { + "title": "evmGetAddress / 「Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵」", + "method": "evmGetAddress", + "expected": "0xbB84C250B4De2e34627a7388d05a024F6080FBfA", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2488, + "metadata": { + "passphrase": "Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵" + } + }, + { + "title": "dnxGetAddress / 「Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1237, + "metadata": { + "passphrase": "Aa0!)_+맪Ӎ¬}¨¥ϸΔѭЧゞく6鼵" + } + }, + { + "title": "btcGetAddress / 「¥Øÿ」", + "method": "btcGetAddress", + "expected": "14J9xka7MQ3BsmqFg3ArSjTDU3hnqLimq8", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4062, + "metadata": { + "passphrase": "¥Øÿ" + } + }, + { + "title": "evmGetAddress / 「¥Øÿ」", + "method": "evmGetAddress", + "expected": "0xeE07B16dc7Bb0f97a078fBE2cE9F97fd19948454", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2321, + "metadata": { + "passphrase": "¥Øÿ" + } + }, + { + "title": "dnxGetAddress / 「¥Øÿ」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1074, + "metadata": { + "passphrase": "¥Øÿ" + } + }, + { + "title": "btcGetAddress / 「P@sswôrd€」", + "method": "btcGetAddress", + "expected": "1Q4zhn8YtK8KZFXN6y8NKUdDGcs4tB9zqB", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4039, + "metadata": { + "passphrase": "P@sswôrd€" + } + }, + { + "title": "evmGetAddress / 「P@sswôrd€」", + "method": "evmGetAddress", + "expected": "0x7eBc150fd76166B0A4241F95A70E77D5691160eE", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2317, + "metadata": { + "passphrase": "P@sswôrd€" + } + }, + { + "title": "dnxGetAddress / 「P@sswôrd€」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1064, + "metadata": { + "passphrase": "P@sswôrd€" + } + }, + { + "title": "btcGetAddress / 「 My Passphrase 」", + "method": "btcGetAddress", + "expected": "1QGXswVR72TvQxbjH4wgB6ojaTDnyeT9TK", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4046, + "metadata": { + "passphrase": " My Passphrase " + } + }, + { + "title": "evmGetAddress / 「 My Passphrase 」", + "method": "evmGetAddress", + "expected": "0xaC5A8C4F91fA470C96061614cE5C830F04aE035d", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2317, + "metadata": { + "passphrase": " My Passphrase " + } + }, + { + "title": "dnxGetAddress / 「 My Passphrase 」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1069, + "metadata": { + "passphrase": " My Passphrase " + } + }, + { + "title": "btcGetAddress / 「私のパスワード」", + "method": "btcGetAddress", + "expected": "1N2VDa5rXxZtunaoNrMDR7bzuqjTtNozXW", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4027, + "metadata": { + "passphrase": "私のパスワード" + } + }, + { + "title": "evmGetAddress / 「私のパスワード」", + "method": "evmGetAddress", + "expected": "0x6edE03c286351c33600510Ff42434754Cb5B37b4", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2269, + "metadata": { + "passphrase": "私のパスワード" + } + }, + { + "title": "dnxGetAddress / 「私のパスワード」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1042, + "metadata": { + "passphrase": "私のパスワード" + } + }, + { + "title": "btcGetAddress / 「myسياسةpassphrase」", + "method": "btcGetAddress", + "expected": "17sNuvBbFj4wT7s1tR2CQ7uu75FXHcBvGU", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4122, + "metadata": { + "passphrase": "myسياسةpassphrase" + } + }, + { + "title": "evmGetAddress / 「myسياسةpassphrase」", + "method": "evmGetAddress", + "expected": "0x1B713990173C1952Bf22B8aF2FEDdFe48F5fFeFa", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2374, + "metadata": { + "passphrase": "myسياسةpassphrase" + } + }, + { + "title": "dnxGetAddress / 「myسياسةpassphrase」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1123, + "metadata": { + "passphrase": "myسياسةpassphrase" + } + }, + { + "title": "btcGetAddress / 「你好passphrase」", + "method": "btcGetAddress", + "expected": "1WQh5gtPcjmnrmE8bxiv9iYMrVSTusuY1", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4065, + "metadata": { + "passphrase": "你好passphrase" + } + }, + { + "title": "evmGetAddress / 「你好passphrase」", + "method": "evmGetAddress", + "expected": "0xd9cF98a9A7b835771bFb0Fe4f3e655967DF74Ec6", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2376, + "metadata": { + "passphrase": "你好passphrase" + } + }, + { + "title": "dnxGetAddress / 「你好passphrase」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1149, + "metadata": { + "passphrase": "你好passphrase" + } + }, + { + "title": "btcGetAddress / 「mi política de frase de contraseña」", + "method": "btcGetAddress", + "expected": "19y3M4yjHi2qjS4LYgbDKVsxuiWGyB3VwY", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4043, + "metadata": { + "passphrase": "mi política de frase de contraseña" + } + }, + { + "title": "evmGetAddress / 「mi política de frase de contraseña」", + "method": "evmGetAddress", + "expected": "0xB9eee4b0987b3ba2E80eFee85387F97894D5BB30", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2287, + "metadata": { + "passphrase": "mi política de frase de contraseña" + } + }, + { + "title": "dnxGetAddress / 「mi política de frase de contraseña」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1021, + "metadata": { + "passphrase": "mi política de frase de contraseña" + } + }, + { + "title": "btcGetAddress / 「`abcdefghijklmnopqrstuvwx」", + "method": "btcGetAddress", + "expected": "16CmCbBLdxH7idahHxbPtVZFMVSTAfTuUm", + "actual": "1AztpmzfQdpZNM5Yshczadx5pzcLfDTox7", + "passed": false, + "duration": 4043, + "metadata": { + "passphrase": "`abcdefghijklmnopqrstuvwx" + } + }, + { + "title": "evmGetAddress / 「`abcdefghijklmnopqrstuvwx」", + "method": "evmGetAddress", + "expected": "0x4FFe0335352d03c32A70e0363CE3B755c0AEA15B", + "actual": "0x4cf1495a7786cEbE16b92671e8Ff98bc710B0A83", + "passed": false, + "duration": 2297, + "metadata": { + "passphrase": "`abcdefghijklmnopqrstuvwx" + } + }, + { + "title": "dnxGetAddress / 「`abcdefghijklmnopqrstuvwx」", + "method": "dnxGetAddress", + "expected": "", + "actual": "", + "passed": true, + "duration": 1037, + "metadata": { + "passphrase": "`abcdefghijklmnopqrstuvwx" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts index 7f847cb28..78a5c8e23 100644 --- a/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts +++ b/packages/connect-examples/expo-example/src/atoms/automationAtoms.ts @@ -31,6 +31,7 @@ const defaultProgress: TestProgress = { currentTestSuite: null, currentTestIndex: 0, totalTests: 0, + completedTests: 0, completedScenarios: 0, totalScenarios: 0, completedSuites: 0, @@ -138,7 +139,9 @@ export const canStartAutomationAtom = atom(get => { const isConnected = get(phonePilotConnectionStateAtom) === 'connected'; const isRunning = get(isAutomationRunningAtom); const config = get(automationConfigAtom); - const hasScenarios = config.scenarioIds.length > 0 && config.testSuites.length > 0; + // deviceFlowOnly always runs only deviceFlow suite, testSuites selection is irrelevant + const hasScenarios = config.scenarioIds.length > 0 && + (config.devicePreparationMode === 'deviceFlowOnly' || config.testSuites.length > 0); if (config.devicePreparationMode === 'sdkOnly') { return !isRunning && hasScenarios; } @@ -147,6 +150,9 @@ export const canStartAutomationAtom = atom(get => { export const progressPercentageAtom = atom(get => { const progress = get(automationProgressAtom); + if (progress.totalTests > 0) { + return Math.round((progress.completedTests / progress.totalTests) * 100); + } if (progress.totalSuites === 0) { return 0; } 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 667c55ce7..1733577af 100644 --- a/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts +++ b/packages/connect-examples/expo-example/src/services/phonePilotMcp/types.ts @@ -93,7 +93,7 @@ export interface MnemonicStoreResult { flowType?: 'create' | 'import' | 'manual'; } -export type DevicePreparationMode = 'full' | 'skipReset' | 'sdkOnly'; +export type DevicePreparationMode = 'full' | 'skipReset' | 'sdkOnly' | 'deviceFlowOnly'; export const DEVICE_PREPARATION_MODE_INFO: Record< DevicePreparationMode, @@ -111,9 +111,13 @@ export const DEVICE_PREPARATION_MODE_INFO: Record< label: '仅 SDK 测试', description: '设备已有正确钱包,跳过所有 PhonePilot,直接 SDK 测试', }, + deviceFlowOnly: { + label: '仅设备流程', + description: '仅执行重置 → 创建/导入序列,跳过所有 SDK 测试', + }, }; -export const ALL_DEVICE_PREPARATION_MODES: DevicePreparationMode[] = ['full', 'skipReset', 'sdkOnly']; +export const ALL_DEVICE_PREPARATION_MODES: DevicePreparationMode[] = ['full', 'skipReset', 'sdkOnly', 'deviceFlowOnly']; export type JiraIssueKey = 'OK-26053' | 'OK-26054' | 'OK-5504' | 'OK-40090'; export type PassphraseVariantId = 'normal' | 'passphrase_empty' | 'passphrase_1' | 'passphrase_2'; @@ -224,6 +228,7 @@ export interface TestProgress { currentTestSuite: TestSuiteType | null; currentTestIndex: number; totalTests: number; + completedTests: number; completedScenarios: number; totalScenarios: number; completedSuites: number; @@ -249,6 +254,8 @@ export interface TestSuiteResult { suiteName: string; status: 'passed' | 'failed' | 'skipped'; totalTests: number; + /** Pre-calculated expected total — set at suite start, stays fixed during live updates. */ + expectedTotalTests?: number; passedTests: number; failedTests: number; skippedTests: number; 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 cf18d3420..7c2ab0a2a 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/scenarioCatalog.ts @@ -5,14 +5,14 @@ import type { TestSuiteType, } from '../../services/phonePilotMcp/types'; -const BIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow']; +const BIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; const BIP39_IMPORT_SUITES: TestSuiteType[] = [ 'deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch', 'specialPassphrase', ]; -const SLIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow']; +const SLIP39_CREATE_SUITES: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; const SLIP39_IMPORT_SUITES: TestSuiteType[] = ['deviceFlow', 'sdkAddressBatch', 'sdkPubkeyBatch']; const BIP39_IMPORT_VECTORS = { 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 6ed6ad6c6..105988fcb 100644 --- a/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts +++ b/packages/connect-examples/expo-example/src/testTools/automationTest/useAutomationTest.ts @@ -15,6 +15,8 @@ import { getSlip39CreateTemplateCase, resolveSlip39SdkCases, } from './scenarioResolver'; +import { compatibilityManager } from '../deviceCompatibility/DeviceCompatibility'; +import '../deviceCompatibility/plugins'; import { PhonePilotClient } from '../../services/phonePilotMcp'; import { addLogAtom, @@ -98,6 +100,17 @@ 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'; +/** + * Timing constants — aligned with SLIP39 standalone test timings. + * After a wallet import/create sequence the device needs time to persist + * state before it can respond to Initialize commands. + */ +const CONFIRM_ACTION_DELAY_MS = 500; +const POST_SEQUENCE_SETTLE_MS = 3000; +/** Extra settle time between device preparation (import/create) and the first SDK call. */ +const PRE_SDK_SETTLE_MS = 3000; +const SDK_CASE_DELAY_MS = 80; + type AutomationRunMode = 'full' | 'debug'; interface PreparationResult { @@ -425,6 +438,14 @@ function getSuiteName(suiteType: TestSuiteType): string { return names[suiteType] || suiteType; } +async function fetchDeviceFeatures( + sdk: CoreApi, + connectId: string +): Promise | undefined> { + const result = await sdk.getFeatures(connectId); + return result.success ? result.payload : undefined; +} + function getBip39ImportProbeAddress(scenario: AutomationScenario): string { const sdkCase = resolveBip39ImportSdkCases(scenario, ['normal'], 'address')[0]; if (!sdkCase) { @@ -502,6 +523,73 @@ function buildSelectedSuites( ); } +function countSdkCasePaths( + scenario: AutomationScenario, + suiteType: 'sdkAddressBatch' | 'sdkPubkeyBatch', + passphraseVariants: PassphraseVariantId[] +): number { + const caseType = suiteType === 'sdkAddressBatch' ? 'address' : 'pubkey'; + let count = 0; + + if (scenario.walletType === 'bip39' && scenario.flowType === 'import') { + const cases = resolveBip39ImportSdkCases(scenario, passphraseVariants, caseType); + for (const sdkCase of cases) { + for (const methodCase of sdkCase.data) { + count += Object.keys(methodCase.expectedByPath || {}).length; + } + } + } else if (scenario.walletType === 'bip39' && scenario.flowType === 'create') { + const probes = + suiteType === 'sdkAddressBatch' + ? [{ method: 'evmGetAddress', caseName: 'evmGetAddress', path: EVM_ADDRESS_PATH }] + : BIP39_CREATE_PUBKEY_PROBES; + count = probes.length * passphraseVariants.length; + } else if (scenario.walletType === 'slip39' && scenario.flowType === 'import') { + const cases = resolveSlip39SdkCases(scenario, passphraseVariants, caseType); + for (const slip39Case of cases) { + for (const methodData of slip39Case.data) { + const expectedMap = + caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; + count += Object.keys(expectedMap || {}).length; + } + } + } else if (scenario.walletType === 'slip39' && scenario.flowType === 'create') { + const templateCase = getSlip39CreateTemplateCase(caseType); + const variantIds = passphraseVariants.filter(v => SLIP39_CREATE_ALLOWED_VARIANTS.includes(v)); + if (templateCase && variantIds.length > 0) { + let pathsPerVariant = 0; + for (const methodData of templateCase.data) { + const expectedMap = + caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; + pathsPerVariant += Object.keys(expectedMap || {}).length; + } + count = pathsPerVariant * variantIds.length; + } + } + + return count; +} + +function countScenarioTotalTests( + scenario: AutomationScenario, + selectedSuites: TestSuiteType[], + passphraseVariants: PassphraseVariantId[] +): number { + let total = 0; + for (const suiteType of selectedSuites) { + if (suiteType === 'deviceFlow') { + total += 1; + } else if (suiteType === 'specialPassphrase') { + if (scenario.supportedSuites.includes('specialPassphrase') && scenario.bip39ImportMnemonicWords) { + total += 9 * 3; // 9 passphrases × 3 methods + } + } else { + total += countSdkCasePaths(scenario, suiteType, passphraseVariants); + } + } + return total; +} + function shouldStopBySuiteFailure( stopOnFirstError: boolean, suiteResults: TestSuiteResult[] @@ -533,22 +621,76 @@ export function useAutomationTest() { const lastUrlRef = useRef(config.phonePilotUrl); const phonePilotHealthRef = useRef(null); + const deviceFeaturesRef = useRef | undefined>(undefined); + const liveScenarioCtxRef = useRef<{ scenario: AutomationScenario; startedAt: number; completedSuiteResults: TestSuiteResult[]; } | null>(null); + /** + * Throttle live-report UI updates: flush at most once per LIVE_UPDATE_INTERVAL_MS, + * or every LIVE_UPDATE_BATCH_SIZE cases, whichever comes first. + * This prevents O(n²) re-renders when a suite has hundreds of cases. + */ + const LIVE_UPDATE_INTERVAL_MS = 1000; + const LIVE_UPDATE_BATCH_SIZE = 10; + const liveUpdatePendingRef = useRef<{ + suiteType: TestSuiteType; + suiteName: string; + results: TestCaseResult[]; + expectedTotal: number; + lastFlushedAt: number; + pendingCount: number; + } | null>(null); + const liveUpdateTimerRef = useRef | null>(null); + + const flushLiveUpdate = useCallback(() => { + if (liveUpdateTimerRef.current) { + clearTimeout(liveUpdateTimerRef.current); + liveUpdateTimerRef.current = null; + } + const pending = liveUpdatePendingRef.current; + if (!pending) return; + const ctx = liveScenarioCtxRef.current; + if (!ctx) return; + const partialSuite = createSuiteResult(pending.suiteType, pending.suiteName, pending.results, Date.now() - ctx.startedAt); + partialSuite.expectedTotalTests = pending.expectedTotal || partialSuite.totalTests; + const allSuites = [...ctx.completedSuiteResults, partialSuite]; + const report = buildScenarioReport(ctx.scenario, allSuites, Date.now() - ctx.startedAt); + updateLiveScenario(report); + pending.lastFlushedAt = Date.now(); + pending.pendingCount = 0; + }, [updateLiveScenario]); + 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); + (suiteType: TestSuiteType, suiteName: string, partialResults: TestCaseResult[], expectedTotal?: number) => { + if (!liveScenarioCtxRef.current) return; + + const now = Date.now(); + if (!liveUpdatePendingRef.current || liveUpdatePendingRef.current.suiteType !== suiteType) { + liveUpdatePendingRef.current = { suiteType, suiteName, results: partialResults, expectedTotal: expectedTotal ?? partialResults.length, lastFlushedAt: now, pendingCount: 0 }; + } else { + liveUpdatePendingRef.current.results = partialResults; + if (expectedTotal !== undefined) { + liveUpdatePendingRef.current.expectedTotal = expectedTotal; + } + } + liveUpdatePendingRef.current.pendingCount += 1; + + const pending = liveUpdatePendingRef.current; + const shouldFlushNow = + pending.pendingCount >= LIVE_UPDATE_BATCH_SIZE || + now - pending.lastFlushedAt >= LIVE_UPDATE_INTERVAL_MS; + + if (shouldFlushNow) { + flushLiveUpdate(); + } else if (!liveUpdateTimerRef.current) { + liveUpdateTimerRef.current = setTimeout(flushLiveUpdate, LIVE_UPDATE_INTERVAL_MS); + } }, - [updateLiveScenario] + [flushLiveUpdate] ); const updateSuiteProgress = useCallback( @@ -581,6 +723,13 @@ export function useAutomationTest() { })); }, [setProgress]); + const incrementCompletedTests = useCallback((count = 1) => { + setProgress(prev => ({ + ...prev, + completedTests: prev.completedTests + count, + })); + }, [setProgress]); + const updateHealthState = useCallback( (health: HealthCheckResponse | null) => { phonePilotHealthRef.current = health; @@ -696,6 +845,7 @@ export function useAutomationTest() { case UI_REQUEST.REQUEST_BUTTON: if (clientRef.current) { try { + await delay(CONFIRM_ACTION_DELAY_MS); await clientRef.current.confirmAction(); addLog('Button confirmed via PhonePilot'); } catch (error) { @@ -875,6 +1025,9 @@ export function useAutomationTest() { }; } + addLog(`Sequence completed, waiting ${POST_SEQUENCE_SETTLE_MS}ms for device to settle...`); + await delay(POST_SEQUENCE_SETTLE_MS); + let mnemonicStoreResult: MnemonicStoreResult | null = null; if (scenario.flowType === 'create' && clientRef.current) { mnemonicStoreResult = await clientRef.current.mnemonicStoreGet(); @@ -944,6 +1097,7 @@ export function useAutomationTest() { if (features?.initialized === false) { throw new Error('Device is not initialized (factory reset state). Please create or import a wallet first, or switch to "完整流程" / "跳过重置" mode.'); } + deviceFeaturesRef.current = features as Record | undefined; return features?.device_id ?? ''; }, []); @@ -998,6 +1152,57 @@ export function useAutomationTest() { [addLog] ); + /** + * Common passphrase iteration setup — sets ref, updates progress, calls ensurePassphraseState. + * Returns passphraseState on success, or null + pushes error result on failure. + */ + const preparePassphraseIteration = useCallback( + async ( + sdk: CoreApi, + connectId: string, + deviceFeatures: Record | undefined, + passphrase: string | undefined, + label: string, + results: TestCaseResult[], + suiteType: TestSuiteType, + suiteName: string + ): Promise<{ ok: true; passphraseState: string | undefined } | { ok: false }> => { + const passphraseDisplay = formatPassphraseDisplay(passphrase); + currentPassphraseRef.current = passphrase ?? ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: passphraseDisplay, + })); + + try { + const passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures, passphrase, label); + return { ok: true, passphraseState }; + } 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, suiteName, results); + return { ok: false }; + } + }, + [addLog, ensurePassphraseState, notifyLiveCaseUpdate, setProgress] + ); + + const cleanupPassphraseLoop = useCallback(() => { + // Flush any pending live update before closing the suite + flushLiveUpdate(); + liveUpdatePendingRef.current = null; + currentPassphraseRef.current = ''; + setProgress(prev => ({ + ...prev, + currentPassphrase: null, + })); + }, [setProgress, flushLiveUpdate]); + const readMnemonicStoreContext = useCallback(async (): Promise => { if (!clientRef.current) { return null; @@ -1073,13 +1278,36 @@ export function useAutomationTest() { })) as { success: boolean; payload?: unknown }; if (!result.success) { + const errorMsg = (result.payload as { error?: string } | undefined)?.error || 'Unknown error'; + // Check device compatibility: if expected=false, treat failure as expected + if (deviceFeaturesRef.current) { + const expectedOverride = compatibilityManager.getExpectedOverride( + deviceFeaturesRef.current, methodData.method, expectedPath + ); + if (expectedOverride === false) { + addLog(`[EXPECTED_FAIL] ${methodData.method} — device does not support this method`); + return { + title: `${slip39Case.id} / ${methodData.name || methodData.method} / ${expectedPath}`, + method: methodData.method, + expected: '(expected failure)', + actual: errorMsg, + passed: true, + duration: Date.now() - startedAt, + metadata: { + scenario: scenario.title, + passphrase: formatPassphraseDisplay(slip39Case.passphrase), + deviceCompat: 'expected failure', + }, + }; + } + } 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', + error: errorMsg, duration: Date.now() - startedAt, }; } @@ -1122,7 +1350,7 @@ export function useAutomationTest() { }; } }, - [runWithRetry] + [runWithRetry, addLog] ); const runSlip39SdkSuite = useCallback( @@ -1147,34 +1375,17 @@ export function useAutomationTest() { ); } - // Get features ONCE before passphrase loop (same as SLIP39BatchAddressTest) - const featuresResult = await sdk.getFeatures(connectId); - const deviceFeatures = featuresResult.success ? featuresResult.payload : undefined; - + const suiteName = getSuiteName(suiteType); + const expectedTotal = countSdkCasePaths(scenario, suiteType, selectedPassphraseVariants); const results: TestCaseResult[] = []; for (const slip39Case of slip39Cases) { - currentPassphraseRef.current = slip39Case.passphrase ?? ''; - const passphraseDisplay = formatPassphraseDisplay(slip39Case.passphrase); - setProgress(prev => ({ - ...prev, - currentPassphrase: passphraseDisplay, - })); - - // Ensure device passphrase_protection matches, then get passphraseState - let passphraseState: string | undefined; - try { - passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures, 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; - } + // Fetch fresh features per iteration to avoid stale passphrase_protection state + const deviceFeatures = await fetchDeviceFeatures(sdk, connectId); + const ppResult = await preparePassphraseIteration( + sdk, connectId, deviceFeatures, slip39Case.passphrase, 'SLIP39', results, suiteType, suiteName + ); + if (!ppResult.ok) continue; + const { passphraseState } = ppResult; for (const methodData of slip39Case.data) { const expectedMap = @@ -1197,26 +1408,18 @@ export function useAutomationTest() { passphraseState ); results.push(caseResult); - notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); - await delay(80); + incrementCompletedTests(); + notifyLiveCaseUpdate(suiteType, suiteName, results, expectedTotal); + await delay(SDK_CASE_DELAY_MS); } } } - currentPassphraseRef.current = ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: null, - })); + cleanupPassphraseLoop(); - return createSuiteResult( - suiteType, - suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', - results, - Date.now() - startedAt - ); + return createSuiteResult(suiteType, suiteName, results, Date.now() - startedAt); }, - [runSdkMethodCase, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] + [runSdkMethodCase, preparePassphraseIteration, cleanupPassphraseLoop, updateSuiteProgress, incrementCompletedTests] ); const runAutomationSdkBatchCase = useCallback( @@ -1253,13 +1456,36 @@ export function useAutomationTest() { })) as { success: boolean; payload?: unknown }; if (!result.success) { + const errorMsg = (result.payload as { error?: string } | undefined)?.error || 'Unknown error'; + // Check device compatibility: if expected=false, treat failure as expected + if (deviceFeaturesRef.current) { + const expectedOverride = compatibilityManager.getExpectedOverride( + deviceFeaturesRef.current, methodCase.method, expectedPath + ); + if (expectedOverride === false) { + addLog(`[EXPECTED_FAIL] ${methodCase.method} — device does not support this method`); + return { + title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, + method: methodCase.method, + expected: '(expected failure)', + actual: errorMsg, + passed: true, + duration: Date.now() - startedAt, + metadata: { + scenario: scenario.title, + passphrase: formatPassphraseDisplay(sdkCase.passphrase), + deviceCompat: 'expected failure', + }, + }; + } + } return { title: `${sdkCase.id} / ${methodCase.name || methodCase.method} / ${expectedPath}`, method: methodCase.method, expected, actual: '', passed: false, - error: (result.payload as { error?: string } | undefined)?.error || 'Unknown error', + error: errorMsg, duration: Date.now() - startedAt, }; } @@ -1302,7 +1528,7 @@ export function useAutomationTest() { }; } }, - [runWithRetry] + [runWithRetry, addLog] ); const runBip39ImportSdkSuite = useCallback( @@ -1327,33 +1553,18 @@ export function useAutomationTest() { ); } - const featuresResult2 = await sdk.getFeatures(connectId); - const deviceFeatures2 = featuresResult2.success ? featuresResult2.payload : undefined; + const suiteName = getSuiteName(suiteType); + const expectedTotal = countSdkCasePaths(scenario, suiteType, selectedPassphraseVariants); const results: TestCaseResult[] = []; for (const bip39Case of bip39Cases) { - currentPassphraseRef.current = bip39Case.passphrase ?? ''; - const passphraseDisplay = formatPassphraseDisplay(bip39Case.passphrase); - setProgress(prev => ({ - ...prev, - currentPassphrase: passphraseDisplay, - })); - - // Ensure device passphrase_protection matches, then get passphraseState - let passphraseState: string | undefined; - try { - passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures2, 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; - } + // Fetch fresh features per iteration to avoid stale passphrase_protection state + const deviceFeatures2 = await fetchDeviceFeatures(sdk, connectId); + const ppResult = await preparePassphraseIteration( + sdk, connectId, deviceFeatures2, bip39Case.passphrase, 'BIP39_IMPORT', results, suiteType, suiteName + ); + if (!ppResult.ok) continue; + const { passphraseState } = ppResult; for (const methodCase of bip39Case.data) { const expectedPaths = Object.keys(methodCase.expectedByPath || {}); @@ -1373,21 +1584,18 @@ export function useAutomationTest() { passphraseState ); results.push(caseResult); - notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); - await delay(80); + incrementCompletedTests(); + notifyLiveCaseUpdate(suiteType, suiteName, results, expectedTotal); + await delay(SDK_CASE_DELAY_MS); } } } - currentPassphraseRef.current = ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: null, - })); + cleanupPassphraseLoop(); - return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); + return createSuiteResult(suiteType, suiteName, results, Date.now() - startedAt); }, - [runAutomationSdkBatchCase, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] + [runAutomationSdkBatchCase, preparePassphraseIteration, cleanupPassphraseLoop, updateSuiteProgress, incrementCompletedTests] ); const runBip39CreateDynamicSuite = useCallback( @@ -1418,8 +1626,8 @@ export function useAutomationTest() { ? [{ method: 'evmGetAddress', caseName: 'evmGetAddress', path: EVM_ADDRESS_PATH }] : BIP39_CREATE_PUBKEY_PROBES; - const featuresResult3 = await sdk.getFeatures(connectId); - const deviceFeatures3 = featuresResult3.success ? featuresResult3.payload : undefined; + const suiteName = getSuiteName(suiteType); + const expectedTotal = countSdkCasePaths(scenario, suiteType, selectedPassphraseVariants); const results: TestCaseResult[] = []; for (const variantId of selectedPassphraseVariants) { @@ -1428,29 +1636,15 @@ export function useAutomationTest() { } const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); - const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); - currentPassphraseRef.current = passphraseLiteral ?? ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: passphraseDisplay, - })); - - // Ensure device passphrase_protection matches, then get passphraseState - let passphraseState: string | undefined; - try { - passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures3, 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; - } + // Fetch fresh features per iteration to avoid stale passphrase_protection state + const deviceFeatures3 = await fetchDeviceFeatures(sdk, connectId); + const ppResult = await preparePassphraseIteration( + sdk, connectId, deviceFeatures3, passphraseLiteral, 'BIP39_CREATE', results, suiteType, suiteName + ); + if (!ppResult.ok) continue; + const { passphraseState } = ppResult; + const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); const seed = mnemonicToSeed(mnemonicWords.join(' '), passphraseLiteral); for (const probe of probes) { const startedAtCase = Date.now(); @@ -1534,20 +1728,17 @@ export function useAutomationTest() { }); } - notifyLiveCaseUpdate(suiteType, getSuiteName(suiteType), results); - await delay(80); + incrementCompletedTests(); + notifyLiveCaseUpdate(suiteType, suiteName, results, expectedTotal); + await delay(SDK_CASE_DELAY_MS); } } - currentPassphraseRef.current = ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: null, - })); + cleanupPassphraseLoop(); - return createSuiteResult(suiteType, getSuiteName(suiteType), results, Date.now() - startedAt); + return createSuiteResult(suiteType, suiteName, results, Date.now() - startedAt); }, - [runWithRetry, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] + [runWithRetry, preparePassphraseIteration, cleanupPassphraseLoop, addLog, updateSuiteProgress, incrementCompletedTests] ); const runSlip39CreateDynamicSuite = useCallback( @@ -1593,8 +1784,29 @@ export function useAutomationTest() { ); } - const featuresResult4 = await sdk.getFeatures(connectId); - const deviceFeatures4 = featuresResult4.success ? featuresResult4.payload : undefined; + // Pre-validate shares before running all cases — if OCR produced invalid words, + // fail fast with a single descriptive result rather than N identical errors. + try { + await generateMultiChainAddressFromSLIP39({ + shares: shareMnemonics, + passphrase: undefined, + method: 'evmGetAddress', + params: { path: EVM_ADDRESS_PATH }, + }); + } catch (validationError) { + const reason = `Shares validation failed (possible OCR error): ${ + validationError instanceof Error ? validationError.message : String(validationError) + }`; + addLog(`[SLIP39_CREATE] ${reason}`); + return createFailureSuiteResult( + suiteType, + suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', + reason + ); + } + + const suiteName = getSuiteName(suiteType); + const expectedTotal = countSdkCasePaths(scenario, suiteType, variantIds); const results: TestCaseResult[] = []; for (const variantId of variantIds) { @@ -1603,29 +1815,15 @@ export function useAutomationTest() { } const passphraseLiteral = getScenarioPassphraseLiteral(scenario, variantId); - const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); - currentPassphraseRef.current = passphraseLiteral ?? ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: passphraseDisplay, - })); - - // Ensure device passphrase_protection matches, then get passphraseState - let passphraseState: string | undefined; - try { - passphraseState = await ensurePassphraseState(sdk, connectId, deviceFeatures4, 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; - } + // Fetch fresh features per iteration to avoid stale passphrase_protection state + const deviceFeatures4 = await fetchDeviceFeatures(sdk, connectId); + const ppResult = await preparePassphraseIteration( + sdk, connectId, deviceFeatures4, passphraseLiteral, 'SLIP39_CREATE', results, suiteType, suiteName + ); + if (!ppResult.ok) continue; + const { passphraseState } = ppResult; + const passphraseDisplay = formatPassphraseDisplay(passphraseLiteral); for (const methodData of templateCase.data) { const expectedMap = caseType === 'address' ? methodData.expectedAddress : methodData.expectedPublicKey; @@ -1755,26 +1953,18 @@ export function useAutomationTest() { }); } - notifyLiveCaseUpdate(suiteType, suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', results); - await delay(80); + incrementCompletedTests(); + notifyLiveCaseUpdate(suiteType, suiteName, results, expectedTotal); + await delay(SDK_CASE_DELAY_MS); } } } - currentPassphraseRef.current = ''; - setProgress(prev => ({ - ...prev, - currentPassphrase: null, - })); + cleanupPassphraseLoop(); - return createSuiteResult( - suiteType, - suiteType === 'sdkAddressBatch' ? 'SDK Address Batch' : 'SDK Pubkey Batch', - results, - Date.now() - startedAt - ); + return createSuiteResult(suiteType, suiteName, results, Date.now() - startedAt); }, - [runWithRetry, ensurePassphraseState, addLog, setProgress, updateSuiteProgress] + [runWithRetry, preparePassphraseIteration, cleanupPassphraseLoop, addLog, updateSuiteProgress, incrementCompletedTests] ); @@ -1820,6 +2010,13 @@ export function useAutomationTest() { try { const { default: mockDevice } = await import('../../utils/mockDevice'); + // Ensure passphrase_protection is enabled before running special passphrase tests + const spFeatures = await fetchDeviceFeatures(sdk, connectId); + if (!spFeatures?.passphrase_protection) { + addLog('[SpecialPassphrase] Enabling passphrase_protection'); + await sdk.deviceSettings(connectId, { usePassphrase: true }); + } + for (const passphrase of specialPassphrases) { currentPassphraseRef.current = passphrase; addLog(`Testing special passphrase: 「${passphrase}」`); @@ -1893,7 +2090,41 @@ export function useAutomationTest() { passphraseState, useEmptyPassphrase: false, }) - )) as { success: boolean; payload?: { address?: string } }; + )) as { success: boolean; payload?: { address?: string; error?: string } }; + + if (!sdkResult.success) { + // Check device compatibility + if (deviceFeaturesRef.current) { + const expectedOverride = compatibilityManager.getExpectedOverride( + deviceFeaturesRef.current, method, SPECIAL_PASSPHRASE_METHOD_PATHS[method] + ); + if (expectedOverride === false) { + addLog(`[EXPECTED_FAIL] ${method} / 「${passphrase}」 — device does not support this method`); + results.push({ + title: `${method} / 「${passphrase}」`, + method, + expected: '(expected failure)', + actual: sdkResult.payload?.error || 'SDK call failed', + passed: true, + duration: Date.now() - caseStart, + metadata: { passphrase, deviceCompat: 'expected failure' }, + }); + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); + continue; + } + } + results.push({ + title: `${method} / 「${passphrase}」`, + method, + expected, + passed: false, + error: sdkResult.payload?.error || 'SDK call failed', + duration: Date.now() - caseStart, + metadata: { passphrase }, + }); + notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); + continue; + } const actual = sdkResult.payload?.address || ''; const passed = actual.toLowerCase() === expected.toLowerCase(); @@ -1922,8 +2153,9 @@ export function useAutomationTest() { }); } + incrementCompletedTests(); notifyLiveCaseUpdate('specialPassphrase', 'Special Passphrase', results); - await delay(80); + await delay(SDK_CASE_DELAY_MS); } } } catch (error) { @@ -1943,7 +2175,7 @@ export function useAutomationTest() { Date.now() - startedAt ); }, - [addLog, runWithRetry, updateSuiteProgress] + [addLog, runWithRetry, updateSuiteProgress, incrementCompletedTests] ); const runSelectedSdkSuites = useCallback( @@ -2120,6 +2352,9 @@ export function useAutomationTest() { }; } + addLog(`Reset completed, waiting ${POST_SEQUENCE_SETTLE_MS}ms for device to settle...`); + await delay(POST_SEQUENCE_SETTLE_MS); + return { success: true, suiteResult: createSuiteResult( @@ -2156,7 +2391,7 @@ export function useAutomationTest() { }; } }, - [addLog, executePhonePilotSequence] + [addLog, executePhonePilotSequence, SDK, selectedDevice] ); const resolveDebugRunContext = useCallback( @@ -2222,10 +2457,11 @@ export function useAutomationTest() { ); if (!currentEvmAddress) { - scenarioDecisions.set(scenario.id, { - matched: false, - reason: 'current wallet mismatch: current wallet probe unavailable', - }); + // EVM probe failed (device may require PIN/passphrase interaction). + // In sdkOnly mode PhonePilot is not connected, so we can't automate device UI. + // Run the scenario anyway — the user claims to have the correct wallet loaded. + addLog(`[sdkOnly] EVM probe unavailable for ${scenario.id}, running without address match`); + scenarioDecisions.set(scenario.id, { matched: true }); continue; } @@ -2360,6 +2596,7 @@ export function useAutomationTest() { } const needsPhonePilot = config.devicePreparationMode !== 'sdkOnly'; + // deviceFlowOnly: same as full but SDK suites will be skipped per-scenario if (needsPhonePilot && connectionState !== 'connected') { addLog('PhonePilot not connected, connecting...'); @@ -2379,8 +2616,21 @@ export function useAutomationTest() { setupUIListener(SDK); const selectedScenarios = config.scenarioIds.map(id => getAutomationScenario(id)); + const effectiveSuitesForCount = config.devicePreparationMode === 'deviceFlowOnly' + ? (['deviceFlow'] as TestSuiteType[]) + : config.testSuites; const totalSuites = selectedScenarios.reduce( - (sum, scenario) => sum + buildSelectedSuites(scenario, config.testSuites).length, + (sum, scenario) => sum + buildSelectedSuites(scenario, effectiveSuitesForCount).length, + 0 + ); + const totalTests = selectedScenarios.reduce( + (sum, scenario) => + sum + + countScenarioTotalTests( + scenario, + buildSelectedSuites(scenario, effectiveSuitesForCount), + config.passphraseVariants + ), 0 ); const { connectId } = selectedDevice; @@ -2388,6 +2638,7 @@ export function useAutomationTest() { initLiveReport({ totalScenarios: selectedScenarios.length, startTime }); const scenarioResults: ScenarioReportResult[] = []; let fatalErrorMessage = ''; + let cumulativeExpectedTests = 0; let health: HealthCheckResponse | null = null; if (needsPhonePilot) { @@ -2436,7 +2687,8 @@ export function useAutomationTest() { currentPassphrase: null, currentTestSuite: null, currentTestIndex: 0, - totalTests: totalSuites, + totalTests, + completedTests: 0, completedScenarios: 0, totalScenarios: selectedScenarios.length, completedSuites: 0, @@ -2457,7 +2709,11 @@ export function useAutomationTest() { addLog( `\n--- Scenario ${scenarioIndex + 1}/${selectedScenarios.length}: ${scenario.title} ---` ); - const selectedSuites = buildSelectedSuites(scenario, config.testSuites); + // deviceFlowOnly: only run deviceFlow suite regardless of testSuites config + const effectiveSuites = config.devicePreparationMode === 'deviceFlowOnly' + ? (['deviceFlow'] as TestSuiteType[]) + : config.testSuites; + const selectedSuites = buildSelectedSuites(scenario, effectiveSuites); const scenarioStartedAt = Date.now(); liveScenarioCtxRef.current = { scenario, @@ -2619,6 +2875,8 @@ export function useAutomationTest() { if (shouldRunSdkSuites) { try { + addLog(`Waiting ${PRE_SDK_SETTLE_MS}ms before SDK tests to let device settle...`); + await delay(PRE_SDK_SETTLE_MS); deviceId = await refreshDeviceId(SDK, connectId); addLog(`Device ID updated: ${deviceId}`); } catch (error) { @@ -2658,6 +2916,17 @@ export function useAutomationTest() { scenarioResults.push(scenarioReport); updateLiveScenario(scenarioReport); + // Sync completedTests: count actual test cases from all completed scenarios + cumulativeExpectedTests += scenarioReport.suiteResults.reduce( + (sum, s) => sum + s.results.length, 0 + ); + setProgress(prev => ({ + ...prev, + completedTests: Math.min( + Math.max(prev.completedTests, cumulativeExpectedTests), + prev.totalTests + ), + })); markScenarioCompleted(); if (shouldStopBySuiteFailure(config.stopOnFirstError, scenarioReport.suiteResults)) { @@ -2745,10 +3014,7 @@ export function useAutomationTest() { await runAutomation('full'); } }, [config.devicePreparationMode, runAutomation]); - - const startDebugAutomation = useCallback(async (): Promise => { - await runAutomation('debug'); - }, [runAutomation]); + // Note: deviceFlowOnly uses 'full' run mode — SDK suites are skipped inside runAutomation const stopAutomation = useCallback(async () => { runningRef.current = false; @@ -2792,7 +3058,6 @@ export function useAutomationTest() { connectPhonePilot, disconnectPhonePilot, startAutomation, - startDebugAutomation, stopAutomation, captureFrame, }; diff --git a/packages/connect-examples/expo-example/src/testTools/deviceCompatibility/plugins/pro.ts b/packages/connect-examples/expo-example/src/testTools/deviceCompatibility/plugins/pro.ts index 16d787e77..471a2219c 100644 --- a/packages/connect-examples/expo-example/src/testTools/deviceCompatibility/plugins/pro.ts +++ b/packages/connect-examples/expo-example/src/testTools/deviceCompatibility/plugins/pro.ts @@ -5,6 +5,11 @@ import type { DevicePlugin } from '../DeviceCompatibility'; export const proPlugin: DevicePlugin = { deviceType: EDeviceType.Pro, overrides: [ + { + id: 'pro-dnx-get-address-expected-fail', + methods: 'dnxGetAddress', + expected: false, + }, { id: 'pro-dnx-sign-tx-expected-fail', methods: 'dnxSignTransaction', 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 index 9ea132441..d6c690e45 100644 --- a/packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx +++ b/packages/connect-examples/expo-example/src/views/AutomationTest/components/ConnectionConfig.tsx @@ -1,5 +1,5 @@ import { useAtomValue } from 'jotai'; -import { Button, Card, Input, Stack, Text, XStack, YStack } from 'tamagui'; +import { Button, Input, Stack, Text, XStack, YStack } from 'tamagui'; import { phonePilotConnectionStateAtom, @@ -28,54 +28,59 @@ export function ConnectionConfig({ const statusLabelMap = { connected: '已连接', - connecting: '连接中', + connecting: '连接中...', disconnected: '未连接', error: '连接失败', } as const; return ( - - - PhonePilot 连接 - - - - MCP 地址 - + + {/* URL + connect button on one row */} + + MCP 地址 setConfig(prev => ({ ...prev, phonePilotUrl: value }))} placeholder="http://localhost:3847" /> - - - - - 当前状态: {statusLabelMap[connectionState]} - - - + {/* Status + health on one row */} + - MCP: {formatReadyLabel(health?.mcpReady)} + + {statusLabelMap[connectionState]} + - - OCR: {formatReadyLabel(health?.ocrReady)} + + MCP: {formatReadyLabel(health?.mcpReady)} + + + + OCR: {formatReadyLabel(health?.ocrReady)} 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 257799505..5da32b0c9 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,17 +1,44 @@ +import { useRef } from 'react'; import { useAtomValue } from 'jotai'; +import { Button, Stack, TextArea, YStack } from 'tamagui'; import { automationLogsAtom } from '../../../atoms/automationAtoms'; -import AutoWrapperTextArea from '../../../components/ui/AutoWrapperTextArea'; export function LogsSection() { const logs = useAtomValue(automationLogsAtom); + const textAreaRef = useRef(null); + + const scrollToTop = () => { + if (textAreaRef.current) { + textAreaRef.current.scrollTop = 0; + } + }; return ( - + + +